freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

第三代亡命徒(Outlaw)木马样本分析
2020-07-07 11:11:32
亡命徒(Outlaw)僵尸网络最早于2018年被发现,其主要特征为通过SSH爆破攻击目标系统,同时传播基于Perl的Shellbot和门罗币挖矿木马。
应急场景
某天,安全管理员在登录安全设备巡检时,发现某台网站服务器持续向境外IP发起连接,
服务器 CPU 资源异常:
根据服务器上述特点,迅速排查可疑用户有哪些网络行为及进程:
用last -f wtmp 查看成功登录的日志发现:
发现student用户存在异常,继续查看该用户的网络行为:lsof -u student
最终找到了木马的样本位置(/home/student/.configrc/),文件夹结构如下:
根据木马的回连IP,我们从其中一台服务器下载到了木马的母体文件dota3.tar.gz,对样本进行分析,发现为亡命徒(Outlaw)僵尸网络木马的第3代,母体文件释放shell脚本启动对应二进制程序,kswapd0负责进行门罗币挖矿,tsm32、tsm64负责继续SSH爆破攻击传播病毒,run负责接收木马远控端的指令,下面对该样本进行详细分析。
通过查看文件结构,我们的分析工作主要分为4个部分,即初始化分析、a、b、c、3个文件夹程序的分析,下面逐个来看:

1、对初始话代码的分析:

初始化代码有3个,即init、init2、initall,先看第一个:
通过pkill、rm -f操作,将之前可能存在的程序残留都删除干净;
开始运行程序:
mkdir ~/.configrc    新建文件夹
cp -r a ~/.configrc/    拷贝文件夹
cp -r b ~/.configrc/   
cd ~/.configrc/a/
nohup ./init0 >> /dev/null &   进入a文件夹运行init0,程序的主要功能为:在Linux环境中杀死加密矿工的脚本,即杀死别的挖矿脚本,同行是冤家啊。。。
sleep 5s
nohup ./a >>/dev/null &     在a文件夹内运行a程序,折腾一圈,最终目的还是为了运行程序kswapd0
cd ~/.configrc/b/
nohup ./a >>/dev/null &   在b文件夹内运行a程序,目的为运行run程序
cd $dir
cd c
nohup ./start >>/dev/null &  在c文件夹内运行start程序,绕一圈最终为了运行tsm32、tsm64
通过计划任务来启动
echo "1 1 */2 * * $dir2/a/upd>/dev/null 2>&1
@reboot $dir2/a/upd>/dev/null 2>&1
5 8 * * 0 $dir2/b/sync>/dev/null 2>&1
@reboot $dir2/b/sync>/dev/null 2>&1  
0 0 */3 * * $dir/c/aptitude>/dev/null 2>&1" >> cron.d

crontab cron.d
crontab -l
init2为init的简化版,没有新建目录和拷贝程序,直接就在当前目前运行程序。
initall  的功能为上述2个init、init2都运行一遍,cat init | bash、cat init2 | bash就通过这2个命令来实现,cat init | bash表示将init里的命令全部在重新执行一遍,(看完很佩服,精华啊这命令用的)
总结:经过上述分析可知,整个病毒的核心功能是a文件夹的kswapd0、b文件夹的run、c文件夹的tsm32、tsm64,下一步着重分析上述3个文件即可;病毒通过计划任务来启动。

2、核心代码的分析

a目录下二进制文件kswapd0为XMRig编译的Linux平台门罗币挖矿木马,
IDA分析如图:
外联的ip及网址:
45.9.148.125            "url": "45.9.148.125:80",       
45.9.148.129            "url": "45.9.148.129:80",       
XMRig是一款高性能的门罗币(XMR)CPU挖矿软件。
b目录下run脚本主要内容为base64编码的shellbot后门程序,解码后可以看到代码仍然经过混淆。把执行函数eval改为print可打印出解密后的代码,是基于Perl的Shellbot变种,连接C2服务器地址为45.9.148.99:443,能够执行多个后门命令,包括文件下载、执行shell cmd和DDoS攻击。如果接受到扫描端口命令,可针对以下端口进行扫描:"21","22","23","25","53","80","110","143","6665"。
base64解码后:
把执行函数eval改为print可打印出解密后的代码,是基于Perl的Shellbot变种,
代码太长就不完全贴了,这里给出部分关键代码:
连接主机:荷兰ip
端口扫描:
DDOS攻击:
修改SSH公钥为:
以便之后能更容易入侵。
c目录下的tsm32、tsm64负责继续SSH爆破攻击传播病毒,通过SSH暴力破解传播挖矿机和后门的扫描器,可以发送远程命令来下载和执行恶意软件,爆破成功后执行base64编码的shell命令,主要功能为删除旧版本的恶意程序和目录,然后解压获取到的最新版本恶意程序并执行。
外联ip
45.9.148.117
45.9.148.125
45.9.148.129

3、安全建议:

及时修改弱密码,将OpenSSH升级到最新版本,若发现服务器已被入侵安装挖矿木马,可参考以下步骤手动检查清除:
1、删除以下文件,杀死对应进程:
/tmp/*-unix/.rsync/a/kswapd0
*/.configrc/a/kswapd0
/tmp/*-unix/.rsync/c/tsm64
/tmp/*-unix/.rsync/c/tsm32
*/.configrc/
2、检查cron.d中是否存在包含以下内容的定时任务,如有进行删除:
/a/upd
/b/sync
/c/aptitude
# 系统安全 # 系统安全 # 木马 # 恶意软件
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者