๊ต์ก ๋ชฉ์ ์ Red/Blue Team ํผํํ ์ค์ต ํ๊ฒฝ์
๋๋ค.
VMware ๊ธฐ๋ฐ 4๊ฐ์ ๋ฆฌ๋
์ค ์๋ฒ๋ก ๊ตฌ์ฑ๋ ๋ณด์ ์์คํ
๊ตฌํ ํ๊ฒฝ์ผ๋ก, ๊ณต๊ฒฉ๊ณผ ๋ฐฉ์ด๋ฅผ ๋์์ ์ค์ตํ ์ ์์ต๋๋ค.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 192.168.193.0/24 (External) โ
โ โ
โ [Agent]โโโโโโ[Security]โโโโโโ[Web]โโโโโโ[SIEM] โ
โ .129 .131 .130 .132 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 10.10.10.0/24 (Internal) โ
โ โ
โ [Agent] [Security] [Web] [SIEM] โ
โ .100 โ .1 โ .80 .50 โ
โ (Gateway/IPS) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Traffic Flow: Agent โ nftables(Security) โ Suricata(Security) โ Web
Log Flow: Security/Web โ Wazuh Agent โ SIEM(Wazuh Manager)
| ํญ๋ชฉ | ๋ด์ฉ |
|---|---|
| OS | Ubuntu 22.04.5 LTS |
| ์ญํ | AI ์์ด์ ํธ ์๋ํฌ์ธํธ, ๋ชจ์ ํดํน ์ํ |
| SSH | ssh agent@192.168.193.129 (pw: agent) |
| ๋ด๋ถ IP | 10.10.10.100 (ens37) |
| ํญ๋ชฉ | ๋ด์ฉ |
|---|---|
| OS | Ubuntu 22.04.5 LTS |
| ์ญํ | ๋ฐฉํ๋ฒฝ + IPS ์ด์, ๋ด๋ถ๋ง ๊ฒ์ดํธ์จ์ด |
| SSH | ssh security@192.168.193.131 (pw: security) |
| ๋ด๋ถ IP | 10.10.10.1 (ens37) - ๋ด๋ถ๋ง ๊ฒ์ดํธ์จ์ด |
| nftables | ๋ฐฉํ๋ฒฝ (FORWARD ๋ก๊น ํฌํจ) |
| Suricata | IPS 8.0.4 (DetectionOnly ๋ชจ๋, 65,394 ๊ท์น) |
| Wazuh | Agent 4.7.5 |
| ํญ๋ชฉ | ๋ด์ฉ |
|---|---|
| OS | Ubuntu 22.04.5 LTS |
| ์ญํ | WAF + ์ทจ์ฝ ์น์ฌ์ดํธ ์ด์ |
| SSH | ssh web@192.168.193.130 (pw: web) |
| ๋ด๋ถ IP | 10.10.10.80 (ens37) |
| Apache + ModSecurity | WAF (DetectionOnly ๋ชจ๋, OWASP CRS) |
| OWASP Juice Shop | ์ทจ์ฝ ์น ์ฑ (Docker, port 3000 โ Apache proxy) |
| Wazuh | Agent 4.7.5 |
| ํญ๋ชฉ | ๋ด์ฉ |
|---|---|
| OS | Ubuntu 22.04.5 LTS |
| ์ญํ | ๋ก๊ทธ ์์ง ๋ฐ ๋ถ์, XDR ์ด์ |
| SSH | ssh siem@192.168.193.132 (pw: siem) |
| ๋ด๋ถ IP | 10.10.10.50 (ens37) |
| Wazuh | Manager + Indexer + Dashboard 4.7.5 |
| Dashboard | https://192.168.193.132/ |
URL: http://192.168.193.130/
๋ด๋ถ: http://10.10.10.80/
- OWASP Top 10 ์ทจ์ฝ์ ํฌํจ
- XSS, SQL Injection, IDOR, CSRF ๋ฑ ์ค์ต ๊ฐ๋ฅ
URL: https://192.168.193.132/
Username: admin
Password: (์ค์น ์ ์๋ ์์ฑ - /tmp/wazuh-passwords.txt ์ฐธ์กฐ)
API: https://192.168.193.132:55000/
[Security VM]
/var/log/suricata/eve.json โ Suricata ์ด๋ฒคํธ (JSON)
/var/log/suricata/fast.log โ Suricata ์๋
/var/log/nftables.log โ nftables ๋ฐฉํ๋ฒฝ ๋ก๊ทธ
โ
โโโโ Wazuh Agent โโโ SIEM (10.10.10.50:1514)
[Web VM]
/var/log/apache2/modsec_audit.log โ ModSecurity WAF ๊ฐ์ฌ ๋ก๊ทธ
/var/log/apache2/juiceshop_access.log โ Apache ์ ๊ทผ ๋ก๊ทธ
/var/log/apache2/error.log โ Apache ์๋ฌ ๋ก๊ทธ
โ
โโโโ Wazuh Agent โโโ SIEM (10.10.10.50:1514)
[SIEM]
Wazuh Manager (ํฌํธ 1514) โ ์์ด์ ํธ ๋ก๊ทธ ์์
Wazuh Indexer (ํฌํธ 9200) โ ๋ก๊ทธ ์ ์ฅ (OpenSearch)
Wazuh Dashboard (ํฌํธ 443) โ ์๊ฐํ ๋ฐ ๋ถ์
Syslog (ํฌํธ 514 UDP) โ ์ง์ syslog ์์
Security (๊ฒ์ดํธ์จ์ด)
network:
version: 2
ethernets:
ens37:
addresses:
- 10.10.10.1/24Agent / Web / SIEM (๋ผ์ฐํ ํฌํจ)
network:
version: 2
ethernets:
ens37:
addresses:
- 10.10.10.X/24
routes:
- to: 10.10.10.0/24
via: 10.10.10.1
metric: 100net.ipv4.ip_forward=1
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.ens37.send_redirects=0# Suricata ์ค์น
add-apt-repository ppa:oisf/suricata-stable
apt-get install -y suricata nftables
# ๊ท์น ์
๋ฐ์ดํธ
suricata-update# Apache + ModSecurity ์ค์น
apt-get install -y apache2 libapache2-mod-security2 modsecurity-crs docker.io
# Apache ๋ชจ๋ ํ์ฑํ
a2enmod security2 proxy proxy_http headers
# Juice Shop (Docker)
docker run -d --name juiceshop --restart unless-stopped -p 3000:3000 bkimminich/juice-shop# Wazuh ์ฌ์ธ์ ์ค์น (Manager + Indexer + Dashboard)
curl -sO https://packages.wazuh.com/4.7/wazuh-install.sh
bash wazuh-install.sh -a -i# Wazuh ์์ด์ ํธ ์ค์น
curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | gpg --dearmor > /usr/share/keyrings/wazuh.gpg
echo 'deb [signed-by=/usr/share/keyrings/wazuh.gpg] https://packages.wazuh.com/4.x/apt/ stable main' > /etc/apt/sources.list.d/wazuh.list
WAZUH_MANAGER=10.10.10.50 apt-get install -y wazuh-agent=4.7.5-1
# ์์ด์ ํธ ๋ฑ๋ก
/var/ossec/bin/agent-auth -m 10.10.10.50 -A <agent-name>
systemctl enable --now wazuh-agent| ์๋น์ค | ์ค์ ํ์ผ |
|---|---|
| Suricata | /etc/suricata/suricata.yaml |
| Suricata ๊ท์น | /var/lib/suricata/rules/suricata.rules |
| nftables | /etc/nftables.conf |
| ModSecurity | /etc/modsecurity/modsecurity.conf |
| ModSecurity CRS | /etc/modsecurity/crs/crs-setup.conf |
| Apache VHost | /etc/apache2/sites-available/juiceshop.conf |
| Wazuh Manager | /var/ossec/etc/ossec.conf |
| Wazuh Agent | /var/ossec/etc/ossec.conf |
# Agent VM์์ Juice Shop ์ ๊ทผ
curl http://10.10.10.80/SQL Injection
curl "http://10.10.10.80/rest/products/search?q=')) OR 1=1--"XSS (Cross-Site Scripting)
curl "http://10.10.10.80/?q=<script>alert('XSS')</script>"Path Traversal
curl "http://10.10.10.80/../../../../etc/passwd"- Wazuh ๋์๋ณด๋: https://192.168.193.132/
- Security Events โ ์ค์๊ฐ ์๋ ํ์ธ
- Suricata ํ์ง:
cat /var/log/suricata/fast.log - ModSecurity ํ์ง:
cat /var/log/apache2/modsec_audit.log
# Agent VM์์ ์คํ
sudo apt install -y nmap
nmap -sV -O 10.10.10.80# /etc/suricata/suricata.yaml์์ ๋ณ๊ฒฝ
# nfq ์น์
ํ์ฑํ ํ ์ฌ์์
# nftables์์ NFQUEUE๋ก ์ ๋ฌ ์ค์ ํ์# /etc/modsecurity/modsecurity.conf ์์
sed -i 's/SecRuleEngine DetectionOnly/SecRuleEngine On/' /etc/modsecurity/modsecurity.conf
systemctl restart apache2ssh security@192.168.193.131
sudo systemctl status suricata
sudo tail -f /var/log/suricata/suricata.log
sudo tail -f /var/log/suricata/fast.log# SIEM์์ ์์ด์ ํธ ๋ชฉ๋ก
ssh siem@192.168.193.132
sudo /var/ossec/bin/agent_control -l
# ์์ด์ ํธ์์ ์ฐ๊ฒฐ ์ํ
sudo grep -i "connected" /var/ossec/logs/ossec.log | tail -5ssh security@192.168.193.131
sudo tail -f /var/log/nftables.log
sudo nft list rulesetssh web@192.168.193.130
sudo docker restart juiceshop
sudo docker logs juiceshop --tail 20- OWASP Juice Shop
- Suricata Documentation
- ModSecurity Reference Manual
- Wazuh Documentation
- OWASP CRS Documentation
- nftables Wiki
์ด ํ๊ฒฝ์ ๊ต์ก ์ ์ฉ์ ๋๋ค.
๋ชจ๋ ๊ณต๊ฒฉ ๊ธฐ๋ฒ์ ์ด ๊ฒฉ๋ฆฌ๋ ์ค์ต ํ๊ฒฝ ๋ด์์๋ง ์ฌ์ฉํ์ธ์.
ํ๊ฐ๋์ง ์์ ์์คํ ์ ๋ํ ๊ณต๊ฒฉ์ ๋ถ๋ฒ์ ๋๋ค.