一款功能丰富的Perl后门程序分析

2017-09-14 168181人围观 ,发现 2 个不明物体 系统安全网络安全

*本文原创作者douwanhu,属于FreeBuf原创奖励计划,禁止转载

最近通过Cowrie蜜罐捕获一枚有趣的后门程序,此程序用perl语言编写。功能包括:DDoS(udpflood、tcpflood、httpflood、sqlflood)、hacking(端口扫描、信息收集、本地root、日志清理等)情报信息搜集(packetstorm、milw0rm)等

一、样本信息:

蜜罐日志显示黑客使用密码猜解成功登陆SSH后用wget命令下载了程序:

israbye FreeBuf.COM

文件信息:

CRC-32            fb9cfdcb

MD5 Hash        8756f19b4385cb2e6b6123da168aca38

SHA1 Hash       aa948991579c2f4e7454fd3fecf7c1255a17c835

SHA256 Hash   a424c0fc1ac52e34e6bfd68707720ac90148a8dc6450409e85c1dcf24aa7bf8b

VirusTotal 检测信息

israbye FreeBuf.COM

二、行为分析:

程序启动后调用conectar函数建立与远程服务器的连接,服务器IP地址:118.178.190.138  端口:9981

israbye FreeBuf.COM

测试机运行效果:

israbye FreeBuf.COM 

然后读取远程服务器端传入的指令:

 israbye FreeBuf.COM

调用parse函数解析指令,并调用bfunc函数执行相应的任务。此程序核心内容皆在bfunc函数里,因此后续主要分析这个函数。bfunc函数依据传入的指令参数有如下功能:

结束进程:

 israbye FreeBuf.COM

列出可处理的指令:

 israbye FreeBuf.COM

 

进行常见的DDoS攻击:

israbye FreeBuf.COM

可以看到访问hxxp://server.perpetual.pw/syn.c下载源文件然后调用GCC编译器进行编译,删除后使用命令行./syn + []+[]+[]执行DDoS攻击。经测试这个下载站点已经失效。

Udpflood

israbye FreeBuf.COM

可以看到如果收到的指令包含 udp  <ipaddress> <port>  <endtime>,则根据收到的IP地址构造UDP包,持续向目标地址和端口发包,直至给定的结束时间。

Tcpflood

israbye FreeBuf.COM

如果收到的指令包含tcpflood  <ipaddress>  <keeptime>,则调用tcpflooder函数进行持续时间为<keeptime>的tcpflood攻击,tcpflooder函数如下:

israbye FreeBuf.COM

实现方法很简单,即根据传入的IP地址、端口、持续时间利用socket方法构造TCP包在持续时间内连续对目标发送建立连接的请求。

Sqlflood:

 israbye FreeBuf.COM

如果传入的指令包含:sqlflood  <ipaddress>  <keeptime>,则根据接收的IP地址建立至目标IP地址3306端口的TCP连接,持续时间为<keeptime>。

Httpflood:

israbye FreeBuf.COM

如果传入的指令包含:httpflood  <ipaddress>  <keeptime>,则根据接收的IP地址建立至目标IP地址80端口的TCP连接,持续时间为<keeptime>。 

进行常见的hacking功能,如:端口扫描、socks5代理、本地root提权、Google hacking等。

端口扫描

 israbye FreeBuf.COM

如果解析出指令包含portscan  <ipaddress>,则根据给定IP地址对端口列表进行创建tcp连接遍历,获得开放的端口号。

Socks5代理

israbye FreeBuf.COM

可以看出如果收到的指令为socks5,则下载mocks安装包,并调用system函数执行命令自动化mock的安装与配置完成socksv5的安装,然后获取IP地址:

israbye FreeBuf.COM

简单的通过调用ifconfig命令获取,提示可以连接的IP地址和端口。

本地root提权

israbye FreeBuf.COM

如果读取的指令包含rootme则调用”uname -r”和”whoami”命令查看Linux版本号及当前用户。然后根据版本号寻找可用的root工具,版本号列表及对应的root工具存在名为”h”的哈希中:

israbye FreeBuf.COM

由于太长只截取一部分,剩余的rootexploits还有:”elfdump”,” expand_stack” ,” h00lyshit”,” kdump”,” km2”,” krad”,”krad3”,” krad3”,” loko”,” mremap_pte”,” newlocal”,” ong_bak”,” ptrace”,”ptrace_kmod”,” ptrace24”,” pwned”,” py2”,” raptor_prctl”,” prctl3”,” remap”,”rip”,” stackgrow2”,” uselib24”,” uselib24”,” smpracer”,” smpracer”,” exp.sh”,”kmdx”,” raptor”,” raptor2”。这部分功能该脚本仅是查询到宿主系统可以用列表中的哪个exploit工具提权,没有后续的提权动作。

发送邮件

israbye FreeBuf.COM

可以看出程序利用linuxsendmail发送邮件,接收指令格式为:sendmail <subject> <sender> <recipient><message>。

 利用各搜索引擎dork技巧查询情报(googlehacking、yahoo、msn、fireball等)

israbye FreeBuf.COM

如果接收的指令为 multiscan<vuln> <dork>,则根据给定的vuln和查询字段dork遍历各大搜索引擎的搜索结果。

israbye FreeBuf.COM

由于各个函数原理相同只是查询的url和条数略有区别,因此这里只拿Google做说明,其他类似,google函数:

israbye FreeBuf.COM

查询记录条数限制在100条。其他函数皆类似。

擦除痕迹,清理日志:

israbye FreeBuf.COM

使用system函数调用rm命令删除日志信息和历史文件。 

情报搜集:

安全站点news搜集

israbye FreeBuf.COM

如果接收的指令为” milw0rm”则会访问milw0rm站点搜集最新的exploits信息,同样的如果接收到指令packetstorm,则会访问www.packetstormsecurity.org获取最新情报

israbye FreeBuf.COM

利用google hacking技术搜集含有sql漏洞的站点

israbye FreeBuf.COM

接收指令:sql2 <vuln><dork>,然后调用之前google hacking讲到的那些诸如google、msn函数进行查询,返回查询结果

israbye FreeBuf.COM

然后构造sql语句测试漏洞情况

israbye FreeBuf.COM

至此该脚本的大部分主要功能都已分析完毕,接下来进行简单的溯源。

三、简单溯源

脚本在最开始不传入参数的情况下默认与IP地址为118.178.190.138的server建立连接,查询该IP地址信息如下:

israbye FreeBuf.COM

Kail 下nmap扫描该主机,没得到有用信息,估计有防护措施,扫描不到有用的结果:

israbye FreeBuf.COM

猜测是部署在阿里云上的云主机,尝试浏览器访问此IP得到如下页面:

israbye FreeBuf.COM 

显示为“向向游戏平台”。至于是这台server也沦陷了还是….就不得而知了。

 四、总结

这个后门程序类似于之前网上有报过的名为” DDoS Perl Bot v1.0”的后门程序,只是功能上要丰富许多,作者应该是国外的,被国内黑客通过修改远程server的IP进行定制,从而实现与自己的C&C server交互。可以跨平台,对于安装了Perl解释器的Windows系统同样可以实现部分功能,不过主要还是针对Linux系统威胁较大,用于渗透后植入后门。总的来说功能虽多但实现的质量和方法确实不高,作为案例分享和思路启发还是有一定意义的。

 *本文原创作者douwanhu,属于FreeBuf原创奖励计划,禁止转载

发表评论

已有 2 条评论

取消
Loading...
css.php