Testiranje hakiranja i sigurnosti s DE-ICE-om

Testiranje prodora čin je testiranja mreže na sigurnosne ranjivosti prije nego što je iskoristi zlonamjerni napadač ili haker. DE-ICE je virtualni stroj koji sadrži instalaciju Linux Slax i služi za vježbanje početnika pa sve do naprednih praktičara.

Slax je živi CD operativnog sustava GNU / Linux na temelju Slackware distribucije. Slax je prijenosni Linux operativni sustav, ne zauzima puno prostora i pruža brze performanse.

Slax nudi spremište unaprijed instaliranog softvera, a administratori ga naširoko koriste za stvaranje testnih platformi, specifičnih distribucija i korisnih za stvaranje alata za oporavak, penetracijsko testiranje, sigurnosne i mrežne simulacije s virtualnim strojevima za administratore sustava i programere softvera ili stručnjake za sigurnost, sustav zauzima oko 190 MB. Grafičko sučelje može i ne mora biti instalirano, ali to bi zauzelo puno prostora i usporilo sustav.

De-ICE se može instalirati u VirtualBox ili narezati na CD kako bi se koristio kao LiveCD. Postoji nekoliko verzija koje predstavljaju različite razine težine, verzija za početnike je DE-ICE1.100, a najsloženija je trenutno DE-ICE1.140. Za ovaj vodič koristit ćemo verziju DE-ICE 1.120 koja je dostupna na https: //www.vulnhub… .e-ice-s1120,10 /.

Ovaj virtualni stroj posebno je pripremljen za provjeru našeg znanja i primjenu svih tehnika ili alata za testiranje penetracije.

Pentesting De-ICE PenTest Lab 1.120
Za postupke testiranja penetracije instalirajte verziju DE-ICE.1.120, a ja koristim Linux Mint i VirtualBox za instaliranje DE-ICE. Može se koristiti iz bilo kojeg operacijskog sustava koji vam omogućuje stvaranje virtualnog stroja.

Počinjem tražiti svoj trenutni ip s terminala pomoću naredbe ifconfig, a rezultat je sljedeći:

 IP: 192.168.0.11

Zatim koristim drugi softver po svom izboru, ali mogu isprobati i druge koji odgovaraju korisniku.

A) Ja koristim Zenmap za skeniranje svih hostova između 1-254


U vodičima:
  • Zenmap vizualni alat za testiranje sigurnosti portova
  • Kako koristiti Nmap za skeniranje otvorenih portova na vašem VPS -u i Metasploit okviru za testiranje sigurnosti poslužitelja

Vidjeli smo neke alate za skeniranje portova i kako ih koristiti.

Otvaramo Zenmap, dodjeljujem IP i parametre tako da skenira cijelu mrežu i pokaže mi povezanu opremu i IP -ove.

IP 192.168.0.1 odgovara IP pristupniku usmjerivača s otvorenim portom 80 i IP usmjerivaču 192.168.0.10 sa zatvorenim svim priključcima.

Gledajući topologiju i karakteristike svakog hosta, utvrđujem da je ip 192.168.0.38 WiFi ip virtualnog stroja, a ip 192.168.0.40 ethernet veza virtualni stroj.

Pristupam IP -u virtualnog stroja ili VPS -a i pronalazim web stranicu za registraciju proizvoda.

U načelu [color = # b22222] ozbiljan propust [/ color] bio bi to što ova web stranica nema nikakvu vrstu kontrole pristupa korisnika, na taj način imala bi pristup svim korisnicima mreže, bez obzira na to koliko na intranetu.

Iz Zenmapa također promatram skenirane portove za ovaj host.

Smatram da je nekoliko priključaka otvoreno za pokušaj pristupa napadima grube sile prisiljavanjem korisnika i lozinke pomoću alata poput Hydra ili Ivana Trbosjeka, među ostalima.

Također možemo vidjeti topologiju za analizu svakog hosta i s kim je povezan.

Tako na ovaj način možemo vidjeti karakteristike opreme, kako je mreža konfigurirana i koji su domaćini koje možemo napasti.

B) Skeniranje ranjivosti


Koristim OSWAP ZAP za skeniranje ranjivosti. Ovaj smo alat vidjeli u vodiču:
  • Skenirajte ranjivost web stranice pomoću ZAP -a

Omogućuje nam skeniranje ranjivosti web stranice prezentiranjem izvješća o pronađenim ranjivostima.
Koristeći filter i pravila aktivnog i pasivnog skeniranja možemo pronaći ranjivosti weba. Također nam prikazuje sve stranice koje web sadrži, čak ukazuje i na one koje primaju neku vrstu parametra putem url -a.

Nakon skeniranja mogu vidjeti strukturu weba sa stranicama programiranim u PHP -u ​​i ranjivosti prema primijenjenim filterima.

U slučaju stranice za umetanje proizvoda vidimo da prima parametre putem POST metode, a možemo vidjeti i polja ili varijable koje prima.

C) Injekcija koda XSS


Zatim ćemo otići na stranicu za dodavanje proizvoda (Dodaj proizvod) i prijaviti se Tehnike ubrizgavanja XSS -a gdje ubrizgavam html i Javascript kôd da vidim je li ranjiv na ovu vrstu napada.

Kao prvi test u opis proizvoda dodajem html kôd vanjske slike, bilo koju možete odabrati pretraživanjem na Googleu.

 
Ako je slika ranjiva, bit će spremljena u bazu podataka i bit će prikazana na popisu proizvoda koje ćemo morati tražiti u kombinaciji za kôd koji dodijelimo, rezultat je sljedeći:

[color = # b22222] Ranjiv je na XSS [/ color] jer bismo mogli unijeti bilo koji html ili javascript kod uključujući veze.

U polje za opis umetnemo iframe i spremimo:


Zatim tražimo proizvod pod kodom 003 i možemo vidjeti rezultat

Pomoću ove tehnike možemo unijeti obrazac sa simulacijom prijave i da se podaci zapravo spremaju u vanjsku bazu podataka. Popis proizvoda koji uzrokuju preusmjeravanje na drugu web stranicu možemo onemogućiti ako u bilo koje polje za registraciju proizvoda dodamo sljedeći html kôd:

 
Kad netko pokuša vidjeti popis proizvoda, automatski će se proslijediti na web mjesto navedeno u ovom slučaju Google.

D) SQL injekcija Pristup bazi podataka


Sqlmap je vrlo koristan alat za testiranje sigurnosti poslužitelja baze podataka u vodičima:
  • SQLMAP SQL alat za ubrizgavanje i hakiranje etičke baze podataka
  • BadStore: Web za testove pentestinga.

Koristim sqlmap da odredim jesu li dostupne neke baze podataka pomoću sljedećih naredbi.

 python sqlmap.py -u "http://192.168.0.40/products.php?id=1" --dbs

Možemo vidjeti da je poslužitelj Apache 2.2.11, koji koristi php 5.2.9, a da je poslužitelj baze podataka MySQL 5.0.12, također pregledavamo sve dostupne baze podataka, uključujući i one koje su konfiguracija MySQL podataka osnovnog poslužitelja.

Zatim koristim naredbu da provjerim postoje li tablice u bazi podataka robe, za koju pretpostavljam da ima tablicu proizvoda koju unosimo na webu.

 python sqlmap.py -u "http://192.168.0.40/products.php?id=1" -tablice -D merch

Pronašli smo tablicu koju web stranica koristi. U nastavku mogu pogledati tablicu proizvoda sa sljedećom naredbom

 python sqlmap.py -u "http://192.168.0.50/products.php?id=1" -stupci -D merch -T proizvodi

Želim saznati korisnike koji imaju Mysql račun koji pokušavaju pronaći administratora, prema zadanim postavkama koristim rječnik podataka sqlmap koji se nalazi u mapi sqlmap-dev / txt / wordlist.zip

U ovom direktoriju pronaći ćemo nekoliko rječnika, sqlmap će biti zadužen za raspakiranje i korištenje datoteke, za traženje korisnika i lozinki za testiranje ako mogu otkriti i konfigurirati korisnička imena na MySQL poslužitelju, za to koristim sljedeća naredba:

 python sqlmap.py -u "http://192.168.0.40/products.php?id=1" --korisnici -lozinke

Zatim tražim tip korisnika da vidim koje su privilegije pristupa svakog korisnika kako bi se utvrdilo tko su administratori i koji su im pristupni kodovi.

 python sqlmap.py -u "http://192.168.0.65/products.php?id=1" -f -b --current -user --is -dba --is -dba --privileges --dbs -dump

Kao rezultat izvršenja, otkrivaju se lozinke svakog korisnika za pristup bazama podataka i privilegije koje imaju.

Kad skeniranje završi, na kraju popisa možemo vidjeti privilegije svakog korisnika i odrediti koji su korisnici administratori.

Smatram da postoji nekoliko administratorskih korisnika, pa ću uzeti korisnika jdavenport tko je administrator i njegova je lozinka babyl0n, kako biste pokušali pristupiti sustavu

Zatim pokušavam prekršiti SSH port 22 s dobivenim podacima:

Vidljivo je da sam pristup dobio kao administrator i imam potpunu kontrolu nad poslužiteljem. Pomoću naredbe cd / idemo u korijenski direktorij i odatle možemo pristupiti bilo kojem sektoru, poput pregledavanja mapa i računa drugih korisnika

Pristupom putem SSH -a s kombinacijom korisničkog imena i lozinke koju smo dobili. Naš sljedeći cilj bit će povećanje privilegija, iako već imamo root ili administratorskog korisnika.
Za manipuliranje dopuštenjima moramo pregledati datoteke koje sadrže dopuštenja, korisnike, grupe i pristupne kodove koje se nalaze u direktoriju / etc

  • Korisnik i grupe s ključevima u direktoriju: / etc / passwd
  • Grupe i dopuštenja u direktoriju: / etc / sudores

Datoteci korisnika i ključeva sustava možemo pristupiti sljedećom naredbom:

 nano / etc / password

Možemo proći kroz imenike između njih, možemo vidjeti datoteke na webu koje smo analizirali i kasnije ih preuzeti putem ftp -a ili s ssh konzole, možemo ih kopirati u naš lokalni direktorij ako ih želimo urediti ili pregledati koda kako bi bio sigurniji i ponovno testirajte.

Sada kada znamo pristupne podatke administratora, možemo se prijaviti na virtualni stroj.

Kako izbjeći napade ubrizgavanja SQL -a
Sigurnost weba ovdje je vrlo važna jer zbog problema s ubrizgavanjem SQL -a preuzimamo cijeli poslužitelj.

Morate kontrolirati ono što se šalje kao parametar u URL -ovima, kao što su:

 http://192.168.0.40/products.php?id=1
Prilikom izvođenja sql upita moramo se pobrinuti da se mogu unijeti znakovi ili parametri koji ne odgovaraju, na primjer:
 $ sql = SELECT * FROM users WHERE user = 'jose' i lozinka = '12345' ILI '1' = '1';
Rečenica je vrlo slična korisničkoj prijavi gdje pretražujemo postoje li korisnik i lozinka, u tablici korisnika, ako je netko registriran s korisničkim imenom koje šaljemo kao parametar i ako je njegova lozinka '12345 ili ako je 1 isto 1 '.

Ovaj izraz određuje da ako ključ nije ispravan, izraz 1 jednak 1 je istinit i da ćemo moći ući u sustav bez poznavanja lozinke.

Jedna je metoda bijeg od varijabli, na primjer u PHP -u:

 mysql_real_escape_string ($ _ POST ['korisnik']);
Ako moramo poslati parametre url -om, trebali bismo ih šifrirati pomoću md5, sha1 ili base64 i možemo poslati različite šifrirane podatke tako da konačni format parametra nije izravno povezan s podacima ili poljima u bazi podataka.

Osim toga, trebao bi postojati sustav koji izbjegava skeniranje portova i višestruke veze s istog IP -a, vatrozid u ovom slučaju s iptables -om bi bio dovoljan i detektor upada.

Jedan alat koji možemo koristiti je PortSentry ili Fail2Ban Instaliran je iz spremišta linux -a i samo moramo konfigurirati koji portovi trebaju biti zaštićeni. Ako se jedan od tih portova skenira, automatski će blokirati IP koji nas napada.

Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod
wave wave wave wave wave