0x00 木马概念

这篇主要讲的是木马的隐藏和发现技术。偏综述,没有具体的技术。

名词解释:

名词 解释
木马 隐藏在正常程序中的有特殊功能的恶意代码,如破坏删除文件、发送密码、记录键盘和攻击Dos等特殊功能的后门程序。
病毒 编制者在计算机程序中插入的破坏计算机功能或者数据的代码,能影响计算机使用,能自我复制的一组计算机指令或者程序代码。具有传播性、隐蔽性、感染性、潜伏性、可激发性、表现性或破坏性。

木马是病毒的一种,但并没有自我传播的能力,常用来当作后门。

0x01 木马的攻击原理

木马的运行机制是由木马程序和控制端程序共同组成的,采用C/S架构。

木马程序运行在被控端(目标靶机)上,作为服务端,为攻击者提供服务。

控制端程序运行在攻击机上,作为客户端。用来接受靶机所提供的服务,如屏幕快照、键盘记录、命令行交互界面。

在实际的应用场景中,可以理解为是多个服务端(肉鸡),受控于一个客户端(攻击者),多个服务端对一个客户提供不同的服务。

过程:

  1. 配置木马,设置木马信息反馈方式。
  2. 传播木马,将设置好的木马扩散传播。方法有:网站挂马、电子邮件传播。
  3. 运行木马,更具设置适时运行。
  4. 信息反馈,电子邮件是木马进行反馈的常用渠道。
  5. 建立连接。
  6. 远程控制。

0x02 隐藏技术

可分为三类:

  1. 加载时隐藏,也可理解为上传过程中的隐藏。
  2. 存储时隐藏,静态免杀。
  3. 运行时隐藏,动态免杀。

这里主要讲两种方法,分别是进程列表欺骗篡改系统中的动态链接库

进程列表欺骗主要是利用hook技术,在对特定的系统事件进行hook,当被hook的事件发生后,对该事件hook的程序就会第一时间,在系统响应之前作出响应,对结果进行了修改。

篡改系统中的动态连接库是改变计算机注册表中的键值对,一次来更改加载的动态链接库。

在之前的学习中,还有一种在windows下的隐藏技术,NTFS文件流

免杀实践:

之前曾经在一次实战中,通过veilpyjoiner实现免杀(细节问题还需优化,重在思想)。可见记一次小小的社工行动

0x03 发现技术:

  1. 查看隐藏文件及扩展名,是否存在多扩展命的进程。
  2. 检查系统文件是否都处在正常的系统文件夹中(如存在多个同名系统文件)。
  3. 查看端口占用情况。

通过工具的发现技术:

  1. Autoruns:查看自启动项,判断自启动程序中是否存在木马。
  2. 狙剑:找出使用hook修改过系统服务描述符表的函数。
  3. Fport:查看进程与端口。
  4. 检查注册表:常用knowDLLs缓存常用DLL,检查是否有新增或可疑的键值。

0x04 基于github的木马

github3.py库的学习

学习木马基于github的命令和控制,主要是对github API的学习,书中的部分代码无法运行,在参考github API的参考文档后,对代码进行调试运行,并将加密后的记录上传到仓库trojan下的data。

在熟练github API的运用之后,可以在丰富modules模块,为木马添加更多的功能。