freeBuf
主站

分类

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

特色

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

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

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

FreeBuf+小程序

FreeBuf+小程序

NanSh0u攻击活动样本分析
2019-07-04 17:02:07

NanSh0u背景

病毒代码.gif

本文主要从漏洞的角度针对样本CVE-2014-4113漏洞提权操作进行分析。

QQ截图20190704165333.png

具体的分析流程如下:

图片0.png

详细分析

1、 初始加载Windbg

在系统启动之前利用Windbg工具加载整个操作系统,为样本运行后期内核调试做准备。然后让系统正常启动,并通过IDA加载运行样本。

图片1.png

2、 获取内核PsLookupByProcessId函数

样本运行后,首先获取内核导出函数PsLookupByProcessId的内存地址,PsLookupByProcessId是一个内核函数,它的作用是通过进程ID号获取该进程的EPROCESS结构,获得了EPROCESS也就获得了整个进程最重要的数据结构。

在后面的章节中我们可以看到shellcode使用PsLookupByProcessId函数来获取SYSTEM进程的EPROCESS结构,从而达到提权的目的。 

图片2.png

首先获取未公开的函数ZwQuerySystemInfomation。

图片3.png获取ZwAllocateVirtualMemory内存函数地址,为后面提权操作分配tagWnd内存提供函数支持。

图片4.png图片5.png通过call函数获取当前运行环境的kernel的路径和名称, 并利用LoadLibrary函数加载内核库ntoskrnl.exe,成功加载内核库后获取到PsLookupByProcessId函数的内存地址。

图片6.png图片7.png

3、 CVE漏洞提权

样本通过创建线程的方式,实现完整的CVE漏洞提权,线程截图如下:

图片8.png

进入CVE漏洞提权线程后,首先创建一个Windows窗口。(CVE-2014-4113是一个内核漏洞,因为内核在处理窗口菜单消息时,使用了不正确的窗口句柄,调用了固定内存地址的代码,从而造成了系统的漏洞)

图片9.png因为调用的是固定内存地址位置的代码,所以我们需要在固定的内存地址位置分配内存页,在这个内存区域里准备tagWnd数据结构,并将shellcode写入到tagWnd数据结构中,初始化tagWnd结构数据。

图片10.png图片11.png

创建两级菜单,设置窗口HOOK函数,以便窗口在收到消息的时候可以执行pfnFilterProc替换默认的消息处理函数。

图片12.png图片13.png在HOOK回调函数中,更改该窗口的默认消息函数为dwNewLong。

图片14.png更改后的消息处理函数会销毁菜单,并且将消息处理函数返回值设置为-5(FFFFFFFB,这个数字是造成漏洞的重要原因,后面可以看到)

图片15.png

调用TrackPopupMenu模拟菜单事件,触发系统漏洞。在运行TrackPopupMenu之前,我们需要在Windbg工具界面针对内核态函数win32k!xxxMNFindWindowFromPoint下断点,win32k!xxxMNFindWindowFromPoint函数成功中断。 

图片16.png

通过下图可以看到整个的函数调用栈,从TrackPopupMenu函数进入内核,然后看到xxxMNFindWindowFromPoint的整个调用过程。

图片17.pngWin32k!xxxMNFindWindowFromPoint函数执行完毕,返回值为-5。

图片18.pngTrackPopupMenu产生的消息交给了窗口的默认消息函数,即回调函数dwNewLong。

图片19.png接下来代码返回到win32k!xxxHandleMenuMessages中,我们可以很清楚的看到,xxxMNFindWindowFromPoint的合法的返回值(tagWnd结构指针)为非0值,-1和-5。现在-5被当成了合法的tagWnd句柄,我们可以继续往下执行了。在Win32k!xxxSendMessageTimeout函数中,shellcode得以成功执行。

图片20.png

此样本shellcode主要用于提权,通过上文中的PsLookupByProcessId内存函数获取SYSTEM进程的令牌,并修改当前进程的令牌,从而获取到SYSTEM权限。 

图片21.png

4、 创建具有SYSTEM权限的进程

样本通过SYSTEM权限创建子进程,以SYSTEM的权限从C&C端下载挖矿程序,在后台运行并进行挖矿行为操作。

图片22.png

NanSh0u组织活动IOCs

Hash

685f1cbd4af30a1d0c25f252d399a666  

c5c99988728c550282ae76270b649ea1  

70857e02d60c66e27a173f8f292774f1  

68862438fae4c937107999ff9d8ff709  

3ccb047b631ed6cab34ef11ccf43e47f  

1f9007fbf6a37781f7880c10fc57a277  

5899fde33dc7cf35477b998c714454eb  

1ad8d0594f9baffe332ccfefb25475df  

1873944ee02b9e68af2d4997da5e5426  

e6b9054759e4d2d10fcf42d47d9e9221  

1770c9bf4a41c5115425d76df052b6a2  

2d740789efd7f16bff42651ae69b0893

876e504b8ddb231d8eeaefa2b9e38093  

e27490ae6debe3be25794b4dcbaa8e24  

1f0606c722693c9307ebf524c53f3375  

19594b72fc16539a5122217e6e3bb116  

6dd0276e1f66f672e8c426c53b3125a5  

82e55177fa37a34dca1375d542c06ac0  

7c4b1ebba507bc2d0085278d28a899b2  

c06c3a79f70bfd5474bab8a13acdb87e  

8ca92722641c73758e5a762033e09b11  

9887d95973ac89c802571c2bbd346cbf  

252d1721335108cdc643d36c40d4eaf6  

b9161d07b4954d071ae0f26c81e56807  

3425fc4d60a7401c934c73a12a30742b  

93610bed2e15e2167a67c0e18fee7e08  

b79f7a7947cb7e9ea1f0d7648e765cee  

df4bacb064a4668e444fd67585ea1d82   

域名

lokiturtle.herominers.com

trtl.cnpool.cc

turtle.miner.rocks

trtl.pool.mine2gether.com

IP

102.165.51.80

102.165.51.106 

111.67.206.87 

112.85.42.158

114.115.164.211 

119.131.209.186 

107.173.21.146 

107.173.21.239

防护措施

1、不要轻易打开可疑文件,如电子邮件、可疑链接、可疑文档等等。 

2、及时安装系统补丁,使用最新版本的软件。 

3、安装杀毒软件,及时更新病毒库。 

# 样本分析 # 防护措施 # 挖矿木马 # Nansh0u
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者