最近 ASP.Net ハンティングを行うことは、私の入門と考えることができます。考え方は非常にシンプルで、主な目的はリモート ホストから返されたバナーを識別し、リモート ホスト サーバーを特定することです。資格のある管理者がバナーを変更する可能性があるため、これは正確ではない可能性があります。
コードは次のとおりです (VB.Net を使用して Web 検索で見つけました)。
Dim swWriter As StreamWriter
'ネットワーク インフラストラクチャのデータ フローにデータを送信するために使用されます
NetworkStream としての Dim nsStream
'データを送信するためのネットワークベースのデータフローを作成する
TcpClient としての Dim tcpClient2
'それを通じて、リモートホストに対してTCP接続要求が行われます。
文字列としての sHostName を暗くする
Dim srRead As StreamReader
'ネットワーク インフラストラクチャ データ ストリームからデータを読み取ります
'HTTPサービスハント
TcpConnect(ZSIP, 80) = "CG" の場合
OppHTTP.Text = "HTTP サービスが開始されました! サービス ソフトウェアの種類: 不明"
試す
'tcpClient = 新しい TcpClient(IP アドレス、ポート)
tcpClient2 = 新しい TcpClient(ZSIP.ToString(), 80)
tcpClient2.ReceiveTimeout = 1000000
tcpClient2.SendTimeout = 1000000
'リモートホストのポート8000に対してTCP接続要求を行います
nsStream = tcpClient2.GetStream()
'データを送信するためのネットワーク基本データ フローを適用および取得します
swWriter = 新しい StreamWriter(nsStream)
swWriter.WriteLine("/index.htm HTTP/1.1 を取得")
swWriter.WriteLine("ホスト:" & IP.Text)
swWriter.WriteLine("Accept:*/*")
swWriter.WriteLine("リファラー:")
swWriter.WriteLine()
'現在のデータ ストリーム内のデータを更新します
swWriter.Flush()
srRead = 新しい StreamReader(nsStream, Encoding.Default)
'取得したネットワーク基本データストリームを使用してStreamReaderインスタンスを初期化します
整数としての寸法 L = 0
srRead.Peek = -1 および L < 20 でない場合に実行します
StrHttp = StrHttp & srRead.ReadLine()
L = L + 1
ループ
InStr(StrHttp, "IIS") > 0 の場合
OppHTTP.Text = "HTTP サービスが開始されました! サービス ソフトウェアの種類: IIS バージョンが不明"
SystemFW = "WindowsNT/2000/XP/2003"
終了の場合
InStr(StrHttp, "Apache") > 0 の場合
OppHTTP.Text = "HTTP サービスが開始されました! サービス ソフトウェアの種類: Apache バージョン不明"
終了の場合
InStr(StrHttp, "Netscape-Enterprise") > 0 の場合
OppHTTP.Text = "HTTP サービスが開始されました! サービス ソフトウェアの種類: Netscape-Enterprise バージョン不明"
終了の場合
InStr(StrHttp, "Microsoft-IIS/5.0") > 0 の場合
OppHTTP.Text = "HTTP サービスが開始されました! サービス ソフトウェアの種類: IIS 5.0"
SystemFW = "Windows2000"
終了の場合
InStr(StrHttp, "Microsoft-IIS/5.1") > 0 の場合
OppHTTP.Text = "HTTP サービスが開始されました! サービス ソフトウェアの種類: IIS 5.1"
SystemFW = "Windows2000/XP"
終了の場合
InStr(StrHttp, "Microsoft-IIS/6.0") > 0 の場合
OppHTTP.Text = "HTTP サービスが開始されました! サービス ソフトウェアの種類: IIS 6.0"
SystemFW = "Windows2003"
終了の場合
InStr(StrHttp, "Apache/2") > 0 の場合
OppHTTP.Text = "HTTP サービスが開始されました! サービス ソフトウェアの種類: Apache 2.x"
終了の場合
InStr(StrHttp, "Apache/2.0.54") > 0 の場合
OppHTTP.Text = "HTTP サービスが開始されました! サービス ソフトウェアの種類: Apache 2.0.54"
終了の場合
InStr(StrHttp, "Apache/2.0.52") > 0 の場合
OppHTTP.Text = "HTTP サービスが開始されました! サービス ソフトウェアの種類: Apache 2.0.52"
終了の場合
InStr(StrHttp, "Apache/2.1.6") > 0 の場合
OppHTTP.Text = "HTTP サービスが開始されました! サービス ソフトウェアの種類: Apache 2.1.6"
終了の場合
InStr(StrHttp, "Apache/1.3.2") > 0 の場合
OppHTTP.Text = "HTTP サービスが開始されました! サービス ソフトウェアの種類: Apache 1.3.x"
終了の場合
InStr(StrHttp, "Apache/1.3.20") > 0 の場合
OppHTTP.Text = "HTTP サービスが開始されました! サービス ソフトウェアの種類: Apache 1.3.20"
終了の場合
InStr(StrHttp, "Apache/1.3.23") > 0 の場合
OppHTTP.Text = "HTTP サービスが開始されました! サービス ソフトウェアの種類: Apache 1.3.23"
終了の場合
InStr(StrHttp, "Apache/1.3.26") > 0 の場合
OppHTTP.Text = "HTTP サービスが開始されました! サービス ソフトウェアの種類: Apache 1.3.26"
終了の場合
InStr(StrHttp, "Apache/1.3.27") > 0 の場合
OppHTTP.Text = "HTTP サービスが開始されました! サービス ソフトウェアの種類: Apache 1.3.27"
終了の場合
InStr(StrHttp, "Apache/1.3.33") > 0 の場合
OppHTTP.Text = "HTTP サービスが開始されました! サービス ソフトウェアの種類: Apache 1.3.33"
終了の場合
InStr(StrHttp, "Netscape-Enterprise/4.1") > 0 の場合
OppHTTP.Text = "HTTP サービスが開始されました! サービス ソフトウェアの種類: Netscape-Enterprise 4.1"
終了の場合
InStr(StrHttp, "Unix") > 0 の場合
SystemFW = 「Unix/Linux のようなシステム」
終了の場合
キャッチ
End Try
が抽出されるため、いくつかの変数が定義されていません。それは自分で理解できます。
ZSIP: 分析された実際の IP