
Eu estava brincando com o DTrace no Mac OS X e encontrei o seguinte script que imprime informações sobre conexões sendo estabelecidas:
$ gato script.d
syscall::connect:entry
{
printf("execname: %s\n", execname);
printf("pid: %d\n", pid);
printf("sockfd: %d\n",arg0);
socks = (struct sockaddr*)copyin(arg1, arg2);
hport = (uint_t)socks->sa_data[0];
lport = (uint_t)socks->sa_data[1];
hport <<= 8;
port = hport + lport;
printf("Port number: %d\n", port); printf("IP address: %d.%d.%d.%d\n",
socks->sa_data[2],
socks->sa_data[3],
socks->sa_data[4],
socks->sa_data[5]);
printf("======\n");
}
Eu executo em uma janela:
$ sudo dtrace -s ./script.d
Então eu ssh para outra máquina de outra janela. Eu recebo esta saída da minha janela do dtrace:
CPU ID FUNCTION:NAME
0 18696 connect:entry execname: ssh
pid: 5446
sockfd: 3
Port number: 22
IP address: 192.168.0.207
======
0 18696 connect:entry execname: ssh
pid: 5446
sockfd: 5
Port number: 12148
IP address: 109.112.47.108
======
^C
O primeiro endereço IP que posso explicar (192.168.0.207), é a máquina à qual estou me conectando. Mas o que há com a máquina 109.112.47.108? Não aparece no tcpdump nem no netstat -an
Há algo com meu código dtrace ou com meu entendimento de como funciona a chamada do sistema connect?
Responder1
Acho que descobri, é o script dtrace que peguei de um site Solarius e precisa ser alterado para BSD.
Responder2
Tente fazer um traceroute até esse endereço e veja onde ele está. Se estiver a apenas alguns passos de distância, provavelmente é um firewall ou switch.
Responder3
É um endereço IP da Vodaphone na Itália. Você está conectado a um ISP na Europa/Itália? Se não, é melhor começar a se preocupar.
Responder4
O que grep 'sshd.*from' secure.log
diz? Se alguém além de você fez login via SSH, você tem um problema. Se não o fizeram, é provável que seja umtentativa malsucedida de força bruta. Você está executando DenyHosts ou Fail2Ban?
Não consigo encontrar nenhuma documentação sobre syscall::connect, mas parece que ele está imprimindo as duas extremidades do soquete. O que acontece quando você executa o script e faz o ssh de outra máquina?