Internet Printing Protocol
Reading time: 6 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na π¬ kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter π¦ @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Internet Printing Protocol (IPP), kama ilivyoainishwa katika RFC 2910 na RFC 2911, ni kiwango cha de-facto kwa uchapishaji wa mtandao. Inakaa juu ya HTTP/1.1 (iwe ni maandiko wazi au TLS) na inatoa API tajiri kwa ajili ya kuunda kazi za uchapishaji, kuuliza uwezo wa printer na kusimamia foleni. Upanuzi wa kisasa kama IPP Everywhere hata unaruhusu uchapishaji bila madereva kutoka kwa mazingira ya simu na wingu, wakati muundo sawa wa pakiti umerejelewa kwa printers za 3-D.
Kwa bahati mbaya, kufichua bandari 631/tcp (na 631/udp kwa ajili ya kugundua printer) mara nyingi husababisha matatizo makubwa ya usalama β kwa printers za ofisi za jadi na kwenye mwenyeji yeyote wa Linux/Unix unaendesha CUPS.
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])
Uhesabu & Upelelezi
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>
The cups-info
script inatoa mfano, hali na takwimu za foleni wakati cups-queue-info
inataja kazi zinazongoja.
2. IPP utilities kutoka CUPS
ippfind
β ugunduzi wa multicast/UDP (inafanya kazi dhidi ya cups-browsed):
ippfind --timeout 3 --txt -v "@local and port=631" # orodhesha printers
ipptool
β maombi ya kawaida yaliyofafanuliwa katika faili ya .test:
ipptool -tv ipp://<IP>/ipp/print get-printer-attributes.test
Faili iliyojumuishwa get-printer-attributes.test inachunguza toleo la firmware, fomati za hati zinazoungwa mkono, n.k.
3. Shodan / Censys dorks
shodan search 'product:"CUPS (IPP)" port:631'
Zaidi ya 70,000 wenyeji walikuwa wakionyesha hadharani CUPS mnamo Aprili 2025.
Uthibitisho wa Hivi Karibuni (2023-2025)
Mwaka | CVE ID(s) | Kipengele kilichoathirika | Athari |
---|---|---|---|
2025 | CVE-2023-50739 | Lexmark firmware (IPP parser) | Heap-overflow β RCE kupitia Wi-Fi/LAN |
2024 | CVE-2024-47076, 47175, 47176, 47177 | cups-browsed, libcupsfilters, libppd, cups-filters | Mnyororo wa RCE usio na uthibitisho kamili kwenye desktop/server yoyote ya Linux iliyo na CUPS browsing imewezeshwa |
2024 | CVE-2024-35235 | cupsd 2.4.8- | Njia ya symlink β chmod 666 isiyo na mipaka β kupandisha hadhi |
2023 | CVE-2023-0856 (Canon) + Pwn2Own | Stack-overflow katika sifa ya sides β utekelezaji wa msimbo wa mbali |
Mnyororo wa RCE wa cups-browsed (Septemba 2024)
cups-browsed
inasikiliza kwenye UDP/631 kwa matangazo ya printer.- Mshambuliaji anatumia pakiti moja ya kudanganya ikielekeza kwenye URL ya IPP mbaya (CVE-2024-47176).
libcupsfilters
inapata kiotomatiki PPD ya mbali bila uthibitisho (CVE-2024-47076 & 47175).- PPD iliyoundwa inatumia kichujio cha foomatic-rip kutekeleza amri za shell zisizo na mipaka kila wakati kitu kinapochapishwa (CVE-2024-47177).
Msimbo wa uthibitisho wa dhana upo hadharani kwenye blogu ya mtafiti na unahitaji hakuna uthibitisho; ufikiaji wa mtandao kwa UDP/631 unatosha.
Njia za muda za kupunguza
sudo systemctl stop cups-browsed
sudo systemctl disable cups-browsed
sudo ufw deny 631/udp # or equivalent firewall rule
Patches zilitolewa na usambazaji mkubwa mnamo Oktoba 2024 β hakikisha cups-filters β₯ 2.0.0.
cupsd symlink Listen
misconfiguration (CVE-2024-35235)
Kuweka kiungo cha alama katika cupsd.confβs Listen
directive kunasababisha cupds (root) kufanya chmod 666
kwenye njia iliyochaguliwa na mshambuliaji, ikisababisha faili za mfumo zinazoweza kuandikwa na, kwenye Ubuntu, utekelezaji wa msimbo kupitia PPD mbaya na FoomaticRIPCommandLine
.
Mbinu za Kihalifu
- Kazi ya uchapishaji isiyo na uthibitisho β printers nyingi zinakubali
POST /ipp/print
bila uthibitisho. Payload mbaya ya PostScript inaweza kuita amri za shell (system("/bin/nc ...")
) kwenye vifaa vya hali ya juu. - Kuhijack Kazi β
Cancel-Job
ikifuatwa naSend-Document
inaruhusu mshambuliaji kubadilisha hati ya mtu mwingine kabla ya kuchapishwa kimwili. - SNMP β IPP combo β jamii ya chaguo-msingi
public
mara nyingi inavuja jina la foleni ya ndani inayohitajika katika URL ya IPP.
Mbinu Bora za Kijamii
- Sasisha CUPS na firmware ya printer mara moja; jiandikishe kwa feeds za PSIRT za muuzaji.
- Zima
cups-browsed
na UDP/631 isipokuwa uchapishaji wa zeroconf unahitajika. - Punguza TCP/631 kwa subnets/VPN zinazotegemewa na enforce TLS (ipps://).
- Hitaji Kerberos/Negotiate au uthibitisho wa cheti badala ya uchapishaji wa bila majina.
- Fuata kumbukumbu:
/var/log/cups/error_log
naLogLevel debug2
itaonyesha upakuaji wa PPD zisizo thabiti au mwito wa chujio wa kutatanisha. - Katika mitandao ya usalama wa juu, hamasisha uchapishaji kwenye seva ya uchapishaji iliyoharibiwa, iliyotengwa ambayo inapeleka kazi kwa vifaa kupitia USB pekee.
Marejeleo
- Akamai β βUthibitisho wa RCE wa Linux wa Kihafidhina katika CUPS β Kile Tunachojua na Jinsi ya Kujiandaaβ, Aprili 2025.
- Debian Security Tracker β maelezo ya CVE-2024-35235.
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na π¬ kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter π¦ @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.