Shikata Ga Nai

Private? There is no such things.

MetasploitのHTTPサーバスキャナモジュールを分解してみた

Hello there, ('ω')ノ

 

Metasploitのモジュールを作成するには。

既存のモジュールがどのように機能するかを確認することで。


下記のHTTPのバージョンスキャナの単純なモジュールの中身を見てみると。

 / modules / auxiliary / scanner / http / http_version.rb

 

f:id:ThisIsOne:20200614071509p:plain

 

下記のステートメントで、インタープリタにrexライブラリから。

すべてのHTTPプロトコルメソッドへのパスを含めるように要求して。

 require 'rex / proto / http'

 

これで、下記のディレクトリへのパスがモジュールで使用できるようになって。

 / lib / rex / proto / http

 

f:id:ThisIsOne:20200614071737p:plain


下記のファイルには、接続、GETおよびPOSTリクエスト、応答処理など。

セットアップする関数を含む、さまざまなHTTPメソッドが含まれていて。

 

f:id:ThisIsOne:20200614072315p:plain

 

以下は、定義されるモジュールで使用されるメソッドを含むライブラリファイルで。

 

Msf :: Exploit :: Remote :: HttpClient

/lib/msf/core/exploit/http/client.rb

 このライブラリファイルは、

  ターゲットへの接続

  リクエストの送信

  クライアントの切断

 などのさまざまなメソッドを提供して。

 

Msf :: Auxiliary :: WmapScanServer

/lib/msf/core/auxiliary/wmapmodule.rb

 WMAPは、Webアプリケーションベースの脆弱性スキャナのアドオンで。

 

Msf :: Auxiliary :: Scanner

/lib/msf/core/auxiliary/scanner.rb

 これには、スキャナベースのモジュールのさまざまな機能がすべて含まれていて。

 モジュールの実行、初期化と進行状況のスキャンなどをサポートしていて。

 

f:id:ThisIsOne:20200614071823p:plain

 

次にコードを見てみると。

まずは、モジュールのこの部分で、initializeメソッドを定義して。

このメソッドでは、

 モジュールの名前

 作成者

 説明

 ライセンス

などの基本的なパラメーターを初期化されていて。

WMAPパラメータも初期化されて。

 

f:id:ThisIsOne:20200614071938p:plain

 

最後にコードのセクションを見ると。

スキャナの本質的な機能だったりと。

 

f:id:ThisIsOne:20200614072035p:plain

 

Best regards, (^^ゞ