Como detectar um servidor web sem o cabeçalho do servidor

2

LATER EDIT : Será que o IIS não diferencia maiúsculas de minúsculas para URLs e o Apache é, e alguém poderia usar essas informações para aumentar ainda mais o fator de confiança na detecção de OS / WebServer?

Eu estava lendo sobre a útil ferramenta UrlScan aqui e me deparei com

IIS 6.0 does not include the RemoveServerHeader feature because this feature offers no real security benefit. Most server attacks are not operating system?specific. Also, it is possible to detect the identity of a server and information about the operating system by mechanisms that do not depend on the server header.

Claro que isso despertou minha curiosidade, já que não entendo como você pode detectar o sistema operacional e / ou o servidor da web sem usar o cabeçalho do servidor. No entanto, extensões (.php, .asp, .aspx, .do, .py etc. etc.) não podem ser a resposta para essa pergunta nem procurar por "__VIEWSTATE" ou campos de entrada ocultos semelhantes no conteúdo da resposta.

Existe alguma forma secreta que eu realmente não conheça?

EDIT 1: Eu suponho páginas de erro personalizadas (não as padrão que mostram claramente o servidor web; sabendo que o servidor web te dá uma strong pista sobre o sistema operacional também)

    
por Andrei Rinea 16.05.2009 / 10:29

4 respostas

6

Semelhante a detecção de SO , cada servidor web tem pequenas peculiaridades e comportamentos diferentes sob algumas condições que podem ser detectadas. Eu não sei os métodos precisos do topo da minha cabeça. Isso é feito com frequência ao enviar solicitações inválidas ou incomuns e ver qual é a mensagem de erro ou a resposta. O Apache pode manipular uma solicitação inválida específica de forma ligeiramente diferente do IIS.

Parte disso será mascarada se você tiver um proxy reverso ou um balanceador de carga no caminho. Em vez de aprender sobre o seu servidor web, a pessoa curiosa aprenderia o seu proxy.

    
por 16.05.2009 / 10:49
4

É bem trivial, na verdade, mesmo com um proxy intermediário. Por exemplo, essa ferramenta oferece uma boa ideia:

httprint da Net-Square

    
por 16.05.2009 / 14:16
3

Embora esta ainda seja uma técnica de inspeção de cabeçalho HTTP, há muitos outros cabeçalhos além do cabeçalho do servidor que diferentes servidores de aplicativos adicionarão à resposta HTTP que são indicativos de qual servidor eles estão executando.

Alguns exemplos do IIS / ASP.NET / Sharepoint:

  • X-Powered-By: ASP.NET
  • X-AspNet-Version: 2.0.50727
  • MicrosoftOfficeWebServer: 5.0_Pub

Este não é um método garantido, mas funciona em muitos casos.

    
por 16.05.2009 / 17:16
1
O

Nmap possui um recurso que descobre o sistema operacional em execução em um servidor. Provavelmente não é a prova de falhas, mas eu acho que deve funcionar em um número razoável de servidores em torno da 'net.

Aqui é a referência completa para isso.

    
por 16.05.2009 / 15:39