Internet Printing Protocol
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์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.
**์ธํฐ๋ท ์ธ์ ํ๋กํ ์ฝ (IPP)**๋ RFC 2910 ๋ฐ RFC 2911์ ๋ช ์๋ ๋ฐ์ ๊ฐ์ด ๋คํธ์ํฌ ์ธ์์ ์ฌ์ค์ ํ์ค์ ๋๋ค. ์ด๋ HTTP/1.1 ์์์ ์๋ํ๋ฉฐ(๋ช ํํ ํ ์คํธ ๋๋ TLS) ์ธ์ ์์ ์์ฑ, ํ๋ฆฐํฐ ๊ธฐ๋ฅ ์ฟผ๋ฆฌ ๋ฐ ๋๊ธฐ์ด ๊ด๋ฆฌ๋ฅผ ์ํ ํ๋ถํ API๋ฅผ ์ ๊ณตํฉ๋๋ค. IPP Everywhere์ ๊ฐ์ ํ๋์ ์ธ ํ์ฅ์ ๋ชจ๋ฐ์ผ ๋ฐ ํด๋ผ์ฐ๋ ํ๊ฒฝ์์ ๋๋ผ์ด๋ฒ ์์ด ์ธ์๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ฉฐ, ๋์ผํ ํจํท ํ์์ด 3D ํ๋ฆฐํฐ์๋ ์ฌ์ฌ์ฉ๋์์ต๋๋ค.
๋ถํํ๋ ํฌํธ 631/tcp (๋ฐ ํ๋ฆฐํฐ ๊ฒ์์ ์ํ 631/udp๋ฅผ ๋ ธ์ถํ๋ ๊ฒ์ ์ ํต์ ์ธ ์ฌ๋ฌด์ค ํ๋ฆฐํฐ์ CUPS๋ฅผ ์คํํ๋ ๋ชจ๋ Linux/Unix ํธ์คํธ์์ ์ฌ๊ฐํ ๋ณด์ ๋ฌธ์ ๋ก ์ด์ด์ง๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
Quick PoC โ crafting raw IPP with Python
import struct, requests
# Minimal IPP Get-Printer-Attributes request (operation-id 0x000B)
ipp = struct.pack(
">IHHIHH", # version 2.0, operation-id, request-id
0x0200, # 2.0
0x000B, # Get-Printer-Attributes
0x00000001, # request-id
0x01, 0x47, # operation-attributes-tag, charset attr (skipped)
) + b"\x03" # end-of-attributes
r = requests.post("http://printer:631/ipp/print", headers={"Content-Type":"application/ipp"}, data=ipp)
print(r.status_code, r.content[:40])
์ด๊ฑฐ ๋ฐ ์ฌ์กฐ์ฌ
1. Nmap NSE
# run all CUPS/IPP scripts
nmap -sV -p631 --script=cups* <target>
# or only basic info
nmap -p631 --script=cups-info,cups-queue-info <target>
cups-info ์คํฌ๋ฆฝํธ๋ ๋ชจ๋ธ, ์ํ ๋ฐ ํ ํต๊ณ๋ฅผ ์ถ์ถํ๊ณ cups-queue-info๋ ๋๊ธฐ ์ค์ธ ์์
์ ๋์ดํฉ๋๋ค.
2. CUPS์ IPP ์ ํธ๋ฆฌํฐ
ippfindโ ๋ฉํฐ์บ์คํธ/UDP ๊ฒ์ (cups-browsed์ ๋ํด ์๋):
ippfind --timeout 3 --txt -v "@local and port=631" # ํ๋ฆฐํฐ ๋ชฉ๋ก
ipptoolโ .test ํ์ผ์ ์ ์๋ ์์ ์์ฒญ:
ipptool -tv ipp://<IP>/ipp/print get-printer-attributes.test
๋ฒ๋ค๋ get-printer-attributes.test ํ์ผ์ ํ์จ์ด ๋ฒ์ , ์ง์๋๋ ๋ฌธ์ ํ์ ๋ฑ์ ์ฟผ๋ฆฌํฉ๋๋ค.
3. Shodan / Censys dorks
shodan search 'product:"CUPS (IPP)" port:631'
70,000๊ฐ ์ด์์ ํธ์คํธ๊ฐ 2025๋ 4์์ CUPS๋ฅผ ๊ณต๊ฐ์ ์ผ๋ก ๋ ธ์ถํ๊ณ ์์์ต๋๋ค.
์ต๊ทผ ์ทจ์ฝ์ (2023-2025)
| ์ฐ๋ | CVE ID(s) | ์ํฅ์ ๋ฐ๋ ๊ตฌ์ฑ ์์ | ์ํฅ |
|---|---|---|---|
| 2025 | CVE-2023-50739 | Lexmark ํ์จ์ด (IPP ํ์) | ํ ์ค๋ฒํ๋ก์ฐ โ Wi-Fi/LAN์ ํตํ RCE |
| 2024 | CVE-2024-47076, 47175, 47176, 47177 | cups-browsed, libcupsfilters, libppd, cups-filters | CUPS ๋ธ๋ผ์ฐ์ง์ด ํ์ฑํ๋ ๋ชจ๋ Linux ๋ฐ์คํฌํ/์๋ฒ์์์ ์์ ํ ๋น์ธ์ฆ RCE ์ฒด์ธ |
| 2024 | CVE-2024-35235 | cupsd 2.4.8- | ์ฌ๋ณผ๋ฆญ ๋งํฌ ํธ๋ฆญ โ ์์์ chmod 666 โ ๊ถํ ์์น |
| 2023 | CVE-2023-0856 (Canon) + Pwn2Own | sides ์์ฑ์ ์คํ ์ค๋ฒํ๋ก์ฐ โ ์๊ฒฉ ์ฝ๋ ์คํ |
cups-browsed RCE ์ฒด์ธ (2024๋ 9์)
cups-browsed๋ ํ๋ฆฐํฐ ๊ด๊ณ ๋ฅผ ์ํด UDP/631์์ ์์ ๋๊ธฐํฉ๋๋ค.- ๊ณต๊ฒฉ์๊ฐ ์ ์์ ์ธ IPP URL์ ๊ฐ๋ฆฌํค๋ ๋จ์ผ ์คํธํ ํจํท์ ๋ณด๋ ๋๋ค (CVE-2024-47176).
libcupsfilters๋ ๊ฒ์ฆ ์์ด ์๊ฒฉ PPD๋ฅผ ์๋์ผ๋ก ๊ฐ์ ธ์ต๋๋ค (CVE-2024-47076 & 47175).- ์กฐ์๋ PPD๋ foomatic-rip ํํฐ๋ฅผ ์ ์ฉํ์ฌ ์ธ์๋ ๋๋ง๋ค ์์์ ์ ธ ๋ช ๋ น์ ์คํํฉ๋๋ค (CVE-2024-47177).
๊ฐ๋ ์ฆ๋ช ์ฝ๋๋ ์ฐ๊ตฌ์์ ๋ธ๋ก๊ทธ์ ๊ณต๊ฐ๋์ด ์์ผ๋ฉฐ, ์ต์คํ๋ก์์ ์ธ์ฆ์ด ํ์ ์์ต๋๋ค; UDP/631์ ๋ํ ๋คํธ์ํฌ ์ ๊ทผ๋ง์ผ๋ก ์ถฉ๋ถํฉ๋๋ค.
์์ ์ํ ์กฐ์น
sudo systemctl stop cups-browsed
sudo systemctl disable cups-browsed
sudo ufw deny 631/udp # or equivalent firewall rule
ํจ์น๊ฐ 2024๋ 10์์ ์ฃผ์ ๋ฐฐํฌํ์ ์ํด ๋ฆด๋ฆฌ์ค๋์์ต๋๋ค โ cups-filters โฅ 2.0.0์ ํ์ธํ์ญ์์ค.
cupsd symlink Listen ์๋ชป๋ ๊ตฌ์ฑ (CVE-2024-35235)
cupsd.conf์ Listen ์ง์๋ฌธ์ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๋ฐฐ์นํ๋ฉด **cupds (root)**๊ฐ ๊ณต๊ฒฉ์๊ฐ ์ ํํ ๊ฒฝ๋ก์ ๋ํด chmod 666์ ์ํํ๊ฒ ๋์ด ์์คํ
ํ์ผ์ด ์ฐ๊ธฐ ๊ฐ๋ฅํด์ง๊ณ , Ubuntu์์๋ FoomaticRIPCommandLine์ ํตํด ์
์ฑ PPD๋ก ์ฝ๋ ์คํ์ด ๊ฐ๋ฅํฉ๋๋ค.
๊ณต๊ฒฉ ๊ธฐ์
- ์ธ์ฆ๋์ง ์์ ์์ ์ธ์ ์์
โ ๋ง์ ํ๋ฆฐํฐ๊ฐ ์ธ์ฆ ์์ด
POST /ipp/print๋ฅผ ์์ฉํฉ๋๋ค. ์ ์ฑ PostScript ํ์ด๋ก๋๋ ๊ณ ๊ธ ์ฅ์น์์ ์ ธ ๋ช ๋ น(system("/bin/nc ..."))์ ํธ์ถํ ์ ์์ต๋๋ค. - ์์
ํ์ทจ โ
Cancel-Job๋ค์์Send-Document๋ฅผ ์ฌ์ฉํ๋ฉด ๊ณต๊ฒฉ์๊ฐ ๋ค๋ฅธ ์ฌ๋์ ๋ฌธ์๋ฅผ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ธ์๋๊ธฐ ์ ์ ๊ต์ฒดํ ์ ์์ต๋๋ค. - SNMP โ IPP ์กฐํฉ โ ๊ธฐ๋ณธ ์ปค๋ฎค๋ํฐ
public์ IPP URL์ ํ์ํ ๋ด๋ถ ํ ์ด๋ฆ์ ์ข ์ข ์ ์ถํฉ๋๋ค.
๋ฐฉ์ด ๋ชจ๋ฒ ์ฌ๋ก
- CUPS ๋ฐ ํ๋ฆฐํฐ ํ์จ์ด๋ฅผ ์ ์ํ๊ฒ ํจ์นํ๊ณ , ๊ณต๊ธ์ ์ฒด PSIRT ํผ๋๋ฅผ ๊ตฌ๋ ํ์ญ์์ค.
- zeroconf ์ธ์๊ฐ ํ์ํ์ง ์๋ ํ
cups-browsed๋ฐ UDP/631์ ๋นํ์ฑํํ์ญ์์ค. - TCP/631์ ์ ๋ขฐํ ์ ์๋ ์๋ธ๋ท/VPN์ผ๋ก ์ ํํ๊ณ **TLS (ipps://)**๋ฅผ ์ ์ฉํ์ญ์์ค.
- ์ต๋ช ์ธ์ ๋์ Kerberos/Negotiate ๋๋ ์ธ์ฆ์ ์ธ์ฆ์ ์๊ตฌํ์ญ์์ค.
- ๋ก๊ทธ ๋ชจ๋ํฐ๋ง:
/var/log/cups/error_log์์LogLevel debug2๋ฅผ ์ฌ์ฉํ๋ฉด ๋ถ์์ ํ PPD ๋ค์ด๋ก๋ ๋๋ ์์ฌ์ค๋ฌ์ด ํํฐ ํธ์ถ์ ๋ณด์ฌ์ค๋๋ค. - ๊ณ ๋ณด์ ๋คํธ์ํฌ์์๋ ์ธ์๋ฅผ ๊ฐํ๋ ๊ฒฉ๋ฆฌ๋ ์ธ์ ์๋ฒ๋ก ์ด๋ํ์ฌ USB๋ฅผ ํตํด ์ฅ์น์ ์์ ์ ํ๋ก์ํ์ญ์์ค.
References
- Akamai โ โCritical Linux RCE Vulnerability in CUPS โ What We Know and How to Prepareโ, April 2025.
- Debian Security Tracker โ CVE-2024-35235 details.
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์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.


