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-browsedinasikiliza kwenye UDP/631 kwa matangazo ya printer.- Mshambuliaji anatumia pakiti moja ya kudanganya ikielekeza kwenye URL ya IPP mbaya (CVE-2024-47176).
libcupsfiltersinapata 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/printbila uthibitisho. Payload mbaya ya PostScript inaweza kuita amri za shell (system("/bin/nc ...")) kwenye vifaa vya hali ya juu. - Kuhijack Kazi β
Cancel-Jobikifuatwa naSend-Documentinaruhusu mshambuliaji kubadilisha hati ya mtu mwingine kabla ya kuchapishwa kimwili. - SNMP β IPP combo β jamii ya chaguo-msingi
publicmara 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-browsedna 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_lognaLogLevel debug2itaonyesha 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.
HackTricks