VPNFilter Stage 1
2018-06-09 23:24:00 Author: mp.weixin.qq.com(查看原文) 阅读量:9 收藏

周五晚看了下Stage 1,感觉此木马从跨平台、启动项到多阶段的下载,可以说处处都是亮点,值得分析一波~

# 符号表

拿到的样本为x86架构、静态编译,且去除了符号表,在lscan/bindiff无解后只能选择硬怼。根据syscall调用、上下文推断出了大部分符号:

# 启动项

木马跑起来后会先进行一次fork,设置daemon:

而后进行第二次fork,父进程中通过写crontab作启动项,这在之前的IoT木马中是没有见过的:

# 解密敏感字符串

子进程中解密所需字符串及Stage 2下载地址:

对加解密实在是不了解,直接写脚本模拟执行跑了下:

结果如下:

# 下载 Stage 2

解密之后首先判断互斥体,避免多次运行:

写入SSL密钥后,尝试多种方式下载Stage 2:

1) request_stage2_urls

请求photobucket.com,下载图片:

其中photobucket.com的地址来自于0x08048b70处的解密。

这一处Exif隐写IP可以说是此木马中比较亮眼的点之一,很优秀。

2) request_backup_stage2_url

与request_stage2_urls的唯一区别是此处的图片地址直接来源自程序解密,即http://toknowall.com/manage/content/update.php。

3) listen_for_trigger_packet

这是此木马中另一个较亮眼的点。

如果两次图片下载都失败,木马将监听本地socket:

监听到报文后进行多次判断(目的IP、报文长度、Magic Char),提取Stage 2 Server IP:

并且下载后还对Stage 2长度进行判断,大于1000才返回。

之后的流程就简单了,写入Stage 2、添加执行权限,fork运行:


文章来源: https://mp.weixin.qq.com/s/YZv82xvAK4lxj7Sh5I7Vsw
如有侵权请联系:admin#unsafe.sh