首页
社区
课程
招聘
[翻译]分析PoSeidon下载器和键盘记录器
发表于: 2017-8-2 08:59 4193

[翻译]分析PoSeidon下载器和键盘记录器

2017-8-2 08:59
4193

  本篇博文分析了一个Poseidon的实例(实例:1b7f205b663af9a6eb44f18555bdaad86e0fa58f3a9e4aced3e2ae1e3ed472b5下载地址。这是一个恶意下载器,携带着CnCs列表中正在网上工作的CnCs。然而因为有一个bug,这个恶意软件不能下载第二个阶段的可执行文件(键盘记录器)。


  第一个实例是键盘记录器的下载器。他复制自己到c:\windows\system32\winsrv.exe并自动安装(它也会创建WinSrvWDmutex令牌)。然后自动删除第一个exe文件并创建两个进程:

  两个进程运行相同的可执行文件。Svchost.exe运行一个函数,万一进程死掉该函数会保护WinSrv.exe

  WinSrv.exe运行下载器的主代码。

  下载器主要工作是尝试连接CnCs列表:

  当它解析到列表的域名后,会连接列表并发送主机信息(如果没有解析到,则继续尝试下一个网址):

  这里出现了问题。当下载器连接到一个有效网址时,CnC应该回复一个它可以理解的结构体。但这有一个bug,服务器是有效域名,也是一个有效的http服务器,但它没有运行CnC服务,它会回复一些“not found”之类的错误(一个错误页)。这时,恶意软件找不到他需要的有效结构体,并一直重复尝试相同的网址,一直重复得到同样的结果。

  所以,当下载器找到了一个有效的http服务器但不运行CnC服务时,下载器会进入死循环,一直连接相同的网址而不继续尝试其他网址(这样它就不会继续下载第二个可执行文件了)。

  发现了这种情况,我必须欺骗下载器来继续连接下一个网址。最后它找到了一个有效网址并得到了CnC服务应答,这是服务器的回复:

  正如我们看到的,它是一个有效网页,在恶意软件的结构体中显示“此网页不存在!”

  从回复中我们可以看到一个可以下载第二个可执行文件的网址,和一个新的网址列表。

  它会保存新网址列表到c:\windows\system32\winsrv.exe.cfg,并运行另一个svchost.exe的例子来注入(Process Hollowing,恶意软件常用的一种进程创建技术)下载程序POSNumBot_baked.exe

  在下载器中没有其他有趣的东西了。对CnC服务器的询问很容易,是明文且只用base64加密机器信息,写一个Python client并不难。


POSNumBot

  下载器下载的第二个可执行文件是键盘记录器。下载地址

  它没有壳。双击就可以运行(不需要下载器加载)。

  它创建一个窗口来接收键盘事件:


  在这里记录键盘事件:

  它会把键盘事件列为一个列表供另一个线程使用,这个线程负责与CnC通信:


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 1
支持
分享
最新回复 (2)
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
它创建一个窗口来接受键盘事件,那本该的窗口还能接受键盘事件吗?
2017-8-2 09:17
0
雪    币: 1475
活跃值: (482)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
3
major啦啦 它创建一个窗口来接受键盘事件,那本该的窗口还能接受键盘事件吗?
是本来的窗口吧?这句是连接着上文的,双击运行后,会创建一个窗口来接收键盘事件。
2017-8-2 14:45
0
游客
登录 | 注册 方可回帖
返回
//