PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LFI Bot Scannern den Hahn zudrehen.



zyrusthc
05.04.12, 15:34
Jeder Websitenbetreiber kennt es das Problem mit ständigen Meldungen in den Logs ala ../../../../../../../../../../../../../../../../../../etc/passwd usw. oder das versucht wird Code einzuschleusen. Normalerweise bei sauber programierten PHP und aktuellen Paketen sowie guter Konfiguration kein Problem, also nur normales Hintergrundrauschen.

Allerdings möchte ich gerne die IP Adressen die alleine den Versuch solches Unternehmen gänzich vom Server aussperren. Mache ich in der Regel manuell mit einem Script welches auf iptables zurückgreift beim verfolgen der Logs.
Dies möchte ich jetzt automatisieren. Sprich urlsnarf oder Logs tailen und dann weiter geben an iptables.

Bevor ich mich da allerdings ransetzte und drauf los Scripte meine Frage an euch, gibt es da fertige Lösungen und Pakete was mich interessieren könnte!?


Greeez Oli

Rain_maker
05.04.12, 16:27
Nur eine kleine, allgemeine Warnung vor allem für Querleser.

Letztendlich gibt es auch fertige Werkzeuge, die das selbe Funktionsprinzip haben, welches der TE hier selbst für seinen speziellen Anwendungsfall scripten möchte.

Kurz gesagt soll das Ganze ja Folgendes VooDoo veranstalten:

"Durchsuche $LOGFILE nach '$verdächtigen' (was immer das auch sein mag) Strings und blocke $IP_von_welcher_$verdächtiger_String gesendet wurde."

All diese Tools haben einen nicht zu unterschätzenden Angriffsvektor, wenn man nicht höllisch aufpasst, wie das zu grunde liegende Logfile geparst und anschliessend ausgewertet werden soll.

Das kann vor allem dann kräftig nach hinten losgehen, wenn der Angreifer in diesem "verdächtigen" String z.B. eine IP seiner Wahl mitsendet und das Tool nicht sicher unterscheiden kann, welche der dadurch im Log auftauchenden IP-Adressen die ist, die eigentlich gesperrt werden soll und welche nicht.

Es gab dazu in der Vergangenheit einige Beispiele, wie genau solche fehlenden Unterscheidungen bei der Logauswertung bestimmter, durchaus bekannter Werkzeuge, lustige DoS-Angriffe ermöglichten.

Greetz,

RM

zyrusthc
05.04.12, 16:57
Hier mal so ein String:

mail.magazinulcudetoate.ro - - [05/Apr/2012:17:46:52 +0200] "GET http://root-und-kein-plan.ath.cx//index.php?option=com_jvehicles&controller=../../../../../../../../../../../../../../../../../../../../../../../../proc/self/environ%0000 HTTP/1.1" - - "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6"
Wurde von urlsnarf mitgeschnitten, jetzt blos ohne Parameter -n sonst würde statt des Hostnames die IP Adresse da stehen.
Wie soll der Angreifer bitte den Hostnamen bzw. die IP Manipulieren ausser das er vielleicht über einen Proxy geht?

Greeez Oli

hafgan
05.04.12, 17:46
Hi,

wenn ich Dich richtig verstanden habe sollte das doch mit mod-security gehen:
http://www.modsecurity.org/

Wenn Du dann fail2ban auf die logs von modsecurity losläßt, wird schon beim ersten Veruch wird mittels Error 403 verhindert und anschließend über fail2ban/iptables die IP gesperrt.

Gruß
hafgan

Rain_maker
05.04.12, 18:43
Mal als Beispiel aus der Praxis:

https://bugs.gentoo.org/show_bug.cgi?id=157166

http://www.gentoo.org/security/en/glsa/glsa-200702-05.xml

Das Hauptproblem beim obigen Beispiel dürfte sein, daß fail2ban mit diversen, leicht unterschiedlichen Logformaten umgehen können muss und dann handelte man sich diesen Ärger eben ein, weil der Programmierer einen "intelligenten" Mechanismus brauchte, der aus den Logs die entsprechende IP rausfischt.

Gab man aber beim Login im Usernamen eine IP mit an (siehe verlinkten Bugreport), dann ging die Party los.

Greetz,

RM

zyrusthc
05.04.12, 22:35
Deswegen wollte ich auch fail2ban raushalten. Hab mir mal schnell was selbst gebastelt , funktioniert auch soweit.

Könnt es ja selber testen in dem ihr meine URL aufruft mit /etc/passwd zb. in der URL, danach solltet ihr per iptables mit euer aktuellen IP ausgesperrt sein von meinen Server.
zb:
http://zyrusthc.homeip.net/include.php?path=start.php?../../../../../../../../../etc/passwd

PS: Das ganze greift übrigens auf allen Domains die auf dem Server liegen weil das Script den Datenverkehr mit urlsnarf überwacht.

Die Verwendeten Scripts anbei:


Greeez Oli

roadracer
05.04.12, 23:57
Jetzt komm ich gar nicht mehr auf deine HP... :o

zyrusthc
05.04.12, 23:59
Jetzt komm ich gar nicht mehr auf deine HP... :o
Japp :) Musste halt erst neue IP haben.

Greeez Oli