ZoomEye 上のオンライン データは上書き更新モードになっており、2 回目のスキャンでデータがスキャンされない場合、更新されたデータは上書きされません。ZoomEye 上のデータは、1 回目のスキャンで取得されたバナー データを保持します。このメカニズムは、実際には、この種の悪意のある攻撃ソースの追跡に適したシーンを持っています: ボットネット、APT、その他の攻撃などの悪意のある攻撃に使用されるダウンロード サーバーは、発見された後、通常は直接非アクティブ化され、放棄されます。非常に暴力的で、すぐにオフラインになりました。したがって、多くの攻撃サイトが ZoomEye によってオンラインにキャッシュされる可能性があります。
もちろん、ZoomEye 履歴 API で提供されるデータは、カバーしているかどうかに関係なく、スキャンごとにクエリできますが、現在提供されている ZoomEye 履歴 API は IP 経由でのみクエリでき、キーワード経由ではクエリできません。一致検索なので、上記の ZoomEye オンライン キャッシュ データ検索および位置特定と組み合わせて使用する必要があります。
数日前、実際に「ブラック テクノロジー」ナレッジ プラネットでこの件について言及しましたが、修正が必要な「バグ」が 1 つだけあります。 Darkhotel が今回使用した IE 0day は CVE-2020-0674 ではなく CVE-2019-1367 です (勋肉丁@奇安信に感謝) もちろん、この「バグ」はこの記事のテーマには影響しません。
上の図からわかるように、ZoomEye オンライン データを使用して、当時の Darkhotel 水たまり攻撃サイトの IP アドレスを特定しました。ZoomEye SDK を使用してクエリを実行しました。この IP の履歴:
╭─heige@404Team ~╰─$python Python 2.7.16 (default, Mar 15 2019, 21:13:51)[GCC 4.2.1 Compatible Apple LLVM 10.0.0 (clang-1000.11.45.5)] on darwinType "help", "copyright", "credits" or "license" for more information. import zoomeye zm = zoomeye.ZoomEye(username="xxxxx", password="xxxx") zm.login() u'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX...' data = zm.history_ip("202.x.x.x") 22
ZoomEye 履歴データにこの IP データを含むタイム ノードと対応するポート サービスをリストします
... >>>for i in data['data']: ... print(i['timestamp'],i['portinfo']['port']) ... (u'2020-01-28T10:58:02', 80) (u'2020-01-05T18:33:17', 80) (u'2019-11-25T05:27:58', 80) (u'2019-11-02T16:10:40', 80) (u'2019-10-31T11:39:02', 80) (u'2019-10-06T05:24:44', 80) (u'2019-08-02T09:52:27', 80) (u'2019-07-27T19:22:11', 80) (u'2019-05-18T10:38:59', 8181) (u'2019-05-02T19:37:20', 8181) (u'2019-05-01T00:48:05', 8009) (u'2019-04-09T16:29:58', 8181) (u'2019-03-24T20:46:31', 8181) (u'2018-05-18T18:22:21', 137) (u'2018-02-22T20:50:01', 8181) (u'2017-03-13T03:11:39', 8181) (u'2017-03-12T16:43:54', 8181) (u'2017-02-25T09:56:28', 137) (u'2016-11-01T00:22:30', 137) (u'2015-12-30T22:53:17', 8181) (u'2015-03-13T20:17:45', 8080) (u'2015-03-13T19:33:15', 21)
埋め込まれたタイム ノードとポートを見てみましょうIE の水飲み場攻撃の 0day:
>>> for i in data['data']: ... if "164.js" in i['raw_data']: ... print(i['timestamp'],i['portinfo']['port']) ... (u'2020-01-28T10:58:02', 80) (u'2020-01-05T18:33:17', 80) (u'2019-11-25T05:27:58', 80) (u'2019-11-02T16:10:40', 80) (u'2019-10-31T11:39:02', 80) (u'2019-10-06T05:24:44', 80)
明らかに、この水飲み場攻撃のおおよその時間範囲は 2019-10-06 05:24:44 から 2020-01-28 10:58:02 です。また、このIPは明らかに攻撃者が購入したものではなく、VPSなどを利用して特定のWebサイトを攻撃の水飲み場として直接攻撃しており、2019年10月6日の時点でこのIP Webサイトが侵入されていたことは確実です。 !この水たまりの Web サイトの性質から、基本的に Darkhotel の攻撃の主なターゲットは、この Web サイトにアクセスするユーザーであると推測できます。
考えられる侵入ポイントの分析に役立つように、この IP が 2019 年にどのポート サービスをオープンしたかを引き続きリストしてみましょう:
>>> for i in data['data']: ... if "2019" in i['timestamp']: ... print(i['timestamp'],i['portinfo']['port'],i['portinfo']['service'],i['portinfo']['product']) ... (u'2019-11-25T05:27:58', 80, u'http', u'nginx') (u'2019-11-02T16:10:40', 80, u'http', u'nginx') (u'2019-10-31T11:39:02', 80, u'http', u'nginx') (u'2019-10-06T05:24:44', 80, u'http', u'nginx') (u'2019-08-02T09:52:27', 80, u'http', u'nginx') (u'2019-07-27T19:22:11', 80, u'http', u'nginx') (u'2019-05-18T10:38:59', 8181, u'http', u'Apache Tomcat/Coyote JSP engine') (u'2019-05-02T19:37:20', 8181, u'http', u'Apache Tomcat/Coyote JSP engine') (u'2019-05-01T00:48:05', 8009, u'ajp13', u'Apache Jserv') (u'2019-04-09T16:29:58', 8181, u'http', u'Apache httpd') (u'2019-03-24T20:46:31', 8181, u'http', u'Apache Tomcat/Coyote JSP engine')
2019 年 5 月の非常に典型的な JSP オペレーティング環境当時、ポート 8009 はTomcat バックエンド管理の脆弱なパスワードなどの問題は、常に一般的な侵入手段となってきました~~
ちなみに、実際には、この攻撃には別の IP も含まれています。アップデートがカバーされているため、ZoomEye オンライン検索で直接検索することはできません。ただし、IP がわかっている場合は、ZoomEye 履歴データ API を使用して、この IP の履歴データをクエリすることもできます。ここでは詳細は説明しません。
ポイズン・アイビー (APT-C-01) の詳細なレポートについては、以下を参照してください。 https://ti.qianxin.com/uploads/2018/09/20/6f8ad451646c9eda1f75c5d31f39f668.pdf 私たちは、
「Poison Ivy 組織が攻撃ペイロードを制御および配布するために使用するツール」に直接焦点を当てます。 制御ドメイン名 http://updateinfo.servegame.org"
"次に、
hxxp://updateinfo.servegame.org/tiny1detvghrt.tmp
"
URL からペイロードをダウンロードします。まず、対応するドメイン名を見つけようとします。 IP、明らかに現時点ではあまり取得されていません:
╭─heige@404Team ~╰─$ping updateinfo.servegame.orgping: cannot resolve updateinfo.servegame.org: Unknown host
Qi Anxin のレポートでは、使用されているダウンロード サーバーの WEB サービス ディレクトリを横断できることがわかります
したがって、ファイル名「tiny1detvgult.tmp」を直接検索してみると、確かにそれが見つかりました。
ここで基本的に確認できます。 updateinfo。servegame.org に対応する IP は 165.227.220.223 です。次に、古い方法で履歴データのクエリを開始します:>>> data = zm.history_ip("165.227.220.223") >>> 9 >>> for i in data['data']: ... print(i['timestamp'],i['portinfo']['port']) ... (u'2019-06-18T19:02:22', 22) (u'2018-09-02T08:13:58', 22) (u'2018-07-31T05:58:44', 22) (u'2018-05-20T00:55:48', 80) (u'2018-05-16T20:42:35', 22) (u'2018-04-08T07:53:00', 80) (u'2018-02-22T19:04:29', 22) (u'2017-11-21T19:09:14', 80) (u'2017-10-04T05:17:38', 80)
>>> for i in data['data']: ... if "tiny1detvghrt.tmp" in i['raw_data']: ... print(i['timestamp'],i['portinfo']['port']) ... (u'2018-05-20T00:55:48', 80) (u'2018-04-08T07:53:00', 80) (u'2017-11-21T19:09:14', 80)
>>> for i in data['data']: ... if "2017-10-04" in i['timestamp']: ... print(i['raw_data']) ... HTTP/1.1 200 OK Date: Tue, 03 Oct 2017 21:17:37 GMT Server: Apache Vary: Accept-Encoding Content-Length: 1757 Connection: close Content-Type: text/html;charset=UTF-8nbsp;HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <title>Index of /</title> <h2>Index of /</h2>
Name a> | Last modified a> | Size a> | Description a> | |
---|---|---|---|---|
doajksdlfsadk.tmp a> | 2017-09-15 08:21 | 4.9K | ||
doajksdlfsadk.tmp.1 a> | 2017-09-15 08:21 | 4.9K | ||
doajksdlrfadk.tmp a> | 2017-09-27 06:36 | 4.9K | ||
dvhrksdlfsadk.tmp a> | 2017-09-27 06:38 | 4.9K | ||
vfajksdlfsadk.tmp a> | 2017-09-27 06:37 | 4.9K | ||
wget-log a> | 2017-09-20 07:24 | 572 | ||
以上がZoomEye を使用して APT 攻撃を検出する分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。