恒心未抿 发表于 2018-6-4 15:11:41

一起由弱口令引发的入侵惨案

传说中,每个月黑风高夜,都是入侵搞事时。




01事件溯源

网站管理员小A又轮到今天值晚班,网站运行得好好的,各项数据指标正常,看来又是一夜无事。为了打发时间,他拿出手机开始“吃鸡”。




https://pic1.zhimg.com/v2-58e2b3f50a4c7eecf4af070582693f66_b.jpg






在被花式秀了好多次,尝试了包括被车轧死、队友发疯打死、毒死、误伤炸死、被徒手打死等等稀奇古怪的死法之后,小A放弃了“吃一把鸡”就不玩了的想法。眼下只有明暗不定的显示器陪着他,就连枯燥的进程都比游戏有意思。




https://pic3.zhimg.com/v2-1813b1f82f05a023369544f55eb0b4b5_b.jpg






看起来很正常。

嗯?再看一眼……

很...正常?

这个tomcat进程下启动的是个什么鬼?!

赶紧去tomcat目录下瞅瞅




https://pic1.zhimg.com/v2-aa0fcafd3d719b8fc5cb011239d9969b_b.jpg






喵喵喵?

这四个.war的包都是病毒?

小A顿时来了斗志,大半夜的终于找到了一件比苟到最后吃鸡更有意思的事情。

他迅速调出日志进行分析,由于这四个包的修改时间有两个时间点,分别是2018-01-29与2018-02-06,因此他特别仔细地查看tomcat日志的这两个时间点,均发现了入侵痕迹,且均通过tomcat弱口令进入tomcat管理部署webshell。

到底谁设了一个这么简单的口令!!!




https://pic2.zhimg.com/v2-02e512d2dcdefa854de71da34f4fa9ba_b.jpg






根据日志行为来看,小A推测入侵主机的黑客有两拨,第一拨2018-01-29入侵虽然成功,但未做过多危害性动作;而第二次入侵后则上传了病毒下载器,接着运行下载器下载病毒最后释放病毒控制服务器。




https://pic3.zhimg.com/v2-5fbedc6a9755e3d0eb694e253a9b38fe_b.jpg
1月29日的日志


https://pic4.zhimg.com/v2-1db37213dbf52750bf8d90aaa715518c_b.jpg
2月6日的日志





到这里,小A已经搞明白发生什么事儿了。

02病毒分析

再回到最初的起点……对不起走错片场了,让我们回到最开始的地方,tomcat的进程树。

https://pic3.zhimg.com/v2-1813b1f82f05a023369544f55eb0b4b5_b.jpg






下面的几个异常进程无疑都是病毒搞的鬼,小A决定把病毒本身也分析一波。经过初步判断,小A得到了关于这个病毒的这些基本信息。

https://pic1.zhimg.com/v2-07b368b6d227c4994df27d35ac54c1a4_b.jpg






OD载入,往下翻一翻就看到了GetModuleHandleA函数,0042F4CF为WinMain函数,之前都是初始化。

https://pic1.zhimg.com/v2-b93083d57381fe842d5478c0dbdee314_b.jpg






进入到WinMain后,发现其只在0042E339处调用了一个函数,传入参数为字符串“PluginMe”及其指针。

https://pic3.zhimg.com/v2-81be2266250e41e0d01179612667039b_b.jpg






跟进去42E339处调用的0042E2CB函数。

https://pic3.zhimg.com/v2-81be2266250e41e0d01179612667039b_b.jpg



https://pic2.zhimg.com/v2-3f2c79a48f70aeb3ae38f9f65fd049b8_b.jpg






Python解密伪代码如下:

https://pic4.zhimg.com/v2-1fec305ef3732de7791b2c0d954f7f46_b.jpg






解密后发现该块内存是PE文件的映射。

https://pic2.zhimg.com/v2-5bfd8fcb711d35bc1d54ab5d6efde25f_b.jpg






函数返回后看下一个函数,继续传入了内存pe映射的起始地址,应该会是相关操作

https://pic2.zhimg.com/v2-adc8e3b160551b8be48a533c8bc91daf_b.jpg






跟进去分析,发现是Library显示加载kernel。dll获取其函数HeapAlloc、VirtualAlloc、GetProcessHeap,再校验了401080处内存是否为DOS头的magic(MZ)和NT头的signature(PE),最后调用VirtualAlloc申请内存空间

https://pic2.zhimg.com/v2-38056e6a0ee618a9b66e127d4530f959_b.jpg



https://pic4.zhimg.com/v2-a3f96cd8feb024a406ac01ab4b72c271_b.jpg






RtlAllocateHeap别名为AllocHeap,返回值为一个指向所分配内存块的首地址的指针,即eax=0x163A40,其余剩下代码均是申请内存以及将pe映射复制到0x10000000内存地址块以及加载库函数(篇幅有限,这里就略去不表了)。

重点关注0042E300处call eax,此处是进入0x10000000内存块的调用。

https://pic3.zhimg.com/v2-0acb21b3c5cabe6e296e19824d86cbfb_b.jpg






获取系统目录后,调用10023ED0函数,参数为

0x10002224(KLMN)


0x100268D4(值为0)
读取完病毒文件最后0x400字节放入地址0x393FE0后,”KLMN”,0x,0x400,0x10002224,393FE0调用10013A00,函数在读取的文件最后0x400个字节中寻找字符串”KLMN”,没找到就退出。

https://pic3.zhimg.com/v2-f526fea74fd7058a95ae3495c792fbb0_b.jpg






在偏移量为0x358处找到了字符串KLMN,并返回其偏移量,之后加上malloc到的0x400的内存地址基址0x393FE0,暂且称之为跳转控制内存块。

https://pic3.zhimg.com/v2-f6aec9fc75e3ae20244ba29cde4fcaba_b.jpg






跳转控制内存块解密伪代码如下:

https://pic1.zhimg.com/v2-33c7e94e6705e0f94ac920405d6009e8_b.jpg






接着搜索OPQR,得到字符OPQRI,然后判断U是否在OPQRI中。不在,则判断I是否在OPQRI中;在,则在跳转控制内存块中搜索得到

EFGHk3J1dGdmL4hram1sf36BL6OChU8=
经过函数10002488解密后得到字符串

”Defghi Klmnopqr Tuv”
接着搜索GHIJ得到

GHIJk3J1dGdmL4hram1sf36BL6OChYR3dm5xL5NydXRP
解密得到字符串

Defghi Klmnopqr Tuvwxyab Defg
接着搜索IJKL,得到字符串

IJKLk3J1dGdmaWgvim1sf36BgIOCL6R3dm5xcHMvlXRnZmloa2ovjH9+Tw==
解密得到字符串

Defghijk Mnopqrstu Wxyabcd Fghijklm Opq
接着调用10015401

https://pic1.zhimg.com/v2-89874db4b3cf2ef5544190a6bc07a52d_b.jpg






在其内部调用了1000E320函数搜索字符串“EFGH”得到密文解密为

Defghi Klmnopqr Tuv
接着判断通过注册表判断服务HKLM\SYSTEM\CurrentControlSet\Services\Defghi Klmnopqr Tuv是否存在。




https://pic3.zhimg.com/v2-3f73fad7763505dba5cb85a5ddd36691_b.jpg






若不存在则获取文件名,对比系统目录,复制文件放置系统目录,随机函数10014A30生成文件名,10015013,获取文件路径名,对比系统目录,复制文件放置系统目录。

然后再openSCManagerA打开服务控制管理器,未成功打开则退出,安装服务,更改服务为SERVICE_KERNEL_DRIVER驱动模式;

若不成功则使用

SERVICE_FILE_SYSTEM_DRIVER文件
系统驱动模式,打开服务,创建进程cmd.exe >nul 然后退出。

若是服务进程走到此处时则

StartServiceCtrlDispatch
启动服务入口点函数10014B9E,主线程死循环。

经过RegisterServiceCtrlHandler分发处理函数后,DNS请求硬编码地址,连接tcp远控服务器。




https://pic3.zhimg.com/v2-b7880a4631af73340b0b7cbc3ac5e283_b.jpg



https://pic3.zhimg.com/v2-ddf63bdd4524d448ff56ab17a4d0d969_b.jpg



https://pic4.zhimg.com/v2-519d90da92941a5c740f835d14cdba6f_b.jpg






连接上黑客远控服务器进行通信,基本上就可以为所欲为了,来,成语接龙,为所欲为!

其他还有一些条件跳转区域:如复制到共享盘、添加到菜单启动栏等

https://pic2.zhimg.com/v2-f725b6d074dc00f3ff52d8bd8882d25f_b.jpg









https://pic3.zhimg.com/v2-9b4935694947724d606f0c45fa5bfe13_b.jpg






根据分析的结果,小A最后给病毒画了一张流程图

https://pic4.zhimg.com/v2-f541302dce64e6482a626f173fbd4f7c_b.jpg









03善后处理

正经的分析溯源结束了,天也快亮了。小A揉了揉有点酸涩的眼睛,看了一下时间,再过一个小时他就可以交班了。

在交班前,他还有一些事情要做,比如把病毒清理掉

清理进程

关闭病毒服务(Defghi Klmnopqr Tuv)所运行的进程

清理注册表

随机种子

HKLM\SOFTWARE\Microsoft\Cryptography\RNG\Seed
感染机器标签

HKLM\System\CurrentControlSet\Services\BITS\KLMNb1c78b6da61914d53f8325069260be59
病毒服务注册表项

HKLM\System\CurrentControlSet\Services\Defghi Klmnopqr Tuv\
或者

HKLM\System\CurrentControlSet001\Services\Defghi Klmnopqr Tuv\
文件清理

删除C:\Windows\目录下2016/08/17时间生成的病毒(注意确定为病毒再删除),文件名为随机字母

服务清理

清理服务Defghi Klmnopqr Tuv

事情的起因竟然只是Tomcat使用了弱口令,并且还给了Administrator的权限。小A随手重新换了一个复杂无比的密码,并且降低了Tomcat的权限。他暗自决定,如果找出谁起的弱口令,就宰他一星期的晚饭!

当然小A不知道的是,如果装一个服务器安全狗,这些都是能直接删除的!




https://pic2.zhimg.com/v2-3c87a4fa3b9324eb27585a7a3edfada6_b.jpg









*本文由安全狗旗下的海青安全研究实验室原创,转载请联系授权





页: [1]
查看完整版本: 一起由弱口令引发的入侵惨案