# ๐ก๏ธ MCP Kali Server
<div align="center">
**AI ๊ธฐ๋ฐ ๊ณต๊ฒฉ์ ๋ณด์ ๋๊ตฌํท**
Model Context Protocol์ ํตํด AI ์ด์์คํดํธ๋ฅผ 55๊ฐ ์ด์์ Kali Linux ๋ณด์ ๋๊ตฌ์ ์ฐ๊ฒฐํ์ธ์
[](https://opensource.org/licenses/MIT)
[](https://www.python.org/downloads/)
[](#-docker-๋ฐฐํฌ)
[](KALI_TOOLS_INSTALLATION.md)
[](#-์ง์๋๋-ctf-์นดํ
๊ณ ๋ฆฌ)
[๊ธฐ๋ฅ](#-๊ธฐ๋ฅ) โข [๋น ๋ฅธ ์์](#-๋น ๋ฅธ-์์) โข [๋ฌธ์](#-๋ฌธ์) โข [์ํคํ
์ฒ](#-์ํคํ
์ฒ) โข [๋ฒ์ ๊ณ ์ง](#%EF%B8%8F-๋ฒ์ -๊ณ ์ง)
**์ธ์ด**: [English](README.md) | **ํ๊ตญ์ด**
</div>
---
## ๐ ๊ฐ์
**MCP Kali Server**๋ Kali Linux์ ์ ๋ฌธ์ ์ธ ์นจํฌ ํ
์คํธ ๋ฐ CTF ๋ฌธ์ ํด๊ฒฐ ๋๊ตฌ์ ์ํํ๊ฒ ์ ๊ทผํ ์ ์๊ฒ ํ์ฌ AI ์ด์์คํดํธ๋ฅผ ๊ฐ๋ ฅํ ๊ณต๊ฒฉ์ ๋ณด์ ๋๋ฐ์๋ก ๋ณํํฉ๋๋ค.
**Model Context Protocol (MCP)**์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ ์ด ์๋ฒ๋ Claude, ChatGPT ๋ฑ์ AI ์ด์์คํดํธ๊ฐ ๋ณต์กํ ๋ณด์ ์ํฌํ๋ก์ฐ๋ฅผ ์กฐ์จํ๊ณ , CTF ์ฑ๋ฆฐ์ง ํด๊ฒฐ์ ์๋ํํ๋ฉฐ, ์์ฐ์ด๋ฅผ ํตํด ์ง๋ฅ์ ์ธ ์นจํฌ ํ
์คํธ๋ฅผ ์ํํ ์ ์๊ฒ ํฉ๋๋ค.
### ๐ฏ ๋ฌด์์ ํ ์ ์๋์?
```
์ฌ์ฉ์: "RSA ๋ฌธ์ ๊ฐ ์์ด์: n=12345..., e=65537. ๋ณตํธํํ ์ ์๋์?"
AI: *์๋์ผ๋ก FactorDB ์กฐํ โ RsaCtfTool ์คํ โ ์ํธ๋ฌธ ๋ณตํธํ โ ํ๋๊ทธ ์ถ์ถ*
"ํ๋๊ทธ ๋ฐ๊ฒฌ: CTF{...}"
```
```
์ฌ์ฉ์: "์ด ์น ์ฑ์ ์ทจ์ฝ์ ์ ์ค์บํด์ฃผ์ธ์: http://target.com"
AI: *nmap ์คํ โ gobuster โ nikto โ sqlmap โ ์ข
ํฉ ๋ณด์ ๋ณด๊ณ ์ ์ ๊ณต*
```
---
## โจ ๊ธฐ๋ฅ
### ๐ **7๊ฐ ์ฃผ์ CTF ์นดํ
๊ณ ๋ฆฌ ์ง์**
<table>
<tr>
<td width="50%">
**๐ Pwnable** (80% ์ปค๋ฒ๋ฆฌ์ง)
- ๋ฒํผ ์ค๋ฒํ๋ก์ฐ ์ต์คํ๋ก์
- ROP ์ฒด์ธ ๊ตฌ์ถ
- ํฌ๋งท ์คํธ๋ง ๊ณต๊ฒฉ
- ํ ์ต์คํ๋ก์
- ๋๊ตฌ: `checksec`, `ROPgadget`, `pwntools`, `radare2`
**๐ ์ํธํ** (50-80% ์ปค๋ฒ๋ฆฌ์ง)
- RSA ๊ณต๊ฒฉ (์ธ์๋ถํด, Wiener, Hastad)
- ํด์ ํฌ๋ํน (MD5, SHA, bcrypt)
- ์ํ์ ์ํธ ๋ถ์
- ๋๊ตฌ: `hashcat`, `RsaCtfTool`, `SageMath`, `john`
**๐ ํฌ๋ ์** (43-70% ์ปค๋ฒ๋ฆฌ์ง)
- **์๋ํ๋ ๋ฉ๋ชจ๋ฆฌ ๋ถ์** (Volatility ์ํฌํ๋ก์ฐ)
- **์๋ํ๋ ๋์คํฌ ํฌ๋ ์** (SleuthKit ์ํฌํ๋ก์ฐ)
- **์๋ํ๋ ๋ฉ์จ์ด ํํ
** (YARA + IOC ์ถ์ถ)
- ๋ฉ๋ชจ๋ฆฌ ๋คํ ๋ถ์ ๋ฐ ์คํ
๊ฐ๋
ธ๊ทธ๋ํผ ํ์ง
- ํ์ผ ์นด๋น ๋ฐ ๋ณต๊ตฌ
- ๋๊ตฌ: `Volatility3`, `SleuthKit`, `YARA`, `binwalk`, `steghide`, `foremost`
**๐ ์น ๋ณด์** (90% ์ปค๋ฒ๋ฆฌ์ง)
- SQL ์ธ์ ์
ํ
์คํธ
- ๋๋ ํฐ๋ฆฌ ์ด๊ฑฐ
- ์ทจ์ฝ์ ์ค์บ
- ๋๊ตฌ: `sqlmap`, `gobuster`, `nikto`, `wpscan`
</td>
<td width="50%">
**โ๏ธ ํด๋ผ์ฐ๋ ๋ณด์** (52-85% ์ปค๋ฒ๋ฆฌ์ง)
- AWS/GCP/Azure ์ด๊ฑฐ
- S3 ๋ฒํท ์ค์บ
- IAM ๊ถํ ์์น
- ๋๊ตฌ: `aws-cli`, `pacu`, `s3scanner`
**โ๏ธ Web3 & ๋ธ๋ก์ฒด์ธ** (40-75% ์ปค๋ฒ๋ฆฌ์ง)
- ์ค๋งํธ ์ปจํธ๋ํธ ๋ถ์
- ์ฌ์ง์
๊ณต๊ฒฉ
- ์ ์ ์ค๋ฒํ๋ก์ฐ ํ์ง
- ๋๊ตฌ: `Slither`, `Mythril`, `web3.py`, `solc`
**๐ ๋ฆฌ๋ฒ์ฑ** (67% ์ปค๋ฒ๋ฆฌ์ง)
- ๋ฐ์ด๋๋ฆฌ ๋์ค์ด์
๋ธ๋ฆฌ
- ๋์ ๋ถ์
- ๋๋
ํ ํด์
- ๋๊ตฌ: `radare2`, `ltrace`, `strace`, `objdump`
</td>
</tr>
</table>
### ๐ ๏ธ **55๊ฐ ์ด์์ ์ ๋ฌธ ๋ณด์ ๋๊ตฌ**
- **๋คํธ์ํฌ ์ ์ฐฐ**: nmap, masscan, enum4linux
- **์น ํ
์คํธ**: gobuster, dirb, nikto, sqlmap, wpscan, ffuf
- **๋น๋ฐ๋ฒํธ ๊ณต๊ฒฉ**: hydra, john, hashcat
- **๋ฐ์ด๋๋ฆฌ ๋ถ์**: checksec, ROPgadget, radare2, pwntools, Ghidra
- **ํฌ๋ ์**: Volatility3, SleuthKit (mmls, fls, mactime), YARA, binwalk, foremost, steghide, exiftool, tesseract, md5deep
- **์ํธํ**: RsaCtfTool, SageMath, hashcat, openssl
- **ํด๋ผ์ฐ๋**: AWS CLI, Pacu, s3scanner, ScoutSuite
- **Web3**: Slither, Mythril, web3.py, solc, Ganache
- **์ต์คํ๋ก์**: metasploit, searchsploit
- **๊ทธ ์ธ ๋ค์...**
### ๐ค **AI ๊ธฐ๋ฐ ์๋ํ**
- **์๋ ์ทจ์ฝ์ ํ์ง**: AI๊ฐ ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋ถ์ํ๊ณ ์ต์คํ๋ก์ ๊ฐ๋ฅํ ์ฝ์ ์๋ณ
- **๋ค๋จ๊ณ ๊ณต๊ฒฉ ์ฒด์ธ**: ๋ณต์กํ ์ต์คํ๋ก์ ์ํฌํ๋ก์ฐ ์กฐ์จ
- **์๋ํ๋ ํฌ๋ ์ ์ํฌํ๋ก์ฐ**: ๋ค๋จ๊ณ ๋ฉ๋ชจ๋ฆฌ ๋ถ์, ๋์คํฌ ํฌ๋ ์, ๋ฉ์จ์ด ํํ
- **์ธ์
๊ด๋ฆฌ**: ๋ค๋จ๊ณ ๋ถ์์ ์ํ ์๊ตฌ ์์
๊ณต๊ฐ
- **๋ํํ ์
ธ**: ์คํ ์ค์ธ ์ต์คํ๋ก์๊ณผ ์๋ฐฉํฅ ํต์
- **์ง๋ฅ์ ๋๊ตฌ ์ ํ**: AI๊ฐ ์ปจํ
์คํธ์ ๋ฐ๋ผ ์ ์ ํ ๋๊ตฌ ์ ํ
### ๐ **์ข
ํฉ ๊ฐ์ด๋**
- **์ํฌํ๋ก์ฐ ํ๋กฌํํธ**: ์ผ๋ฐ์ ์ธ CTF ์๋๋ฆฌ์ค๋ฅผ ์ํ ์ฌ์ ๊ตฌ์ถ ํ
ํ๋ฆฟ
- **๋ฌธ์ ํด๊ฒฐ ๊ฐ์ด๋**: ๊ฐ ์นดํ
๊ณ ๋ฆฌ๋ณ ์ฆ์ ์ฌ์ฉ ๊ฐ๋ฅํ ํ๋กฌํํธ
- **๋๊ตฌ ์ค์น**: Kali Linux์ฉ ์๋ํ๋ ์ค์ ์คํฌ๋ฆฝํธ
- **๋ชจ๋ฒ ์ฌ๋ก**: ๋ณด์ ํ
์คํธ ์ง์นจ ๋ฐ ์ค๋ฆฌ
---
## ๐ ๋น ๋ฅธ ์์
### ์ฌ์ ์๊ตฌ์ฌํญ
**์ต์
1: Docker (๊ถ์ฅ)** ๐ณ
- **Docker** ๋ฐ **Docker Compose** ์ค์น
- **MCP ์ง์ AI ์ด์์คํดํธ** (Claude Desktop, 5ire ๋ฑ)
**์ต์
2: ๋ค์ดํฐ๋ธ ์ค์น**
- **Kali Linux** (๋๋ ๋ณด์ ๋๊ตฌ๊ฐ ์ค์น๋ Linux)
- **Python 3.12+**
- **MCP ์ง์ AI ์ด์์คํดํธ** (Claude Desktop, 5ire ๋ฑ)
---
### ์ต์
1: Docker ์ค์น (๊ถ์ฅ) ๐ณ
**ํ ์ค ๋ช
๋ น์ด ์ค์ - ๋ชจ๋ ๋๊ตฌ ํฌํจ!**
**1. ํด๋ก ๋ฐ ์์**
```bash
git clone https://github.com/foxibu/CTF-Solver.git
cd CTF-Solver
docker-compose up -d
```
์ด๊ฒ ์ ๋ถ์
๋๋ค! ์๋ฒ๊ฐ ์ด์ `http://localhost:5000`์์ 55๊ฐ ์ด์์ ๋ณด์ ๋๊ตฌ๊ฐ ์ฌ์ ์ค์น๋ ์ํ๋ก ์คํ๋ฉ๋๋ค.
**2. MCP ํด๋ผ์ด์ธํธ ๊ตฌ์ฑ**
**Claude Desktop์ ๊ฒฝ์ฐ** (`~/.config/Claude/claude_desktop_config.json` ํธ์ง):
```json
{
"mcpServers": {
"kali_mcp": {
"command": "python3",
"args": [
"/์ ๋/๊ฒฝ๋ก/src/my_server/mcp_server.py",
"--server",
"http://localhost:5000/"
]
}
}
}
```
**3. CTF ๋ฌธ์ ํด๊ฒฐ ์์!** ๐
---
### ์ต์
2: ๋ค์ดํฐ๋ธ ์ค์น
**1. ์ ์ฅ์ ํด๋ก **
```bash
git clone https://github.com/foxibu/CTF-Solver.git
cd CTF-Solver
```
**2. ์์กด์ฑ ์ค์น**
```bash
pip install -e .
# ๋๋ ๋ ๋น ๋ฅธ ์ค์น๋ฅผ ์ํด uv ์ฌ์ฉ
uv pip install -e .
```
**3. ๋ณด์ ๋๊ตฌ ์ค์น** ([KALI_TOOLS_INSTALLATION.md](KALI_TOOLS_INSTALLATION.md) ์ฐธ์กฐ)
```bash
# ํ์ ๋๊ตฌ ๋น ๋ฅธ ์ค์น
sudo apt install -y nmap gobuster dirb nikto sqlmap wpscan hydra john \
checksec binwalk steghide volatility3 radare2
# ์์ ํ ์ค์ ์ ์ค์น ๊ฐ์ด๋ ์ฐธ์กฐ
```
**4. Kali ์๋ฒ ์์**
```bash
python3 kali_server.py
# ์๋ฒ๊ฐ http://0.0.0.0:5000 ์์ ์คํ๋ฉ๋๋ค
```
**5. MCP ํด๋ผ์ด์ธํธ ๊ตฌ์ฑ**
**Claude Desktop์ ๊ฒฝ์ฐ** (`~/.config/Claude/claude_desktop_config.json` ํธ์ง):
```json
{
"mcpServers": {
"kali_mcp": {
"command": "python3",
"args": [
"/์ ๋/๊ฒฝ๋ก/src/my_server/mcp_server.py",
"--server",
"http://KALI_IP:5000/"
]
}
}
}
```
**5ire Desktop์ ๊ฒฝ์ฐ**:
- ๋ช
๋ น์ด๋ก MCP ์๋ฒ ์ถ๊ฐ: `python3 /๊ฒฝ๋ก/src/my_server/mcp_server.py --server http://KALI_IP:5000`
**6. CTF ๋ฌธ์ ํด๊ฒฐ ์์!** ๐
---
## ๐๏ธ ์ํคํ
์ฒ
```
โโโโโโโโโโโโโโโโโโโโโโโ HTTP/JSON โโโโโโโโโโโโโโโโโโโโโโโ
โ MCP ํด๋ผ์ด์ธํธ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Kali Linux ์๋ฒ โ
โ (Claude Desktop, โ Port 5000 โ (Flask API) โ
โ 5ire ๋ฑ) โ โ โ
โ โ โ - ๋ช
๋ น ์คํ๊ธฐ โ
โ - FastMCP ์๋ฒ โ โ - ๋๊ตฌ ์๋ํฌ์ธํธ โ
โ - ๋๊ตฌ ์ ์ โ โ - ์ธ์
๊ด๋ฆฌ์ โ
โ - ์ํฌํ๋ก์ฐ ํ๋กฌํํธโ โ - ํ์์์ ํธ๋ค๋ฌ โ
โโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโ
Windows/Mac/Linux Kali Linux
```
### ๊ตฌ์ฑ ์์
**Kali ์๋ฒ** (`kali_server.py`)
- Flask HTTP API ์๋ฒ (ํฌํธ 5000)
- 73๊ฐ ์ด์์ ๋ณด์ ๋๊ตฌ ์๋ํฌ์ธํธ
- ๊ณ ๊ธ ํฌ๋ ์ ์๋ํ (๋ฉ๋ชจ๋ฆฌ, ๋์คํฌ, ๋ฉ์จ์ด)
- ์ธ์
๊ธฐ๋ฐ ์์
๊ณต๊ฐ
- ๋ํํ ์
ธ ๊ด๋ฆฌ
- ์ฐ์ํ ํ์์์ ์ฒ๋ฆฌ (๊ธฐ๋ณธ 180์ด)
**MCP ํด๋ผ์ด์ธํธ** (`src/my_server/mcp_server.py`)
- FastMCP ํ๋กํ ์ฝ ๊ตฌํ
- 55๊ฐ ์ด์์ MCP ๋๊ตฌ ๋ํผ
- AI ๊ฐ์ด๋ ์ํฌํ๋ก์ฐ ํ๋กฌํํธ
- ๋ฆฌ์์ค (์๋ฒ ์ํ, ์๋๋ฆฌ์คํธ, ๊ฐ์ด๋)
---
## ๐ก ์ฌ์ฉ ์์
### ์์ 1: RSA ์ํธํ ์ฑ๋ฆฐ์ง
```
์ฌ์ฉ์: "RSA ๋ฌธ์ ๊ฐ ์์ด์:
n = 85188995949975973...
e = 65537
c = 34577152691579622...
๋ณตํธํํ ์ ์๋์?"
AI ์ด์์คํดํธ:
1. ๋ถ์ ์ธ์
์์ฑ
2. n์ ์ธ์๋ถํด๋ฅผ ์ํด FactorDB ์ฟผ๋ฆฌ
3. ์ฌ๋ฌ ๊ณต๊ฒฉ ๋ฐฉ๋ฒ์ผ๋ก RsaCtfTool ์คํ
4. Wiener ๊ณต๊ฒฉ์ผ๋ก ์ฑ๊ณต์ ์ผ๋ก ๋ณตํธํ
5. ๋ฐํ: "ํ๋ฌธ: CTF{weak_rsa_exponent}"
```
### ์์ 2: ์น ์ ํ๋ฆฌ์ผ์ด์
ํ
์คํธ
```
์ฌ์ฉ์: "http://target.com์ ์ทจ์ฝ์ ์ ํ
์คํธํด์ฃผ์ธ์"
AI ์ด์์คํดํธ:
1. nmap ํฌํธ ์ค์บ ์คํ
2. 80, 443 ํฌํธ์์ ์น ์๋ฒ ๋ฐ๊ฒฌ
3. ๋๋ ํฐ๋ฆฌ ์ด๊ฑฐ๋ฅผ ์ํด gobuster ์คํ
4. /admin, /backup, /api ์๋ํฌ์ธํธ ๋ฐ๊ฒฌ
5. ์ทจ์ฝ์ ์ค์บ์ ์ํด nikto ์คํ
6. ๋ก๊ทธ์ธ ํผ์์ sqlmap์ผ๋ก SQLi ํ
์คํธ
7. ์ข
ํฉ ๋ณด์ ๋ณด๊ณ ์ ์ ๊ณต
```
### ์์ 3: ๋ฐ์ด๋๋ฆฌ ์ต์คํ๋ก์ (Pwnable)
```
์ฌ์ฉ์: "์ด ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋ถ์ํด์ฃผ์ธ์: challenge.bin"
AI ์ด์์คํดํธ:
1. ์ธ์
์์
๊ณต๊ฐ์ ๋ฐ์ด๋๋ฆฌ ์
๋ก๋
2. checksec ์คํ (๋ฐ๊ฒฌ: ์นด๋๋ฆฌ ์์, NX ํ์ฑํ, PIE ์์)
3. ๋ฒํผ ์ค๋ฒํ๋ก์ฐ ์ทจ์ฝ์ ์๋ ํ์ง
4. NX ์ฐํ๋ฅผ ์ํ ROP ๊ฐ์ ฏ ๋ฐ๊ฒฌ
5. system() ๋ฐ "/bin/sh" ์์น ํ์ธ
6. pwntools ์ต์คํ๋ก์ ์คํฌ๋ฆฝํธ ์์ฑ
7. ๋ก์ปฌ์์ ํ
์คํธํ๊ณ ํ๋๊ทธ ํ๋
```
### ์์ 4: ๋ฉ๋ชจ๋ฆฌ ํฌ๋ ์
```
์ฌ์ฉ์: "์ด ๋ฉ๋ชจ๋ฆฌ ๋คํ๋ฅผ ๋ถ์ํด์ฃผ์ธ์: memory.dmp (Windows)"
AI ์ด์์คํดํธ:
1. Volatility3 windows.info ์คํ
2. ์คํ ์ค์ธ ํ๋ก์ธ์ค ๋ชฉ๋กํ (windows.pslist)
3. ์์ฌ์ค๋ฌ์ด ํ๋ก์ธ์ค ์๋ณ: malware.exe
4. ํ๋ก์ธ์ค ๋ฉ๋ชจ๋ฆฌ ๋คํ
5. ๋คํธ์ํฌ ์ฐ๊ฒฐ ์ค์บ
6. ๋ช
๋ น์ค ์ธ์ ์ถ์ถ
7. ํ๋ก์ธ์ค ๋ฉ๋ชจ๋ฆฌ์์ ์จ๊ฒจ์ง ํ๋๊ทธ ๋ฐ๊ฒฌ
```
### ์์ 5: ์๋ํ๋ ํฌ๋ ์ ์ํฌํ๋ก์ฐ
```
์ฌ์ฉ์: "์ด ๋ฉ๋ชจ๋ฆฌ ๋คํ์ ๋ํด ์๋ํ๋ ํฌ๋ ์ ๋ถ์์ ์คํํด์ฃผ์ธ์"
AI ์ด์์คํดํธ (auto_memory_analysis ์ฌ์ฉ):
โ 1๋จ๊ณ: OS ํ์ง - Windows 10 x64 ์๋ณ
โ 2๋จ๊ณ: ํ๋ก์ธ์ค ๋ถ์ - 47๊ฐ ํ๋ก์ธ์ค ๋ฐ๊ฒฌ
โ 3๋จ๊ณ: ๋คํธ์ํฌ ์ฐ๊ฒฐ - 12๊ฐ ํ์ฑ ์ฐ๊ฒฐ
โ 4๋จ๊ณ: ๋ฉ์จ์ด ํ์ง - 2๊ฐ ์์ฌ์ค๋ฌ์ด ์ธ์ ์
๋ฐ๊ฒฌ
โ 5๋จ๊ณ: ๋ ์ง์คํธ๋ฆฌ ๋ถ์ - ์ง์์ฑ ๋ฉ์ปค๋์ฆ ํ์ง
โ 6๋จ๊ณ: DLL ๋ถ์ - ์
์ฑ DLL ์๋ณ
์์ฝ: Run ํค์์ ๋ฉ์จ์ด ์ง์์ฑ ๋ฐ๊ฒฌ, C2 ์๋ฒ ์ถ์ถ: 192.168.1.100:4444
```
```
์ฌ์ฉ์: "์ด ์์ฌ์ค๋ฌ์ด ์คํ ํ์ผ์์ ๋ฉ์จ์ด๋ฅผ ํํ
ํด์ฃผ์ธ์"
AI ์ด์์คํดํธ (auto_malware_hunt ์ฌ์ฉ):
โ 1๋จ๊ณ: YARA ์ค์บ - ์ผ์น: Trojan.Generic
โ 2๋จ๊ณ: IOC ์ถ์ถ - 3๊ฐ IP, 5๊ฐ ๋๋ฉ์ธ, 2๊ฐ ๋ ์ง์คํธ๋ฆฌ ํค ๋ฐ๊ฒฌ
โ 3๋จ๊ณ: ํ์ผ ์ ํ - PE32 ์คํ ํ์ผ (stripped)
โ 4๋จ๊ณ: ์ํธ๋กํผ ๋ถ์ - ๋์ ์ํธ๋กํผ (7.8) - ํจํน ๊ฐ๋ฅ์ฑ
โ 5๋จ๊ณ: ํด์ ์์ฑ - MD5: a1b2c3..., SHA256: d4e5f6...
โ 6๋จ๊ณ: ๋ฉํ๋ฐ์ดํฐ - ์ปดํ์ผ: 2024-01-15, ์ธ์ด: C++
โ 7๋จ๊ณ: ๋ฐ์ด๋๋ฆฌ ๋ถ์ - 0x2000์์ ์๋ฒ ๋๋ ELF ํ์ง
์ํ ํ๊ฐ: ์๋ฒ ๋๋ ํ์ด๋ก๋๊ฐ ์๋ ๊ณ ์ํ ํจํน ๋ฉ์จ์ด
```
---
## ๐ ๋ฌธ์
- **[PROBLEM_SOLVING_PROMPTS.md](PROBLEM_SOLVING_PROMPTS.md)** - ๊ฐ CTF ์นดํ
๊ณ ๋ฆฌ๋ฅผ ์ํ ์ฆ์ ์ฌ์ฉ ๊ฐ๋ฅํ AI ํ๋กฌํํธ
- **[KALI_TOOLS_INSTALLATION.md](KALI_TOOLS_INSTALLATION.md)** - ์๋ํ๋ ์คํฌ๋ฆฝํธ๊ฐ ํฌํจ๋ ์์ ํ ๋๊ตฌ ์ค์น ๊ฐ์ด๋
- **[CTF_ENHANCEMENT.md](CTF_ENHANCEMENT.md)** - ๊ณ ๊ธ ๊ธฐ๋ฅ ๋ฐ ๋ฅ๋ ฅ ๋ถ์
- **[CLAUDE.md](CLAUDE.md)** - ์ด ์ฝ๋๋ฒ ์ด์ค์ ์์
ํ๋ AI ์ด์์คํดํธ๋ฅผ ์ํ ์ข
ํฉ ๊ฐ์ด๋
---
## ๐ฎ ์ง์๋๋ CTF ํ๋ซํผ
์ด ๋๊ตฌ๋ **๋ชจ๋ ์ฃผ์ CTF ํ๋ซํผ**๊ณผ ํธํ๋ฉ๋๋ค:
- **HackTheBox** (HTB)
- **TryHackMe** (THM)
- **PicoCTF**
- **CTFtime** ๋ํ
- **OverTheWire**
- **pwnable.kr** / **pwnable.tw**
- **Root-Me**
- **RingZer0 CTF**
- **VulnHub**
- ๊ทธ ์ธ ๋ค์!
---
## ๐ฏ ์ฌ์ฉ ์ฌ๋ก
### โ
**์น์ธ ๋ฐ ํฉ๋ฒ์ **
- CTF ๋ํ ๋ฐ ์๊ฒ์
- ์น์ธ๋ ์นจํฌ ํ
์คํธ (์๋ฉด ํ๊ฐ ํ์)
- ๋ฒ๊ทธ ๋ฐ์ดํฐ ํ๋ก๊ทธ๋จ (๋ฒ์ ๋ด)
- ๋ณด์ ์ฐ๊ตฌ ๋ฐ ๊ต์ก
- ๊ฐ์ธ ๋ฉ ํ๊ฒฝ
- Capture The Flag ํ๋ จ
### โ **๊ธ์ง**
- ์์คํ
์ ๋ํ ๋ฌด๋จ ์ ๊ทผ
- ์
์์ ์ธ ํดํน ๋๋ ๊ณต๊ฒฉ
- ๋ช
์์ ์ธ ํ๊ฐ ์๋ ํ
์คํธ
- ๋ชจ๋ ๋ถ๋ฒ ํ๋
---
## ๐ณ Docker ๋ฐฐํฌ
### Docker๋ก ๋น ๋ฅธ ์์
**Docker Compose ์ฌ์ฉ (๊ถ์ฅ)**
```bash
# ์๋ฒ ์์
docker-compose up -d
# ๋ก๊ทธ ๋ณด๊ธฐ
docker-compose logs -f
# ์๋ฒ ์ค์ง
docker-compose down
# ์ฝ๋ ๋ณ๊ฒฝ ํ ์ฌ๋น๋
docker-compose up -d --build
```
**Docker ์ง์ ์ฌ์ฉ**
```bash
# ์ด๋ฏธ์ง ๋น๋
docker build -t foxibu/ctf-solver:latest .
# ์ปจํ
์ด๋ ์คํ
docker run -d \
--name ctf-solver \
-p 5000:5000 \
-v $(pwd)/sessions:/app/sessions \
-v $(pwd)/workspaces:/app/workspaces \
foxibu/ctf-solver:latest
# ๋ก๊ทธ ๋ณด๊ธฐ
docker logs -f ctf-solver
# ์ค์ง ๋ฐ ์ ๊ฑฐ
docker stop ctf-solver && docker rm ctf-solver
```
### Docker ๋ช
๋ น์ด
```bash
# ์ปจํ
์ด๋ ์ํ ํ์ธ
docker ps
docker exec ctf-solver curl http://localhost:5000/health
# ์ปจํ
์ด๋ ์
ธ ์ ๊ทผ
docker exec -it ctf-solver /bin/bash
# ๋ฆฌ์์ค ์ฌ์ฉ๋ ๋ณด๊ธฐ
docker stats ctf-solver
# ์ด๋ฏธ์ง ๋ด๋ณด๋ด๊ธฐ/๊ฐ์ ธ์ค๊ธฐ
docker save foxibu/ctf-solver:latest | gzip > ctf-solver.tar.gz
docker load < ctf-solver.tar.gz
```
### Docker ๋ฐฐํฌ์ ์ด์
โ
**์ ๋ก ๊ตฌ์ฑ** - 55๊ฐ ์ด์์ ๋๊ตฌ ์ฌ์ ์ค์น
โ
**ํฌ๋ก์ค ํ๋ซํผ** - Windows, Mac, Linux์์ ์๋
โ
**๊ฒฉ๋ฆฌ๋ ํ๊ฒฝ** - ์์ ํ ๋ฉ์จ์ด ๋ถ์
โ
**๋ฒ์ ๊ด๋ฆฌ** - ์ฌํ ๊ฐ๋ฅํ CTF ํ๊ฒฝ
โ
**์ฌ์ด ์
๋ฐ์ดํธ** - `docker-compose pull && docker-compose up -d`
โ
**๋ฆฌ์์ค ์ ํ** - CPU/๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ์ ์ด
### ์๊ตฌ ๋ฐ์ดํฐ
Docker ์ค์ ์ ์๋์ผ๋ก ๋ค์์ ์ ์งํฉ๋๋ค:
- **์ธ์
**: `./sessions/` - ํ์ฑ ๋ถ์ ์ธ์
- **์์
๊ณต๊ฐ**: `./workspaces/` - ์ฑ๋ฆฐ์ง ํ์ผ ๋ฐ ๊ฒฐ๊ณผ
- **์ปค์คํ
์๋๋ฆฌ์คํธ**: `./wordlists/` (์ง์ ๋ง์ดํธ)
---
## ๐ง ๊ตฌ์ฑ
### ํ๊ฒฝ ๋ณ์
```bash
export KALI_SERVER_URL="http://localhost:5000"
export KALI_REQUEST_TIMEOUT=300 # 5๋ถ
export DEBUG_MODE=1 # ๋๋ฒ๊ทธ ๋ก๊น
ํ์ฑํ
```
### ์ปค์คํ
ํฌํธ
```bash
# ์ปค์คํ
ํฌํธ๋ก Kali ์๋ฒ ์คํ
python3 kali_server.py --port 8080
# ์ปค์คํ
์๋ฒ๋ก MCP ํด๋ผ์ด์ธํธ ์คํ
python3 src/my_server/mcp_server.py --server http://localhost:8080
```
### ์๊ฒฉ ์ ๊ทผ (SSH ํฐ๋)
```bash
# ํด๋ผ์ด์ธํธ ๋จธ์ ์์
ssh -L 5000:localhost:5000 user@kali-server.example.com
# MCP ํด๋ผ์ด์ธํธ๋ฅผ localhost:5000์ผ๋ก ๊ตฌ์ฑ
```
---
## ๐ค ๊ธฐ์ฌ
๊ธฐ์ฌ๋ฅผ ํ์ํฉ๋๋ค! Pull Request๋ฅผ ์์ ๋กญ๊ฒ ์ ์ถํด์ฃผ์ธ์.
### ๊ฐ๋ฐ ์ค์
```bash
# ์ ์ฅ์ ํด๋ก
git clone https://github.com/Wh0am123/MCP-Kali-Server.git
cd MCP-Kali-Server
# ๊ฐ๋ฐ ๋ชจ๋๋ก ์ค์น
pip install -e .
# ํ
์คํธ ์คํ
python3 kali_server.py --debug
```
---
## ๐ฐ ๋ฏธ๋์ด & ์ํฐํด
[](https://yousofnahya.medium.com/how-mcp-is-revolutionizing-offensive-security-93b2442a5096)
๐ **[How MCP is Revolutionizing Offensive Security](https://yousofnahya.medium.com/how-mcp-is-revolutionizing-offensive-security-93b2442a5096)** - ์ ์์ Medium ์ํฐํด
---
## โ ๏ธ ๋ฒ์ ๊ณ ์ง
### ์น์ธ๋ ๋ณด์ ํ
์คํธ ์ ์ฉ
์ด ๋๊ตฌ๋ ๋ค์ ์ฉ๋๋ก๋ง ์ค๊ณ๋์์ต๋๋ค:
โ
**์น์ธ๋ ์นจํฌ ํ
์คํธ** (์๋ฉด ํ๊ฐ ํ์)
โ
**CTF ๋ํ** ๋ฐ ๊ต์ก์ฉ ์๊ฒ์
โ
**๋ณด์ ์ฐ๊ตฌ** (ํต์ ๋ ํ๊ฒฝ)
โ
**๋ฒ๊ทธ ๋ฐ์ดํฐ ํ๋ก๊ทธ๋จ** (์ ์๋ ๋ฒ์ ๋ด)
โ
**๊ฐ์ธ ๋ฉ ํ๊ฒฝ** (์์ ํ ํ๊ฒฝ)
โ **์์คํ
์ ๋ํ ๋ฌด๋จ ์ ๊ทผ**
โ **์
์์ ์ธ ํดํน** ๋๋ ๊ณต๊ฒฉ
โ **๋ช
์์ ํ๊ฐ ์๋ ํ
์คํธ**
โ **๋ชจ๋ ๋ถ๋ฒ ํ๋**
**์ด ๋๊ตฌ๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ ๋ค์์ ๋์ํฉ๋๋ค:**
- ์์คํ
ํ
์คํธ ์ ์ ์ ํ ์น์ธ ํ๋
- ๋ชจ๋ ๊ด๋ จ ๋ฒ๋ฅ ๋ฐ ๊ท์ ์ค์
- ์ฑ
์๊ฐ ์๊ณ ์ค๋ฆฌ์ ์ธ ๋๊ตฌ ์ฌ์ฉ
- ์์ ์ ํ๋์ ๋ํ ์์ ํ ์ฑ
์ ์์ฉ
**์ ์๋ ์ค์ฉ์ ๋ํด ์ฑ
์์ ์ง์ง ์์ต๋๋ค.** ์ปดํจํฐ ์์คํ
์ ๋ํ ๋ฌด๋จ ์ ๊ทผ์ ๋ถ๋ฒ์ด๋ฉฐ ๋ฒ๋ฅ ์ ์ํด ์ฒ๋ฒ๋ฐ์ ์ ์์ต๋๋ค.
---
## ๐ ๋ผ์ด์ ์ค
์ด ํ๋ก์ ํธ๋ **MIT ๋ผ์ด์ ์ค**๋ฅผ ๋ฐ๋ฆ
๋๋ค - ์์ธํ ๋ด์ฉ์ [LICENSE](LICENSE) ํ์ผ์ ์ฐธ์กฐํ์ธ์.
---
## ๐ ํฌ๋ ๋ง
- **์ ์**: [Yousof Nahya](https://github.com/Wh0am123)
- **์๊ฐ**: [Project Astro](https://github.com/whit3rabbit0/project_astro)
- **๋น๋**: [FastMCP](https://github.com/jlowin/fastmcp), Flask, ๊ณต๊ฒฉ์ ๋ณด์ ์ปค๋ฎค๋ํฐ
- **์ ๊ณต**: Kali Linux, Model Context Protocol
---
## ๐ ๋งํฌ
- **GitHub ์ ์ฅ์**: [github.com/Wh0am123/MCP-Kali-Server](https://github.com/Wh0am123/MCP-Kali-Server)
- **Model Context Protocol**: [modelcontextprotocol.io](https://modelcontextprotocol.io)
- **Kali Linux**: [kali.org](https://www.kali.org/)
- **FastMCP**: [github.com/jlowin/fastmcp](https://github.com/jlowin/fastmcp)
---
## ๐ ํต๊ณ
- **55๊ฐ ์ด์์ ๋ณด์ ๋๊ตฌ** ํตํฉ
- **7๊ฐ CTF ์นดํ
๊ณ ๋ฆฌ** ์ง์
- **73๊ฐ ์ด์์ API ์๋ํฌ์ธํธ** ์ฌ์ฉ ๊ฐ๋ฅ
- **3๊ฐ ๊ณ ๊ธ ํฌ๋ ์ ์ํฌํ๋ก์ฐ** ์๋ํ
- **4๊ฐ ์ํฌํ๋ก์ฐ ํ๋กฌํํธ** ํฌํจ
- **100ํ์ด์ง ์ด์**์ ๋ฌธ์
---
<div align="center">
**โญ ์ ์ฉํ๋ค๊ณ ์๊ฐ๋์๋ฉด ์ด ์ ์ฅ์์ ์คํ๋ฅผ ๋๋ฌ์ฃผ์ธ์!**
๊ณต๊ฒฉ์ ๋ณด์ ์ปค๋ฎค๋ํฐ๊ฐ โค๏ธ๋ก ๋ง๋ค์์ต๋๋ค
</div>