Descobrindo serviço através das portas

Este artigo serve somente para apontar como se descobre um serviço em determinada porta da máquina, no caso em loopback. Isso funciona quando o serviço não é listado corretamente pelo telnet ou quando não sai como desejado.

[ Hits: 29.919 ]

Por: Snifferrat em 15/10/2007


Introdução



Primeiro você deve ter o nmap instalado na sua distribuição, no Debian ou derivados, use o "apt-get install nmap", no SuSE use o "yast -i nmap" ou o yast2 no menu, caso não consiga procure no Google...

Rode o Nmap na máquina assim:

# nmap -PS 127.0.0.1

Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2007-09-27 09:32 BRT
Interesting ports on localhost (127.0.0.1):
(The 1657 ports scanned but not shown below are in state: closed)
PORT     STATE SERVICE
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
631/tcp  open  ipp
8080/tcp open  http-proxy

Nmap finished: 1 IP address (1 host up) scanned in 0.360 seconds

Primeiro mostrarei o telnet, usaremos a porta 80. Abra um novo console e digite:

$ telnet 127.0.0.1 80

Você verá isso: aperte qualquer coisa e tecle enter:

Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.

* você vê no quase no final do arquivo, o programa é um apache 2.0.53, que por sinal vulnerável a exploit... mas isso não vem ao caso.

"Qui 27 Set 2007 09:36:22 BRT
Apache/2.0.53 (Linux/SUSE)"

Agora veremos outra opção, o "fuser".

Digite no terminal:

# fuser -v 80/tcp
USER        PID ACCESS COMMAND
80/tcp   root      29223 f....  httpd2-prefork
         root      29224 f....  httpd2-prefork
         root      29225 f....  httpd2-prefork
         root      29226 f....  httpd2-prefork
         root      29227 f....  httpd2-prefork
         root      29228 f....  httpd2-prefork
         root      29233 f....  httpd2-prefork
         root      29234 f....  httpd2-prefork
         root      29235 f....  httpd2-prefork

Como você pode ver, o fuser listou o usuário, o processo e o serviço, tudo o que queríamos...

Agora rode o nmap novamente...

# nmap -PS 127.0.0.1

Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2007-09-27 09:32 BRT
Interesting ports on localhost (127.0.0.1):
(The 1657 ports scanned but not shown below are in state: closed)
PORT     STATE SERVICE
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
631/tcp  open  ipp
8080/tcp open  http-proxy

Teste o telnet na porta 445, ficando assim:

# telnet 127.0.0.1 445
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.

Aqui você pode apertar o que quiser, ele não irá te dar o serviço e nem a versão.

O telnet não lista muitos serviços na maquina local, para isso temos os fuser.

Rode o fuser na porta 445, assim:

# fuser -v 445/tcp
USER        PID ACCESS COMMAND
445/tcp     root       2777 f....  smbd
            root       6658 f....  smbd

Ok conseguimos, ele nos deu o usuário, no caso root e o serviço, o Samba, como você viu, não conseguimos com o telnet.

Agora caso a sua distribuição seja daquelas que quando você instala vem com um monte de parafernália, como ssh dentre outros, se você não usa é bom desinstalar.

Lembrando, rode sempre um porte scanner no micro, pegue as versões e veja no Google se tem algum exploit, isso o manterá atualizado sobre os ataques, e atualize o sistema.

Use somente o necessário para evitar problemas mais tarde.

Abração pra todo mundo T+.

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

Configuração básica de rede + proxy Linux

Leitura recomendada

Usando HTTP autenticado no Apache

Instalando a nova versão do HLBR - IPS invisível

SSH Connection With non-NIST Russian Cipher and Distro for Military Use

Bloqueando e desbloqueando falhas de login em SSH usando o pam_tally2

Monitorando redes utilizando Ntop

  
Comentários
[1] Comentário enviado por removido em 15/10/2007 - 15:08h

O que fazem os parâmetros P e S hein?

[2] Comentário enviado por y2h4ck em 15/10/2007 - 21:53h

Extremamente Superficial e sem conteúdo...

mais simples usar o netstat:

# netstat -ntpl

....

[3] Comentário enviado por coffnix em 16/10/2007 - 08:52h

vc se esqueceu do comando mais simples do mundo.... que é o LSOF

quer um exemplo?

gentoo raphael # lsof -i tcp:22
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
sshd 4480 root 3u IPv4 12035 TCP *:ssh (LISTEN)


se vc quer descobrir em qual porta está o SSH basta fazer da seguinte forma:

gentoo raphael # lsof -i |grep ssh
sshd 4480 root 3u IPv4 12035 TCP *:ssh (LISTEN)

depois basta dar um grep no arquivo /etc/services:

gentoo raphael # grep ssh /etc/services
ssh 22/tcp # SSH Remote Login Protocol
ssh 22/udp




Voilá!

[4] Comentário enviado por elgio em 16/10/2007 - 09:46h

Acredito que seu artigo se encaixaria mais como dica. Se bem que a sessão de dicas anda muito desprestigiada ultimamente...

[5] Comentário enviado por elgio em 16/10/2007 - 09:56h

"O que fazem os comandos P e S?"

Pois é Snifferrat! Perdeste uma boa oportunidade de escrever um excelente artigo. Podias ter explorado muito o potencial do nmap, com suas várias formas de varrer portas, uma até INVISÍVEL usando uma máquina de escravo...

Respondendo a pergunta: P é o modo como se vai bater nas portas. A forma como se vai bater pode ser a diferença entre passar ou não passar pelo firewall:

-PS: envia um pacote do tipo SYN TCP para a porta

-PA: envia Ack TCP. Alguns firewall stateless bloqueiam SYN ou simplesmente fazem log deles. Por serem stateless serão obrigados a deixar passar pacotes de ACK e sem fazer log (ou sim, mas ai estaria-se fazendo log de tudo e haja partição /var!!!). Claro que um ACK do nada vai retorar um RST do outro lado, mas se retornar é porque está aberta a porta e é isto que se quer saber.

-PU: Udp

Bom, meu Deus... O nmap tem tantos, mas tantos parâmetros que não dá para por em um comentário (que tal um artigo? :-D)

Veja o -sI onde tu coloca um ip de um host que será usado como "laranja", hehehehe. Esta técnica é muitíssima interessante pois, se funcionar, permite que tu descubra se uma porta está aberta mas quem descobriu isto pra ti foi um outro IP e será o IP dele quem vai aparecer nos logs...

Ela funciona fazendo uso da análise do campo IP identificação. Técnica MUITO interessante!


[6] Comentário enviado por pogigio em 16/10/2007 - 15:50h

"...um monte de parafernália, como ssh dentre outros, se você não usa é bom desinstalar..."

ssh parafernalia??

[7] Comentário enviado por elgio em 16/10/2007 - 16:25h

Pois é. Parafernália foi um exagero.

Mas se teu Linux é desktop, realmente não é desejável ter o ssh ativo!

[8] Comentário enviado por snifferrat em 19/10/2007 - 16:24h

Ae galera venho pedir desculpas, estava vendo aqui e realmente postei no lugar errado, era pra ser em dicas, e nao artigos.
Abraços

[9] Comentário enviado por snifferrat em 21/10/2007 - 12:30h

elgio...nmap so serve pra micro burro, pq se firewall estiver implementado pode esquecer, bye bye flood syn ack e etc...
procura saber melhor...
pogigio...eu num uso ssh, tanto é q cada dia sai um exploit novo, vc tem conhecimento sobre isso? se tiver sabe oq eu estou falando, se num souber, procura saber, ja é uma ajuda maior.
abraços

[10] Comentário enviado por elgio em 21/10/2007 - 13:19h

snifferrat escreveu: "elgio...nmap so serve pra micro burro, pq se firewall estiver implementado pode esquecer, bye bye flood syn ack e etc...
procura saber melhor..."

Desculpe snifferrat. Conheço muito de TCP/Ip, nmap, DoS (Denied of Service) e muita coisa. E tem outros brinquedinhos como o hping para passar por firewall que "supostamente" estejam bem configurados. Leste meus artigos e minhas dicas? Dá uma lidinha no meu artigo sobre SYN flood, já que vi que tu SUGERIU ("bye bye flood syn") que firewall protege contra SYN flood.

Está enganado. E não tem nada de mais estar enganado.
:-D

Abraços

[11] Comentário enviado por kalib em 20/11/2007 - 16:13h

De fato...o conteúdo está bem apresentado, porém um tanto quanto vago....
O Nmap é uma ferramenta excelente..e que recomendaria para toda e qualquer pessoa que tenha algum contato com redes...
Acho até um tanto quanto uma "missão impossível" escrever um artigo sobre o mesmo, justamente pela quantidade de possibilidades, parâmetros, combinações, etc...que o mesmo nos disponibiliza.
Acho que se fossemos abordar tudo em um único documento, seria um mini livro, guia de bolso, ou algo do tipo.

parabéns pelo trabalho ;]


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts