Exploits finden?

Hallo,
ich habe bei mir zuHause mal ne kleine Testumgebung aufgebaut.
Debian Sarge 3.1 auf einem Server. Dort läuft jetzt ein ProFTPd Version 1.2.10. sonst nichts.. Anonymous Zugriff habe ich deaktiviert. Im System selber habe ich zwei Benutzer:

root : rootpass
user : userpass

Mit beiden Benutzern kann ich mich am System anmelden aber nur mit "user" am ftp server. Als Homeverzeichniss dient das direkte Homeverzeichniss(/home/user/). Wo der benutzer schreib und lesezugriff hat.

Mein Client ist ebenfalls ein Debian Sarge 3.1... mit Gnome 2.6 usw.. relativ unwichtig wie ich finde hier.

So jetzt möchte ich gerne mal das Scenario durchspielen, das ich in meinen FTP Server eindringe ohne einen Benutzernamen zu kennen und natürlich auch ohne Passwort.

Ich habe jetzt mal so getan als wenn ich mein System nicht kenne, bzw nur die IP kenne. 10.10.100.1 . Habe dann per nmap den offenen Port 21 gefunden und mich per Telnet verbunden, wodurch ich dann die Versionsnummer vom FTP Server bekommen habe. 1.2.10. So jetzt da ich ein paar Informationen über mein Ziel kenne, dachte ich an Sicherheitslücken(exploits). Ich dann schnell google an meinem Client gefragt ( exploit proftpd ) leider habe ich nur ein exploit gefunden, bzw den source davon. Dieser zeigte mir, wie die einlogversuche bei usern dauern.. Denke mal relativ uninteressant. Möchte ja nicht den Benutzer + Passwort bruteforcen..

Jetzt mal die Frage an die Allgemeinheit hier: Wie finde ich nun nen brauchbares exploit um in den FTP Server zu gelangen, oder diesen zum Absturz zu bringen und eine Shell zu öffnen und an Port z.B. 4000 binden, um mich damit dann von meinem Client aus zu verbinden und die Benutzerrechte anzunehmen, mit dem der FTP Server gestartet wurde.. bei mir ist es root. Wodurch ich ja danach vollen Zugriff auf dem System habe.

Falls es sowas schonmal hier gab, ich habe leider nix gefunden..
 
Hallo,
entweder per google/bugtrag nach exploits für die Software suchern, oder....

... oder es wird schwer. Also sofern du nicht verstehst, warum es Exploits gibt, dann solltest du dich nicht darauf fixieren für xyz ein Exploit zu finden.
Denn zuerst musst du lernen was ein Sicherheitsloch ist, und wie man dieses Ausnutzen kann (Exploit).
Dann geht die Suche im Source Code los nach Sicherheitslöchern, dass kann sehr schwer sein, vorallem wenn man nicht weiß wie solche Aussehen ;)
Und dann muss man noch ne Möglichkeit finden dieses auszunutzen.


P.S. Verdächtig sind immer die Meldungen, wenn einem das Programm meldet, dass man einen Pufferüberlauf in xxxxxxx hat ;)
 
Vielleicht hab ich den ganzen Beitrag falsch formuliert.
Ich weiß schon was ein Bug/Exploit ist. Ich weiß auch solche auszunutzen. Jedenfalls in eigens erstellten kleinen Testprogrammen. Doch ich suche ja eigentlich nur speziell für Software XYZ in meinem Fall ProFTPD Version 1.2.10 einen brauchbaren exploit. Am besten als Sourcecode vorliegend.

Falls man als einzelner Mensch sich den frei zugänglichen Sourcecode von proFTPD durchsehen würde, würde man vermutlich erst im Jahre 2030 einen Bug finden, doch bis dato ist mit sicherheit dieser schon gefixt.

Es gibt ja die Seite securityfocus.com. Doch finde ich dort nichts brauchbares für proFTPD. Von daher ist meine Frage, wo man soetwas noch suchen könnte. Gibt es spezielle Archive für soetwas?


EDIT: Hm weiß denn keiner hier mehr wo man solche exploits bzw die sourcecodes dazu findet ??
 
Original von snoopy69
Falls man als einzelner Mensch sich den frei zugänglichen Sourcecode von proFTPD durchsehen würde, würde man vermutlich erst im Jahre 2030 einen Bug finden, doch bis dato ist mit sicherheit dieser schon gefixt.

hm? was glaubst du denn wo die exploits herkommen? der storch bringt sie jedenfalls nicht.

also es gibt da mehrere moeglichkeiten.

1. die software enthaelt keine sicherheitsloecher. (sehr unwahrscheinlich, kann man vernachlaessigen)

2. die software enthaelt sicherheitsluecken

im fall 2. gibts dann wieder unterschiedliche szenarien:

1. jemand hat "veroeffentlicht", dass er eine sicherheitsluecke gefunden hat (z.b. mail auf bugtraq geschrieben). eventuell hat derjenige auch schon einen exploit mitgeliefert.

2. jemand hat eine sicherheitsluecke entdeckt und es niemandem verraten. (oder einen "0-day exploit" geschrieben und an die spammer oder sonstwen verkauft.)

3. die software ist so irrelevant/unbekannt/nutzlos/etc., dass niemand nach sicherheitsloechern gesucht hat

im fall 2. und 3. musst du offensichtlich die arbeit selbst machen wenn du einen exploit fuer ein stueck software haben willst.

den source code von vorne bis hinten zu lesen ist vielleicht nicht die beste strategie. es gibt versuche tools zu entwickeln die automatisiert codestellen finden welche moeglicherweise sicherheitsluecken darstellen. dann gibts noch grep. man kann in c code einfach mal nach den ueblichen verdaechtigen unsicheren funktionen aus der libc suchen. z.b. strcat, strcpy, etc.

Von daher ist meine Frage, wo man soetwas noch suchen könnte. Gibt es spezielle Archive für soetwas?

http://www.frsirt.com/english/
http://www.packetstormsecurity.org/
http://www.osvdb.org/
http://www.metasploit.org/
 
mir ist schon klar, das man..bzw manche diese Fehler im Code finden, doch ich gehe da eher mal von Zufall aus und nicht permanentem suchen.. OK vielleicht in einzelfällen..

Zu dem proFTPD. ich geh ma stark davon aus, das ein normalsterblicher bzw 1 Mensch keinen brauchbaren Fehler im Code findet, der er zum Einstieg nutzen kann. Zudem falls jemand nun meinen FTP Server hacken möchte, dann müsste dieser ja nach einer Sicherheitslücke im SourceCode suchen. Doch bis er wahrscheinlich eine gefunden hat, habe ihc mit sicherheit schon eine neue Version installiert wo eventuell dieser Fehler schon behoben wurde..

Und ich glaube kaum das die Entwickler von proFTPD Fehler mit strcat strcpy usw gemacht haben... BZW es währe wohl sehr sehr unwahrscheinlich.

Zudem was ist mit Nicht OpenSource Software?? Sonftware von Microsoft zum Beispiel... Hier hat niemand einsicht in den Sourcecode, außer die Entwickler selbst.
Und ich gehe mal kaum davon aus, das ein potenzieller Hacker der in einen IIS Eeinsteigen möchte, diesen debugged oder sich den ASM code rein zieht und dort nach Fehlern sucht.. Oder gibt es wirklich solche?

Nur dann geh ich einfach mal davon aus das mein System sicher ist. Denn niemand würde so einen großen Aufwand betreiben, nur um an ein paar Private Daten zu gelangen. Da würden wohl Regierungsseiten und Server eher nen Ziel sein.

Edit:

Noch nen Nachtrag: Habe jetzt mal die ganzen Links die du mir gegeben hast durchgestöbert. Danke übrigens. Doch ich konnte wieder keinen brauchbaren Exploit für meine Version finden. Die meisten Exploits sind zudem 1 -4 Jahre alt. Diese sind wohl mit sicherheit schon gefixt.

Wie würdet ihr denn nun an die Sache rangehen um in den ProFTP 1.2.10 zu gelangen?
 
Original von snoopy69
mir ist schon klar, das man..bzw manche diese Fehler im Code finden, doch ich gehe da eher mal von Zufall aus und nicht permanentem suchen.. OK vielleicht in einzelfällen..

also ich wuerde mal vermuten die drei haeufigsten gruende warum eine sicherheitsluecke in einem stueck software gefunden wird sind

1. jemand will die software einfach benutzen, die software stuerzt ab, dieser jemand forscht nach warum und stellt fest, dass beispielsweise ein exploitbarer buffer overflow die ursache ist

2. waehrend eines penetration tests oder eines beauftragten audits einer software wird eine sicherheitsluecke gefunden (auf bugtraq sieht man ab und zu mal ein paar advisories hintereinander zu einer software, von der gleichen quelle, kandidaten die mir dafuer spontan einfallen waeren http://www.ngssoftware.com/ und http://www.eeye.com/)

3. jemand sucht einfach so nach sicherheitsloechern

ob 3. "einzelfaelle" sind oder nicht, keine ahnung. wie viel von den gefundenen loechern auch bekannt gemacht werden ist auch unbekannt (stichwort 0day).

Zu dem proFTPD. ich geh ma stark davon aus, das ein normalsterblicher bzw 1 Mensch keinen brauchbaren Fehler im Code findet, der er zum Einstieg nutzen kann.

wenn ich zuviel geld haette koennte ich z.b. NGS beauftragen einen code audit von proftpd durchzufuehren. ob ich normalsterblich bin oder nicht ist also nicht unbedingt entscheidend. ;) aber ich denke mal, dass NGS aufgrund ihrer arbeitsmoral keinen vertrag abschliessen in dem steht, dass ich exploits die beim audit rausfallen fuer mich behalte.

Und ich glaube kaum das die Entwickler von proFTPD Fehler mit strcat strcpy usw gemacht haben... BZW es währe wohl sehr sehr unwahrscheinlich.

Code:
hs@zaphod:~/proftpd-1.2.10$ egrep -r "(\ strcmp|\ strcat|\ strcpy)" src/*.c | wc -l
      28
das sind natuerlich nicht alle gefaehrlichen libc funktionen und ich will auch nicht behaupten, dass da tatsaechlich sicherheitsloecher dabei sind und man kann ja auch anders sicherheitsloecher in den code einbauen, usw... aber man sollte auch nicht denken, dass diese funktionen gar nicht mehr benutzt werden, bzw. ueberall durch ihre "sichere" variante ersetzt wurden.

eine schoene veranstaltung (imho die beste, gleichauf mit dem fnord jahresrueckblick) auf dem 21c3 war das literarische code quartett. guckstu hier: http://bittorrent.ccc.de:2342/

da gibts auch chaosradio 102, "traumberuf hacker", wo 2 security consultants ein wenig aus dem berufsalltag erzaehlen.

Und ich gehe mal kaum davon aus, das ein potenzieller Hacker der in einen IIS Eeinsteigen möchte, diesen debugged oder sich den ASM code rein zieht und dort nach Fehlern sucht.. Oder gibt es wirklich solche?

sicher. und niemand hat behauptet, dass es einfach ist. buchtipp hierzu: "hacker disassembling uncovered" (isbn 1-931769-22-2). habs noch nicht gelesen, aber inhaltsverzeichnis und stichprobenartiges rumschmoekern sehen vielversprechend aus.

Nur dann geh ich einfach mal davon aus das mein System sicher ist. Denn niemand würde so einen großen Aufwand betreiben, nur um an ein paar Private Daten zu gelangen.

seh ich auch so. wenn keine bekannten loecher in der software sind, man auch immer schoen patches einspielt und auf eine sichere konfiguration achtet, sollte man ruhig schlafen koennen. allerdings ist dein system nicht sicher, sondern sicher genug.

allerdings ist ein ftp server IMHO generell keine gute idee (ausser fuer anonymous read-only access), schliesslich werden die passwoerter im klartext uebertragen.

Noch nen Nachtrag: Habe jetzt mal die ganzen Links die du mir gegeben hast durchgestöbert. Danke übrigens. Doch ich konnte wieder keinen brauchbaren Exploit für meine Version finden.

hab ich auch nicht behauptet. ;)

Wie würdet ihr denn nun an die Sache rangehen um in den ProFTP 1.2.10 zu gelangen?

das ist IMHO der falsche ansatz. du darfst das nicht so eng sehen. wahrscheinlich denkt niemand "oh, da laeuft ein proftpd, den will ich jetzt unbedingt exploiten". wenn ueberhaupt, dann denkt jemand eher "oh, der hat seine tan liste fuers homebanking unverschluesselt auf der platte liegen, die will ich jetzt unbedingt haben". und um das zu erreichen gibt es viel mehr moeglichkeiten (auch nicht-technische wie einbrechen und rechner wegtragen).
es geht bei sicherheit immer darum die risiken moeglichst gut einzuschaetzen und dann nicht mehr aufwand zu treiben diese risiken zu minimieren als es kosten wuerde wenn die risiken tatsaechlich eintreffen (koennen risiken ueberhaupt "eintreffen"? naja, du weisst wies gemeint is...)
 
danke für die lange und ausführliche Antwort.

allerdings ist ein ftp server IMHO generell keine gute idee (ausser fuer anonymous read-only access), schliesslich werden die passwoerter im klartext uebertragen

Was siehst du daran als Sicherheitslücke? In einem Lan vielleicht.. bzw sogar ziemlich sicher, doch im Internet? Auch wenn du es auf einen Server im Internet absiehst, hast du wohl ziemlich schlechte Chancen hier die Passwörter mitzusniffen..

Im Lan.. klar über ARP Spoofing.(Glaube das war das doch, wenn man sich zwischen zwei PCs hängt und den gesamten netzwerkverkehr über sich umleitet.

Oder wenn ein HUB verwendet wird mit einem einfachen Netzwerkscanner wie Etherreal lassen sich dann schon die Passwörter mitschneiden.

Aber im Internet ist es doch wohl nicht möglich, das man sich da z.b. alle TCP/IP Pakete mitschneiden lassen kann, die an den host xxx.xxx.xxx.xxx gehen. Oder ist das doch möglich??
Wenn ja? sag mal nen Stichwort für google..

das ist IMHO der falsche ansatz. du darfst das nicht so eng sehen. wahrscheinlich denkt niemand "oh, da laeuft ein proftpd, den will ich jetzt unbedingt exploiten". wenn ueberhaupt, dann denkt jemand eher "oh, der hat seine tan liste fuers homebanking unverschluesselt auf der platte liegen, die will ich jetzt unbedingt haben". und um das zu erreichen gibt es viel mehr moeglichkeiten (auch nicht-technische wie einbrechen und rechner wegtragen).
es geht bei sicherheit immer darum die risiken moeglichst gut einzuschaetzen und dann nicht mehr aufwand zu treiben diese risiken zu minimieren als es kosten wuerde wenn die risiken tatsaechlich eintreffen (koennen risiken ueberhaupt "eintreffen"? naja, du weisst wies gemeint is...)

schon klar, das man erst mehrere Möglichkeiten sucht um in das System einzudringen, doch wenn man sich nun dieses System ganz genau angesehen hat und nur zwei offene Ports entdeckt hat FTP und ssh zum Beispiel, dann versucht man wohl zu erst da nen Angriff drauf zu starten. Und ich geh einfach mal davon aus, das man im proftp eher ne Chance hat.
 
Original von snoopy69
allerdings ist ein ftp server IMHO generell keine gute idee (ausser fuer anonymous read-only access), schliesslich werden die passwoerter im klartext uebertragen

Was siehst du daran als Sicherheitslücke? In einem Lan vielleicht.. bzw sogar ziemlich sicher, doch im Internet? Auch wenn du es auf einen Server im Internet absiehst, hast du wohl ziemlich schlechte Chancen hier die Passwörter mitzusniffen..

Aber im Internet ist es doch wohl nicht möglich, das man sich da z.b. alle TCP/IP Pakete mitschneiden lassen kann, die an den host xxx.xxx.xxx.xxx gehen. Oder ist das doch möglich??

komisch, ich sehs genau andersrum. ;)
die einzige situation in der ich klartextpasswoerter fuer unbedenklich halte ist in einem lan wo ich weiss welche rechner dran haengen und (einigermassen) sicher bin, dass keiner der rechner kompromittiert ist. also konkret, die drei rechner die hier auf dem schreibtisch stehen und mit nem switch verbunden sind. da bin ich mir ziemlich sicher, dass es niemand mitkriegt, wenn ich klartextpasswoerter durchs netz schicke.

trotzdem benutze ich hier sftp wenn ich dateien rumkopiere. die frage ist doch nicht "wofuer brauch ich das schon?", sondern "warum sollte ich auf verschluesselung verzichten?". wenn man in nem land lebt wo man gefoltert wird wenn man mit verschluesselungssoftware erwischt wird (leicht ueberspitztes beispiel), dann ist das risiko solche software einzusetzen moeglicherweise groesser, als die software nicht einzusetzen.

man kann natuerlich nur netzverkehr mitlesen, wenn dieser an dem rechner vorbeikommt auf dem man einen sniffer starten kann. du musst dich aber fragen warum du unbedingt deinem isp, deinem hoster und allen admins/routern/etc. die dazwischen liegen vertrauen solltest. ciscos sind ganz bestimmt nicht unhackbar. leute die sich auskennen und den cisco ios source code gesehen haben sagen der ist relativ beschissen (siehe das literarische code quartett).

wenn du einen "virtuellen rootserver" fuer ein paar euro im monat mietest ist es gut moeglich, dass du mittels tcpdump und so den netzverkehr aller virtuellen rechner auf der physikalischen maschine mitlesen kannst. ein freund eines freundes hat so einen virtuellen rootserver und da treffen minuetlich etliche benutzername/passwort kombinationen ein die oft auch ein vollstaendiges benutzerkonto (heisst shell via ssh) auf dem rechner darstellen. ssh ist zwar verschluesselt, aber bei pop3/imap ist es wohl den meisten leuten zu muehsam irgendwas anderes als die defaultkonfiguration (sprich klartextpasswoerter) zu verwenden.

jetzt sagst du bestimmt "ja aber das is bei mir ja alles ganz anders". ich frag mich nur warum man sich mit haenden und fuessen dagegen wehrt was sicheres zu nehmen, wenn es doch ausser etwas zeit nicht mehr kostet.

schon klar, das man erst mehrere Möglichkeiten sucht um in das System einzudringen, doch wenn man sich nun dieses System ganz genau angesehen hat und nur zwei offene Ports entdeckt hat FTP und ssh zum Beispiel, dann versucht man wohl zu erst da nen Angriff drauf zu starten. Und ich geh einfach mal davon aus, das man im proftp eher ne Chance hat.

wuerd ich nicht unbedingt sagen. wenn man wirklich unbedingt auf diesen rechner drauf will wird man wahrscheinlich frueher oder spaeter da irgendwelche angriffe probieren. aber ich wuerde sagen die methodische vorgehensweise ist erst mal soviel information ueber ein ziel zu sammeln wie moeglich. das kann auch etwas mehr sein als ein tcp portscan. und ssh hatte auch sicherheitsloecher. obwohl openssh von den leuten vom openbsd projekt gestartet wurde. wenn die nicht wissen wie man sicheren code schreibt, wer dann?
 
man kann natuerlich nur netzverkehr mitlesen, wenn dieser an dem rechner vorbeikommt auf dem man einen sniffer starten kann. du musst dich aber fragen warum du unbedingt deinem isp, deinem hoster und allen admins/routern/etc. die dazwischen liegen vertrauen solltest. ciscos sind ganz bestimmt nicht unhackbar. leute die sich auskennen und den cisco ios source code gesehen haben sagen der ist relativ beschissen (siehe das literarische code quartett).

Das Problem was ich sehe ist wohl, das man einen RIESEN Aufwand betreiben muss, um Passwörter und co mitzusniffen. In nem Lan ist es da meiner Meinung nach einfacher. Mit Lan meine ich nun ein Internes Firmennetzwerk mit 50 Rechnern. Keine 3 PC Netzwerke,

Im Internet müsste man dann schon einige Router finden, diese hacken, dort dann statische Routen ändern/hinzufügen und die Datenpakete über sich leiten und dann mitsniffen. Nur ich denke das sich dieser Aufwand kaum lohnt.
Bei den Virtuellen Root Server wie du schon sagtest mag es ja sicherlich so sein, aber auch bestimmt nicht bei allen. Nur was machst du halt wenn es ein normaler Firmenserver ist der als MailServer ans Internet angebunden ist? Mit ner Standleitung und du unbedingt an irgendwelche Daten möchtest die auf diesem Server liegen?

Dann musst du ja schon die Router vorher umkonfigurieren das du an die Datenpakete kommst.

Oder kennst du eine andere, wesentlich unkompliziertere Möglichkeit?

Zu dem verschlüsseln. Genau das ist es, der mehr Zeitaufwand. Und Zeit ist Geld.. daher tun es viele nicht.
 
Original von snoopy69
Nur was machst du halt wenn es ein normaler Firmenserver ist der als MailServer ans Internet angebunden ist? Mit ner Standleitung und du unbedingt an irgendwelche Daten möchtest die auf diesem Server liegen?
natuerlich is das schwieriger als im lan mal eben ettercap zu starten. wie gesagt, es geht darum risiken einzuschaetzen und in geeignetem masse gegenmassnahmen zu ergreifen.
aber ist es wirklich so schwer einen paketfilter vor den server zu stellen und nur ipsec oder openvpn durch zu lassen? du musst ja auch bedenken, dass der sender von benutzername/passwort nicht in einem vertrauenswuerdigen netz sein muss. z.b. in einem wlan bei einer konferenz, in einem moeglicherweise mit einem hub aufgebauten lan in einem hotel, in einem internetcafe, auf einer lan-party mir 2000 teilnehmern, etc.

Zu dem verschlüsseln. Genau das ist es, der mehr Zeitaufwand. Und Zeit ist Geld.. daher tun es viele nicht.

wer aus faulheit keine sicheren protokolle verwendet und deswegen ge0wn3d wird hats nicht anders verdient.
 
aber ist es wirklich so schwer einen paketfilter vor den server zu stellen und nur ipsec oder openvpn durch zu lassen?

anscheinend ist es schon schwer. Jedenfalls im Bereich der kleinen bis Mittelständischen Firmen. Dort hat sowas doch niemand. Auch wenn sich Außendienstarbeiter sich auf den Firmenserver einloggen um ihre Emails abzufragen oder ihre PDAs zu syncronisieren.
Ich arbeite selbst in einer IT Firma, die für kleine bis Mittelständische Unternehmen solche Netzwerke aufbaut.
Wir richten so etwas auch nicht ein, zum einen weil der Kunde das nicht will zum andern weil mein Chef das nicht möchte oder sonstwas. Genaueres kann ich nicht sagen. Und dann wird sowas halt einfach ohne eingerichtet. Ob nun später jemand dadurch in das Firmenlan einbricht, ist ja erstmal für den Kunden uninteressant, er hat nur erstmal Kosten gespart. Sicherlich ist es mit einer VPN Verbindung besser/sicherer.

Zitat von mir:

Dann musst du ja schon die Router vorher umkonfigurieren das du an die Datenpakete kommst.

Oder kennst du eine andere, wesentlich unkompliziertere Möglichkeit?


Hm kennst du denn etwas um im Internet Datenpakete mitzusniffen von einem PC oder Server ?
 
Zitat von mir:

Dann musst du ja schon die Router vorher umkonfigurieren das du an die Datenpakete kommst.

Oder kennst du eine andere, wesentlich unkompliziertere Möglichkeit?


Hm kennst du denn etwas um im Internet Datenpakete mitzusniffen von einem PC oder Server ?

nein, wenn die pakete nicht an einem rechner vorbeikommen auf dem man einen sniffer starten kann, dann sieht man sie auch nicht. aber man muss wie gesagt auch die andere seite der verbindung betrachten und wie sicher der rechner auf der anderen seite der verbindung ist. wenn man diesen kompromittieren und bspw. einen keylogger installieren kann, dann bringt verschluesselung auf netzwerkebene natuerlich auch nichts.
 
Zurück
Oben