Rumah >Operasi dan penyelenggaraan >Keselamatan >Contoh analisis menggunakan ZoomEye untuk mencari serangan APT
Data dalam talian pada ZoomEye berada dalam mod tulis ganti dan kemas kini, yang bermaksud bahawa jika tiada data diimbas dalam imbasan kedua, data yang dikemas kini tidak akan ditulis ganti Data pada ZoomEye akan mengekalkan data sepanduk yang diperoleh dalam imbasan pertama . Ini Mekanisme ini sebenarnya mempunyai adegan yang sesuai dalam jenis penjejakan sumber serangan berniat jahat ini: pelayan muat turun yang digunakan oleh serangan berniat jahat seperti Botnet, APT dan serangan lain biasanya dinyahaktifkan dan ditinggalkan secara langsung selepas ditemui sasaran penggodaman sangat ganas dan pergi ke luar talian serta-merta! Oleh itu, banyak tapak serangan mungkin dicache dalam talian oleh ZoomEye.
Sudah tentu, data yang disediakan dalam API sejarah ZoomEye boleh disoal untuk setiap imbasan tidak kira sama ada ia dilindungi atau tidak Walau bagaimanapun, API sejarah ZoomEye yang disediakan pada masa ini hanya boleh disoal melalui IP, bukan melalui Kata Kunci carian sepadan, jadi kami perlu menggunakannya bersama-sama dengan carian dan kedudukan data cache dalam talian ZoomEye yang disebutkan di atas.
Saya sebenarnya menyebutnya dalam Planet Pengetahuan "Teknologi Hitam" beberapa hari lalu, tetapi hanya ada "pepijat" yang perlu diperbaiki: kali ini IE 0day yang digunakan oleh Darkhotel haruslah CVE-2019-1367 bukannya CVE-2020-0674 (terima kasih kepada 勋肉丁@奇安信 Sudah tentu, "pepijat" ini tidak menjejaskan tema artikel ini.
Seperti yang anda lihat daripada gambar di atas, kami menggunakan data dalam talian ZoomEye untuk mencari alamat IP tapak serangan lopak Darkhotel pada masa itu Kami menggunakan ZoomEye SDK untuk membuat pertanyaan sejarah IP ini:
╭─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
Senaraikan nod masa dan perkhidmatan port yang sepadan yang menyertakan data IP ini dalam data sejarah ZoomEye
... >>>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)
Mari kita lihat nod masa dan port yang telah diimplan ke IE 0hari untuk serangan lubang air:
>>> 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)
Jelas sekali, julat masa anggaran serangan lubang air ini adalah dari 2019-10-06 05:24:44 hingga 2020-01-28 10:58:02. Selain itu, IP ini jelas tidak dibeli oleh penyerang dan seumpamanya, tetapi secara langsung menyerang laman web tertentu sebagai "lubang berair" untuk menyerang. 06! Daripada sifat tapak web lopak ini, pada dasarnya kita boleh membuat kesimpulan bahawa sasaran utama serangan Darkhotel ialah pengguna yang melawati laman web ini!
Mari teruskan senarai perkhidmatan pelabuhan mana yang dibuka oleh IP ini pada 2019 untuk membantu kami menganalisis kemungkinan titik pencerobohan:
>>> 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')
Persekitaran operasi JSP yang sangat tipikal, pada Mei 2019 Pada masa itu, pelabuhan 8009 telah dibuka. Masalah seperti kata laluan yang lemah untuk pengurusan backend Tomcat sentiasa menjadi cara penembusan biasa~~
Sebenarnya, serangan ini juga melibatkan IP lain, kerana sepanduk port berkaitan IP ini adalah kerana Kemas kini telah dilindungi, jadi ia tidak boleh dicari terus melalui carian dalam talian ZoomEye Walau bagaimanapun, jika anda mengetahui IP, anda juga boleh menggunakan API data sejarah ZoomEye untuk menanyakan data sejarah IP ini di sini.
Untuk laporan terperinci tentang poison ivy (APT-C-01), sila rujuk https://ti.qianxin.com/uploads/2018/09/20/6f8ad451646c9eda1f75c5d31f39f668.pdf Kami secara langsung menumpukan pada
"Alat yang digunakan oleh organisasi Poison Cloud Ivy untuk mengawal dan mengedarkan muatan serangan nama domain Kawalan http://updateinfo.servegame.org"
"Kemudian muat turun muatan dari
hxxp://updateinfo.servegame.org/tiny1detvghrt.tmp
"
URL, kami mula-mula cuba mencari nama domain yang sepadan IP, jelas tidak banyak yang diperoleh pada masa ini:
╭─heige@404Team ~╰─$ping updateinfo.servegame.orgping: cannot resolve updateinfo.servegame.org: Unknown host
Dalam laporan Qi Anxin kita dapat melihat bahawa direktori perkhidmatan WEB pelayan muat turun yang digunakan boleh dilalui
>>> 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)
Teruskan melihat selang masa penggunaan tiny1detvghrt.tmp:
>>> 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)
Sekurang-kurangnya kita boleh tentukan dari Serangan telah pun digunakan pada penghujung November 2017. Terdapat satu lagi nod masa sebelum ini nod: 2017-10-04 05:17:38 Mari kita lihat dia data sepanduk:
>>> 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 | ||
Atas ialah kandungan terperinci Contoh analisis menggunakan ZoomEye untuk mencari serangan APT. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!