Hacking
InfoPoint 07.12.2005
Jörg Wüthrich
Inhalte


Rund um das Thema Hacking
Angriffs-Techniken

Session Handling



Cross Site Scripting (XSS)
SQL-Injection
Buffer Overflow
07.12.2005
Infopoint - Hacking - Jörg Wüthrich
2/26
Anzahl Vorfälle
incidents reported
Quelle:
www.cert.org/stats/#incidents
160000
year
140000
120000
100000
80000
60000
40000
20000
07.12.2005
Infopoint - Hacking - Jörg Wüthrich
02
20
01
20
00
20
99
19
98
19
97
19
96
19
95
19
94
19
93
19
92
19
91
19
90
19
89
19
88
19
ye
ar
0
incidents
1988
6
1989
132
1990
252
1991
406
1992
773
1993
1334
1994
2340
1995
2412
1996
2573
1997
2134
1998
3734
1999
9859
2000
21756
2001
52658
2002
82094
2003
137529
3/26
„Standard“-Vorgehen eines Hackers
Quelle: "Hacking exposed"
Footprinting
Denial of Service
Scanning
Think Time
Writing Exploits
Break-In
Privilege
Escalation
07.12.2005
Installation
Backdoors
Stealing Data
Infopoint - Hacking - Jörg Wüthrich
Delete
evident
Tracks
4/26
Inhalte


Rund um das Thema Hacking
Angriffs-Techniken

Session Handling



Cross Site Scripting (XSS)
SQL-Injection
Buffer Overflow
07.12.2005
Infopoint - Hacking - Jörg Wüthrich
5/26
Session Handling

Warum Sessions?


HTTP-Protokoll ist zustandslos
Tracking von benutzer-spezifischen Zuständen
auf dem Server über mehrere Requests hinweg
07.12.2005
Infopoint - Hacking - Jörg Wüthrich
6/26
Session Handling

Session Identifikatoren



Cookies
versteckte Felder in Html-Formularen
URL-Parameter (http://www.foo.com/app?id=xx)
07.12.2005
Infopoint - Hacking - Jörg Wüthrich
7/26
Session Handling Attacken

Ziel


Übernahme einer fremden Benutzer-Session
durch Stehlen, Erraten oder Unterschieben
Arten

Session Hijacking


Diebstahl der Session nach Login des Users
Session Fixation

07.12.2005
Angriff bevor sich User eingeloggt hat (Unterschieben)
Infopoint - Hacking - Jörg Wüthrich
8/26
Session Hijacking

Abfangen



Erraten


Sniffing (passiv)
Cross Site Scripting (XSS – aktiv)
Session ID generieren (da vorhersagbar)
Brute Force

mechanisches Durchprobieren von Zeichenfolgen
07.12.2005
Infopoint - Hacking - Jörg Wüthrich
9/26
Session Fixation
Quelle: http://www.csnc.ch/

Fixation


Vorgängiges Festlegen der Session ID
Voraussetzungen



Session über URL Parameter codiert
oder serverseitige Bugs, damit Cookie manipuliert
werden kann
Benutzer nimmt den per E-Mail verschickten
Köder an (Social Engineering)
07.12.2005
Infopoint - Hacking - Jörg Wüthrich
10/26
Gegenmassnahmen Session Handling
Attacken




Verwendung von SSL (Sniffing)
neue Session vergeben nach Login (Sniffing)
Verwendung von sicheren Cookies (nur bei
Verwendung einer SSL-Verbindung schicken;
Sniffing)
echt zufällige Session ID vergeben (Brute
Force)
07.12.2005
Infopoint - Hacking - Jörg Wüthrich
11/26
Inhalte


Rund um das Thema Hacking
Angriffs-Techniken

Session Handling



Cross Site Scripting (XSS)
SQL-Injection
Buffer Overflow
07.12.2005
Infopoint - Hacking - Jörg Wüthrich
12/26
Cross Site Scripting

Variante, um Session-ID abzufangen


z.B. wenn Sniffing nicht möglich (SSL)
Vorgehen

Erzeugen einer Skript-Eingabe, welche auf dem
Opfer-Client eine unerwünschte Antwort an den
Angreifer auslöst
07.12.2005
Infopoint - Hacking - Jörg Wüthrich
13/26
Cross Site Scripting
Hacker
1. Angreifer fügt Skript in Beitrag
ein und wartet auf Opfer
4. Angreifer besucht
Website und weist sicht mit
gestohlenem Cookie aus
3. Skript des Angreifers leitet
das Session Cookie weiter
Opfer
2. Server schickt Website mit
Skript und Session-Cookie
07.12.2005
Infopoint - Hacking - Jörg Wüthrich
14/26
Cross Site Scripting

07.12.2005
Demo Cross Site Scripting
Infopoint - Hacking - Jörg Wüthrich
15/26
Gegenmassnahmen Cross Site Scripting

Input / Output Filterung (immer beim Server;
keine Javascripts im Html-Code)
07.12.2005
Infopoint - Hacking - Jörg Wüthrich
16/26
Inhalte


Rund um das Thema Hacking
Angriffs-Techniken

Session Handling



Cross Site Scripting (XSS)
SQL-Injection
Buffer Overflow
07.12.2005
Infopoint - Hacking - Jörg Wüthrich
17/26
SQL-Injection


Übermittlung von Daten an Subsysteme
Metazeichen-Problem





„SELECT * FROM user WHERE name='"
+ request.getParameter("username") + "'"
+ and password='"
+ request.getParameter("password") + "';"
Absicht Entwickler:

SELECT * FROM user WHERE name='smith'
AND password='smithpw'
07.12.2005
Infopoint - Hacking - Jörg Wüthrich
18/26
SQL-Injection

07.12.2005
Demo SQL-Injection
Infopoint - Hacking - Jörg Wüthrich
19/26
Gegenmassnahmen SQL-Injection




 Input Validierung immer serverseitig
 Berechtigungen separieren (versch. User)
 Escape von Metazeichen
 Prepared Statements



select * from login where user=?
schlecht: “select * from login where user=“ + user;
Stored Procedures
07.12.2005
Infopoint - Hacking - Jörg Wüthrich
20/26
Encoding "<"
























<
%3C
&lt
&lt;
&LT
&LT;
&#60
&#060
&#0060
&#00060
&#000060
&#0000060
&#60;
&#060;
&#0060;
&#00060;
&#000060;
&#0000060;
&#x3c
&#x03c
&#x003c
&#x0003c
&#x00003c
&#x000003c


















07.12.2005
&#x3c;
&#x03c;
&#x003c;
&#x0003c;
&#x00003c;
&#x000003c;
&#X3c
&#X03c
&#X003c
&#X0003c
&#X00003c
&#X000003c
&#X3c;
&#X03c;
&#X003c;
&#X0003c;
&#X00003c;
&#X000003c;


















&#x3C
&#x03C
&#x003C
&#x0003C
&#x00003C
&#x000003C
&#x3C;
&#x03C;
&#x003C;
&#x0003C;
&#x00003C;
&#x000003C;
&#X3C
&#X03C
&#X003C
&#X0003C
&#X00003C
&#X000003C
Infopoint - Hacking - Jörg Wüthrich
















&#X3C
&#X03C
&#X003C
&#X0003C
&#X00003C
&#X000003C
&#X3C;
&#X03C;
&#X003C;
&#X0003C;
&#X00003C;
&#X000003C;
\x3c
\x3C
\u003c
\u003C
21/26
Inhalte


Rund um das Thema Hacking
Angriffs-Techniken

Session Handling



Cross Site Scripting (XSS)
SQL-Injection
Buffer Overflow
07.12.2005
Infopoint - Hacking - Jörg Wüthrich
22/26
Buffer overflow
Abbildung "fn" auf dem Stack:
vulnerable.c:
void fn(char* a) {
char buf[100];
strcpy(buf, a);
}
buf[100]
AAAAAAAAAA
AAAAA#0…
SFP
RET
0x…
0x…
char* a
char* a
main (int argc, char* argv[]) {
fn(argv[1]);
printf("the end\n");
}
----->> vulnerable AAAAAAAAAAAAAAA
07.12.2005
Infopoint - Hacking - Jörg Wüthrich
23/26
Buffer overflow

Ziele


Kontrolle über
Instruction Pointer
erlangen
Instruction Pointer
auf Angreiferkontrollierten
Speicherbereich
zeigen lassen
07.12.2005
Abbildung mit Buffer overflow:
0xbfffffb50
NOP Slide
buf[100]
Shellcode
NOP Slide
SFP
RET
char* a
Infopoint - Hacking - Jörg Wüthrich
0xbffffb70
char *a
24/26
Gegenmassnahmen Buffer overflow
Attacken



Prüfen, ob Zielspeicher Platz für SourceString hat (z.B. strncpy(buf, param, sizeof(buf))
wenn möglich Sprachen verwenden, welche
automatische Bereichsüberprüfungen
durchführen (Perl, Python, Java, …)
patchen, patchen, patchen
07.12.2005
Infopoint - Hacking - Jörg Wüthrich
25/26
Referenzen

http://www.owasp.org/ - Open Web Application Security Project


WebGoat: Lehr-Applikation zum Verstehen und Ausprobieren von Sicherheitslücken
http://www.cert.org/ - Carnegie Mellon University's Computer Emergency Response
Team

http://www.oxid.it/ - Hacker Tool "Cain & Abel" (wäre „ungünstig“, wenn dieses auf einem

Geschäfts-PC gefunden würde)
http://www.csnc.ch/ - Firma, welche auf Security Assessments und forensische
Untersuchungen spezialisiert ist -> diverse Papers mit leicht verständlichen Erklärungen
http://www.hackingexposed.com/ - Companion Website zu einem Buch rund ums
Hacking
http://www.heise.de/security/artikel/37958 - Buffer overflow (in Deutsch)

http://www.sans.org/rr/whitepapers/securecode/386.php - Buffer overflow


(detailliert in Englisch)

Sicherheitsrisiko Web-Anwendung – Wie Webprogrammierer Sicherheitslücken

erkennen und vermeiden; ISBN 3-89846-259-3
The art of intrusion – von Kevin Mitnick; weltweit bekannter ehemaliger Hacker
spezialisiert auf Social Engineering; ISBN 0-76456-959-7
07.12.2005
Infopoint - Hacking - Jörg Wüthrich
26/26

PPT - Info Point