主页 > 网络知识 > 从防护角度看一句话木马的发展变形(2)

从防护角度看一句话木马的发展变形(2)

 

image.png

2.1.4JSP一句话连接流量检测

 

这种比较短的请求就不太好检测了,一般思路就是按照流量来检测,写规则基本也是把常见的工具都遍历一遍,然后找找规律,包括参数名,参数值等。

2.2冰蝎连接

由于Cknife菜刀的明文传输可以被检测到,有高手写了一个加密的一句话工具冰蝎。作者在先知社区对冰蝎的原理作了详细的讲解,我觉得最有意思的是这个一句话木马做到了java语言真正的一句话。

 

image.png

提交给被控端的数据先做解密,解密后的数据作为class文件的字节码,通过自定义classloader的get方法,调用父类defineclass方法动态生成一个类,然后调用其重载的equals函数执行命令。还有一些细节作者也有讲,比如父类defineclass方法是protect属性,正好子类可以直接调用,继承父类classloader还可以避免不同的classloader找不到相关类。重载的equals函数接受pagecontext参数,可以调用页面的参数并设置应答内容。

 

 

image.png

对于php和asp,aspx作者也使用类似的手法做了加密和变形,这些跟菜刀/Cknife的原理都不一样了,思路非常值得学习,但是流量就很难检测了:-(。

 

三、二进制一句话木马

起因是看到github上面开源了一个poison ivy的RAT,是国内作者重写的名为poison ivy reload的项目,注释比较完整。这个大名鼎鼎的远控思路跟菜刀是一致的,命令通过shellcode传输,由于shellcode不需要重定位代码,直接分配内存就可以执行命令了,并且不仅命令是shellcode,木马本身就是shellcode。据说今年hw的第一天,就有攻击队钓鱼用的就是这个远控。

3.1poison ivy reload

控制端在Client文件夹,被控端在loader文件夹。先看被控端:

3.1.1被控端

相关配置文件和函数地址定义在global_data_t这个结构,使用到宏指令生成了非常紧凑的结构。下面是生成客户端的配置,包括配置连接方式、启动项、连接密码等。

 

image.png

 

下面是api地址,需要在加载后重新计算偏移后进行修复

 

image.png

loader_main是主要的入口,初始化global_config配置,然后根据配置主动外联控制端,首先是发包,做一个17字节的头部发送给控制端上线

 

 

image.png

然后rc4加密后发送出去,等待接收shellcode命令,收到数据后,进行rc4解密,然后分配内存,解压缩并拷贝数据到这块内存,执行代码。

 

 

image.png

木马有2种启动方式,本进程启动或者远程注入到ie启动。

 

 

image.png

 

可选的启动项:

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!