Pengkodean, shift cipher, hash kasar dan pembuatan gambar menggunakan PIL python. Pemecahan masalah dengan r0ot-mi Cryto. Bagian 1

gambar

Artikel ini berisi solusi untuk Pengkodean tugas ASCII dan Pengkodean UU yang ditujukan untuk pengodean, Hash Message Digest 5 dan Hash SHA-2 - untuk menemukan gambar kebalikan dari hash, Shift cipher - shift cipher, dan Pixel Madness - untuk menyusun gambar.

Informasi Organisasi
Terutama bagi mereka yang ingin mempelajari sesuatu yang baru dan berkembang di bidang informasi dan keamanan komputer, saya akan menulis dan berbicara tentang kategori berikut:

  • PWN;
  • kriptografi (Crypto);
  • teknologi jaringan (Jaringan);
  • membalikkan (Reverse Engineering);
  • steganografi (Stegano);
  • pencarian dan eksploitasi kerentanan WEB.

Selain itu, saya akan membagikan pengalaman saya dalam forensik komputer, analisis malware dan firmware, serangan pada jaringan nirkabel dan jaringan area lokal, melakukan pentest dan menulis eksploitasi.

Agar Anda dapat mengetahui tentang artikel baru, perangkat lunak, dan informasi lainnya, saya membuat saluran di Telegram dan grup untuk membahas masalah apa pun di bidang ICD. Juga, saya pribadi akan mempertimbangkan permintaan pribadi Anda, pertanyaan, saran dan rekomendasi secara pribadi dan akan menjawab semua orang .

Semua informasi disediakan hanya untuk tujuan pendidikan. Penulis dokumen ini tidak bertanggung jawab atas kerusakan yang disebabkan seseorang sebagai akibat dari menggunakan pengetahuan dan metode yang diperoleh sebagai hasil dari mempelajari dokumen ini.

Pengkodean - ASCII


Mari kita mulai dengan pekerjaan pertama - Encoding-ASCII.

gambar

Kami lolos ke tugas itu sendiri. Kami melihat urutan 16 karakter. Asumsi pertama adalah hex reguler (semua karakter disajikan dalam bentuk ke-16).

gambar

s = "4C6520666C6167206465206365206368616C6C656E6765206573743A203261633337363438316165353436636436383964356239313237356433323465" s.decode("hex") 

gambar

Kami mendapatkan jawabannya dan melanjutkan.

Pengkodean - UU


gambar

Kami lolos ke tugas itu sendiri. Meskipun ada petunjuk nama tugas, mudah untuk membedakan file dalam UUE (penyandian untuk mentransfer file yang berisi data non-teks) - mereka mulai dari baris:

 Begin_--_- 

gambar

 s = '''begin 644 root-me_challenge_uudeview B5F5R>2!S:6UP;&4@.RD*4$%34R`](%5,5%)!4TE-4$Q%"@`` ` end''' f = open('./uu.enc', 'w') f.write(s) f.close() import uu uu.decode('uu.enc', 'uu.dec') ans = open('uu.dec', 'r').read() 

gambar

Kami menyerahkan bendera.

Hash - Intisari Pesan 5


gambar

Kami diminta untuk menemukan prototipe untuk hash md5. Ini dapat dengan mudah dilakukan menggunakan situs ini (https://md5decrypt.net/). Tapi kami, untuk tujuan pelatihan, tentu saja, menggunakan hashcat. Untuk melakukan ini, gunakan parameter dan kode berikut:

  • -a 0 - mencari melalui kamus;
  • -m 0 - tipe hash MD5;
  • File.hash - file dengan hash;
  • rockyou.txt - kamus kami;
  • --force - abaikan kesalahan.

gambar

Kami melanjutkan ke tugas berikutnya.

Hash - SHA-2


gambar

Sebagai jawaban, Anda perlu memberikan hash SHA1 dari gambar terbalik hash ini. Faktanya adalah ini adalah karakter tambahan.

gambar

Hapus itu. Untuk menentukan algoritma hashing, kami menggunakan program hashid.

gambar

Dari algoritma yang disajikan, kemungkinan besar SHA-256. Hashcat menunjukkan bagaimana menyelesaikan tugas seperti itu menggunakan hashcat, sekarang kita akan melakukannya menggunakan ini
situs

gambar

Masih harus mengambil SHA-1 dari baris ini.

 from hashlib import * sha1('4dM1n').hexdigest() 

gambar

Shift cipher


gambar

Nah, dengan algoritma enkripsi, mereka membantu kami. Cipher Caesar yang sama, hanya pergeseran tidak terjadi dalam kisaran dari nol ke panjang alfabet, tetapi menurut semua kemungkinan 256 nilai satu byte. Kami akan menulis sebuah program yang pertama menggeser masing-masing karakter dengan 1, kemudian oleh 2, dll. hingga 255.

 s = open('ch7.bin', 'r').read() for x in range(255): “”.join( chr((ord(y) + x)%256 ) ) for y in s) 

gambar

Di antara kalimat-kalimat itu kita menemukan jawaban yang berisi jawabannya.

gambar

Kegilaan piksel


gambar

Kami diberi beberapa ekspresi, dan pada akhirnya mereka mengatakan bahwa 0 adalah putih dan 1 adalah hitam. Kemungkinan besar hasilnya harus berupa gambar. Saya mengira bahwa dalam ekspresi Anda tidak perlu mengalikan, tetapi untuk mengulangi jumlah yang diperlukan kali karakter tertentu.

Anda dapat dengan cepat mengeksekusi ekspresi menggunakan fungsi eval, tetapi pertama-tama Anda perlu mengubah format 0x1 menjadi '0' * 1.

 s = ''''0x3+1x1+0x1+0x1+0x7+1x2+0x15+1x1+0x8+1x1+0x8+1x1+0x1+1x1+0x1+1x1+0x1+1x1+0x1+1x1+0x3+1x1+0x1+1x1+0x3+1x1+0x1+1x4+0x2+1x1+0x25 '0x2+1x1+0x4+1x1+0x4+1x3+0x1+1x2+0x2+1x8+0x11+1x4+0x1+1x3+0x6+1x2+0x4+1x1+0x4+1x2+0x7+1x4+0x4+1x2+0x7+1x2+0x3+1x2+0x3 '0x3+1x1+0x2+1x1+0x2+1x1+0x11+1x2+0x2+1x3+0x7+1x1+0x4+1x2+0x2+1x2+0x7+1x1+0x6+1x1+0x2+1x1+0x4+1x3+0x1+1x1+0x4+1x1+0x2+1x1+0x2+1x1+0x3+1x1+0x2+1x3+0x2+1x2+0x3 '1x1+0x2+1x1+0x4+1x1+0x2+1x1+0x1+1x1+0x2+1x1+0x2+1x1+0x1+1x2+0x2+1x2+0x1+1x2+0x3+1x1+0x3+1x1+0x2+1x2+0x1+1x3+0x3+1x1+0x2+1x1+0x4+1x2+0x1+1x1+0x4+1x1+0x3+1x2+0x12+1x2+0x1+1x1+0x3+1x7+0x3 '0x3+1x1+0x7+1x1+0x1+1x1+0x4+1x1+0x2+1x2+0x2+1x2+0x4+1x1+0x2+1x1+0x1+1x2+0x1+1x8+0x1+1x1+0x4+1x1+0x5+1x1+0x3+1x2+0x2+1x1+0x1+1x2+0x2+1x1+0x3+1x2+0x9+1x1+0x1+1x2+0x2+1x3+0x2+1x1 '0x7+1x1+0x4+1x1+0x4+1x1+0x1+1x1+0x1+1x7+0x3+1x1+0x1+1x2+0x3+1x1+0x1+1x6+0x1+1x1+0x3+1x1+0x2+1x1+0x14+1x2+0x8+1x1+0x10+1x2+0x3+1x2+0x1+1x1+0x1 '0x6+1x5+0x4+1x1+0x7+1x1+0x2+1x1+0x3+1x2+0x4+1x1+0x8+1x1+0x3+1x2+0x1+1x2+0x3+1x1+0x8+1x1+0x2+1x2+0x1+1x1+0x3+1x7+0x5+1x2+0x2+1x1+0x2+1x2+0x3 '0x1+1x1+0x2+1x1+0x1+1x2+0x5+1x1+0x6+1x2+0x3+1x1+0x2+1x1+0x1+1x2+0x20+1x8+0x1+1x1+0x1+1x1+0x4+1x2+0x3+1x1+0x2+1x2+0x3+1x2+0x7+1x2+0x3+1x2+0x4 '0x2+1x1+0x3+1x5+0x5+1x2+0x7+1x1+0x4+1x2+0x2+1x1+0x2+1x2+0x1+1x1+0x3+1x1+0x6+1x2+0x2+1x2+0x3+1x2+0x2+1x3+0x1+1x1+0x6+1x3+0x3+1x5+0x3+1x1+0x4+1x1+0x5 '0x4+1x2+0x3+1x2+0x3+1x1+0x5+1x2+0x2+1x1+0x1+1x1+0x1+1x1+0x1+1x2+0x9+1x1+0x3+1x1+0x2+1x1+0x1+1x1+0x2+1x1+0x1+1x2+0x2+1x1+0x2+1x1+0x1+1x1+0x4+1x3+0x1+1x1+0x2+1x2+0x3+1x2+0x3+1x1+0x5+1x1+0x4+1x1+0x2 '0x6+1x5+0x4+1x1+0x1+1x1+0x2+1x2+0x6+1x1+0x1+1x7+0x4+1x3+0x3+1x1+0x4+1x1+0x2+1x2+0x4+1x1+0x6+1x1+0x6+1x8+0x3+1x1+0x5+1x1+0x7 '0x2+1x1+0x3+1x6+0x4+1x1+0x1+1x3+0x4+1x1+0x2+1x2+0x4+1x1+0x5+1x1+0x2+1x1+0x3+1x2+0x3+1x1+0x2+1x3+0x1+1x1+0x2+1x2+0x3+1x3+0x2+1x3+0x9+1x1+0x4+1x2+0x7+1x2''' s = s.replace("x", "'*").replace("+","+'") examp = s.split('\n') bits = [eval(i) for i in examp] print(bits) 

gambar

Sekarang buat gambar menggunakan perpustakaan PIL. Mari kita tambahkan kode berikut, edit dan buka gambar yang dihasilkan.

 from PIL import Image width, height = len(bits[0]), len(bits) pic = Image.new('RGB', (width, height)) pix = pic.load() for i in range(height): for j in range(width): pix[j,i] = ( bits[i][j]=='0' and (255,255,255) or (0,0,0) ) pic.save('pixel.png') 

gambar

Saya memperbesar gambar, membaca kata SOLUSI. Faktanya, ada lebih banyak steg daripada crypts. Artikel ini akan menarik, kemungkinan besar, hanya untuk pemula.

Lebih jauh dan lebih rumit ... Anda dapat bergabung dengan kami di Telegram . Di sana Anda dapat mengusulkan topik Anda sendiri dan memberikan suara pada pilihan topik untuk artikel berikut.

Source: https://habr.com/ru/post/id472628/


All Articles