2018-2019-2 网络对抗技术 20162329 Exp3 免杀原理与实践

本文介绍如何利用多种技术手段实现恶意代码的免杀,包括使用msfvenom生成不同类型的文件、veil-evasion的安装使用、加壳工具的应用及shellcode编程等方法,并通过实测验证效果。

免杀原理与实践

一、基础问题回答

1.杀软是如何检测出恶意代码的?

  • 基于特征码的恶意软件检测:简单来说特征码就是一串代码段,只是由于这一串代码段可以表明某个软件或程序具有恶意功能(当然一般正常的程序是不会携带该代码段的),所以被杀软所记录保存在其数据库中(病毒库),每当机器需要运行或安装某程序或软件的时候杀软就会对程序或软件与病毒库中信息进行比对,如果发现特征码段就认定该程序为恶意软件。
  • 启发式恶意软件检测:在安装和运行开始都没有检测出某软件为恶意的,但在该软件提供服务的过程中出现恶意行为(如:连接恶意网站、开放端口、修改系统文件等),杀软就会提醒用户,认为该软件可能是恶意软件。
  • 基于行为的恶意软件检测:在程序运行期间杀软会对程序的行为进行记录,并保存在某个日志文件中,且不定期的检查该日志文件,如果查到有异常行为,就认定该软件可能为恶意软件。

2.免杀是做什么?

  • 简单来说免杀就是使用各种特殊手段改变程序的基本状态,使得一个原本能被杀软检测并杀掉的恶意软件能不被杀软所检测到,以达到渗透的目的。

3.免杀的基本方法有哪些?

  • 改变特征码:
    • 只有可执行文件——加壳处理(压缩壳、加密壳)
    • 有shellcode——使用编码器进行重新编码
    • 有源代码——更换语言重写源码
  • 改变行为
    • 通讯方式
      • 尽量使用反弹式连接
      • 使用隧道技
      • 加密通讯数据
    • 操作模式
      • 基于内存操作
      • 加入正常功能代码

二、实验内容

1. 正确使用msf编码器

使用msfvenom加基本反弹链接载荷生成exe文件:
1065476-20190329213640738-339528906.png

使用VirusTotal扫描结果如下:
1065476-20190329213646751-426005343.png

在原命令中加-e使用编码器加-i对进行多次编码后生成exe文件:
1065476-20190329213656434-1498445748.png

使用VirusTotal扫描结果如下:
1065476-20190329213701719-787075492.png

2. msfvenom生成如jar之类的其他文件

使用msfvenom生成jar文件:
1065476-20190329213706396-1824019416.png

使用VirusTotal扫描结果如下:
1065476-20190329213710750-1621852250.png

3. veil-evasion安装和使用

Veil-Evasion是用其他语言如c,c#,phython,ruby,go,powershell
等重写了
meterperter
,然后再通过不同方式编译成exe,共性特征比较少,并且在生成可执行文件时还会给出源码。但是kali默认并没有安装该软件需要手动安装一下。

执行

apt-get install veil

就可以安装了,如果不行的话尝试换一下软件源或者更新一下软件源。

安装还是比较漫长的,安装好后输入veil命令进入软件界面
1065476-20190329213716139-1497830436.png

输入use Evasion进入Veil-Evasion
1065476-20190329213720261-694874404.png

输入list可以看到所有可用模块
1065476-20190329213724229-503847429.png

我们可以找一找自己想要使用的模块,使用use + 编号就可以选中该模块了,我选中的是7号模块,也就是Windows反弹链接tcp的模块,模块默认信息如下图:
1065476-20190329213729035-805522636.png

使用set命令对其进行配置
1065476-20190329213732612-41322884.png

使用option命令查看配置
1065476-20190329213736060-1175721605.png

使用generate命令准备生成文件,输入输出文件名
1065476-20190329213743221-127781787.png

在如图所示目录中找到exe文件并上传检测如下图:
1065476-20190329213747566-1883410375.png

4. 加壳工具

使用upx给原程序添加压缩壳
1065476-20190329213751304-1970889400.png

检测如下:
1065476-20190329213758399-52599947.png

使用Hyperion加密壳工具加壳

注:该程序需要将待加壳可执行文件拷贝到该程序目录中即/usr/share/windows-binaries/hyperion/
再执行wine hyperion.exe -v XXX.exe XXX.exe才可执行

结果如下:
1065476-20190329213805334-509449541.png

1065476-20190329213810918-1594467162.png

5. 使用shellcode编程

使用msfvenom生成反弹链接模块的c语言代码如下:
1065476-20190329213816192-1111988216.png

然后使用vim编辑器,编写C语言代码
# include <stdio.h>

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();
}

使用交叉编译工具生成可执行文件并检测:
1065476-20190329213824040-1244722040.png

1065476-20190329213827886-669690145.png

6.总结

下图是我本机的杀软-->腾讯电脑管家检测结果,我把检测到病毒的都信任了
1065476-20190329213834656-1464845071.png

所以说腾讯电脑管家还是不太行。

三、异主机实测

我把在我的主机上未检测出威胁的程序拷贝给实验室的另外一个同学,让他帮忙测试———很不幸,被他的360成功截获:
1065476-20190329213856078-142292973.png

我让他在杀软中对该软件添加信任,然后实测回连——成功:
1065476-20190329213906188-1864081872.png

可是当我想要再获取他的其他信息,比如摄像头,最高权限时他的360都会发出警告。

四、总结与体会

本实验通过让我们了解杀软的运作过程,让我们实践去做出可以防止杀软查杀的木马程序,这让我们知道了,杀软是不可能完全保护我们的电脑的,所以还是要注意上网安全,不随意下载未知软件。

转载于:https://www.cnblogs.com/Zhangxusheng/p/10623696.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值