Printer Hacking 101

Tahukah kalian bahwa printer sebenarnya dapat diretas? Ya, pada zaman sekarang, sudah banyak printer-printer yang menggunakan fitur Wi-Fi Direct. Fitur ini membuat koneksi jaringan nirkabel langsung ke printer tanpa harus melalui router nirkabel. Dengan terhubungnya printer dengan internet membuat informasi sensitif seperti nama perangkat, lokasi, model perangkat, versi firmware, nama organisasi, port Internet Printing Protocol atau yang biasa disebut port IPP (protokol pencetakan internet), dan SSID WiFi, yang adalah nama WiFi Router yang kita tentukan, dapat terekspos. 

Nah, bagi yang kurang mengerti atau yang bahkan baru mengenal perangkat yang bernama Printer, dalam artikel kali ini kita akan membahas tentang Printer Hacking 101 dalam 3 tahap. Ketiga tahap ini ialah :

  • Basically
  • Theoretically
  • Practically

— Basically —

Printer adalah sebuah perangkat berbasis hardware atau alat fisik yang dapat mencetak sebuah data yang tersimpan dalam Printer tersebut menjadi sebuah hardcopy atau cetakan yang dapat kita sentuh secara fisik. 

Kemudian, perlu diketahui bahwa Printer memiliki 2 jenis cara untuk dapat berkomunikasi dengan komputer, yaitu dengan :

  • Wired
    • Kabel USB 
    • Kabel Cat 5
    • Kabel FireWire
  • Wireless
    • Wi-Fi

Seperti yang kita ketahui, jika kita ingin mengamankan perangkat-perangkat yang kita gunakan, maka kita harus menggunakan kabel agar koneksi antar perangkat hanya berbasis satu-arah yaitu lewat kabel itu sendiri. Maka dari itu, kita dapat memiliki security mindset yang seperti berikut :

  • Wired
    • Jika perangkat Printer tersebut terhubung dengan komputer melalui kabel, maka hacker dapat menyerang dengan mendatangi perangkat tersebut secara fisik dan tidak mengandalkan serangan melalui internet. Hal ini bisa dilakukan jika ada orang yang berpura-pura bekerja di bagian Printer tersebut, ataupun dengan cara Social Engineering dan berbagai hal lainnya untuk memanipulasi cara berpikir manusia secara fisik.
  • Wireless
    • Jika Printer berkomunikasi dengan komputer melalui internet atau Wi-Fi, maka hacker dapat melakukan Information Gathering terhadap Wi-Fi Access Point tersebut. Dan tentunya hacker akan menggunakan berbagai tools dan cara untuk bisa mendapatkan informasi terkait Printer tersebut.

 

— Theoretically —

Berdasarkan penelitian dari Shadowserver, peneliti memindai ada sekitar empat miliar alamat IP Address yang dapat di-rute-kan dan kemudian menemukan printer yang terhubung yang dimana memperlihatkan port IPP mereka. Mereka menemukan sekitar 80.000 printer terekspos secara online melalui port IPP per hari, sehingga bisa menjadi potensi serangan bagi para Hacker. 

Apa sih port IPP atau Internet Printing Protocol itu?

Internet Printing Protocol (IPP) adalah protokol yang memungkinkan pengguna untuk mengelola printer yang terhubung ke internet dan mengirim pekerjaan cetak ke printer yang dihosting secara online. Mengenai serangan terhadap printer, port IPP yang terbuka atau yang tidak aman akan rentan terkena beberapa jenis serangan. Dampaknya antara lain:

  • Informasi-informasi sensitif dan pribadi dapat terlihat atau terekspos.
  • Data-data seperti yang ingin dicetak/diprint dapat dicuri.
  • Dapat melakukan pencetakan yang tidak diinginkan pemilik printer atau hacker melakukan pencetakan suatu data. (Contoh: Kasus printer hacking untuk meng-subscribe pewdiepie).
  • Tidak adanya konfigurasi keamanan dalam sistem printer seperti Automatic Deletion, Format Overwriting, Encryption dan juga Automated Password Generation untuk membantu mengamankan data yang sedang di-transport atau dipindahkan antar perangkat. Contoh kasus yang akan terjadi, misalnya dokumen yang dikirim ke printer yang terkoneksi pada server pastinya akan disimpan kedalam Hard Drive dari printer itu sendiri, tetapi apapun device yang terhubung dengan printer tersebut akan menjadi open port bagi Hacker untuk meretas sistem printer tersebut.

Dalam dunia Printer, ada beberapa hal krusial yang terdapat didalamnya seperti:

  • PJL
  • PS
  • PCL

Dalam artikel kali ini, kita akan membahas Printing Language yang sangat umum dan seringkali terdapat di semua model Printer yang ada, yaitu PJL dan PS.

Apa itu PJL dan PS?

Keduanya adalah sebuah Printing Language yang dibuat untuk bekerja dalam sistem Printer, dengan tujuan untuk dapat berkomunikasi antar perangkat dari Printer Driver dan Printer itu sendiri.

PJL (Printer Job Language) adalah Printing Language yang bekerja sebagai Interpreter di dalam Printing System yang dapat berfungsi untuk mengubah Printer Language, memonitor status printer, meminta data informasi terkait model dan konfigurasi printer, dan masih banyak lagi. Contoh kode program yang dijalankan adalah seperti berikut :

  • @PJL SET PAPER=A4
  • @PJL SET COPIES=2
  • @PJL ENTER LANGUAGE=POSTSCRIPT

Disini, perangkat Printer akan menerima perintah untuk melakukan pencetakan kertas dengan detail spesifikasi seperti mencetak 2 kertas yang sama dengan ukuran A4 dan diubah kedalam bentuk PostScript sehingga Printer dapat memahami Printing Language apa yang akan digunakan dengan tujuan untuk memperoleh gambar dan teks visual yang kualitasnya lebih bagus dan dapat berfungsi di segala jenis perangkat Printer.

PS (PostScript) juga termasuk kategori Printing Language yang juga adalah sebuah Interpreter yang dipakai dalam perangkat Printer. Yang menarik dari PostScript adalah keunikannya, yaitu berjenis independent. Maksudnya adalah, disaat kita ingin mencetak sebuah gambar dan tulisan yang kita inginkan dengan Printer apapun, jika Printer Driver yang kita gunakan adalah menggunakan PostScript sebagai Interpreter terhadap segala spesifikasi cetakan yang kita input kedalam komputer, maka kualitas hasil cetakan yang dikeluarkan oleh Printer akan sesuai dengan yang kita minta. Hal ini terjadi karena PostScript tidak dependent dengan hardware yang dipakai, yaitu jenis Printer yang digunakan.

Maka dari itu, tidak heran jika kita sering melihat LaserJet Printer yang dapat mencetak kertas dengan cepat menggunakan konsep kutub utara dan kutub selatan dalam sistem kelistrikan di dalam Printer dan tidak menggunakan tinta cair.

Karena sistem kerja perangkat Printer dalam memproses PostScript agak lama, maka digunakanlah Printer berbasis Laser untuk mempercepat proses pencetakan kertas dan PostScript Printing Language untuk selalu memberikan output cetakan yang kita inginkan, tidak peduli selemah apa perangkat Printer yang digunakan.

 

— Practically —

Nah, karena kita sudah mengetahui secara teori terkait beberapa hal dan kasus mengenai peretasan terhadap printer dan bagaimana hacker dapat menggunakan perangkat printer untuk menggali dan bahkan mencuri berbagai informasi yang sensitif sehingga banyak sekali akses perangkat lainnya yang terbobol oleh karena keamanan pada sistem printer tidak diperkuat, maka sekarang kita akan mengetahui langkah serangan terhadap sistem printer berdasarkan cara praktikal atau demonstrasinya.

Ingat, demonstrasi printer hacking ini hanya dilakukan untuk tujuan pembelajaran.

Jangan dilakukan secara sembarangan yaaa 😀

 

Untuk melakukan operasi Printer Hacking, pastinya kita akan menggunakan Operating System yang isolated dari sistem komputer asli/utama kita, yaitu OS Kali Linux di dalam Virtual Machine.

Kemudian, kita akan menggunakan mesin target yang terdapat di salah satu platform hacking yang legal dan yang memang menyediakan banyak mesin virtual yang khusus untuk diretas guna tujuan pembelajaran hacking, yaitu TryHackMe dan dengan nama modulnya yaitu Printer Hacking 101”.

Untuk Link Source terkait modul Printer Hacking 101 terdapat di akhir halaman pada artikel ini,

silahkan dicoba  >.<

Langkah yang paling utama dari Penetration Testing adalah melakukan pencarian informasi atau Information Gathering terkait sistem dan jaringan dari target. Salah satu tools yang paling esensial dalam melakukan Information Gathering adalah Nmap.

Dengan tools Nmap, kita dapat mengambil beberapa informasi di bagian permukaan saja seperti Operating System yang digunakan, port-port yang terbuka pada jaringan yang dilakukan scanning, versi dari Operating System yang digunakan dan berbagai hal lainnya. Beberapa informasi ini yang kita bisa ambil dari target dengan Nmap, disebut sebagai banner.

Dari hasil Nmap menunjukkan bahwa port yang terbuka pada IP Address target adalah port 631 yang dimana adalah port IPP yang paling sering digunakan sebagai CUPS Server. CUPS Server simpelnya adalah sebuah server yang dijalankan dari suatu komputer yang menjadi host sebagai perantara antara komputer Client dengan perangkat Printer yang terkoneksi dengan server CUPS tersebut.

  • Sejauh ini, kita mendapatkan alurnya bahwa target yang kita sedang pindai atau scan adalah komputer yang sedang menjalan CUPS server yang menjadi perantara antara komputer Client dengan perangkat Printer. Jika kita dapat mengakses server CUPS ini lewat browser, maka kita dapat mengetahui apa saja data atau informasi yang akan dicetak oleh Client yang menggunakan CUPS server ini untuk mengirim perintah kepada perangkat Printer untuk melakukan pencetakan.

Dikarenakan kita hanya memiliki informasi seperti IP Address dan nama user (diberikan langsung dari modul), maka kita dapat melakukan brute force terhadap target untuk mendapatkan password.

 

Karena tujuan kita sebelumnya adalah ingin mengakses CUPS server melalui browser, maka kita harus melakukan Port Forwarding. Inti dari Port Forwarding adalah melakukan redirection terhadap port yang hanya dibuka untuk localhost yang awalnya tidak dapat diakses oleh siapapun dari luar jaringan, untuk dialihkan ke IP Address dan Port lain sehingga kita dapat mengaksesnya dari Address dan Port yang sudah kita tentukan.

Dalam kasus ini, setelah kita melakukan Port Forwarding kita akan mengakses CUPS servernya lewat browser dengan IP Address dan Port yang sudah kita tentukan, yaitu localhost dan 3631.

Nah, dari sini kita dapat melihat semua data-data yang akan diproses terkait deskripsi paper yang akan di print, lokasi perangkat Printer, Printer Driver yang digunakan, koneksi dengan server yang digunakan, dan juga setiap detail dari jenis paper yang akan di print oleh perangkat Printer yang bernama Fox_Printer.

Tetapi, proses yang dilakukan barusan adalah jika kita melakukan penyerangan terhadap CUPS Server tetapi tidak menyerang perangkat Printernya secara langsung. Jika kita ingin menyerang perangkat Printer nya secara langsung, maka kita harus menggunakan sebuah toolkit yang dibuat khusus untuk mengeksploitasi Printer, yaitu Printer Exploitation Toolkit.

Dengan Printer Exploitation Toolkit, kita dapat mengakses Printer yang ada dalam jaringan dalam bentuk terminal dengan cara mengeksploitasi fitur dari Printing Language yang ada pada perangkat Printer tersebut. 

Untuk cara menggunakannya sangat mudah. Terdapat 3 cara untuk masing-masing 3 jenis Printing Language yang secara umum sering digunakan dalam sekian banyak model Printer. Langkah yang dapat dilakukan adalah seperti berikut :

Karena target perangkat Printer kita berbasis PostScript Language, maka kita menggunakan command untuk mengakses Printer berbasis PostScript Language.

Dari serangan yang baru saja dilakukan dengan toolkit tersebut kita dapat mengetahui beberapa hal terkait perangkat Printernya, seperti :

  • Melakukan tampering terhadap data cetakan yang diminta oleh Client yang masuk ke Printer File System
  • Kita dapat menaruh malware atau backdoor ke dalam perangkat Printer.
  • Mengambil semua informasi terkait perangkat Printer yang digunakan, juga termasuk data-data jaringan Printer yang menjadi jalur lain eksploitasi untuk kita bisa bergerak lebih jauh lagi.

Kasus terburuknya adalah kita bisa melakukan serangan yang lebih jauh dari sekedar perangkat Printer saja, seperti melakukan eskalasi serangan ke perangkat lainnya yang terkoneksi di satu jaringan dengan perangkat Printer tersebut dengan mengandalkan metode “network dump” ataupun credentials yang memiliki keterkaitan dengan biodata user ataupun akun user sendiri dengan username dan passwordnya.

Dari gambar diatas, kita dapat melihat contoh serangan yang bertujuan menimpa data baru kedalam sebuah file yang akan dicetak dengan command overlay.

Kemudian, kita melihat bahwa file yang akan dicetak berisikan banyak tulisan dan tidak ada gambar sama sekali.

Kemudian, karena sebelumnya telah dilakukan serangan terhadap file yang akan dicetak dengan command overlay maka hasil akhir print out dari cetakan tersebut menjadi seperti…

Solusi / Mitigasi serangan :

  • Gunakan autentikasi yang kuat pada printer dan server CUPS
  • Implementasikan sistem automatic deletion file setelah pencetakan
  • Enkripsi semua data dan tambahkan password ke setiap file
  • Jangan pernah membuka port 9100 dan 631 ke luar jaringan
  • Secara fisik, kuncilah pintu ruangan tempat dimana Printer ada atau setidak-tidaknya ada orang yang menjaga ruangan Printer tersebut

 

Referensi:

Raymond Nolasco & Pitra Winarianto