用户
搜索
  • TA的每日心情
    慵懒
    昨天 09:10
  • 签到天数: 140 天

    连续签到: 26 天

    [LV.7]常住居民III

    版主

    Rank: 7Rank: 7Rank: 7

    26

    主题

    106

    帖子

    3244

    魔法币
    收听
    1
    粉丝
    3
    注册时间
    2015-11-20

    i春秋签约作者春秋文阁

    发表于 2018-1-8 12:27:37 119942
    本文原创作者:icq5f7a075d,本文属i春秋原创奖励计划,未经许可禁止转载!
    本文如果出现错误,欢迎指出,感激不尽!
    本文中的所有程序请在虚拟机中运行。
    1. 基本信息
    样本文件:st22a.exe
    MD5:c293c2842789a7a391c9ca82271b861e
    SHA-1:f2d4afa85dd0d9ab853de79663668e03bc0cfffe
    VT首次上传时间:2017-12-30 01:56:32
    2. 详细分析
    2.1. 程序的流程:
    图片1.png
    1st22a.exe解密字符串:"http://211.160.166.209:9998/NetSyst96.dll"
    2)下载这个文件(加密的数据),放在C盘的某个路径下,载入文件进内存,解密运行dllmain->脱壳;
    3)调用DllFuUpgradrs 这个导出函数,对文件进行校验,确定文件没有被修改或损坏;
    4)创建EventAluzem iaxnkghr (判断有没有该程序运行),有的话则会执行自我删除等清理操作;
    5)判断程序Module是不是 C:\Program Files\Microsoft Pyanqd\Ajlybob.exe(判断是不是要被注册为服务的进程),如果不是则创建这个文件并执行,添加进注册表;
    6)如果这个文件,则会检查注册表添加注表册HKEY_LOCAL_MACHINE\System\CurrentControlSet\services\Wskhlo agzvturb\ConnectGroup =new?,如果=new,这说明第一次运行Ajlybob.exe,则会将其注册为服务;
    7)如果不是new,则说明已经是服务,注册启动服务主程序;
    8)则启动socket,接收远控命令;
    9)执行远控命令;
    接下来进行详细分析。
    2.2. st22a.exe分析
    先使用PEID查看程序,掌握程序基本的静态信息,PEID显示st22a.exe没有加壳:
    图片2.png
    使用IDA加载st22a.exe,了解程序流程。IDA自动定位到WinMain
    图片3.png
    只有两个call,很开心,分析这两个call就可以了。
    祭出神器ODIDA+OD分析效率提升5000000000%
    1sub_402070
    上图中可以看出sub_402070的参数是offset_szUrl,是一段没有意义的字符串。sub_402070的作用就是解密这段字符串:
    图片4.png
    解密分为三个过程:
    ①sub_401980中首先对数据进行BASE64解密,(Base64的介绍和这部分的分析过程请看笔者的《算法逆向5》,在那篇文章中,笔者就是使用该程序分析的)
    Base64解码出的数据:
    \xe2 \x33 \x67 \x22 \x2c \xfb \x01 \x8b
    \x14 \xa8 \x5d \x1f \x0d \x97 \x18 \x6c
    \xd3 \x37 \x2a \x90 \xfe \x89 \x6d \x8f
    \xb7 \xa6 \xe9 \x11 \xfe \xad \x11 \x3a
    \x0e \x24 \xc6 \x0d \x16 \x80 \x79 \x56
    \xde \x8a
    ②接着程序继续处理这部分数据,首先每个字节加上0x7A并异或0x59;
    ③最后以“Geting538”为密钥计算出置换表,从置换表中取值进行异或,解密出最终的数据:
    http://211.160.166.209:9998/NetSyst96.dll
    在浏览器中访问http://211.160.166.209:9998/,发现是一个HFS文件服务器,目前可能已经有794台主机感染该病毒,除了NetSyst96.dll,攻击者似乎还有其他攻击手段(笔者还没来得及分析,这个链接就挂了):
    图片5.png
    2sub_401F50
    ①sub_401F50首先判断C:\Program Files\AppPatch\文件夹下是否存在NetSyst96.dll文件,如果不存在从上述链接中下载,并写入C:\Program Files\AppPatch\NetSyst96.dll
    图片6.png
    使用二进制查看工具查看NetSyst96.dll,发现它被加密:
    图片7.png
    ②解密的过程和之前使用“Geting538”解密过程相同,不过此时使用的是“Kother599”进行解密。
    图片8.png
    ③之后根据“MZ”和“PE”标志判断是否成功解密,如果成功解密,则将其以内存对齐方式存放进内存:
    图片9.png
    图片10.png
    ④随后定位NetSyst96.dll的OEP,并运行DllEntryPoint。
    使用PEid分析NetSyst96.dll,发现它加了UPX的壳,DllEntryPoint就是脱壳的过程。
    图片11.png
    ⑤脱壳之后,程序调用NetSyst96.dll的导出函数DllFuUpgradrs
    图片12.png
    接下来主要是分析DllFuUpgradrs。

    2.3. DllFuUpgradrs 分析
    ①函数一开始就会将程序版本号写进数据,接下来会判断程序版本:
    图片13.png
    ②接着程序使用变形的MD5计算NetSyst96.dll的校验值,并进行校验,确保程序没有被修改。
    ③DllFuUpgradrs的参数中有一串字符串“/cUllm946...”,程序对其进行解密,解密出程序之后会使用的字符串信息,如果解密失败,则函数退出:
    图片14.png
    ④随后创建名为“Aluzem iaxnkghr”的Event,如果创建失败,则说明系统中还有一个本程序实例在运行,程序将删除自身并结束运行:
    图片15.png
    图片16.png
    程序调用VBS脚本删除自身
    [Visual Basic] 纯文本查看 复制代码
    dim wsh..
    On Error Resume Next
    set wsh=createObject("WScript.Shell")..
    Set objFSO = CreateObject("Scripting.FileSystemObject")..
    wscript.sleep 1000..
    objFSO.DeleteFile("C:\Users\14215\Desktop\st22a.exe"), True..
    createobject("scripting.filesystemobject").deletefile wscript.scriptfullname
    如果创建Event成功,则说明本次运行的程序是系统中的唯一本程序实例。
    ⑤程序将继续判断,本次运行的程序路径是不是“ C:\Program Files\Microsoft Pyanqd\Ajlybob.exe” 图片17.png
    如果不是,则将创建自身拷贝“ C:\Program Files\Microsoft Pyanqd\Ajlybob.exe”,并执行
    图片18.png 图片19.png

    程序将自身程序路径加入注册表HKEY_LOCAL_MACHINE\System\CurrentControlSet\services\Wskhlo agzvturb\DeleteFiles,随后删除自身,结束运行。
    图片20.png
    ⑥如果程序就是Ajlybob.exe,则会检查HKEY_LOCAL_MACHINE\System\CurrentControlSet\services\Wskhlo agzvturb\ConnectGroup 的值,如果是第一次运行Ajlybob.exe,则注册表中没有该键,如果不是第一次运行,则会检测到该键值是new:
    图片21.png
    如果是第一次运行Ajlybob.exe,则会将自己注册为服务:
    图片22.png
    服务信息:
    图片23.png
    ⑦如果不是第一次运行,则会注册服务主程序:
    图片24.png
    ⑧随后准备启动Socket通信,通信之前先通过www.ip138.com和dns.aizhan.com获取C&C服务器的IP。
    如图,服务器的域名是yizaiwl.cc
    图片25.png 图片26.png

    获取上线IP后,程序会去连接这个IP与远控的控制端进行通信:
    图片27.png
    ⑨程序接收远控的数据并执行指定功能(每个函数的具体功能,笔者还没分析完成):
    图片28.png
    3. 总结
    这个远控的姿势很骚,恶意行为都在NetSyst96.dll中,NetSyst96.dll却是加密存储在本地,躲避杀软扫描。百度NetSyst96.dll,可以发现该远控应该是大灰狼远控,远控的功能也很齐全,虽然笔者没分析完,但可以看到有30case语句,也就是说这个远控至少有30条远控命令,是一款成熟的远控。

    最后,来点彩蛋,根据前面的分析收集到的一些信息:
    文件服务器:211.160.166.209:99982018-01-05的时候链接挂了)
    CC服务器:27.148.156.126:2016
    域名:yizaiwl.cc
    qq:931438429
    手机号:13674030456
    地址:佛山市兴塔镇兴隆村
    姓名:yi zi (可能是假名)
    喜欢社工的表哥表姐们,干起来!
    virus_nopasswprd.rar (243.9 KB, 下载次数: 11, 售价: 5 魔法币)

    评分

    参与人数 1魔法币 +50 收起 理由
    XiaoYue97 + 50 感谢你的分享,i春秋论坛有你更精彩!.

    查看全部评分

    本帖被以下淘专辑推荐:

    解密密码是错误的?
    使用道具 举报 回复
    发表于 2018-1-8 23:38:17
    china____style 发表于 2018-1-8 22:45
    解密密码是错误的?

    你是不是使用的是360解压,如果是360解压下载完毕后会自动打开压缩包,这个时候不要输入密码,请关闭窗口,手动打开压缩包输入密码。
    使用道具 举报 回复
    icq5f7a075d 发表于 2018-1-8 23:38
    你是不是使用的是360解压,如果是360解压下载完毕后会自动打开压缩包,这个时候不要输入密码,请关闭窗口 ...

    换成了WINrar64位 但是找到安装包打开还是显示密码错误或损坏..
        D:\SG\virus_rat.rar: 加密的文件 st22a.exe 里发生校验和错误。损坏的文件或错误的密码。
        D:\SG\virus_rat.rar: 加密的文件 NetSyst96.dll 里发生校验和错误。损坏的文件或错误的密码。
        D:\SG\virus_rat.rar: 加密的文件 说明.txt 里发生校验和错误。损坏的文件或错误的密码。
        无法执行“C:\Users\vogt\AppData\Local\Temp\Rar$EXb7508.35747\st22a.exe”
    使用道具 举报 回复
    发表于 2018-1-9 14:45:07
    china____style 发表于 2018-1-9 13:28
    换成了WINrar64位 但是找到安装包打开还是显示密码错误或损坏..
        D:\SG\virus_rat.rar: 加密的文件 st ...

    我上传了一份没加密的,你重新下载吧
    使用道具 举报 回复
    发表于 2018-1-9 19:08:33
    厉害了
    使用道具 举报 回复
    6666666666666666
    使用道具 举报 回复
    发表于 2018-1-12 17:38:43
    厉害了
    使用道具 举报 回复
    发表于 2018-1-12 22:05:42
    学习学习
    使用道具 举报 回复
    发表于 2018-1-21 11:58:32
    感谢楼主
    时人不识凌云木,直到凌云始到高
    使用道具 举报 回复
    发表于 2018-1-24 21:16:23
    DDDDDDDDDDDDDDDD
    使用道具 举报 回复
    发表于 2018-2-2 11:52:11
    感谢分享
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册