8009 - Pentesting Apache JServ Protocol (AJP)
Tip
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training GCP Red Team Expert (GRTE)
Azure ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.
๊ธฐ๋ณธ ์ ๋ณด
From https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/
AJP๋ ์์ด์ด ํ๋กํ ์ฝ์ ๋๋ค. ์ด๋ ๋ ๋ฆฝํ ์น ์๋ฒ์ธ Apache๊ฐ Tomcat๊ณผ ํต์ ํ ์ ์๋๋ก HTTP ํ๋กํ ์ฝ์ ์ต์ ํ๋ ๋ฒ์ ์ ๋๋ค. ์ญ์ฌ์ ์ผ๋ก Apache๋ ์ ์ ์ฝํ ์ธ ๋ฅผ ์ ๊ณตํ๋ ๋ฐ Tomcat๋ณด๋ค ํจ์ฌ ๋น ๋ฆ ๋๋ค. ์์ด๋์ด๋ ๊ฐ๋ฅํ ๊ฒฝ์ฐ Apache๊ฐ ์ ์ ์ฝํ ์ธ ๋ฅผ ์ ๊ณตํ๊ณ , Tomcat ๊ด๋ จ ์ฝํ ์ธ ์ ๋ํด์๋ ์์ฒญ์ Tomcat์ผ๋ก ํ๋ก์ํ๋ ๊ฒ์ ๋๋ค.
๋ํ ํฅ๋ฏธ๋ก์ด ์ :
ajp13 ํ๋กํ ์ฝ์ ํจํท ์งํฅ์ ์ ๋๋ค. ์ฑ๋ฅ์์ ์ด์ ๋ก ๋ ์ฝ๊ธฐ ์ฌ์ด ์ผ๋ฐ ํ ์คํธ๋ณด๋ค ์ด์ง ํ์์ด ์ ํ๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. ์น ์๋ฒ๋ TCP ์ฐ๊ฒฐ์ ํตํด ์๋ธ๋ฆฟ ์ปจํ ์ด๋์ ํต์ ํฉ๋๋ค. ์์ผ ์์ฑ์ ๋น์ฉ์ด ๋ง์ด ๋๋ ๊ณผ์ ์ ์ค์ด๊ธฐ ์ํด, ์น ์๋ฒ๋ ์๋ธ๋ฆฟ ์ปจํ ์ด๋์ ๋ํ ์ง์์ ์ธ TCP ์ฐ๊ฒฐ์ ์ ์งํ๊ณ , ์ฌ๋ฌ ์์ฒญ/์๋ต ์ฃผ๊ธฐ๋ฅผ ์ํด ์ฐ๊ฒฐ์ ์ฌ์ฌ์ฉํ๋ ค๊ณ ์๋ํฉ๋๋ค.
๊ธฐ๋ณธ ํฌํธ: 8009
PORT STATE SERVICE
8009/tcp open ajp13
CVE-2020-1938 โGhostcatโ
์ด๊ฒ์ ์๊ฒฉ ์ฆ๋ช
์ด ํฌํจ๋ WEB-INF/web.xml๊ณผ ๊ฐ์ ํ์ผ์ ๊ฐ์ ธ์ฌ ์ ์๋ LFI ์ทจ์ฝ์ ์
๋๋ค. ์ด ์ทจ์ฝ์ ์ ์
์ฉํ๊ธฐ ์ํ ์ต์คํ๋ก์์ด๋ฉฐ AJP ๋
ธ์ถ ํฌํธ๊ฐ ์ด์ ์ทจ์ฝํ ์ ์์ต๋๋ค.
ํจ์น๋ ๋ฒ์ ์ 9.0.31, 8.5.51 ๋ฐ 7.0.100 ์ด์์ ๋๋ค.
Enumeration
Automatic
nmap -sV --script ajp-auth,ajp-headers,ajp-methods,ajp-request -n -p 8009 <IP>
๋ธ๋ฃจํธ ํฌ์ค
AJP ํ๋ก์
Nginx ๋ฆฌ๋ฒ์ค ํ๋ก์ + AJP
(Dockerized ๋ฒ์ ํ์ธํ๊ธฐ)
Nginx ajp_module ์ํ์น ๋ชจ๋์ ์ฌ์ฉํ์ฌ ์ด๋ฆฐ AJP ํ๋ก์ ํฌํธ(8009 TCP)์ ํต์ ํ๊ณ ์ด ํฌํธ์์ Tomat Manager์ ์ ๊ทผํ ์ ์์ผ๋ฉฐ, ์ด๋ ๊ถ๊ทน์ ์ผ๋ก ์ทจ์ฝํ ์๋ฒ์์ RCE๋ก ์ด์ด์ง ์ ์์ต๋๋ค.
- https://nginx.org/en/download.html์์ Nginx๋ฅผ ๋ค์ด๋ก๋ํ ํ ajp ๋ชจ๋๋ก ์ปดํ์ผํฉ๋๋ค:
# Compile Nginx with the ajp module
git clone https://github.com/dvershinin/nginx_ajp_module.git
cd nginx-version
sudo apt install libpcre3-dev
./configure --add-module=`pwd`/../nginx_ajp_module --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules
make
sudo make install
nginx -V
- ๊ทธ๋ฐ ๋ค์,
server๋ธ๋ก์ ์ฃผ์ ์ฒ๋ฆฌํ๊ณ/etc/nginx/conf/nginx.conf์http๋ธ๋ก์ ๋ค์์ ์ถ๊ฐํฉ๋๋ค.
upstream tomcats {
server <TARGET_SERVER>:8009;
keepalive 10;
}
server {
listen 80;
location / {
ajp_keep_conn on;
ajp_pass tomcats;
}
}
- ๋ง์ง๋ง์ผ๋ก, nginx๋ฅผ ์์ํฉ๋๋ค (
sudo nginx) ๊ทธ๋ฆฌ๊ณhttp://127.0.0.1์ ์ ์ํ์ฌ ์๋ํ๋์ง ํ์ธํฉ๋๋ค.
Nginx Dockerized-version
git clone https://github.com/ScribblerCoder/nginx-ajp-docker
cd nginx-ajp-docker
nginx.conf์์ TARGET-IP๋ฅผ AJP IP๋ก ๊ต์ฒดํ ํ ๋น๋ํ๊ณ ์คํํฉ๋๋ค.
docker build . -t nginx-ajp-proxy
docker run -it --rm -p 80:80 nginx-ajp-proxy
Apache AJP ํ๋ก์
Nginx ๋์ ํด๋น ํฌํธ์ ์ ๊ทผํ๊ธฐ ์ํด Apache AJP ํ๋ก์๋ฅผ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
References
Tip
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training GCP Red Team Expert (GRTE)
Azure ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.


