转自个人博客:super.j的博客
0x00 木马概念
这篇主要讲的是木马的隐藏和发现技术。偏综述,没有具体的技术。
名词解释:
名词 | 解释 |
---|---|
木马 | 隐藏在正常程序中的有特殊功能的恶意代码,如破坏删除文件、发送密码、记录键盘和攻击Dos等特殊功能的后门程序。 |
病毒 | 编制者在计算机程序中插入的破坏计算机功能或者数据的代码,能影响计算机使用,能自我复制的一组计算机指令或者程序代码。具有传播性、隐蔽性、感染性、潜伏性、可激发性、表现性或破坏性。 |
木马是病毒的一种,但并没有自我传播的能力,常用来当作后门。
0x01 木马的攻击原理
木马的运行机制是由木马程序和控制端程序共同组成的,采用C/S架构。
木马程序运行在被控端(目标靶机)上,作为服务端,为攻击者提供服务。
控制端程序运行在攻击机上,作为客户端。用来接受靶机所提供的服务,如屏幕快照、键盘记录、命令行交互界面。
在实际的应用场景中,可以理解为是多个服务端(肉鸡),受控于一个客户端(攻击者),多个服务端对一个客户提供不同的服务。
过程:
- 配置木马,设置木马信息反馈方式。
- 传播木马,将设置好的木马扩散传播。方法有:网站挂马、电子邮件传播。
- 运行木马,更具设置适时运行。
- 信息反馈,电子邮件是木马进行反馈的常用渠道。
- 建立连接。
- 远程控制。
0x02 隐藏技术
可分为三类:
- 加载时隐藏,也可理解为上传过程中的隐藏。
- 存储时隐藏,静态免杀。
- 运行时隐藏,动态免杀。
这里主要讲两种方法,分别是进程列表欺骗和篡改系统中的动态链接库。
进程列表欺骗主要是利用hook技术,在对特定的系统事件进行hook,当被hook的事件发生后,对该事件hook的程序就会第一时间,在系统响应之前作出响应,对结果进行了修改。
篡改系统中的动态连接库是改变计算机注册表中的键值对,一次来更改加载的动态链接库。
在之前的学习中,还有一种在windows下的隐藏技术,
NTFS文件流
。
免杀实践:
之前曾经在一次实战中,通过veil
和pyjoiner
实现免杀(细节问题还需优化,重在思想)。可见记一次小小的社工行动。
0x03 发现技术:
- 查看隐藏文件及扩展名,是否存在多扩展命的进程。
- 检查系统文件是否都处在正常的系统文件夹中(如存在多个同名系统文件)。
- 查看端口占用情况。
通过工具的发现技术:
- Autoruns:查看自启动项,判断自启动程序中是否存在木马。
- 狙剑:找出使用hook修改过系统服务描述符表的函数。
- Fport:查看进程与端口。
- 检查注册表:常用knowDLLs缓存常用DLL,检查是否有新增或可疑的键值。
0x04 基于github的木马
github3.py库的学习
学习木马基于github的命令和控制,主要是对github API的学习,书中的部分代码无法运行,在参考github API的参考文档后,对代码进行调试运行,并将加密后的记录上传到仓库trojan下的data。
在熟练github API的运用之后,可以在丰富modules模块,为木马添加更多的功能。