Så skapar du ett enkelt pentest-labb
Att testa nya verktyg och metoder är en viktig del för den som jobbar med penetrationstester och IT-säkerhetsgranskningar av tekniskt slag. Men det är inte alltid helt lätt att testa nya fräna verktyg och detta bör så klart göras i en isolerad och kontrollerad miljö.
Därför är virtuella servrar och nätverk som skapats med hjälp av VMware eller VirtualBox till stor hjälp. Jag själv använder tre grundplåtar när jag bygger upp labbar av olika slag, dessa baseras på följande:
- Gratis virtuella images från Microsoft (tidigare modern.ie)
- Metasploitable 2 – Linux
- Metasploitable 3 – Bygger på Windows 2008 R2 Server
Efter du laddat hem virtuella images från Microsoft enligt länken ovan så kan du sedan installera ytterligare mjukvaror såsom XAMPP.
Gillar du som jag Vagrant för att förenkla din hantering av virtuella miljöer så kan du använda pentest-env på följande sätt:
$ git clone https://github.com/Sliim/pentest-env $ cd pentest-env $ cp examples/msf.pentestrc .
Sedan kollar du filen msf.pentestrc att allt ser bra ut, jag vill exempelvis enbart starta metasploitable2 så jag tar bort metasploitable3 från filen.
Sedan är det bara att kolla status samt bootstrappa och starta upp.
Första gången tar det alltid lite extra tid:
$ PENTESTRC=msf.pentestrc vagrant status Current machine states: metasploitable2 not created (virtualbox) The environment has not yet been created. Run `vagrant up` to create the environment. If a machine is not created, only the default provider will be shown. So if a provider is not listed, then the machine is not created for that environment. $ PENTESTRC=msf.pentestrc vagrant up metasploitable2
Sen är det bara och vänta. Metasploitable2 tar cirka 15 minuter beroende på uppkoppling och metasploitable3 kan ta upp till 1h att starta upp och färdigställa.
Men sedan är det bara att testa på. Dubbelkontrollera bara så du kör mot rätt IP-adress, antingen via kommandot vagrant ssh eller direkt via konsolen i VirtualBox/VMware.
Sedan är det bara att testa på, exempelvis med Nmap:
$ nmap 192.168.99.100 Starting Nmap 7.01 ( https://nmap.org ) at 2017-03-21 21:11 CET Nmap scan report for 192.168.99.100 Host is up (0.00065s latency). Not shown: 978 closed ports PORT STATE SERVICE 21/tcp open ftp 22/tcp open ssh 23/tcp open telnet 25/tcp open smtp 80/tcp open http 111/tcp open rpcbind 139/tcp open netbios-ssn 445/tcp open microsoft-ds 512/tcp open exec 513/tcp open login 514/tcp open shell 1099/tcp open rmiregistry 1524/tcp open ingreslock 2049/tcp open nfs 2121/tcp open ccproxy-ftp 3306/tcp open mysql 5432/tcp open postgresql 5900/tcp open vnc 6000/tcp open X11 6667/tcp open irc 8009/tcp open ajp13 8180/tcp open unknown
Stöter du problem kan du alltid gå via Virtualbox och inställningar där för nätverket.
Senare kommer jag även gå igenom hur du använder dig av VulnHub för att testa olika utmaningar (CTF:er etc).
Testa PicoCTF. De har en webbaserad tävling som går att köra i efterhand och det går även för en lärare att registrera en hel klass och använda den i undervisningen. Till skillnad från andra CTF:er så har den här även enkla uppgifter som faktiskt går att lösa. Sen blir det gradvis svårare. De flesta på ctftime.org är riktade till proffsspelare och är alldeles för svåra för gemene man som vill lära sig grunderna om hur olika buggar fungerar.
Jag spelar mycket CTF men har aldrig behövt någon virtuell maskin. Det räcker bra med en linuxlaptop som man installerar lite tools på. Just metasploit är svårt att få igång så den kan vara bra att ha som en container eller VM, men jag har aldrig sett någon CTF där man behöver metasploit eller radare2 för. De tools jag brukar använda är file, strings, gdb och objdump. Nästan alla lag använder dessutom IDA pro med hexrays decompiler, men den är svindyr (och alla jag vet, även proffslag, använder piratversioner). De svårare uppgifterna har obfuskerade binärer för att förvirra hexrays decompiler. Andra tools som är bra att känna till är ROPgadget och volatility. Dessa kan användas för att lösa massor av CTF-uppgifter. Kolla även in gdb-pluginet peda som underlättar debugging av strippade binärfiler. En pythonmodul som blivit allt mer populär hos allt fler lag är pwntools: https://github.com/Gallopsled/pwntools#readme Om man lärt sig använda pwntools är man halvvägs till att bli proffs på CTF. Ja just det, på många crypto-uppgifter kan man använda cado-nfs för att faktorisera stora heltal också. Där har du några tips på bra tools. Sen har vi så klart John the Ripper och hashcat för lösenordshashar också.
Javisst ja, binwalk glömde jag att nämna. Kolla även in binwalk. Den kan gå igenom en binär och leta efter magiska headers på alla positioner i filen. 7zip är också förvånansvärt bra. Den klarar av att packa upp många firmware-filer utan några extra trix. Bara 7z x firmware.bin.
PicoCTF 2017 startar idag kl 18 svensk tid. Testa, jag lovar att den är rolig för det är som sagt lite enklare uppgifter i början, sen blir det gradvis svårare.
https://2017game.picoctf.com/
Jonas, jag ser fram mot fler poster om CTF i framtiden. Det är riktigt kul att spela!