Como posso listar todas as portas que servem uma página da web

3

Eu tenho um número de servidores, todos com vários serviços HTTP (S) acessíveis em várias portas. É incrivelmente difícil controlar qual serviço está disponível sob qual host e qual porta. Muitas vezes, estou apenas confiando no histórico do meu navegador.

Existe algum comando shell (alguma variação do netcat) ou script que pode, de um determinado servidor, listar todas as portas que estão servindo uma página web? Ou toda porta usando HTTP ou HTTPS?

    
por chris6654 13.05.2015 / 18:34

3 respostas

4

Um script específico, não, mas existe uma maneira de obter essa informação. Várias maneiras, provavelmente. Gostaria de começar com netstat -tuln , que informará quais portas possuem serviços de escuta associados a elas. Você pode então olhar para coisas como fuser -n tcp <port num> para dizer que PID (s) está / estão ouvindo uma determinada porta, que pode então dizer qual daemon / processo está associado a esse PID.

Com toda a seriedade, no entanto, é melhor descobrir isso uma vez e, em seguida, ser um completo idiota sobre garantir que a documentação permaneça atualizada, quer isso signifique bater na cabeça ou bater na cabeça de outra pessoa. repetidamente - com uma pista por quatro.

    
por 13.05.2015 / 18:41
0

Você pode fazer isso com um nmap e um script, por exemplo link *

$ nmap -p* --open --script http-get.nse --script-args http-get.path=/,http-get.match="downloads" 192.168.13.2

Starting Nmap 6.40 ( http://nmap.org ) at 2015-05-13 23:09 CEST
Nmap scan report for 192.168.13.2
Host is up (0.029s latency).
Not shown: 4235 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
53/tcp   open  domain
80/tcp   open  http
| http-get: 
|_  GET / -> 200 OK
5050/tcp open  mmcc
| http-get: 
|_  GET / -> 200 OK
5051/tcp open  ida-agent
| http-get: 
|_  GET / -> 303
5055/tcp open  unot
| http-get: 
|   GET / -> 200 OK
|_  Matches: downloads
8118/tcp open  privoxy
| http-get: 
|_  GET / -> 400
8200/tcp open  trivnet1
| http-get: 
|_  GET / -> 200 OK

Nmap done: 1 IP address (1 host up) scanned in 17.31 seconds 192.168.1.1

Emite uma solicitação http para cada porta aberta encontrada e solicita a página no caminho fornecido em http-get.path= in --script-args e analisa a resposta para encontrar uma palavra-chave correspondente definida em http-get.match=

Se uma porta aberta for encontrada, ela informará o código de status da solicitação GET e possivelmente uma correspondência de palavra-chave.

5055/tcp open  unot
| http-get: 
|   GET / -> 200 OK
|_  Matches: downloads

Este script pode precisar de ajustes adicionais, por exemplo. Eu não testei suporte para https. Mas você deve começar.

* Eu me preparei para consertar e ajustar. O crédito para o script vai para David Wittman .

    
por 13.05.2015 / 23:26
0

Supondo que você pode acessar o host e ver os processos em execução, a maneira mais simples é usar o netstat

netstat -lnp | grep <apache|httpd>

Use o apache para debian, httpd para cent / rhel. Com exceção dessa opção, você pode usar o nmap para descobrir os serviços fornecidos, desde que você não tenha um IDS / IPS que encerre suas conexões em um determinado ponto.

Ou use marcadores de navegador ou aliases de shell.

    
por 14.05.2015 / 00:09