
レッドチーム向けの高性能Goスキャンエンジン:設定可能なポートスキャン、アクティブ/パッシブフィンガープリンティング、情報抽出、およびDSLワークフローを備えたnuclei互換のPoCチェック。
ブログ記事:
完全なドキュメントとチュートリアルはwikiにあります: https://chainreactors.github.io/wiki/gogo/
フィンガープリントとpocリポジトリ: https://github.com/chainreactors/templates
現在のバージョンの完全なパラメータは gogo -h を基準とします。複数文字の長いパラメータは必ず二重ハイフンを使用してください。例えば --ipp、--sp、--ef です。単一ハイフンは -i、-p、-F などの単一文字の短いパラメータにのみ使用します。フィルタ機能は現在、履歴結果フィルタ --filter、リアルタイム出力フィルタ --output-filter、および深層スキャンを早期停止する --scan-filter に分割されています。
指定したネットワークセグメントに対してデフォルトスキャンを実行し、コマンドラインに出力
gogo -i 192.168.1.1/24 -p win,db,top2
いくつかの一般的なポート設定:
-p - は -p 1-65535 と同等-p 1-1000 ポート範囲-p common tag: common は内部ネットワークの一般的なポートを表す-p top2,top3 複数のtagを同時に選択可能。外部ネットワークの一般的なwebポート-p all すべてのプリセットtagの集合を表すカンマで複数の設定を区切り、シナリオに応じて様々な組み合わせ設定が可能です。例えば:
gogo -i 1.1.1.1/24 -p 1-1000,common,http,db
すべてのポート設定を表示
gogo -P port
すべてのtagに対応するポートを表示できます。
当前已有端口配置: (根据端口类型分类)
top1 : 80,443,8080
top2 : 70,80,81,82,83,84,85,86,87,88,89,90,443,1080,2000,2001,3000,3001,1443,4443,4430,5000,5001,5601,6000,6001,6002,6003,7000,7001,7002,7003,9000,9001,9002,9003,8080,8081,8082,8083,8084,8085,8086,8087,8088,8089,8090,8091,8000,8001,8002,8003,8004,8005,8006,8007,8008,8009,8010,8011,8012,8013,8014,8015,8016,8017,8018,8019,8020,8820,6443,8443,9443,8787,7080,8070,7070,7443,9080,9081,9082,9083,5555,6666,7777,7788,9999,6868,8888,8878,8889,7890,5678,6789,9090,9091,9092,9093,9094,9095,9096,9097,9098,9099,9100,9988,9876,8765,8099,8763,8848,8161,8060,8899,800,801,888,10000,10001,10002,10003,10004,10005,10006,10007,10008,10009,10010,1081,1082,10080,10443,18080,18000,18088,18090,19090,19091,50070
top3 : 444,9443,6080,6443,9070,9092,9093,7003,7004,7005,7006,7007,7008,7009,7010,7011,9003,9004,9005,9006,9007,9008,9009,9010,9011,8100,8101,8102,8103,8104,8105,8106,8107,8108,8109,8110,8111,8161,8021,8022,8023,8024,8025,8026,8027,8028,8029,8030,8880,8881,8882,8883,8884,8885,8886,8887,8888,8889,8890,8010,8011,8012,8013,8014,8015,8016,8017,8018,8019,8020,8090,8091,8092,8093,8094,8095,8096,8097,8098,8099,8180,8181,8983,1311,8363,8800,8761,8873,8866,8900,8282,8999,8989,8066,8200,8040,8060,10800,18081
docker : 2375,2376,2377,2378,2379,2380
lotus : 1352
dubbo : 18086,20880,20881,20882
oracle : 1158,1521,11521,210
...
...
...
対象範囲のサブネットマスクが24未満の場合、smartモードスキャンを有効にすることを推奨します(原理はdocを参照)。例えばサブネットマスクが16の場合(出力結果が多くなるため、--afでファイルに出力し、コマンドラインにはログのみを出力することを推奨します)
gogo -i 172.16.1.1/12 -m ss --ping -p top2,win,db --af
--af はファイル生成時に自動指定されるファイル名を表します。
-m ss はsupersmartモードでスキャンすることを表します。他にもss、scモードがあり、異なるシナリオに適しています
--ping はフィンガープリント識別/情報取得の前にIPがpingで疎通できるか判断し、無効なパケット送信を減らすことを表します。注意すべき点は、pingが通らないからといって対象が必ずしも生存していないとは限らないということです。使用時はこの点に注意してください
ヒューリスティックスキャンのコマンドはやや複雑ですが、workflowを使って複雑なコマンドを設定ファイルとして記述し、手軽に呼び出すことができます(組み込みworkflowの詳細はdocを参照)。
gogo -w 172
現在の組み込みworkflowはデフォルトで all ポートプリセットを使用するため、上記のコマンドは gogo -i 172.16.0.0/12 -m ss --ping -p all --af と等価です。ポート範囲を絞りたい場合は、gogo -w 172 -p top2,win,db で上書きできます。
すべてのworkflowを表示
gogo -P workflow
よく使われる設定はすでにworkflowに統合されています。例えば、supersmart modを使用して10セグメントの内部ネットワークをスキャンする場合、gogo -w 10で実行できます。
また、予約済みの設定(他の設定は記入されているが、ターゲットが記入されておらず、-iで手動でターゲットを指定する必要があるもの)もあります。例えば:
gogo -w ss -i 11.0.0.0/8
workflow内のプリセットパラメータはコマンドライン入力より優先度が低いため、コマンドラインでworkflow内のパラメータを上書きできます。例えば:
gogo -w 10 -i 11.0.0.0/8
シンプルなタスク
gogo -i 81.68.175.32/28 -p top2
gogo -i 81.68.175.32/28 -p top2
[*] Current goroutines: 1000, Version Level: 0,Exploit Target: none, PortSpray: false ,2022-07-07 07:07.07
[*] Start task 81.68.175.32/28 ,total ports: 100 , mod: default ,2022-07-07 07:07.07
[*] ports: 80,81,82,83,84,85,86,87,88,89,90,443,1080,2000,2001,3000,3001,4443,4430,5000,5001,5601,6000,6001,6002,6003,7000,7001,7002,7003,9000,9001,9002,9003,8080,8081,8082,8083,8084,8085,8086,8087,8088,8089,8090,8000,8001,8002,8003,8004,8005,8006,8007,8008,8009,8010,8011,8012,8013,8014,8015,8016,8017,8018,8019,8020,6443,8443,9443,8787,7080,8070,7070,7443,9080,9081,9082,9083,5555,6666,7777,9999,6868,8888,8889,9090,9091,8091,8099,8763,8848,8161,8060,8899,800,801,888,10000,10001,10080 ,2022-07-07 07:07.07
[*] Scan task time is about 8 seconds ,2022-07-07 07:07.07
[+] http://81.68.175.33:80 nginx/1.16.0 nginx bd37 [200] HTTP/1.1 200
[+] http://81.68.175.32:80 nginx/1.18.0 (Ubuntu) nginx 8849 [200] Welcome to nginx!
[+] http://81.68.175.34:80 nginx 宝塔||nginx f0fa [200] 没有找到站点
[+] http://81.68.175.34:8888 nginx nginx d41d [403] HTTP/1.1 403
[+] http://81.68.175.34:3001 nginx webpack||nginx 4a9b [200] shop_mall
[+] http://81.68.175.37:80 Microsoft-IIS/10.0 iis10 c80f [200] HTTP/1.1 200 c0f6 [200] 安全入口校验失败
[*] Alive sum: 5, Target sum : 1594 ,2022-07-07 07:07.07
[*] Totally run: 4.0441884s ,2022-07-07 07:07.07
他のツールと連携する場合、-q/--quietを指定してログ情報をオフにし、出力結果のみを保持できます。
入出力および各種の高度な使い方についてはoutputのwikiを参照してください。
gogo -i 81.68.175.1 --afを実行した場合
スキャン完了後、gogoバイナリと同じディレクトリに.81.68.175.1.32_top1_default_dat.datのようなファイルが生成されることを確認できます。初回生成時は.datが使用され、名前が重複する場合は数字が付加されます。このファイルはdeflate圧縮されたJSON Linesです。