Hacker per phpMyAdmin
Hallo,
im Logfile "httperr" fanden sich mehrere Versuche, unter anderem per phpMyAdmin unerlaubten Zugriff zu erlangen. Hier mal ein typisches Beispiel (die xxx-Wert sind die Von-Aussen-IP; die y-Werte meine Server-IP):
2006-04-26 12:10:32 xxx.x.xxx.xxx 1509 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /phpmyadmin/main.php 400 - Hostname -
2006-04-26 12:10:32 xxx.x.xxx.xxx 1510 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /PMA/main.php 400 - Hostname -
2006-04-26 12:10:32 xxx.x.xxx.xxx 1516 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /mysql/main.php 400 - Hostname -
2006-04-26 12:10:32 xxx.x.xxx.xxx 1517 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /admin/main.php 400 - Hostname -
2006-04-26 12:10:32 xxx.x.xxx.xxx 1524 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /db/main.php 400 - Hostname -
2006-04-26 12:10:32 xxx.x.xxx.xxx 1525 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /dbadmin/main.php 400 - Hostname -
2006-04-26 12:10:33 xxx.x.xxx.xxx 1532 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /web/phpMyAdmin/main.php 400 - Hostname -
2006-04-26 12:10:33 xxx.x.xxx.xxx 1533 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /admin/pma/main.php 400 - Hostname -
2006-04-26 12:10:33 xxx.x.xxx.xxx 1540 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /admin/phpmyadmin/main.php 400 - Hostname -
2006-04-26 12:10:33 xxx.x.xxx.xxx 1541 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /admin/mysql/main.php 400 - Hostname -
2006-04-26 12:10:33 xxx.x.xxx.xxx 1547 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /mysql-admin/main.php 400 - Hostname -
2006-04-26 12:10:33 xxx.x.xxx.xxx 1549 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /phpmyadmin2/main.php 400 - Hostname -
2006-04-26 12:10:33 xxx.x.xxx.xxx 1556 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /mysqladmin/main.php 400 - Hostname -
2006-04-26 12:10:33 xxx.x.xxx.xxx 1558 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /mysql-admin/main.php 400 - Hostname -
2006-04-26 12:10:35 xxx.x.xxx.xxx 1563 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /main.php 400 - Hostname -
2006-04-26 12:10:35 xxx.x.xxx.xxx 1565 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /phpMyAdmin-2.5.6/main.php 400 - Hostname -
2006-04-26 12:10:35 xxx.x.xxx.xxx 1573 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /phpMyAdmin-2.5.4/main.php 400 - Hostname -
2006-04-26 12:10:35 xxx.x.xxx.xxx 1575 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /phpMyAdmin-2.5.1/main.php 400 - Hostname -
2006-04-26 12:10:35 xxx.x.xxx.xxx 1583 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /phpMyAdmin-2.2.3/main.php 400 - Hostname -
2006-04-26 12:10:35 xxx.x.xxx.xxx 1585 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /phpMyAdmin-2.2.6/main.php 400 - Hostname -
2006-04-26 12:10:35 xxx.x.xxx.xxx 1594 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /myadmin/main.php 400 - Hostname -
Interessant dabei ist die benötigte Zeit: ca. 7 Seitenaufrufe pro Sekunde. Folglich dürfte es sich um einen gescripteten Angriffsversuch handeln.
Meine Frage lautet nun:
Da in dem Logfile wohl nur fehlgeschlagene Versuche protokolliert werden, wie finde ich heraus, ob auf eine vorhandene Datei zugegriffen wurde?
In den "ex"-Logfiles konnte ich die IP bisher nicht finden.
System: Windows-Server 2003, IIS 6.0, php5.1.2 und mySQL 5.0.19
Danke im Voraus!
im Logfile "httperr" fanden sich mehrere Versuche, unter anderem per phpMyAdmin unerlaubten Zugriff zu erlangen. Hier mal ein typisches Beispiel (die xxx-Wert sind die Von-Aussen-IP; die y-Werte meine Server-IP):
2006-04-26 12:10:32 xxx.x.xxx.xxx 1509 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /phpmyadmin/main.php 400 - Hostname -
2006-04-26 12:10:32 xxx.x.xxx.xxx 1510 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /PMA/main.php 400 - Hostname -
2006-04-26 12:10:32 xxx.x.xxx.xxx 1516 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /mysql/main.php 400 - Hostname -
2006-04-26 12:10:32 xxx.x.xxx.xxx 1517 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /admin/main.php 400 - Hostname -
2006-04-26 12:10:32 xxx.x.xxx.xxx 1524 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /db/main.php 400 - Hostname -
2006-04-26 12:10:32 xxx.x.xxx.xxx 1525 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /dbadmin/main.php 400 - Hostname -
2006-04-26 12:10:33 xxx.x.xxx.xxx 1532 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /web/phpMyAdmin/main.php 400 - Hostname -
2006-04-26 12:10:33 xxx.x.xxx.xxx 1533 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /admin/pma/main.php 400 - Hostname -
2006-04-26 12:10:33 xxx.x.xxx.xxx 1540 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /admin/phpmyadmin/main.php 400 - Hostname -
2006-04-26 12:10:33 xxx.x.xxx.xxx 1541 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /admin/mysql/main.php 400 - Hostname -
2006-04-26 12:10:33 xxx.x.xxx.xxx 1547 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /mysql-admin/main.php 400 - Hostname -
2006-04-26 12:10:33 xxx.x.xxx.xxx 1549 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /phpmyadmin2/main.php 400 - Hostname -
2006-04-26 12:10:33 xxx.x.xxx.xxx 1556 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /mysqladmin/main.php 400 - Hostname -
2006-04-26 12:10:33 xxx.x.xxx.xxx 1558 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /mysql-admin/main.php 400 - Hostname -
2006-04-26 12:10:35 xxx.x.xxx.xxx 1563 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /main.php 400 - Hostname -
2006-04-26 12:10:35 xxx.x.xxx.xxx 1565 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /phpMyAdmin-2.5.6/main.php 400 - Hostname -
2006-04-26 12:10:35 xxx.x.xxx.xxx 1573 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /phpMyAdmin-2.5.4/main.php 400 - Hostname -
2006-04-26 12:10:35 xxx.x.xxx.xxx 1575 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /phpMyAdmin-2.5.1/main.php 400 - Hostname -
2006-04-26 12:10:35 xxx.x.xxx.xxx 1583 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /phpMyAdmin-2.2.3/main.php 400 - Hostname -
2006-04-26 12:10:35 xxx.x.xxx.xxx 1585 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /phpMyAdmin-2.2.6/main.php 400 - Hostname -
2006-04-26 12:10:35 xxx.x.xxx.xxx 1594 yyy.yyy.yyy.yyy 80 HTTP/1.0 GET /myadmin/main.php 400 - Hostname -
Interessant dabei ist die benötigte Zeit: ca. 7 Seitenaufrufe pro Sekunde. Folglich dürfte es sich um einen gescripteten Angriffsversuch handeln.
Meine Frage lautet nun:
Da in dem Logfile wohl nur fehlgeschlagene Versuche protokolliert werden, wie finde ich heraus, ob auf eine vorhandene Datei zugegriffen wurde?
In den "ex"-Logfiles konnte ich die IP bisher nicht finden.
System: Windows-Server 2003, IIS 6.0, php5.1.2 und mySQL 5.0.19
Danke im Voraus!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 31224
Url: https://administrator.de/contentid/31224
Ausgedruckt am: 05.11.2024 um 10:11 Uhr
8 Kommentare
Neuester Kommentar
das was da vorgeht bei dir, nennt man sql-injection:
Um das Einschleusen von SQL-Code zu verhindern, müssen alle Eingaben vor ihrer Verwendung in einer SQL-Abfrage geprüft und ggf. bereinigt werden. Und zwar wirklich alle und nicht nur die, die ein Benutzer offiziell ändern kann. Ein Angreifer kann auch z.B. im Formular versteckte Felder oder Cookies manipulieren. Außerdem müssen die Eingaben auf dem Server geprüft werden. Eine Prüfung auf dem Client kann vom Angreifer manipuliert oder umgangen werden. Auch der manchmal genannte Rat, die Länge von Eingabefeldern zu beschränken, schützt nicht vor dem Einschleusen manipulierter Daten. Ein Angreifer kann problemlos eine eigene, manipulierte Webseite verwenden, bei POST-HTTP-Requests die URL manipulieren oder die Daten direkt über Telnet an den Server senden. Daher darf nur den direkt auf dem Server geprüften Daten vertraut werden.
ich empfehle dir einmal die lektuere des folgenden PDF-dokuments der eidgenoessischen technischen hochschule zu zuerich, zum thema sql-injection und gegenmassnahmen:
http://www.infsec.ethz.ch/people/psevinc/sqliadReport.pdf
und falls der link nicht funktioniert, gibts das noch als html-dokument:
http://72.14.203.104/u/ethwww?q=cache:T2WtSZL8aV0J:www.infsec.ethz.ch/p ...
saludos
gnarff
Um das Einschleusen von SQL-Code zu verhindern, müssen alle Eingaben vor ihrer Verwendung in einer SQL-Abfrage geprüft und ggf. bereinigt werden. Und zwar wirklich alle und nicht nur die, die ein Benutzer offiziell ändern kann. Ein Angreifer kann auch z.B. im Formular versteckte Felder oder Cookies manipulieren. Außerdem müssen die Eingaben auf dem Server geprüft werden. Eine Prüfung auf dem Client kann vom Angreifer manipuliert oder umgangen werden. Auch der manchmal genannte Rat, die Länge von Eingabefeldern zu beschränken, schützt nicht vor dem Einschleusen manipulierter Daten. Ein Angreifer kann problemlos eine eigene, manipulierte Webseite verwenden, bei POST-HTTP-Requests die URL manipulieren oder die Daten direkt über Telnet an den Server senden. Daher darf nur den direkt auf dem Server geprüften Daten vertraut werden.
ich empfehle dir einmal die lektuere des folgenden PDF-dokuments der eidgenoessischen technischen hochschule zu zuerich, zum thema sql-injection und gegenmassnahmen:
http://www.infsec.ethz.ch/people/psevinc/sqliadReport.pdf
und falls der link nicht funktioniert, gibts das noch als html-dokument:
http://72.14.203.104/u/ethwww?q=cache:T2WtSZL8aV0J:www.infsec.ethz.ch/p ...
saludos
gnarff
gibt es eigentlich programme, die ftp oder http server tracen können
also die die verzeichnisstruktur des jeweiligen servers anzeigen, ohne das man eingeloggt is ????
weil verhindern kann man sowas ja , indem man in jedem ordner ne index.htm datei hat
da wird man dann ja automatisch draufhioingeleitet,wenn man nen pfad kennt
also die die verzeichnisstruktur des jeweiligen servers anzeigen, ohne das man eingeloggt is ????
weil verhindern kann man sowas ja , indem man in jedem ordner ne index.htm datei hat
da wird man dann ja automatisch draufhioingeleitet,wenn man nen pfad kennt
Hey gnarff, lustig, was Du da so schreibst.
Da ich rein zufällig hier Mod bin, KANN ich Dich hier korrigieren.
(weil ich auch das nötige Fachwissen im Bereich Sicherheit/Webserver) habe.
Das, was da oben steht, ist keine SQL-Injection.
Die wird dann doch ein klein wenig anders ausgeführt.
(demonstriere ich Dir gerne mal an einigen Deiner Server...)
phpler hat Recht:
Die "Angriffe" werden nie aufhören, denn das ganze ist in der Tat ein Script, welches zu eruieren versucht, ob auf dem Server phpmyadmin installiert ist.
Dies wird mit den gängigsten Mitteln versucht.
Das ganze ist allerdings nicht als Angriff oder injection zu werden, sondern wird ganz einfach "Scan" genannt.
Sollte ein Response mal nicht 404 sein, wird das ganze vom Script gespeichert, und entweder per Mail gesendet, oder wenn das Script eine weitergehende Routine hat, wird evtl. IM ANSCHLUSS eine sql-injection probiert, sofern die vorgefundene Version eine Schwachstelle diesbzgl. aufweist.
Wenn das über einen längeren Zeitraum hin zu beobachten ist, ist ein kriminelles Interesse hinter dem Vorgehen zu werten, und ich würde mir für diese IP den zuständigen Besitzer suchen.
Diesem würde ich dann Staatsorgane auf die Besuchsliste setzen, fertig.
Wenn es allerdings
a) eine IP aus dem Ausland ist
b) standig dieselbe IP ist
gibt es eine viel bessere Möglichkeit:
IP sperren lassen, evtl. eine IP-Range
Lonesome Walker
Da ich rein zufällig hier Mod bin, KANN ich Dich hier korrigieren.
(weil ich auch das nötige Fachwissen im Bereich Sicherheit/Webserver) habe.
Das, was da oben steht, ist keine SQL-Injection.
Die wird dann doch ein klein wenig anders ausgeführt.
(demonstriere ich Dir gerne mal an einigen Deiner Server...)
phpler hat Recht:
Die "Angriffe" werden nie aufhören, denn das ganze ist in der Tat ein Script, welches zu eruieren versucht, ob auf dem Server phpmyadmin installiert ist.
Dies wird mit den gängigsten Mitteln versucht.
Das ganze ist allerdings nicht als Angriff oder injection zu werden, sondern wird ganz einfach "Scan" genannt.
Sollte ein Response mal nicht 404 sein, wird das ganze vom Script gespeichert, und entweder per Mail gesendet, oder wenn das Script eine weitergehende Routine hat, wird evtl. IM ANSCHLUSS eine sql-injection probiert, sofern die vorgefundene Version eine Schwachstelle diesbzgl. aufweist.
Wenn das über einen längeren Zeitraum hin zu beobachten ist, ist ein kriminelles Interesse hinter dem Vorgehen zu werten, und ich würde mir für diese IP den zuständigen Besitzer suchen.
Diesem würde ich dann Staatsorgane auf die Besuchsliste setzen, fertig.
Wenn es allerdings
a) eine IP aus dem Ausland ist
b) standig dieselbe IP ist
gibt es eine viel bessere Möglichkeit:
IP sperren lassen, evtl. eine IP-Range
Lonesome Walker
lieber lonesome! moderator!
1. evident war, bei dem "scan" -wie du es faelschlicher weise nennst- , dass der angreifer es offenbar auf php und mySQL abgesehen hatte.
2. ich habe mir die freiheit heraus genommen, ihm aufzuzeigen wo die schwachstelle liegen kann und ihm einen loesungsvorschlag an die hand gegeben.
3. bei einem scan wird ausserdem nicht versucht unerlaubt zugriff zu erhalten, -so wie du es hier ausfuehrst.
4. daraus folgt, dass es sich um keinen scan gehandelt hat -Moderator, du.
5. das haettest du aber auch wissen koennen, haettest du nur das posting von phpler aufmerksam gelesen und das log obendrein.
6. phpler hat von einem vollzogenen, wenn auch offensichtlich fruchtlosen angriff gesprochen, und da hatte er voellig recht.
und in der tat, das selbst das scannen eines netzwerkes, sofern sich es nicht um das eigene handelt und keine genehmigung vom betreibers des bezogenen netzwerkes vorliegt, als angriffsversuch zu werten. ich weiss nicht wie die rechtslage in deutschland ist, in costa rica das eine straftrat.
es ist mir voellig egal, ob du moderator bist oder nicht
saludos
gnarff
1. evident war, bei dem "scan" -wie du es faelschlicher weise nennst- , dass der angreifer es offenbar auf php und mySQL abgesehen hatte.
2. ich habe mir die freiheit heraus genommen, ihm aufzuzeigen wo die schwachstelle liegen kann und ihm einen loesungsvorschlag an die hand gegeben.
3. bei einem scan wird ausserdem nicht versucht unerlaubt zugriff zu erhalten, -so wie du es hier ausfuehrst.
4. daraus folgt, dass es sich um keinen scan gehandelt hat -Moderator, du.
5. das haettest du aber auch wissen koennen, haettest du nur das posting von phpler aufmerksam gelesen und das log obendrein.
6. phpler hat von einem vollzogenen, wenn auch offensichtlich fruchtlosen angriff gesprochen, und da hatte er voellig recht.
und in der tat, das selbst das scannen eines netzwerkes, sofern sich es nicht um das eigene handelt und keine genehmigung vom betreibers des bezogenen netzwerkes vorliegt, als angriffsversuch zu werten. ich weiss nicht wie die rechtslage in deutschland ist, in costa rica das eine straftrat.
es ist mir voellig egal, ob du moderator bist oder nicht
saludos
gnarff
Die einzigen, die einen Lösungsvorschlag gebracht haben, waren Dani und ich.
Du faselst hier was von injection.
Eine Injection kann nur stattfinden, wenn man ein Ziel hat.
Du hast ihm gar keine Schwachstelle gezeigt, das hat nur Dani gamacht, und zwar, den Ordner umbenennen.
Ergo, hat sich wieder mal gezeigt, daß die meisten Beiträge von Dir zu später Stunde wohl doch nicht sooo ernst zu nehmen sind.
(okay, dort wo Du jetzt angeblicherweise bist, mag es vielleicht ein wenig früher/später als hier in Deutschland sein; aber Deine Firma habe ich noch immer nicht gefunden...)
Das ganze war ein Scan; lediglich ob er erfolgreich war oder nicht, läßt sich nicht so leicht herausfinden.
Du solltest vielleicht doch mal ein wenig in Fachlektüre stöbern; Alter hin, Erfahrung her, im Bereich Sicherheit reichst DU mir lange nicht das Wasser.
(vom Bereich Ironie mal ganz zu schweigen)
@phpler:
Ob und was ausgeführt wurde, kannst nur Du alleine rekonstruieren;
dazu müßtest Du alle Querys der fraglichen Zeit analysieren, sofern möglich.
Des Weiteren bitte ich Dich, das von mir Geschriebene auf für Dich Verständliches zu prüfen.
Was gnarff schreibt, ist mit ein wenig Fachwissen sehr schnell als "Übersteigerung" zu erkennen.
Ich kennzeichne diesen Thread als gelöst, da hier wahrscheinlich nur noch Geflame kommen würde.
Du kannst Dich aber gerne per PN an gnarff oder mich (oder an jemanden anderen hier) wenden, falls Du diesbzgl. Probleme hast.
Gruß
Lonesome Walker
PS: Nur für Dich gnarff:
http://de.wikipedia.org/wiki/Scannen
im Gegensatz zu
http://de.wikipedia.org/wiki/SQL-Injection
(man beachte den feinen Unterschied! Scannen heißt nicht ausführen.)
und weiterführendes Material:
http://www.spidynamics.com/support/whitepapers/WhitepaperSQLInjection.p ...
PPS: Kannst Du noch immer nicht Groß-Schreibung beachten?
Du faselst hier was von injection.
Eine Injection kann nur stattfinden, wenn man ein Ziel hat.
Du hast ihm gar keine Schwachstelle gezeigt, das hat nur Dani gamacht, und zwar, den Ordner umbenennen.
Ergo, hat sich wieder mal gezeigt, daß die meisten Beiträge von Dir zu später Stunde wohl doch nicht sooo ernst zu nehmen sind.
(okay, dort wo Du jetzt angeblicherweise bist, mag es vielleicht ein wenig früher/später als hier in Deutschland sein; aber Deine Firma habe ich noch immer nicht gefunden...)
Das ganze war ein Scan; lediglich ob er erfolgreich war oder nicht, läßt sich nicht so leicht herausfinden.
Du solltest vielleicht doch mal ein wenig in Fachlektüre stöbern; Alter hin, Erfahrung her, im Bereich Sicherheit reichst DU mir lange nicht das Wasser.
(vom Bereich Ironie mal ganz zu schweigen)
@phpler:
Ob und was ausgeführt wurde, kannst nur Du alleine rekonstruieren;
dazu müßtest Du alle Querys der fraglichen Zeit analysieren, sofern möglich.
Des Weiteren bitte ich Dich, das von mir Geschriebene auf für Dich Verständliches zu prüfen.
Was gnarff schreibt, ist mit ein wenig Fachwissen sehr schnell als "Übersteigerung" zu erkennen.
Ich kennzeichne diesen Thread als gelöst, da hier wahrscheinlich nur noch Geflame kommen würde.
Du kannst Dich aber gerne per PN an gnarff oder mich (oder an jemanden anderen hier) wenden, falls Du diesbzgl. Probleme hast.
Gruß
Lonesome Walker
PS: Nur für Dich gnarff:
http://de.wikipedia.org/wiki/Scannen
im Gegensatz zu
http://de.wikipedia.org/wiki/SQL-Injection
(man beachte den feinen Unterschied! Scannen heißt nicht ausführen.)
und weiterführendes Material:
http://www.spidynamics.com/support/whitepapers/WhitepaperSQLInjection.p ...
PPS: Kannst Du noch immer nicht Groß-Schreibung beachten?