专栏首页FreeBuf一款功能丰富的Perl后门程序分析

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

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

一、样本信息:

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

文件信息:

CRC-32 fb9cfdcb MD5 Hash 8756f19b4385cb2e6b6123da168aca38 SHA1 Hash aa948991579c2f4e7454fd3fecf7c1255a17c835 SHA256 Hash a424c0fc1ac52e34e6bfd68707720ac90148a8dc6450409e85c1dcf24aa7bf8b

VirusTotal 检测信息

二、行为分析:

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

测试机运行效果:

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

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

结束进程:

列出可处理的指令:

进行常见的DDoS攻击:

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

Udpflood

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

Tcpflood

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

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

Sqlflood:

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

Httpflood:

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

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

端口扫描

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

Socks5代理

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

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

本地root提权

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

由于太长只截取一部分,剩余的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工具提权,没有后续的提权动作。

发送邮件

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

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

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

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

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

擦除痕迹,清理日志:

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

情报搜集:

安全站点news搜集

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

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

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

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

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

三、简单溯源

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

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

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

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

四、总结

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

本文分享自微信公众号 - FreeBuf(freebuf),作者:douwanhu

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-09-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 黑客的七夕礼物:大量IoT设备Telnet密码列表遭泄露

    ? 一份包含几千条telnet密码的列表自7月11日起被贴到了Pastebin上,这些密码可以被黑客用来扩大僵尸网络。 来自New Sky Security的...

    FB客服
  • 获取来源IP地址的正确姿势

    背景 笔者从去年6月份开始研究IP地址,陆续踩了很多很多坑,也结识了一大批同行业的前辈。 我能说我是这个圈子里年龄最小的么…..我一直在承受我这个年纪不该有的...

    FB客服
  • 蜜罐背后的影子系统探秘

    一般场景下我们会在内部部署蜜罐系统,当外部有渗透时,碰到蜜罐就会报警,蜜罐会去检索攻击源的位置,确定别攻击机器的IP端口,取得payload数据,配合IDS我们...

    FB客服
  • ret指令与call指令的深入理解

    其中ret指令用栈中的数据,修改IP的内容,实现近转移。而call指令将IP或者CS和IP压入栈中,实现转移。还有retf指令,用栈中的数据,修改CS和IP的内...

    Elapse
  • 高级静态分析技能基础:掌握80x86汇编语言1

    掌握黑客技术一大难点就在于你要非常深入计算机技术的底层。绝大多数程序员只愿意在上层应用上花点时间,毕竟他们只想”混饭吃“,任何有志于不断提升技术能力的工程师都必...

    望月从良
  • 《汇编语言》——笔记(一)

    在讲汇编语言之前,先介绍下机器语言。机器语言是机器指令的集合。电子计算机的机器指令是一列二进制数字,计算机将转变高低电平,来驱动电子器件。

    天钧
  • 深入浅出-网络七层模型

    OSI 模型(Open System Interconnection model)是一个由国际标准化组织?提出的概念模型,试图?供一个使各种不同的计算机和网络在...

    sunsky
  • python网络-计算机网络基础(23)

    有的说英语,有的说中文,有的说德语,说同一种语言的人可以交流,不同的语言之间就不行了

    Se7eN_HOU
  • 网络工程师入门系列 | 企业网络互联技术

    人们日常生活中最熟悉的进位计数制。在十进制中,数用0,1,2,3,4,5,6,7,8,9这十个符号来描述。计数规则是逢十进一。

    网络技术联盟站
  • Flutter基础widgets教程-ExpansionPanel篇

    青年码农

扫码关注云+社区

领取腾讯云代金券