Ao olhar o tráfego no Wireshark, notei que meu computador estava enviando um pacote UDP a cada três segundos no endereço de transmissão para a porta 8765, com o conteúdo "*" (42 em ASCII). Não parece ser uma resposta a nada. A porta de origem muda a cada pacote.
Tentei descobrir o que estava emitindo esse pacote, mas não obtive sucesso. Tentei:
- Interrompendo todos os serviços não vitais que eu poderia pensar.
- Adicione uma regra iptables para descartar os pacotes (isso interrompe os pacotes, mas não me ajuda a saber o que os emite).
- Adicionei uma regra do iptables para interromper o encaminhamento e ver se de alguma forma ele foi encaminhado pelo meu computador, mas não.
- Usei auditd com vários parâmetros, mas nada combinou e nem consegui encontrar um
write(*,*,1)/send(*,*,1)/sendto(*,*,1,*,*)/sendmsg/sendmmsg
com a frequência certa. No entanto, não estou familiarizado com auditd.auditctl -a exit,always -F arch=b64 -S socket -F a0=2 -F a1=2
para procurar a criação de soquetes UDP IPv4.auditctl -a exit,always -F arch=b64 -S connect
apenas para procurar por alguma conexão.auditctl -a exit,always -F arch=b64 -S write -S send -S sendto -F a2=1
para combinarsend
ewrite
syscalls com comprimento de 1.audictl -a exit,always -F arch=b64 -S sendmsg -S sendmmsg
- Todos os itens acima com
-F arch=b32
instead.
- Use netstat/ss, mas o soquete provavelmente tem vida curta, então não mostra nada.
Quais são outras maneiras de determinar o que transmite esse pacote? E se ele vier do kernel ou de um módulo do kernel? Como eu poderia saber?
Há muitas maneiras de fazer isso.
Eu costumo usar apenas
bpftrace
, copiar um dos scripts de /usr/share/bpftrace/tools, por exemplo, killsnoop.bt, e substituir pelastracepoint:syscalls:sys_enter_kill
syscalls correspondentes,sys_enter_sendmsg
e…_sendmmsg
.Então fica algo assim
que pelo menos listará todas as chamadas
sendmsg
e variantes em tempo real, o que provavelmente será suficiente para identificar quem faz o quê.Se não houver syscalls que enviem mensagens, é provável que seja um thread do kernel – você talvez esteja fazendo wireguard, SMB/CIFS, NFS/sunrpc no kernel e tenha esquecido disso? Grande candidato, também: módulos de kernel questionáveis de "segurança de endpoint" de fornecedores de antivírus questionáveis.