5 perc
Pentest alapok 1.
Az informatikai rendszerek tervezése és megvalósítása során is egyaránt keletkezhetnek hibák, és ha tesztelés közben ezek nem derülnek ki és nincsenek kijavítva, akkor nem az a kérdés, hogy kihasználják-e ezeket a hibákat hanem az, hogy mikor. Ezért fontos a penetration testing. Az ehhez szükséges gyakorlatot és tudást, meg lehet szerezni úgynevezett box-okkal. Egy box egy szimulált környezet, rendszer, amibe a készítői szándékosan helyeztek el hibák(vulnerability) sorozatát, hogy ezek kihasználásával(exploit) a végén megszerezzük a célt, ami általában egy root, azaz adminisztrátori jogosultság, ami egyenlő azzal, hogy miénk(owned) a számítógépet. Ezután egy valós környezetben egy támadó azt tesz a rendszerrel, amit csak akar. Legyen ez egy…
- C&C(Command and Control) rendszerbe való csatlakozása, ami perzisztens irányítást ad a támadónak akár ahhoz, hogy utána a gépünket egy zombinak használja egy botnetben
- egy keylogger telepítése, ami leolvassa az összes billentyűleütést, beleértve a jelszavainkat
- egy zsaroló program futtatása ami minden fájlunkat titkosítja
Utólag is elnézést kérek a hunglish szöveg miatt, de a helyzet az, hogy a legtöbb tudásanyag ebben a témában angolul van, ezért talán jobb ha angolul maradnak meg egyes kifejezések.
HackTheBox
A cél az hogy tesztelés során mi találjuk meg a hibákat, ne pedig egy rosszindulatú személy éleskörnyezetben. Ahogy mondtam ezt lehet gyakorolni, és erre szerintem egy nagyon jó platformot biztosít egy bizonyos szintig, a HackTheBox azaz HTB. A neve azt hiszem mindent megmagyaráz. Ugyanakkor nem csak gyakorlásra van itt lehetőség, hanem elméleti tananyagot is lehet olvasni az Academy résznél. Az elmélet elsajátítása után a Labs résznél tudjátok gyakorolni és kipróbálni tudásotokat.
Ha esetleg felkeltette érdeklődéseteket a HTB, akkor a regisztráció ingyenes, próbáljátok ki. Nekem(valko) nagyban segítetek, ha az alábbi referencia linken regisztráltok.
https://referral.hackthebox.com/mzBWuf5
A shameless promo után pedig jöjjön a tényleges segítség, az ilyen feladatok megoldásában. Mi, a SecurITeam, is adunk lehetőséget box-ok törésére, úgyhogy az itt tanult dolgokat, akár nálunk is tudjátok gyakorolni.
Penetration tester célja
Egy megbízott, biztonságot felmérő szakembernek a célja, hogy felderítse egy szervezet belső avagy külső hálózatában vagy rendszerében a hibákat. Ezen hibák lehetnek webes alkalmazásokban rejlő sérülékenységek, programok hibás konfigurációja vagy adatok nem szándékos kitevése. Ugyanakkor, neked mint ilyen szakembernek nem csak a felderítés a cél, hanem a szervezetet segítened is kell a hibák javítását elősegítő tanácsokkal.
Operációs rendszer választás
Bárki aki el szeretne helyezkedni az IT biztonság szakmájában, folyékonyan kell értenie nem csak a különféle technológiák használatához, hanem támadásához is. Értenünk kell Linux avagy Windows rendszerű számítógépek létrehozásához, karbantartásához úgy, hogy biztonságuk garantált legyen. Mint pentester, több lehetőséged van operációs rendszerek tekintetében.
Nincs olyan operációs rendszer, amely minden esetben rendelkezni fog a TE általad igényelt eszközökkel programokkal, de érdemes tudni, hogy léteznek olyan Debian alapú Linux disztribúciók, melyeken készen ott vannak azon programok, amik segítségedre jöhetnek munkáid során. Ilyen például a Kali Linux, vagy a Parrot OS. Ezen op rendszerek használata elégséges de nem szükséges, daily drivernek semmiféleképpen nem javaslom őket.
Tesztelés során érdemes virtuális gépeket használni, mivel így biztosítható a legnagyobb izoláció a saját rendszerünk és a tesztelés alatt álló rendszer között. Továbbá ha több rendszert is tesztelünk, akkor nem akarjuk, hogy az egyik bármely módon is befolyásolja a másikat. Erre több ingyenes virtualizációs szoftver is rendelkezésünkre áll legyen ez az Oracle VirtualBox vagy a VMware. Ha már találtunk is egy megfelelő disztribúciót, akkor érdemes a hivatalos oldalján találni hozzá egy OVA fájlt, ami egy előretelepített virtuális gépet tartalmaz az adott disztróhoz. Ez lehetővé teszi a gyors és tiszta deploy-t mindig.
Jegyzetelés
Talán trivia, de lehet pont ezért siklanak el felette sokan. Tesztelés során igazából útvonalat keresünk a rendszer belépési pontjától, a rootig. Ez az úttörés információ gyűjtéssel történik, és az információ saját szavainkba öntése, fontos az intúició színrelépése érdekében, de később is hasznukra válhat ha esetleg egyik út járhatatlannak bizonyul, és egy másik fogáspontot kell találnuk a célontunkon. Megbízóink számára is fontos, hogy lássák milyen úton, milyen gondolatmenettel használtuk ki rendszereiket, hiszen ha csak számukra csak annyi látszik, hogy valami fekete mágiával törték fel őket, azzal talán pont annyival előrébb lesznek javítás szempontjából, mintha meg se bíztak volna minket.
Jegyzeteléshez rengeteg eszköz és szabvány áll rendelkezésetekre, egyet amit tudok ajánlani, ami egyszerű de formázhatóságot biztosító opció, az a Markdown nyelv (ez a cikk is vele íródott :DD).
VPN használata
VPN azaz a Virtual Private Network technológia, egy kliens és egy VPN szerver között teremt egy biztonságos csatornát, melyet különféle kriptográfiai protokollokkal biztosít. Ezt lehet, sőt ez a leggyakoribb használata, arra használni, hogy publikus hálózatokon keresztül a kliens elérjen egy privát hálózatot (pl. egy alkalmazott VPN-t használ, hogy otthonról elérje az irodai hálózatot). Lényegében a VPN azt éri el, hogy a hálózati forgalmunk kezdőpontja a VPN szerver legyen. Ezért használják sokan arra, hogy növeljék anonimitásukat az interneten. Ugyanakkor figyelmesnek kell lenni, mivel nem szabad abba az illúzióba esni, hogy a VPN visszakövethetetlenséget biztosít, mivel a legtöbb VPN szolgáltató elkér különféle személyes adatokat, melyeket hozzárendel a logokhoz, amik a mi forgalmunkról készültek. Ezt az összeköttetést persze hivatalos szervek kérésére bármikor kiadják.
Ha tényleg VPN-t akartok használni, mert nem szeretitek a sötétben világító figurák gondos figyelmét, akkor nyugodt szívvel tudom ajánlani a Mullvad VPN-t, ahol nem kell megadni semmi személyes adatot, sőt akár még készpénzzel is lehet fizetni.
A VPN-t viszont mi ebben a használati esetben, nem az anonimitás miatt fogjuk használni. Akár a HTB-t , akár KSZK-s boxokat használva, privát hálózatukon tudtok megoldani, azaz a boxokat nem tudjátok kivülről elérni. Ezért kell VPN-t használjatok, melyhez a konfigurációs fájlt, mindig eléritek az adott oldalon. Ugyanakkor lebegjen előttetek a “Ki itt belépsz, hagyj fel minden reménnyel!” szöveg, mivel mindig azt kell feltételezni, hogy a hálózat ahova beléptek ilyenkor nem biztonságos. Ezért érdemes SSH-nál letiltani a jelszós az autentikációt, minden webszervert leállítani és semmilyen érzékeny információt hagyni a VM-en, amit tesztelésre használunk.
VPN-t elindítani egy linux kliensen mi sem egyszerő ha a szerver OpenVPN-t használt (a cikk írásának pillanatában ez igaz a HTB-re és a KSZK-ra is):
sudo openvpn box_net.ovpn
Kövesd a cikk sorozatot, hogy egyre mélyebben elmerüljél a tananyagban!