木马技术

之前讲过几种网络攻击技术,攻击成功之后自然就要实现对目标主机的入侵,这个时候就需要借助木马来实现,对于web服务器可以借助webshell来进行远程控制,说木马这个东西吧,主要还是通过诱骗的形式进行安装的,然后在计算机中隐藏运行,并且木马是为了实施特殊功能,木马和病毒是不一样的,木马往往没有病毒的感染功能,主要功能是实现远程操控,木马具有伪装性,一开始的时候往往伪装成合法程序并诱惑用户执行,一般情况下,木马是具有窃密性的,比如盗QQ号要窃取QQ密码之类的,有的木马还会具有破坏性,破坏性针对的是第三方的计算机,比如前面说DDOS分布式拒绝服务攻击的时候说过一个代理端(也就是肉鸡),这些代理端往往在自身不知情的情况下就对某一个目标主机发起了攻击,这往往就是木马的功劳。

木马技术的演变,第一代主要是在unix系统下的,主要通过命令行来进行远程计算机的控制,比如我在连接这个网站后台Linux系统时使用的putty工具。第二代就不一样了,发展出了非常友好的图形化用户界面,而且也支持Windows操作系统了,但是这个时候防火墙出现了,于是木马进化到了第三代,第三代为了突破防火墙的拦截下了很大的功夫,比如端口反弹技术,实现从内网到外网的连接,有的还可以穿透硬件防火墙。第四代木马为了应付越来越高级的防火墙自然发展了更高的技术,比如通过线程插入技术,插入到系统进程或用户进程,这样在实现木马的时候就可以没有进程,网络连接也隐藏在了系统服务中。第五代木马就更高深了,使用了rootkit技术来隐藏自己,这样使用一般的系统工具就很难发现他们的存在,现在的灰鸽子木马就已经发展到这个阶段了。

下面来说说木马的连接方式,首先为了实现对远程计算机的控制,木马一般都使用了C/S架构,分为客户端和服务端,攻击者自己安装客户端,然后诱骗用户安装服务端

1. 端口反弹技术,一开始的时候,木马都是由客户端(攻击者)连接到服务端(肉鸡),但是现在的防火墙技术,尤其是硬件防火墙它是禁止你这样做的,你从内网连接到外网防火墙会认为这是一个正常连接,而你从外网连接到内网,防火墙就给你屏蔽掉了,所以从第三代木马技术之后,木马的服务端程序都是主动对外网发送连接请求,也就是肉鸡主动连接攻击者,这也就是说反弹式木马是服务端发送请求,然后客户端被动连接。如果说根据客户端的IP是静态的还是动态的,反弹端口连接还可以分为两种形式:

a) 第一种形式就是,攻击者的IP是一个公网静态IP并且网络端口都被设置好了是一个固定的端口,这样木马就可以根据之前约定好的IP和端口直接连回客户端程序

b) 第二种形式就是,木马服务端主动连接动态IP地址的木马客户端,在这种技术中攻击者未避免自己被发现,往往会通过跳板计算机来控制被入侵的计算机。攻击者在跳板计算机中安装木马客户端程序,为了使木马的服务端可以连接到这个使用动态IP的客户端,攻击者往往会利用一个已经被其控制的代理服务器,然后这个代理服务器来保存跳板计算机的IP地址和待连接的端口,木马的服务端在每一次连接的时候都先连接到这个代理服务器来获取IP和端口,然后再与客户端进行连接。

下面再来说说木马一般是怎么隐藏自己的

1. 线程插入,首先说明一点在一个进程中可以包含多个线程,并且这些线程一般是相互独立的,一个发生了错误一般不会影响到另一个。线程插入技术就是把木马程序来插入到一个其他应用程序的地址空间,这个进程对于系统来说是一个正常的程序,这样就不会有木马进程的存在,也就相当于隐藏了木马的进程

2. DLL动态劫持,DLL动态劫持就是让程序加载非系统目录下的DLL文件。Windows系统由一个特性就是强制操作系统中的应用程序先从自己所在的目录中加载模块,所以应用程序在加载模块的时候会首先搜索自己目录下的dll,如果攻击者构造一个与原dll重名的dll然后覆盖回去,就有机会让应用程序去加载这个dll,往往攻击者会在这个dll中加入一个远程控制功能,并且使用有高权限的应用程序去加载这个dll,然后利用这个新的dll实现远程控制

3. Rootkit技术,rootkit是一种内核隐藏技术,使用这种技术可以使恶意程序逃避系统标准管理程序的查找,早期的rootkit技术是通过修改内存中系统文件的镜像来逃避检测的,这一类rootkit往往使用HOCK技术或者修改系统服务派发表,现在主流的rootkit技术是通过内核态来实现的,比如直接内核对象操作技术(DKOM),通过动态修改系统中的内核数据结构来逃避安全软件的检测,由于这些数据结构可以随着系统的运行不断变化,因此非常难以检测,所以这种方式往往可以逃避大多数安全软件的查杀,但是由于在内核态实现,所以这种木马的兼容性较差

 首发于我的个人网站: 点击打开链接

你可能感兴趣的:(木马技术)