Fazer a caça ao ASP.Net atualmente pode ser considerado minha introdução. A ideia é muito simples, o objetivo principal é identificar o Banner retornado pelo host remoto e determinar o servidor host remoto. Isto pode não ser exato porque administradores qualificados podem modificar o banner.
O código é o seguinte (encontrado em minha busca na web, usando VB.Net)
Dim swWriter As StreamWriter
'Usado para transmitir dados para o fluxo de dados da infraestrutura de rede
Dim nsStream como NetworkStream
'Crie um fluxo de dados baseado em rede para enviar dados
Dim tcpClient2 como TcpClient
'Através dele é feita uma solicitação de conexão TCP ao host remoto
Escurecer sHostName como string
Dim srRead como StreamReader
'Ler dados do fluxo de dados da infraestrutura de rede
'Caça ao serviço HTTP
Se TcpConnect(ZSIP, 80) = "CG" Então
OppHTTP.Text = "O serviço HTTP foi iniciado! Tipo de software de serviço: desconhecido"
Tentar
'tcpClient = Novo TcpClient(Endereço IP, Porta)
tcpClient2 = Novo TcpClient(ZSIP.ToString(), 80)
tcpClient2.ReceiveTimeout = 1000000
tcpClient2.SendTimeout = 1000000
'Faça uma solicitação de conexão TCP para a porta 8000 do host remoto
nsStream = tcpClient2.GetStream()
'Aplicar e obter o fluxo de dados básico da rede para transmissão de dados
swWriter = Novo StreamWriter(nsStream)
swWriter.WriteLine("Obter /index.htm HTTP/1.1")
swWriter.WriteLine("Host:" & IP.Texto)
swWriter.WriteLine("Aceitar:*/*")
swWriter.WriteLine("Referenciador:")
swWriter.WriteLine()
'Atualiza os dados no fluxo de dados atual
swWriter.Flush()
srRead = Novo StreamReader(nsStream, Encoding.Default)
'Inicialize a instância StreamReader com o fluxo de dados básicos da rede obtido
Dim L como inteiro = 0
Faça enquanto não srRead.Peek = -1 e L <20
StrHttp = StrHttp & srRead.ReadLine()
eu = eu + 1
Laço
Se InStr(StrHttp, "IIS") > 0 Então
OppHTTP.Text = "O serviço HTTP foi iniciado! Tipo de software de serviço: versão IIS desconhecida"
SistemaFW = "WindowsNT/2000/XP/2003"
Terminar se
Se InStr(StrHttp, "Apache") > 0 Então
OppHTTP.Text = "O serviço HTTP foi iniciado! Tipo de software de serviço: Versão Apache desconhecida"
Terminar se
Se InStr(StrHttp, "Netscape-Enterprise") > 0 Então
OppHTTP.Text = "O serviço HTTP foi iniciado! Tipo de software de serviço: versão Netscape-Enterprise desconhecida"
Terminar se
Se InStr(StrHttp, "Microsoft-IIS/5.0") > 0 Então
OppHTTP.Text = "O serviço HTTP foi iniciado! Tipo de software de serviço: IIS 5.0"
SistemaFW = "Windows2000"
Terminar se
Se InStr(StrHttp, "Microsoft-IIS/5.1") > 0 Então
OppHTTP.Text = "O serviço HTTP foi iniciado! Tipo de software de serviço: IIS 5.1"
SistemaFW = "Windows2000/XP"
Terminar se
Se InStr(StrHttp, "Microsoft-IIS/6.0") > 0 Então
OppHTTP.Text = "O serviço HTTP foi iniciado! Tipo de software de serviço: IIS 6.0"
SistemaFW = "Windows2003"
Terminar se
Se InStr(StrHttp, "Apache/2") > 0 Então
OppHTTP.Text = "O serviço HTTP foi iniciado! Tipo de software de serviço: Apache 2.x"
Terminar se
Se InStr(StrHttp, "Apache/2.0.54") > 0 Então
OppHTTP.Text = "O serviço HTTP foi iniciado! Tipo de software de serviço: Apache 2.0.54"
Terminar se
Se InStr(StrHttp, "Apache/2.0.52") > 0 Então
OppHTTP.Text = "O serviço HTTP foi iniciado! Tipo de software de serviço: Apache 2.0.52"
Terminar se
Se InStr(StrHttp, "Apache/2.1.6") > 0 Então
OppHTTP.Text = "O serviço HTTP foi iniciado! Tipo de software de serviço: Apache 2.1.6"
Terminar se
Se InStr(StrHttp, "Apache/1.3.2") > 0 Então
OppHTTP.Text = "O serviço HTTP foi iniciado! Tipo de software de serviço: Apache 1.3.x"
Terminar se
Se InStr(StrHttp, "Apache/1.3.20") > 0 Então
OppHTTP.Text = "O serviço HTTP foi iniciado! Tipo de software de serviço: Apache 1.3.20"
Terminar se
Se InStr(StrHttp, "Apache/1.3.23") > 0 Então
OppHTTP.Text = "O serviço HTTP foi iniciado! Tipo de software de serviço: Apache 1.3.23"
Terminar se
Se InStr(StrHttp, "Apache/1.3.26") > 0 Então
OppHTTP.Text = "O serviço HTTP foi iniciado! Tipo de software de serviço: Apache 1.3.26"
Terminar se
Se InStr(StrHttp, "Apache/1.3.27") > 0 Então
OppHTTP.Text = "O serviço HTTP foi iniciado! Tipo de software de serviço: Apache 1.3.27"
Terminar se
Se InStr(StrHttp, "Apache/1.3.33") > 0 Então
OppHTTP.Text = "O serviço HTTP foi iniciado! Tipo de software de serviço: Apache 1.3.33"
Terminar se
Se InStr(StrHttp, "Netscape-Enterprise/4.1") > 0 Então
OppHTTP.Text = "O serviço HTTP foi iniciado! Tipo de software de serviço: Netscape-Enterprise 4.1"
Terminar se
Se InStr(StrHttp, "Unix") > 0 Então
SystemFW = "Sistema tipo Unix/Linux"
Terminar se
Pegar
End Try
é extraído, algumas variáveis não são definidas. Você mesmo pode descobrir.
ZSIP: o verdadeiro IP analisado