内容简介:前言
作者: Chu@0KEE Team
前言
Black Hat USA 2017上@professor__plum分享了几款常见 RAT ( Xtreme 、 PlugX 、 Gh0st )中存在的漏洞,利用这些漏洞可以反向攻击C&C Server,这里以PlugX RAT为例进行漏洞分析。
1.漏洞分析
1.1 Delphi
PlugX RAT由 Delphi 语言开发,直接使用IDA对其分析会因缺少符号表导致系统库函数无法识别,分析起来非常不方便。可以使用IDR加载bin文件,导出IDC脚本供IDA使用,如下:
逆向Delphi程序时还需要注意的一点就是传参方式,Delphi中默认的传参方式是前3个参数通过寄存器 eax 、 edx 、 ecx 传递,其余参数通过堆栈传递,如上图中ShowMessage、MoveMemory的调用。
1.2 漏洞分析
漏洞出现在Server与Client的通信中:
Server在接收到客户端的请求包后首先对包头进行解析,而后将整个包完整地拷贝到栈上(0x00549D51 MoveMemory),典型的栈溢出。有趣的是,在内存拷贝操作的之后开发者再一次对包进行解析(0x00549D93, DecodePacket_),在其中判断包的大小并且如果数据过大会进行弹框提示:
但此时上层栈帧已被破坏,再做检查为时已晚。
2.漏洞利用
2.1 加解密函数
目前市面的PlugX RAT大概有3个版本,对此漏洞而言区别主要在于它们对流量加解密方式的不同:
以Type I为例可编写如下加解密函数:
2.2 保护机制的绕过
No GS、NO PIE,只需要考虑DEP,而程序中存在丰富的Gadgets,例如CreateProcess、WinExec、VirtualAlloc、VirtualProtect 等,这使得通过ROP绕过DEP变得十分简单。
基于VirtualProtect可编写如下ROP:
2.3 利用
样本、IDB及完整的exploit可从这里下载: http://git.sh3ll.me/chu/bh17-plugx-stack-overflow
3.参考
本文由 安全客 原创发布,如需转载请注明来源及本文地址。
本文地址:http://bobao.360.cn/learning/detail/4365.html
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 【技术分享】针对AIX系统的渗透测试技巧分享
- PouchContainer技术分享体会
- 技术分享:Hadoop框架
- GDD 2018 上海 技术分享
- 技术分享:手机推送原理剖析指南
- 子弹短信内部技术分享:Redis
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
高性能JavaScript
【美】Nicholas C. Zakas(尼古拉斯.泽卡斯) / 丁琛 / 电子工业出版社 / 2015-8-1 / 65
如果你使用 JavaScript 构建交互丰富的 Web 应用,那么 JavaScript 代码可能是造成你的Web应用速度变慢的主要原因。《高性能JavaScript》揭示的技术和策略能帮助你在开发过程中消除性能瓶颈。你将会了解如何提升各方面的性能,包括代码的加载、运行、DOM 交互、页面生存周期等。雅虎的前端工程师 Nicholas C. Zakas 和其他五位 JavaScript 专家介绍......一起来看看 《高性能JavaScript》 这本书的介绍吧!
URL 编码/解码
URL 编码/解码
UNIX 时间戳转换
UNIX 时间戳转换