Linux.Ngioweb分析报告 | xxxLinux.Ngioweb分析报告 – xxx
菜单

Linux.Ngioweb分析报告

六月 21, 2019 - 360netlab

背景介绍

2019年5月27号,360Netlab 未知威胁检测系统发现一个可疑的ELF文件,目前仅有一款杀毒引擎检测识别。通过详细分析,我们确定这是一款Proxy Botnet,并且是Win32.Ngioweb[1]恶意软件的Linux版本变种,我们将它命名为Linux.Ngioweb。它与Win32.Ngioweb共用了大量代码,不同的是它新增了DGA特性。我们注册了其中一个DGA C2域名(enutofish-pronadimoful-multihitision.org),并对它进行Sinkhole处理以此来观察Bot连接情况。

此外,我们还观察到大量部署WordPress的Web服务器被植入Linux.Ngioweb 恶意软件。尽管Bot程序由Web容器对应的用户组运行并且权限很小但还是能够正常工作,并被充当Rotating Reverse Proxy[2]节点。

目前,我们还没有看清楚Linux.Ngioweb攻击者的目的,但我们猜测他可能会监听代理网络流量。

Linux.Ngioweb概览

Linux.Ngioweb Bot样本的主要功能是在受害者的机器上实现Back-Connect Proxy[3]。攻击者将多个Bot构建为一个Proxies Pool,并通过双层C2协议控制,然后提供Rotating Reverse Proxy Service。

Linux.Ngioweb逆向分析

样本信息

ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), statically linked, stripped

样本对抗技巧

Stage-1 C2协议分析

在此阶段样本的主要行为是和Stage-1 C2建立通信,根据C2返回的指令进行下一步的操作。

通信尝试
DGA实现
uint64_t GenSeed(uint32_t& seed, uint32_t mod) {       uint32_t tmp = 0x41C64E6D * seed + 0x3039;       seed = tmp;       return tmp % mod; } string dga(uint32_t& seed) {       char* HeadBuf[] = { "un", "under", "re", "in", "im", "il", "ir", "en", "em",                           "over", "mis", "dis", "pre", "post", "anti","inter",                           "sub", "ultra", "non", "de","pro", "trans", "ex",                           "macro", "micro", "mini","mono", "multi", "semi", "co" };        char* BodyBufA[] = {"able","ant","ate","age","ance","ancy","an","ary",                           "al","en","ency","er","etn", "ed", "ese","ern","ize",                           "ify","ing","ish","ity","ion","ian","ism","ist","ic","ical",                           "ible","ive","ite","ish","ian","or","ous","ure" };        char* BodyBufB[] = {"dom","hood","less","like","ly","fy","ful","ness",                           "ment","sion","ssion","ship","ty","th","tion","ward" };        char* TailBuf[] = { ".net",".info",".com",".biz",".org",".name" };        string BlockBufA = "aeiou";       string BlockBufB = "bcdfghklmnprstvxz";       string domain;       uint32_t dashloop = GenSeed(seed, 3) + 1;       while (dashloop--)       {               domain += HeadBuf[GenSeed(seed, 0x1e)];               int flag = 0;               int i = 0;               if (BlockBufA.find(domain.back()) == string::npos)                       flag = 1;               int fillcnt = GenSeed(seed, 0x3) + 4;               while (fillcnt > i)               {                        if (flag + i & 1)                               domain += BlockBufA[GenSeed(seed, 0x5)];                       else                               domain += BlockBufB[GenSeed(seed, 0x11)];                       i++;               }               if (BlockBufA.find(domain.back()) == string::npos)                       domain += BodyBufA[GenSeed(seed, 0x23)];               else                       domain += BodyBufB[GenSeed(seed, 0x10)];               if (dashloop != 0)                       domain += "-";       }       return domain += TailBuf[GenSeed(seed, 0x6)]; }  
通信协议

此阶段通信是基于HTTP协议,并将参数内容进行了Base64编码。

数据包概览

发包解析

将参数内容通过Base64解码后可以看到以下信息

收包解析

支持的指令

Stage-2 C2协议分析

在此阶段样本的主要行为是和Stage-2的C2建立通信,开启Back-Connect Proxy功能。

通信协议

此阶段通信是经过双层加密组合合成,内层为XOR,外层为AES。

数据包概览

加密算法

XOR的Key由随机算法产生

算法为

AES使用ECB模式,无填充,Key为qwerasdfzxcqwerasdftyuirfdsdsdss

数据包结构

数据包由header和msg俩部分组成

header结构

#le->little endian #be->big endian struct header {  uint32_le xorkey;  uint32_be msgcrc32;  uint32_be len;  uint16_be msgcode  uint16_be magic }; 

msg由chunk构成,样本支持的chunk如下

Chunk TypeChunk LengthDescription
11BYTE
22WORD big endian
34DWORD big endian
48QWORD big endian
5N+4Bytes array.The first 4 bytes of chunk are the big endian-encoded length (N) of the array

一个msg可以有一个或多个chunk,不同的msg有不同的格式。

样本支持的msg类型分recv和send 两种

汇总见下表

msgcodeDriectionDescriptionFromat
0x1010recvset channel id3 chunks:(QWORD ConnId, Array IPAddr,WORD Port)
0x1011recvstart proxy request5 chunks:(QWORD RequestId, BYTE reason,BYTE AddrType,Array Addr, WORD port)
0x1012recvclose connection1 chunk:(QWORD ConnId)
0x10sendcheck-in1 chunk:(QWORD BotId)
0x11sendset-channel ack1 chunk:(DWORD VersionId)
0x14sendtcp server started5 chunks:(DWORD ConnectionId, QWORD RequestId, BYTE AddrType, Array Addr, WORD Port)
0x15senderror2 chunks:(DWORD RequestId,BYTE reason )
0x16sendudp server started5 chunks:(DWORD ConnectionId, QWORD RequestId, BYTE AddrType, Array Addr, WORD Port)
发包解析样例
收包解析样例

Stage-2 C2关联分析

我们通过访问Stage-1 C2 URL (http://185.244.149.73:443/min.js) 共得到以下6个Stage-2 C2的地址。

5.135.58.119 5.135.58.121 5.135.58.123 5.135.58.124 91.134.157.11 193.70.73.115 

通过我们的图系统关联test.zip的MD5(9017804333c820e3b4249130fc989e00)得到了更多的URL并对他们进行指纹识别,确认了另外18个存活的Stage-2 C2。

5.135.35.160 5.196.194.209 51.254.57.83 54.36.244.84 54.36.244.85 54.36.244.91 91.121.36.212 91.121.236.219 92.222.151.63 145.239.108.241 163.172.201.184 163.172.202.116 178.33.101.176 178.33.101.177 178.33.101.178 178.33.101.182 188.165.5.123 188.165.163.20 

我们在free-socks.in网站上可以检索到Stage-2 C2 IP地址正在提供Socks5代理服务。

我们测试这些Socks5代理IP均正常工作,同时它们也通过Stage-1 C2协议访问了我们Sinkhole 的C2域名(enutofish-pronadimoful-multihitision.org),所以可以说明他们都是Linux.Ngioweb Bot。

root@localhost:~# curl --socks5 91.134.157.11:50880 ifconfig.me 31.170.123.49  root@localhost:~# curl --socks5 91.134.157.11:62012 ifconfig.me 208.113.197.88  root@localhost:~# curl --socks5 91.134.157.11:18278 ifconfig.me 45.58.190.100  root@localhost:~# curl --socks5 91.134.157.11:64380 ifconfig.me 72.29.64.29  root@localhost:~# curl --socks5 91.134.157.11:47067 ifconfig.me 54.38.101.17  root@localhost:~# curl --socks5 91.134.157.11:63862 ifconfig.me 88.99.212.97  root@localhost:~# curl --socks5 91.134.157.11:49475 ifconfig.me 23.91.65.240 

被感染的IP信息

通过Sinkhole C2域名(enutofish-pronadimoful-multihitision.org),我们目前共观察到有2692个Bot IP。

以下是被感染的IP 国家/地区详细列表

US 1306 BR 156 RU 152 DE 133 FR 102 SG 98 NL 80 GB 66 CA 66 IT 64 VN 42 AU 36 PL 31 TR 28 JP 26 IN 26 ZA 21 ID 19 ES 18 UA 15 

通过对被感染IP指纹识别,我们观察到几乎所有Bot IP都是Web服务器,同时都部署了WordPress程序,但是我们还不能确定攻击者是如何入侵WordPress网站。

我们通过联系一些受感染者用户,并在他们的Web服务器上发现了多种类型的WebShell,这些WebShell都是高度混淆,但是混淆手法,加密方式以及编码特征相似。结合被感染IP访问Sinkhole时序特征,我们猜测攻击者会周期性地对受害者网站WebShell下发指令并运行Linux.Ngioweb程序。

处置建议

Linux.Ngioweb攻击者可能会监听代理网络流量,我们建议读者不要使用Stage-2 C2 IP提供的Socks5代理服务。

我们建议WordPress用户备份网站文章数据库(删除wp.service.controller.*等后门用户),重新安装最新版本WordPress程序,增强用户密码复杂度,增强WebShell检测能力,并禁止PHP命令执行相关函数;

相关安全和执法机构,可以邮件联系netlab[at]360.cn获取被感染的IP地址列表。

联系我们

感兴趣的读者,可以在 twitter 或者在微信公众号 360Netlab 上联系我们。

IoC list

样本MD5

827ecf99001fa66de513fe5281ce064d 

Stage-1 C2 (硬编码IP)

169.239.128.166      South Africa         ASN 61138            Zappie Host LLC 185.244.149.73       Romania              ASN 60117            Host Sailor Ltd. 

Stage-2 C2

163.172.201.184      France               ASN 12876            Online S.a.s. 163.172.202.116      France               ASN 12876            Online S.a.s. 5.135.35.160         France               ASN 16276            OVH SAS 5.135.58.119         France               ASN 16276            OVH SAS 5.135.58.121         France               ASN 16276            OVH SAS 5.135.58.123         France               ASN 16276            OVH SAS 5.135.58.124         France               ASN 16276            OVH SAS 5.196.194.209        France               ASN 16276            OVH SAS 51.254.57.83         France               ASN 16276            OVH SAS 54.36.244.84         France               ASN 16276            OVH SAS 54.36.244.85         France               ASN 16276            OVH SAS 54.36.244.91         France               ASN 16276            OVH SAS 91.121.36.212        France               ASN 16276            OVH SAS 91.121.236.219       France               ASN 16276            OVH SAS 91.134.157.11        France               ASN 16276            OVH SAS 92.222.151.63        France               ASN 16276            OVH SAS 145.239.108.241      Germany              ASN 16276            OVH SAS 178.33.101.176       Ireland              ASN 16276            OVH SAS 178.33.101.177       Ireland              ASN 16276            OVH SAS 178.33.101.178       Ireland              ASN 16276            OVH SAS 178.33.101.182       Ireland              ASN 16276            OVH SAS 188.165.5.123        Ireland              ASN 16276            OVH SAS 188.165.163.20       France               ASN 16276            OVH SAS 193.70.73.115        France               ASN 16276            OVH SAS 

Stage-1 C2 (DGA)

enutofish-pronadimoful-multihitision.org exaraxexese-macrobacaward-exafosuness.net nonafudazage.name demigelike.net emuvufehood.net subolukobese.biz inogepicor-prorarurument.biz overahudulize-unazibezize-overuzozerish.org imunolance-postodinenetn-antifipuketn.net antizerolant-monogevudom.info transavecaful-transinenation-transikaduhern.com subogonance.info inoxodusor-misehupukism.info devikoviward-semibazegily-copaxugage.name eniguzeless-inecimanable.net subilebesion-irogipate.biz colozosion-antigobunaful.name inudiduty-dezaviness.org irelizaring-enipulical-monovuxehossion.info ilenudavous-monoxoxapal-semimihupution.info ultrapadupize.biz covategal-dezakedify-enebugassion.name transivesudom-macropimuship.org rezolezation-transapupirify-seminecation.name macrolutoxous-overefimety.name coxumumage-dexolalite.name cotexafical-postirutuvian-emimimous.biz copubuloness-misumusal-disokozian.com nonecuzuking-enekopofen-imakozity.info dezohipal-ultrazebebive.name cosazalike-antifoxirer-subudikic.biz underotutilism-monoceraretion-underosociful.name overugiror.net emuzixucize.biz disicevament-desizigasion-recadihuful.biz decehoward-microhikodely-overokerezant.com microlasokadom-ultralarumous.info minixecision-iruzaxuhood.net profusonuty.info multifipakency-conovofy-prorakikate.com antiseramoment.info postavutetn-emedarevous.biz inolugoty-inidiverible.com prodipamament.biz overogobity-imivocurify-disovizution.biz decozaness-antihazation-overetalovical.net nonesolafy.com unihatosancy.name interiragocern-micropuxotion-transogorion.org seminamatity-enogibely.name inosebovion.net exofifure-postirexument.info transirirenern-semizafunic-nonivubed.biz enegizize-microtizobity.name macrohuseded-multipazaseship.com imefihured-macrohixuhood.org microlulition-macrokiguxable.biz multizesumefy-emebefion.biz underebelassion-postizoziless.info dezuvazen.name decotusion-exexavihood-exevozebant.name disuzepuly.info inuviging-antizoluly.biz multisotiren-ilazufist.org predepussion.info inidozadom.name interikuhaful.info cozuheming.biz multiruxuth.org monozogeced.org mononoredom.info postarubixage-monocinamety-overogefesal.com prebekokian-misadepepive-transilogify.com monohatodom-cohotiship.com exebasusion.org unahodoness-emevuzeward-emuzeduness.com exemidexous-underiposapite-unegatature.name interocugopist-misugexadic-ilobipegency.org monokifomancy-misagefism-macrobepoth.com antizekussion-minipusaral-copofuxoship.com relutodom-comakitize.name multikezusion.org emopumical-enohecical.org semitegopish.net recepatission.info inoluvary.com seminitotuful.info interanubing-emelulotal-transugotuzern.com subefehity-iledutession.name ultrapapiten.biz transuvarusish-prozumoxety.info transisigern.org imirotiship-microhopulive-emotomeship.com presefavution.info enevifaking.org misidogive-coxecovor-dexefoxan.name overazadudom-deliromohood.com emakanuward.com emitohage-overasuhorure-antitipenoless.info ultrasesebible.biz multihadekite.name iluvused-iravoxish.info postobagoly-detovaward-unixohible.biz underasusogen.com imovaman-multimihivoship-imeduxian.biz dedunuguhood.com prevukition.info underehugavish.org misoxomelical-iluxubism.net microcolacoful-postabitition.name overurohely-overadolure-iruraluness.org unurodable-dekipuhic-postuxufous.org unitucihern-postadagen-imupuduth.org imukokuship.org prenubocetion-ultrahahohood.com monofugition-underefogukic.org irofetufy.com irobigelike.org presifament.biz overetigution.info enuvopan-imixesoward-irarupipary.biz inorofizian.com monopadecotion-multicecihood-imuzicasion.com exofosehance-minimezazofy.org monokacofudom-inuvinable.com emisucosion-prohosexite-imorekusion.net semiledoduly.info multivapufy-promumuly-enonuben.net subebodency.info cofexasish-inodehed.net unutexupify-conofubusion.com misebonure-iluborize-rezericify.com exunaxian.info colanizity-postosecive-nonuresible.info dedaliward-imipusen-inacaliver.com refusovize.org monokuvission-transodigical-semihehamussion.biz transalavudom-multilavezuhood.net exusizeward.net unisimor.name minipihagaship.com recusigetion-transubeviful.info multixizitufy-microtomuly-multixoleward.com microxulodish-semibahoty.biz macrokunith-proxobivive.net preginaxodom.name transimapeful-cotalision.com prefinazuly.name inucasazing-microhesunian-semidikokement.biz disitirotion-transekarenate.org unehihify-antimepavable-nonubovafy.net misunotelike-nonugidant.info enogosudom-macrogekabive.biz postozokipetn-microdomobaly.biz interunavission-ininibecist.org microhinoler.org prosihamish-noneguhaness.com preberekous-microkagibant-imemahal.name iletegifage.org emikuraran.biz overokigoty-ilecavish.net nonikofucable-postelihuzism-rexecigism.net imixifure.info minirabupeness-nonitefuward.org misasugegify-underazosuzish-exuvexezical.info multipocihood-monomuhunible.org nonohacutancy-postuxikitan-microseditoless.info overasobament.info overulurotion.biz disepadely-disuzirovor.net repetepian-irelucify.biz enikobadom-postolixement.name inunatogite-imoboraness.net irimarefy.net monohiloless-demodefy.com previbetian-misunohigate.info multivunuhance-inabiber.com semicasinaty-ilibaholy.biz transupovetn-monozeruduless.biz debapesetn-underisaxufical-imukugamism.info multibibetefy.com exanonish.name interanulish-imazekalike-unisukugate.info inokevidage.org monofipuly-underubihal.net profobekify-subebobefy-exozufous.name macrovetecuship-emebudemical-underaxakament.biz demeficiward-retitisily-macromuvaward.org monosumuly-ilenusuty-dedabaness.net exapofaran-postulusadify.com microhobament-postevofafity.com rebezusaly-overidirity-ultrahiseness.org unafacigage-transihicical-prebokity.info interazution-irudegufy-antinefoly.biz minizecidish-macrolafukish-depovased.biz derirepous-cosideship-semibiseless.biz overupazadity-irativorical.name coseviness-nonikunant-macrorasihood.net nonesocern-macrotocipity.info interuzoputy.info inicinic-misuluzan-ultrakuxuness.com sububesebism-ultrabutath.com misacireship.org exuxuburan-miniravuhood-exosoxen.info macrozigahood-monosulopancy.com unegoping-detunusion-antimuruseful.biz macrozixaward-semivanimoly-underekutoty.biz ultratipuxian-inosilission-multiridith.net microtonagament.info cobemesion-redacocoful.name disicogure-seminedasoly.biz dekacify.net emegamilike-imupogazance-ultrapanacesion.org unocelibable-underelatucance.com irodetolike-imisocatite-inecolafian.com antikuzucen-irokarance-transitupikible.org semiralety-macrorobinant-ultrapixutency.biz transisomuless.name ilebigument-macroripakesion.org profebarable.org nonixigefy-protisumiless.biz corahicohood.com pretuvution-disafatutical-irehopuvese.name miniregath-anticesuty-postudagily.biz coguvilaship-recakubodom.name overipugoful-interizihing.org imipadaness-iralikoward-semitolicoly.info interupefity-semigiduly.info macromosoriship.net antigizepist.net subuluhic-disomokate.net irunucudor-macrogocudern-comoxizish.name underedofobate.net prolapuzern-progobutiful-dehifasion.org irucasian-macrofevasion.net unogoxeness-semixocapency.org rehofocese.org exebutian-interomifenism.org subihefahood-subenopure-ultramoherihood.net nonezogeward.com exasavate-minidevilefy-subanevous.biz enodenission-overucelancy-microvitasission.info ultrafakitesion-misesuzahical-transanafetion.biz interinipoly-minimorovor-debininess.com prenedelission-interugefable-repekosossion.name postifozible-irololuship.com unozolasion.org unobelaness-prepifavety.info cofukosable.info iloletible-imakeben.info ultraronupity.name minikisision-monobavunism-micronepavage.org unufepaness-misedepugance.biz inafolage.com semifolofic-unaraxal.biz enerivosism-imenufanist-macrovonahood.org monobocution.info cosuzuness-prepurizor-unasulal.name inopivic-antimaporary-subavocobive.biz covogidish-iletinassion.biz defizalike-unodatage-inarabevous.com unuvirisern-interusalosize-misucakiness.org ireninenish-multicemath-prezucetussion.biz interodekive.com iramilahood-antirotuxary-misobegesion.name multidafadite-postagoker.org monobagehance.net emixuvidite-ilofikency-subolubify.biz postugihucency-emademify.name cotefehood-imocakitency.biz enikavely-inosifuty-postaviraly.info transabusossion.biz interitebure.net unehumugage-ultraburosion.com subutavahen-inuhabish.org subifefer-devufoward-probelalance.org emefimafible.biz ilibefudom.biz postemivaxage.net monofudumossion.info inuxazodom-macrodexaxahood.org semibugegetn-monohifutuly.biz macromohazaship-subonohion-disonixucing.com emosacekant-cokebohood-nonetakive.biz interozecifist-antipinukity-multifekemath.net refedomous-antifaliless.name ultraxekevohood-nonizerosion-exovigant.name interarogous-unuculuhood.org semipulimian.com monocalacaless.biz disevolikency-retipegation.biz cosituxath-misuxunor.info ultraporader-conapefy-prolobeziless.info ilucasure.com reletohite-misosulahood-antitedudom.info minivucilous-inafafomism.net monorifutaless-ilocamussion.name inohufohese-imufilahood-antifidupite.com emegemaxed-transigifuty-multitumolith.net exotacible-denitokolike.com 

Notice: Undefined variable: canUpdate in /var/www/html/wordpress/wp-content/plugins/wp-autopost-pro/wp-autopost-function.php on line 51