Kucing di bawah tenda. Bagian 2


Halo semuanya! Pada bagian terakhir, kami berbicara tentang solusi yang ada untuk "mengatur" tugas paralel "pemecahan hash" pada hashcat.

Di bagian ini, kami terus berbicara tentang proyek Hashtopolis. Pertimbangkan untuk menyiapkan komponen lingkungan web di server. Mari kita menganalisis parameter utama server dan agen Hashtopolis.

Menginstal dan Mengkonfigurasi Hashtopolis


Untuk pekerjaannya, server Hashtopolis menginginkan komponen berikut dari Anda:

  • Apache2 / nginx
  • 64-bit PHP 7.0+ dan modul: modul php-gd, pir, php-curl
  • MySQL 5.x + KM dengan akses penuh ke database aplikasi

Hashtopolis memiliki dukungan nginx, untuk itu Anda perlu mengkonfigurasi pemblokiran akses untuk semua subdirektori "/ hashtopolis" yang berisi file .htaccess. Pada artikel ini, kami mempertimbangkan untuk menginstal Hashtopolis dengan server web Apache2 (karena itu LAMP).

Anda juga dapat menggunakan XAMPP untuk berkenalan dengan proyek, pada versi 5.6.40 semuanya "lepas landas" tanpa masalah. Materi dalam artikel ini berguna dalam mengkonfigurasi Hashtopolis di XAMPP.

Di bawah spoiler, sedikit tentang gambar Hocktopolis Docker:

Instal Hashtopolis di buruh pelabuhan
Beberapa gambar dari server hashtopolis ditemukan di Docker Hub, namun, hanya satu yang menghasilkan setidaknya beberapa kepercayaan: hub.docker.com/r/kpeiruza/hashtopolis

Penulis tidak terlalu malas dan menambahkan deskripsi "instalasi" hashtopolis di Docker. Detail pengaturan dan wadah dijelaskan secara rinci. Catatan penting - ketika mengonfigurasi pemetaan-port (misalnya, 'buruh pelabuhan ... -p 80:80'), pertimbangkan fitur OS Anda dan kebutuhan untuk mengakses server web pada host agen Hashtopolis.

Proses pengaturan aplikasi web itu sendiri akan dijelaskan nanti dalam artikel kami.

Instalasi LAMP


Versi proyek yang kami gunakan: Hashtopolis 0.10.1

Agar server Hashtopolis berfungsi, kami memiliki cukup host dengan konfigurasi berikut:

  • 1 CPU
  • RAM 1GB
  • Disk 25 GB

Kami menyarankan untuk menginstal phpMyAdmin, Adminer, atau analog lain untuk bekerja dengan DBMS. Jadi, jika ada masalah dengan fungsi Hashtopolis, Pemecahan masalah dapat dilakukan tanpa meninggalkan browser.

Dalam proses menginstal perangkat lunak pada server LAMP kami, kami menggunakan instruksi dari Wiki proyek Hashtopolis (https://github.com/s3inlc/hashtopolis/wiki/Server-Prerequisites):

  1. sudo apt pembaruan && sudo apt peningkatan
  2. sudo untuk menginstal mysql-server
  3. sudo apt install apache2
  4. sudo apt install libapache2-mod-php php-mysql php php-gd php-pear php-curl
  5. sudo apt install git
  6. sudo untuk menginstal phpmyadmin

Jika panduan konfigurasi interaktif tidak diluncurkan selama instalasi paket mysql, Anda perlu menjalankan perintah berikut: mysql_secure_installation.

Dengan demikian, menggunakan "wizard interaktif", kata sandi akan ditetapkan untuk akses ke DBMS.

Maka Anda perlu membuat pengguna di MySQL dan basis data di mana pengguna ini akan memiliki akses baca / tulis.

Kami melanjutkan ke instalasi server Hashtopolis.


Anda dapat mengkloning kode sumber Hashtopolis dari repositori git proyek. Kami bertindak sesuai dengan instruksi dan mengkloning repo, dan dari direktori "hashtopolis" yang ditransfer "src" secara rekursif ke "www":

  1. git clone github.com/s3inlc/hashtopolis.git
  2. cd hashtopolis / src
  3. sudo mkdir / var / www / hashtopolis
  4. sudo cp -r * / var / www / hashtopolis
  5. sudo chown -R www-data: www-data / var / www / hashtopolis

Atur arahan “KeepAliveTimeout” menjadi 10 milidetik, seperti yang direkomendasikan pengembang. Pembenaran:
Untuk meningkatkan penggunaan sesi TCP pada klien python, batas waktu server perlu diatur ke sesuatu yang lebih tinggi daripada waktu pembaruan status Anda
Terjemahan gratis kami: “Untuk menggunakan sesi TCP pada klien yang diimplementasikan dengan Python, batas waktu sesi dalam konfigurasi server web harus ditetapkan lebih tinggi daripada“ status update “nilai agen”

Buka editor (favorit) apa pun dengan file konfigurasi Apache2 (di sistem kami, path ke file "/etc/apache2/apache2.conf") dan ubah nilai direktif "KeepAliveTimeout" dari 5 menjadi 10.

Jika perlu, tambahkan alias ke folder Hashtopolis di konfigurasi server web (jika direktori dibuat di direktori selain "/ var / www / html"). Kami juga menambahkan arahan “AllowOverride All” untuk mengizinkan penggunaan file .htaccess di direktori anak.

Untuk berjaga-jaga, kami menambahkan arahan "ServerSignature Off" dan "ServerTokens Prod" ke file konfigurasi "/etc/apache2/apache2.conf" dengan restart berikutnya dari layanan apache2, dan juga menunjukkan alamat IP yang diizinkan untuk akses ke arahan "phpMyAdmin" Izinkan dari 1.2.3.4/28 "di config" /etc/apache2/conf-enabled/phpmyadmin.conf ". Izinkan akses dari alamat apa pun ke Hashtopolis atau batasi locahost / PrivateIP-space - tergantung pada pengaturan khusus. Dalam kasus kami, akses diizinkan dari IP apa pun, karena Anda lebih baik, putuskan hal ini.

Ini akan menjadi ide bagus untuk membatasi akses ke direktori hashtopolis. Kami menggunakan cara yang cepat dan mudah - untuk mengakses direktori "/ hashtopolis", klien web harus melalui Otentikasi Dasar.

Instal paket apache-utils (jika tidak dilakukan sebelumnya). Utilitas pada tahap ini, "htpasswd" diperlukan. Buat file dan login pengguna:

sudo htpasswd -c /etc/apache2/.htpasswd kraud 

Setelah memasukkan kata sandi, pengguna akan ditambahkan ke file .htpasswd, Anda dapat memeriksa dengan perintah "cat /etc/apache2/.htpasswd". Menambahkan pengguna dilakukan oleh perintah serupa tanpa kunci "-c".

Selanjutnya, kami mengkonfigurasi akses ke direktori aplikasi web dengan menambahkan arahan ke konfigurasi apache2 / sites-available / 000-default.conf. Sebagai hasilnya, kami mendapat konfigurasi "direktori" seperti:

 Alias /hashtopolis "/var/www/hashtopolis" <Directory /var/www/hashtopolis> AuthType Basic AuthName "Restricted Content" AuthUserFile /etc/apache2/.htpasswd Order allow,deny Allow from all AllowOverride All Require valid-user </Directory> 

Harap dicatat bahwa ketika menggunakan "Basic-Auth", Anda juga harus menambahkan parameter ke konfigurasi agen Hashtopolis (file "\ hashtopolis_agent_dir \ config.json"):

 { "url": "http://1.2.3.4/hashtopolis/api/server.php", "voucher": "", "token": "token", "uuid": "d54de86f-3942-4127-af63-f257c45b66cd", "debug": false, "auth-user": "kraud", "auth-password": "password" } 

Tentang Agen Hashtopolis beberapa saat kemudian.

Anda juga harus membuat database baru untuk aplikasi Hashtopolis dan pengguna MySQL dengan akses ke database ini. Maka seseorang yang lebih menyukainya - di PMA atau di konsol untuk membuat database - ini seharusnya tidak sulit. Kami menyimpan nama database dan kredensial dalam catatan - mereka akan dibutuhkan nanti.

Sebagai hasil dari langkah-langkah ini, halaman instalasi aplikasi web Hashtopolis harus dimuat di URL berikut: http: // <server_ip> / hashtopolis:



Jika ini tidak terjadi, masalahnya mungkin pada izin pada direktori "/ var / www / hashtopolis", atau dalam konfigurasi server web (misalnya, kesalahan dalam "Alias"). Ada baiknya memeriksa URL http: // <server_ip> /hashtopolis/src/index.php atau http: // <server_ip> /hashtopolis/src/install/index.php

Kemudian, bentuk "Koneksi DB" akan dimuat, di mana perlu untuk mengisi parameter untuk menghubungkan ke DBMS, nama database (misalnya 'hashtopolis') dan kredensial pengguna untuk mengaksesnya. Jika koneksi dibuat dengan benar, formulir berikut akan terbuka dengan satu tombol "Lanjutkan" - klik. Jika semuanya OK - formulir "Buat Pengguna Admin" berikut akan terbuka - di sini kami menunjukkan kredensial administrator aplikasi web Hashtopolis:



Setelah mengklik tombol "Buat", jika formulir telah diproses dengan benar, sebuah dokumen akan ditampilkan dengan konfirmasi keberhasilan instalasi dan rekomendasi:

  • Pastikan izin pada direktori "./install" sudah benar atau hapus direktori ini
  • Periksa isi file "./install/.htaccess" (seharusnya "Orde deny, izinkan \ nTolak dari semua")
  • Atas permintaan yang diarahkan ke "./install" kode status 403 akan kembali

Setelah semua langkah dilakukan, formulir otentikasi Hashtopolis harus dimuat di URL "http: // <server_ip> / hashtopolis /":



Selanjutnya (opsional) konfigurasikan penggunaan HTTPS, koneksi sertifikat keamanan - kami akan menghilangkan langkah ini. Kami melanjutkan untuk mengkonfigurasi agen Hashtopolis.

Instalasi Agen


Para agen terlibat langsung dalam tugas "pemecahan hash" - contoh 'hashcat' atau cracker lain diluncurkan pada agen host. Dialog antara server Hashtopolis dan agen terjadi melalui HTTP / HTTPs.

Agen dapat diinstal pada sistem yang menjalankan Windows / Linux / MacOS X. Dalam versi Hashtopolis saat ini, hanya agen Python yang didukung.

Versi .Net dari agen Hashtopolis tidak lagi didukung

Kami sudah memiliki host Windows 10 yang kami gunakan untuk "crack hashes" menggunakan 'hashcat'. Oleh karena itu, kami memutuskan untuk tidak mengubah apa pun, tetapi untuk mengambil sistem kerja yang siap pakai untuk menghubungkan ke Hashtopolis.

Pada sistem Windows, Anda harus terlebih dahulu menginstal interpreter Python 3. Jangan lupa untuk menginstal birdie "Tambahkan Python 3.x ke PATH" (contoh di bawah):



Kemudian, Anda perlu mengunduh arsip hastopolis.zip dari server Hashtopolis, atau mengirimkan file arsip ke host agen.

Untuk mengunduh file agen dari server, klik "Agen Baru" dari menu tarik-turun "Agen". Kemudian kita sampai ke bagian "Tambahkan agen baru" di mana tombol unduhan akan terkandung - "Unduh".



Juga, di bagian "Tambahkan agen baru", URL untuk menghubungkan agen dan tombol untuk membuat voucher akan ditunjukkan (Anda perlu mengklik "Buat").

Dalam kasus kami, arsip disimpan di direktori "C: \ hashtopolis", yang akan menjadi direktori kerja agen.

Untuk kenyamanan bekerja dengan agen (melihat log, menyalin / menempel, dll.) Kami menggunakan sesi PowerShell. Agen diluncurkan oleh perintah:

 > python.exe .\hashtopolis.zip 

Agen dimulai dalam mode debug menggunakan opsi -d.

 > python3.exe .\hashtopolis.zip -d 

Anda dapat menonaktifkan debug dengan mengedit config.json config dengan debug string: false ". Nyaman

Anda dapat memanggil bantuan untuk argumen tambahan untuk menjalankan perintah agen menggunakan opsi "-h":

Perintah agen Hashtopolis
> python.exe. \ hashtopolis.zip -h
penggunaan: python3 hashtopolis.zip [-h] [--de-register] [--version]
[--number-saja] [--disable-update] [--debug]
[--Voucher VOUCHER] [- URL URL]

Klien Hashtopolis v0.4.0

argumen opsional:
-h, --help tampilkan pesan bantuan ini dan keluar
--de-register client akan secara otomatis de-register dari server sekarang
--versi menunjukkan informasi versi
--number-only saat menggunakan --version hanya menunjukkan nomornya
--disable-update nonaktifkan mengambil pembaruan otomatis klien dari
server
--debug, -d menegakkan output debugging
- voucher VOUCHER voucher untuk digunakan untuk mendaftar secara otomatis
--url URL URL ke API klien Hashtopolis

Setelah inisialisasi, agen akan menanyakan URL server Hashtopolis (Anda dapat menyalinnya dari bagian "Tambahkan agen baru"): "Silakan masukkan url ke API instalasi Hashtopolis Anda:"

Catatan: skrip agen harus selalu berfungsi di latar belakang. Ada komponen hashtopolis-runner yang menjalankan agen ketika menerima pesan multicast dari server. Runner hanya berfungsi di host linux. Baca lebih lanjut di sini: github.com/s3inlc/hashtopolis-runner

Jika URL benar dan agen dapat terhubung, maka pesan akan diterima meminta voucher: "Tidak ada token ditemukan! Silakan masukkan voucher untuk mendaftarkan agen Anda: "

Agen akan mengeluarkan konfirmasi, jika kode voucher sudah benar dan akan pergi ke mode siaga tugas:

 Successfully registered! Collecting agent data... Login successful! Hashtopolis Server version: 0.10.1 () Client is up-to-date! No task available! 

Di bagian "Agen" pada tabel, agen baru akan ditambahkan, dengan informasi tentang sistem: Nama host, GPU / CPU dan informasi lainnya:



Dalam direktori C: \ hashtopolis, file config.json dengan konfigurasi agen dan file log client.log akan dibuat. Parameter tambahan (misalnya, proxy HTTP) dapat ditambahkan secara manual, sesuai dengan instruksi: github.com/s3inlc/hashtopolis-agent-python

Itu tidak mungkin untuk menemukan informasi tentang rotasi log atau ukuran log maksimum, dilihat dari sumber agen, semua stdout dari terminal juga ditulis ke file, tidak ada batasan atau pemeriksaan ditemukan.

Kami menyarankan Anda segera pergi ke pengaturan agen di antarmuka web Hashtopolis - cukup klik pada nama host (pada tangkapan layar di atas adalah "DENIGMA"). Lebih baik untuk menginstal birdie "Agen kepercayaan dengan data rahasia", serta menunjukkan pemilik ("Pemilik"):



Pengaturan biner cracker


Bagian "Crackers / Cracker Biniaries" menyajikan parameter dari file yang dapat dieksekusi "cracker", secara default bagian ini berisi "hashcat 5.1.0". Jika Anda perlu menggunakan versi hashcat yang berbeda untuk tugas tertentu, klik "Tambahkan Versi / Biner" (daftar rilis: github.com/hashcat/hashcat/releases ). Di formulir, isi semua bidang dan klik "Buat biner":



Hati-hati saat mengisi formulir, khususnya, hindari "spasi" di "Unduh URL", tentukan "hashcat" di bidang "Binary Base Name" - skrip agen akan menambah bagian-bagian yang hilang dalam nama file yang dapat dieksekusi. Jadi kami menambahkan set executable tambahan untuk versi 4.1.0. Anda dapat membuat perubahan dengan mengklik nama cracker di kolom "Name".

Sebagai hasil dari "pengaturan" ini, ketika membuat tugas baru ("Tugas / Tugas Baru"), dimungkinkan untuk memilih versi hashcat.



Di bagian Kerupuk, Anda juga dapat menambahkan jenis cracker lain, lebih lanjut tentang bekerja dengan cracker generik di sini .

Ketika memulai tugas di direktori "cracker" lokal pada host agen, arsip 7z yang ditentukan dalam "URL Unduhan" akan dibongkar ke dalam folder dengan nomor ID cracker


Jika versi cracker ini "diinstal" sebelumnya, arsip tidak akan diunduh lagi.

Buat tugas untuk memecahkan hash


Kami menyiapkan agen dan tidak sabar untuk memeriksanya. Untuk memulai "cracking hashes", Anda perlu membuat daftar hash (atau "Hash list"), dan kemudian tentukan dalam tugas. Untuk membuat daftar di antarmuka web Hashtopolis, klik "Daftar" dan pilih "Daftar hash baru" dari menu drop-down. Pada proyek-proyek kami, kami secara teratur menjumpai hash NTLM / NetNTLM - kami akan mempraktikkannya. Kami akan menggunakan layanan online apa pun dan menghasilkan hash NTLM. Kemudian, atur parameter yang tersisa dari daftar dan klik "Buat daftar hash":



Poin penting - semua hash "retak / tidak retak" dapat dilihat di daftar yang dibuat, yaitu semua data hash dikaitkan dengan daftar, bahkan tugas yang terkait dengannya. Karena itu, berhati-hatilah saat menghapus daftar hash. Dan jika karena alasan tertentu modul aplikasi berhenti berfungsi, misalnya, modul "notification.php" dimatikan setelah menghapus tugas yang diberikan notifikasi, kami harus mengklik entri pada tabel "Pengaturan Notifikasi"

Selanjutnya, Anda perlu menambahkan kamus, karena kami akan memecah hash dengan pilihan "kamus" (tombol '-a0' dalam 'hashcat'). Buka bagian "File" (tab "Daftar Kata" akan aktif), klik tombol "Tambah file" dan pilih file lokal, lalu klik "Unggah file". Kami juga dapat menggunakan unduhan dengan URL, misalnya, mengunduh kamus dari repositori "dikenal" :



Sekarang Anda dapat memulai tugas untuk agen. Dari menu utama Hashtopolis, pilih "Tugas / Tugas baru". Selanjutnya, isi formulir:

  1. Masukkan nama tugas di parameter "Nama"
  2. Pilih daftar hash di parameter Haslist
  3. Kami menandai kamus dari daftar "Daftar Kata" di sebelah kanan - nama kamus secara otomatis diganti di bidang "Baris perintah": Tentukan jalur ke kamus dalam format ".. \ path \ ke \ file \% filename%"
  4. Di bidang "Baris perintah", masukkan parameter startup hashcat, misalnya, "-a0"
  5. Prioritas adalah relevan ketika ada banyak tugas.
  6. "Catatan tugas" digunakan untuk catatan, di luar Hashtopolis mereka tidak akan tersedia.
  7. Anda dapat memilih warna untuk tugas yang akan ditandai dalam daftar tugas (menu "Tugas / Tampilkan tugas")

Kami membiarkan sisa parameter secara default, klik "Buat tugas". Setelah itu, tugas baru akan muncul dalam daftar tugas:



Seperti dapat dilihat dari tabel, agen tidak ditugaskan untuk tugas "NTLM_test_crack". Anda dapat menetapkan agen baik dari menu "Rincian agen" di parameter "Tugas:", atau di properti tugas, pilih agen dari daftar dan klik tombol "Tetapkan":



Segera setelah itu, "mesin" akan mulai pada agen - instruksi akan dikirimkan:

  • Unduh "cracker binaries" (secara default hashcat.net/files/hashcat-5.1.0.7z ). Jika file ada dan versinya cocok, arsip tidak akan diunduh
  • Unduh file kamus (jika "daftar kata" dari server hashtopolis ditentukan)
  • Jalankan tes kinerja singkat
  • Mulai Hacking Hash

Dalam hal ini, konsol akan menampilkan informasi tentang tahapan mempersiapkan GPU, proses pemilihan, kinerja sistem dalam "H / s", dll.

Sebagai hasil dari peluncuran tugas dan pelaksanaannya, status "daftar hash" akan diperbarui. Kata sandi yang dipilih dapat dilihat dengan mengklik angka yang berlawanan dengan "Cracked:" di tabel "Tasks", atau di bagian "Hash details":



Jika agen menemukan kesalahan selama pelaksanaan tugas, status agen ini akan diubah dan akan perlu untuk mengaktifkannya secara manual. Untuk "mengaktifkan" agen lagi, Anda harus meletakkan burung di depan parameter "Activity" di pengaturan agen. Status yang dijeda terlihat seperti ini:



Untuk mencegah agen berhenti karena kesalahan, Anda perlu mengubah parameter "Kesalahan cracker" menjadi salah satu opsi "Keep agent running" (agen akan bekerja, tetapi kesalahan dapat diperbaiki dalam log atau ditolak):



Buntut


Terima kasih atas perhatian anda! Di bagian selanjutnya, kita akan berbicara tentang menyiapkan notifikasi di Hashtopolis.

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


All Articles