Faire de la chasse à ASP.Net ces jours-ci peut être considéré comme mon introduction. L'idée est très simple, le but principal est d'identifier la bannière renvoyée par l'hôte distant et de déterminer le serveur hôte distant. Cela peut ne pas être exact car des administrateurs qualifiés peuvent modifier la bannière.
Le code est le suivant (trouvé lors de ma recherche sur le Web, en utilisant VB.Net)
Dim swWriter As StreamWriter
'Utilisé pour transmettre des données au flux de données de l'infrastructure réseau
Atténuer nsStream en tant que NetworkStream
'Créer un flux de données basé sur le réseau pour envoyer des données
Dim tcpClient2 en tant que TcpClient
'Grâce à lui, une demande de connexion TCP est faite à l'hôte distant
Dim sHostName As String
Dim srRead en tant que StreamReader
'Lire les données du flux de données de l'infrastructure réseau
'Recherche de services HTTP
Si TcpConnect(ZSIP, 80) = "CG" Alors
OppHTTP.Text = "Le service HTTP a été démarré ! Type de logiciel de service : inconnu"
Essayer
'tcpClient = Nouveau TcpClient (adresse IP, port)
tcpClient2 = Nouveau TcpClient(ZSIP.ToString(), 80)
tcpClient2.ReceiveTimeout = 1000000
tcpClient2.SendTimeout = 1000000
'Faire une demande de connexion TCP pour le port 8000 de l'hôte distant
nsStream = tcpClient2.GetStream()
'Appliquer et obtenir le flux de données de base du réseau pour transmettre des données
swWriter = Nouveau StreamWriter (nsStream)
swWriter.WriteLine("Obtenir /index.htm HTTP/1.1")
swWriter.WriteLine("Hôte :" et IP.Texte)
swWriter.WriteLine("Accepter :*/*")
swWriter.WriteLine("Référent :")
swWriter.WriteLine()
'Actualiser les données dans le flux de données actuel
swWriter.Flush()
srRead = Nouveau StreamReader (nsStream, Encoding.Default)
'Initialisez l'instance StreamReader avec le flux de données de base du réseau obtenu
Dim L comme entier = 0
Faire sans srRead.Peek = -1 et L < 20
StrHttp = StrHttp & srRead.ReadLine()
L = L + 1
Boucle
Si InStr(StrHttp, "IIS") > 0 Alors
OppHTTP.Text = "Le service HTTP a été démarré ! Type de logiciel de service : version IIS inconnue"
SystèmeFW = "WindowsNT/2000/XP/2003"
Fin si
Si InStr(StrHttp, "Apache") > 0 Alors
OppHTTP.Text = "Le service HTTP a été démarré ! Type de logiciel de service : version Apache inconnue"
Fin si
Si InStr(StrHttp, "Netscape-Enterprise") > 0 Alors
OppHTTP.Text = "Le service HTTP a été démarré ! Type de logiciel de service : version de Netscape-Enterprise inconnue"
Fin si
Si InStr(StrHttp, "Microsoft-IIS/5.0") > 0 Alors
OppHTTP.Text = "Le service HTTP a été démarré ! Type de logiciel de service : IIS 5.0"
SystèmeFW = "Windows2000"
Fin si
Si InStr(StrHttp, "Microsoft-IIS/5.1") > 0 Alors
OppHTTP.Text = "Le service HTTP a été démarré ! Type de logiciel de service : IIS 5.1"
SystèmeFW = "Windows2000/XP"
Fin si
Si InStr(StrHttp, "Microsoft-IIS/6.0") > 0 Alors
OppHTTP.Text = "Le service HTTP a été démarré ! Type de logiciel de service : IIS 6.0"
SystèmeFW = "Windows2003"
Fin si
Si InStr(StrHttp, "Apache/2") > 0 Alors
OppHTTP.Text = "Le service HTTP a été démarré ! Type de logiciel de service : Apache 2.x"
Fin si
Si InStr(StrHttp, "Apache/2.0.54") > 0 Alors
OppHTTP.Text = "Le service HTTP a été démarré ! Type de logiciel de service : Apache 2.0.54"
Fin si
Si InStr(StrHttp, "Apache/2.0.52") > 0 Alors
OppHTTP.Text = "Le service HTTP a été démarré ! Type de logiciel de service : Apache 2.0.52"
Fin si
Si InStr(StrHttp, "Apache/2.1.6") > 0 Alors
OppHTTP.Text = "Le service HTTP a été démarré ! Type de logiciel de service : Apache 2.1.6"
Fin si
Si InStr(StrHttp, "Apache/1.3.2") > 0 Alors
OppHTTP.Text = "Le service HTTP a été démarré ! Type de logiciel de service : Apache 1.3.x"
Fin si
Si InStr(StrHttp, "Apache/1.3.20") > 0 Alors
OppHTTP.Text = "Le service HTTP a été démarré ! Type de logiciel de service : Apache 1.3.20"
Fin si
Si InStr(StrHttp, "Apache/1.3.23") > 0 Alors
OppHTTP.Text = "Le service HTTP a été démarré ! Type de logiciel de service : Apache 1.3.23"
Fin si
Si InStr(StrHttp, "Apache/1.3.26") > 0 Alors
OppHTTP.Text = "Le service HTTP a été démarré ! Type de logiciel de service : Apache 1.3.26"
Fin si
Si InStr(StrHttp, "Apache/1.3.27") > 0 Alors
OppHTTP.Text = "Le service HTTP a été démarré ! Type de logiciel de service : Apache 1.3.27"
Fin si
Si InStr(StrHttp, "Apache/1.3.33") > 0 Alors
OppHTTP.Text = "Le service HTTP a été démarré ! Type de logiciel de service : Apache 1.3.33"
Fin si
Si InStr(StrHttp, "Netscape-Enterprise/4.1") > 0 Alors
OppHTTP.Text = "Le service HTTP a été démarré ! Type de logiciel de service : Netscape-Enterprise 4.1"
Fin si
Si InStr(StrHttp, "Unix") > 0 Alors
SystemFW = "Système de type Unix/Linux"
Fin si
Attraper
End Try
est extrait, certaines variables ne sont pas définies. Vous pouvez le comprendre vous-même.
ZSIP : la véritable IP analysée