no one is safe ...

fixing Backtrack 4 - prefinal

Gestern war es soweit und die prefinal der neuen Backtrack wurde der breiten Öffentlichkeit zugänglich gemacht. Den heutigen Tag nutzten wir somit gleich um dieser Version etwas auf den Zahn zu fühlen ...

Was fiel besonders gut auf:

  • Truecrypt ist integriert
  • OpenVAS ist nun als OpenSource Vunlerability Scanner integriert
  • mit secure-delete kann man nun Files, Ordner wie auch den SWAP oder den freien Festplattenplatz sicher löschen
  • Kismet Newcore ist der Nachfolger von Kismet und wurde fast vollständig neu geschrieben!
  • MinGW ist unter Wine installiert
  • Nmap wurde auf eine aktuelle Version gebracht
  • Dradis wurde in Version 2.2.0 integriert
  • Backtrack besitzt nun einen Installer der zumindest in einer VMWare ohne Murren seine Arbeit verrichtet
  • Die Menüs von KDE sind sehr sauber aufgeräumt und die Tools lassen sich fast vollständig aus den Menüs starten

Wo hakt es noch etwas:

  • GDM oder KDM nicht eingerichtet
  • hydra weiterhin ohne ssh support
  • cdpsnarf fehlt
  • md3k fehlt
  • karma und karmetasploit nicht integriert
  • Ist zwar Ansichtssache aber meines Erachtens sollte Nessus installiert sein.
  • Leider ist Saint aus der aktuellen Zusammenstellung rausgeflogen. Ich hoffe man schafft es bis zur Final diesen Vulnerability Scanner wieder aufzunehmen.

Ich denke mal die kleinen Problemchen werden bis zur Final sicherlich gefixt sein! Einstweilen kann man sich recht einfach selber abhelfen.

Der folgende Blogeintrag behandelt genau die bereits dargestellten Kleinigkeiten ...

  • Wie wird man nun root?

Lasst uns mal von ganz vorne anfangen ;) Da Backtrack 4 auf Ubuntu basiert und man bei der Installation einen eigenen User anlegt muss man die Mehrzahl der Pentesting Tools mittel sudo ausführen.

m1k3@m1k3BT:~$ sudo whoami
[sudo] password for m1k3:
root

Oder man wird wie folgt root
m1k3@m1k3BT:~$ sudo /bin/bash
root@m1k3BT:~# whoami
root

Jetzt hat man die Möglichkeit erstmals ein root-Passwort zu setzen und in Zukunft ist es somit möglich wieder mit dem gewohnten su zu arbeiten.

Damit man nun aber sofort erkennt wenn man als root arbeitet gibt es die Möglichkeit sich seinen Root-Prompt rot einzufärben. Dadurch ist man dann immer gewarnt und zur Vorsicht angehalten ...

Fügt der .bashrc von root (/root/.bashrc) folgende Zeilen am Ende hinzu:

C1="\[\033[0;30m\]" # Black
C3="\[\033[0;31m\]" # Red
C5="\[\033[0;32m\]" # Green
C7="\[\033[0;33m\]" # Brown
C8="\[\033[0;33m\]" # Yellow
C9="\[\033[0;34m\]" # Blue
C14="\[\033[0;36m\]" # Light
C16="\[\033[0;37m\]" # White
P="\[\033[0m\]" # Neutre

TTY="`tty`"
export TTY="${TTY##*[Va-zA-Z]}"

export PS1="$C3\t $C3\h $C3\w $C3[$C3\u$C3]"

Anschließend könnt ihr den Prompt gleich testen in dem ihr mit source /root/.bashrc die neuen Einstellungen aktiviert oder einmal ausloggen und anschl. mit su wieder root werden.

Nun gefällt es mir gar nicht wenn ich Files erstelle und diese Files durch eine Umask von 0022 für die ganze Welt lesbar sind. Ihr könnt es ganz einfach durch das Kommando umask testen. Steht als Ausgabe 0022 ist das schlecht und sollte geändert werden. Also nochmals die .bashrc bearbeiten und am Ende der Datei ein umask 0077 eintragen. Dies solltet ihr entweder bei jedem User durchführen oder zentral in der /etc/profile.

  • fixing SSH support for hydra

m1k3@m1k3BT:~$ sudo apt-get install libssh-2-dev

Nun benötigen wir natürlich noch die Sourcen von Hydra und den Patch.

m1k3@m1k3BT:~$ tar xzf hydra-5.4-src.tar.gz
m1k3@m1k3BT:~$ cd hydra-5.4-src/
m1k3@m1k3BT:~/hydra-5.4-src$ cp ../hydra-libssh0.2.patch .
m1k3@m1k3BT:~/hydra-5.4-src$ patch -p1 < hydra-libssh0.2.patch
patching file configure
patching file hydra-ssh2.c
m1k3@m1k3BT:~/hydra-5.4-src$ ./configure --prefix=/opt/hydra --disable-xhydra

Im Makefile die Einträge -lpq und -DLIBPOSTGRES entfernen.

m1k3@m1k3BT:~/hydra-5.4-src$ make
m1k3@m1k3BT:~/hydra-5.4-src$ sudo make install

Ab sofort funktioniert hydra auch mit SSH:

m1k3@m1k3BT:~/hydra-5.4-src$ /opt/hydra/bin/hydra -l root -p root -e ns -f 192.168.1.1 ssh2
Hydra v5.4 (c) 2006 by van Hauser / THC - use allowed only for legal purposes.
Hydra (http://www.thc.org) starting at 2009-06-20 14:23:00
[DATA] 3 tasks, 1 servers, 3 login tries (l:1/p:3), ~1 tries per task
[DATA] attacking service ssh2 on port 22
[STATUS] attack finished for 192.168.1.1 (waiting for childs to finish)
Hydra (http://www.thc.org) finished at 2009-06-20 14:23:35

  • installing mdk3

Use the diff file from here and the mdk3 sources from here.

m1k3@m1k3BT:~$ tar xjf mdk3-v5.tar.bz2
m1k3@m1k3BT:~$ cd mdk3-v5/
m1k3@m1k3BT:~/mdk3-v5$ vim mdk3-v5-gcc-4.3.diff
m1k3@m1k3BT:~/mdk3-v5$ patch -p1 < mdk3-v5-gcc-4.3.diff
patching file mdk3.c
patching file osdep/linux.c
m1k3@m1k3BT:~/mdk3-v5$ make
make -C osdep
make[1]: Entering directory `/home/m1k3/mdk3-v5/osdep'
Building for Linux
make[2]: Entering directory `/home/m1k3/mdk3-v5/osdep'
gcc -g -W -Wall -Werror -O3 -D_FILE_OFFSET_BITS=64 -D_REVISION=mdk3-v5  -fPIC -I..    -c -o linux.o linux.c
gcc -g -W -Wall -Werror -O3 -D_FILE_OFFSET_BITS=64 -D_REVISION=mdk3-v5  -fPIC -I..    -c -o linux_tap.o linux_tap.c
gcc -g -W -Wall -Werror -O3 -D_FILE_OFFSET_BITS=64 -D_REVISION=mdk3-v5  -fPIC -I..    -c -o radiotap-parser.o radiotap-parser.c
ar cru libosdep.a  osdep.o common.o network.o linux.o linux_tap.o radiotap-parser.o common.o
ranlib libosdep.a
touch .os.Linux
make[2]: Leaving directory `/home/m1k3/mdk3-v5/osdep'
make[1]: Leaving directory `/home/m1k3/mdk3-v5/osdep'
cc -g -O3 -Wall -Wextra -lpthread mdk3.c osdep/libosdep.a -o mdk3 -Losdep -losdep
m1k3@m1k3BT:~/mdk3-v5$ sudo make install
make -C osdep install
make[1]: Entering directory `/home/m1k3/mdk3-v5/osdep'
Building for Linux
make[2]: Entering directory `/home/m1k3/mdk3-v5/osdep'
make[2]: `.os.Linux' is up to date.
make[2]: Leaving directory `/home/m1k3/mdk3-v5/osdep'
make[1]: Leaving directory `/home/m1k3/mdk3-v5/osdep'
install -D -m 0755 mdk3 //usr/local/sbin/mdk3

m1k3@m1k3BT:~/mdk3-v5$ sudo mdk3

MDK 3.0 v5 - "OOPS! My expensive Microsoft® Windows® VISTA® crashed :("-Edition

  • installing karma

Karma lässt sich hier downloaden und weitere allgemeine Informationen sind auf der Webseite zu finden.

14:14:42 m1k3BT ~ [root]tar xzf karma-20060124.tar.gz
14:15:09 m1k3BT ~ [root]cd karma-20060124/
14:15:13 m1k3BT ~/karma-20060124 [root]cd src/
14:15:28 m1k3BT ~/karma-20060124/src [root]make
cc -g -Wall -pedantic   -c -o airtap.o airtap.c
airtap.c:51:5: warning: C++ style comments are not allowed in ISO C90
airtap.c:51:5: warning: (this will be reported only once per input file)
airtap.c: In function ‘handle_packet’:
airtap.c:66: warning: ISO C forbids conversion of object pointer to function pointer type
airtap.c: In function ‘airtap_loop’:
airtap.c:202: warning: ISO C forbids conversion of function pointer to object pointer type
cc -g -Wall -pedantic   -c -o karma.o karma.c
karma.c: In function ‘dump_sta_info’:
karma.c:24: warning: format ‘%.8x’ expects type ‘unsigned int’, but argument 3 has type ‘long unsigned int’
karma.c: At top level:
karma.c:21: warning: ‘dump_sta_info’ defined but not used
cc -g -Wall -pedantic   -c -o karma_ui.o karma_ui.c
cc -g -Wall -pedantic -o karma  airtap.o karma.o karma_ui.o  -lpcap -lncurses
14:15:33 m1k3BT ~/karma-20060124/src [root]cd ..
14:15:56 m1k3BT ~/karma-20060124 [root]cd ..
14:15:58 m1k3BT ~ [root]mv karma-20060124 /pentest/wireless/
aircrack-ng/    asleap/         giskismet/      kmsapng/        wavemon/
airsnarf/       cowpatty/       kismet-newcore/ mitmap/         wifizoo/
14:15:58 m1k3BT ~ [root]mv karma-20060124 /pentest/wireless/karma

more coming soon

  • installing karmetasploit

Informationen zu Karmetasploit sind auf der Webseite von Metasploit im Wiki zu finden.

m1k3@m1k3BT:~/mdk3-v5$ cd /pentest/exploits/framework3/

m1k3@m1k3BT:/pentest/exploits/framework3$ sudo wget http://metasploit.com/users/hdm/tools/karma.rc
--2009-06-20
14:49:58--  http://metasploit.com/users/hdm/tools/karma.rc
Resolving
metasploit.com... 66.240.213.81
Connecting to metasploit.com|66.240.213.81|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1088 (1.1K) [text/plain]
Saving to: `karma.rc'

100%[====================================================================================>] 1,088       --.-K/s   in 0s

2009-06-20 14:49:58 (105 MB/s) - `karma.rc' saved [1088/1088]

und schon geht es los:

m1k3@m1k3BT:/pentest/exploits/framework3$ sudo ./msfconsole -r karma.rc

                _                  _       _ _
               | |                | |     (_) |
_ __ ___   ___| |_ __ _ ___ _ __ | | ___  _| |_
| '_ ` _ \ / _ \ __/ _` / __| '_ \| |/ _ \| | __|
| | | | | |  __/ || (_| \__ \ |_) | | (_) | | |_
|_| |_| |_|\___|\__\__,_|___/ .__/|_|\___/|_|\__|
                            | |
                            |_|


       =[ msf v3.3-dev
+ -- --=[ 379 exploits - 234 payloads
+ -- --=[ 20 encoders - 7 nops
       =[ 155 aux

resource> load db_sqlite3
[-]
[-] The functionality previously provided by this plugin has been
[-] integrated into the core command set.  Use the new 'db_driver'
[-] command to use a database driver other than sqlite3 (which
[-] is now the default).  All of the old commands are the same.
[-]
[-] Failed to load plugin from /pentest/exploits/framework3/plugins/db_sqlite3: Deprecated plugin
resource> db_create /root/karma.db
[*] Creating a new database instance...
[*] Successfully connected to the database
[*] File: /root/karma.db
resource> use auxiliary/server/browser_autopwn
resource> setg AUTOPWN_HOST 10.0.0.1
AUTOPWN_HOST => 10.0.0.1
resource> setg AUTOPWN_PORT 55550
AUTOPWN_PORT => 55550
...
[*] Started reverse handler
[*] Server started.
[*] HTTP REQUEST 192.168.1.103 > 192.168.1.101:80 GET / Windows FF 1.9.0.11 cookies=

more coming soon

  • CDPSnarf installieren

m1k3@m1k3BT:~$ wget http://segfault.gr/projects/releases/download.php?release_id=48
--2009-0...
13:18:22--  http://segfault.gr/projects/releases/download.php?release_id=48
Resolving
segfault.gr... 74.220.200.193
Connecting to segfault.gr|74.220.200.193|:80... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: /uploads/projects/releases/CDPSnarf-v0.1.6.tar.bz2 [following]
--2009-06-20 13:18:23--  http://segfault.gr/uploads/projects/releases/CDPSnarf-v0.1.6.tar.bz2
Reu...
existing connection to segfault.gr:80.
HTTP request sent, awaiting response... 200 OK
Length: 46729 (46K) [application/x-tar]
Saving to: `CDPSnarf-v0.1.6.tar.bz2'

100%[======================================>] 46,729      50.2K/s   in 0.9s

2009-06-20 13:18:24 (50.2 KB/s) - `CDPSnarf-v0.1.6.tar.bz2' saved [46729/46729]

m1k3@m1k3BT:~$ ls -l CDPSnarf-v0.1.6.tar.bz2
-rw-r--r-- 1 m1k3 m1k3 46729 2008-07-19 16:05 CDPSnarf-v0.1.6.tar.bz2
m1k3@m1k3BT:~$ tar xjf CDPSnarf-v0.1.6.tar.bz2
m1k3@m1k3BT:~$ ls CDPSnarf-v0.1.6*
CDPSnarf-v0.1.6.tar.bz2

CDPSnarf-v0.1.6:
bin  cdpsnarf.c  cdpsnarf.h  CHANGELOG  includes  LICENSE  Makefile  README

m1k3@m1k3BT:~$ sudo cp CDPSnarf-v0.1.6 /pentest/sniffers/ -r

m1k3@m1k3BT:~$ sudo /pentest/sniffers/CDPSnarf-v0.1.6/bin/cdpsnarf-32bit -i eth0CDPSnarf v0.1.6 [$Rev: 797 $] initiated.
   Author: Zapotek <zapotek@segfault.gr>
   Website: http://www.segfault.gr
Reading
packets from eth0.
Waiting for a CDP packet...

  • Nessus Vulnerability Scanner installieren

Download des Nessus DaemonsNessus-4.0.1-ubuntu810_i386.deb und des Nessus Clients NessusClient-4.0.1-ubuntu810_i386.deb

m1k3@m1k3BT:~$ sudo dpkg -i Nessus-4.0.1-ubuntu810_i386.deb
[sudo] password for m1k3:
Selecting previously deselected package nessus.
(Reading database ... 183757 files and directories currently installed.)
Unpacking nessus (from Nessus-4.0.1-ubuntu810_i386.deb) ...
Setting up nessus (4.0.1) ...
nessusd (Nessus) 4.0.1. for Linux
(C) 1998 - 2009 Tenable Network Security, Inc.


- Please run /opt/nessus/sbin/nessus-adduser to add a user
- Register your Nessus scanner at http://www.nessus.org/register/ to obtain
   all the newest plugins
- You can start nessusd by typing /etc/init.d/nessusd start

m1k3@m1k3BT:~$ sudo /opt/nessus/sbin/nessus-adduser
Login : root
Authentication (pass/cert) : [pass]
Login password :
Login password (again) :
...

m1k3@m1k3BT:~$ sudo dpkg -i NessusClient-4.0.1-ubuntu810_i386.deb
Selecting previously deselected package nessusclient.
(Reading database ... 183814 files and directories currently installed.)
Unpacking nessusclient (from NessusClient-4.0.1-ubuntu810_i386.deb) ...
Setting up nessusclient (4.0.1) ...

Nun benötigt man noch einen Registrierungskey und muss damit seinen Nessus aktivieren.

m1k3@m1k3BT:~$ sudo /opt/nessus/bin/nessus-fetch --register XXXX-XXXX-XXXX-XXXX-XXXX
Your activation code has been registered properly - thank you.
Now fetching the newest plugin set from plugins.nessus.org...
m1k3@m1k3BT:~$ sudo /etc/init.d/nessusd start
Starting Nessus : .

Nun kann man sich mit dem Nessus Client (/opt/nessus/bin/NessusClient) verbinden und scannen ...

Um Nessus noch in den Pfad zu legen sollte man in der .bashrc die folgende Zeile ergänzen:

PATH=$PATH:/opt/nessus/bin:/opt/nessus/sbin

  • GDM einrichten

root@m1k3BT:~# apt-get install gdm gdm-themes

Das wars auch schon ;) Nun kann man sich noch von Gnome-Look ein schönes Theme besorgen. und mit gdmsetup installieren. Mir gefällt ja dieses Theme sehr gut.

  • screen einrichten:

Download einer screen config beispielsweise hier herunterladen und unter /etc/screenrc ablegen.

  • fixing Bootsplash

m1k3@m1k3BT:~$ sudo fix-splash
[sudo] password for m1k3:
[*] Fixing Initrd
[*] Extracting Initrd
21566 blocks
32375 blocks
gzip: initrd.gz already exists; do you wish to overwrite (y or n)? y
[*] Reboot and bask in the joys of BootSplash

  • activate aliases and bash completion

uncomment the following lines in /home/user/.bashrc

# some more ls aliases
alias ll='ls -l'
#alias la='ls -A'
#alias l='ls -CF'

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi

  • Update von milw0rm und metasploit

Der Großteil des Updatevorganges lässt sich nun über apt abhandeln, bei milw0rm und metasploit gibt es allerdings spezielle Scripte:

m1k3@m1k3BT:~$ cd /pentest/exploits/
m1k3@m1k3BT:/pentest/exploits$ sudo ./update-milw0rm

m1k3@m1k3BT:~$ cd /pentest/exploits/framework3/
m1k3@m1k3BT:/pentest/exploits/framework3$ sudo ./svn-update.sh

  • SSH Setup

Nachdem wir einen normalen, nicht privilegierten Benutzer angelegt haben sollten wir für Zugriffe per SSH den root User deaktivieren. Der Root User ist auf nahezu jedem Linux System vorhanden und eignet sich dadurch sehr gut für automatisierte Angriffe.

Um den root Zugriff per SSH zu deaktivieren muss folgende Zeile der Konfiguration (/etc/ssh/sshd_config) geändert werden:

von

PermitRootLogin yes

zu
PermitRootLogin no

Anschließen müssen noch die SSH Keys generiert werden:

16:58:52 m1k3BT /home/m1k3 [root]sshd-generate
Generating public/private rsa1 key pair.
Your identification has been saved in /etc/ssh/ssh_host_key.
Your public key has been saved in /etc/ssh/ssh_host_key.pub.
The key fingerprint is:                                                                                                                                    
...

Sobald nun der SSH Server gestartet wird, ist es möglich sich als normaler User einzuloggen und anschl. entweder mit sudo oder mit su privilegierten Zugriff zu erlangen.

Um SSH noch etwas sicherer zu machen könnt ihr den Port auf dem der sshd lauscht noch verändern. Idealerweise sucht ihr euch einen Port der von Nmap in seinem default Scan nicht erkannt wird. Das hat den Vorteil dass ein Angreifer erstmal einen Portscan über alle Ports durchführen muss bevor er den SSH Port erkennt! :-D

Somit bleibt mir nur dem Team hinter Backtrack zu gratullieren! Dieses System geht eindeutig den richtigen Weg und diesen beschreitet es derzeit im Eiltempo. Innerhalb eines Releases von Slackware auf Ubuntu umsteigen, von einem reinen Livesystem auf eine vollwertige (?!?) Distribution mit Installer umzusatteln erfordert einiges an Mut und noch vielmehr Aufwand ...