[MEGOLDVA] access_log 404 encoded url (fail2ban?)

Fórumok

A közelmúltban érdekes bejegyzésekre lettem figyelmes a logwatch által küldött riport fájlban.

[..]
404 Not Found
//%63%67%69%2D%62%69%6E/%70%68%70?%2D%64+% ... 70%75%74+%2D%6E: 1 Time(s)
[..]Gondoltam, közelebbről is megnézem a logokat, s az alábbi kérés ütött szembe:

[..]
193.226.98.239 - - [05/Nov/2013:16:22:03 +0100] "POST //%63%67%69%2D%62%69%6E/%70%68%70?%2D%64+%61%6C%6C%6F%77%5F%75%72%6C%5F%69%6E%63%6C%75%64%65%3D%6F%6E+%2D%64+%73%61%66%65%5F%6D%6F%64%65%3D%6F%66%66+%2D%64+%73%75%68%6F%73%69%6E%2E%73%69%6D%75%6C%61%74%69%6F%6E%3D%6F%6E+%2D%64+%64%69%73%61%62%6C%65%5F%66%75%6E%63%74%69%6F%6E%73%3D%22%22+%2D%64+%6F%70%65%6E%5F%62%61%73%65%64%69%72%3D%6E%6F%6E%65+%2D%64+%61%75%74%6F%5F%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A%2F%2F%69%6E%70%75%74+%2D%64+%63%67%69%2E%66%6F%72%63%65%5F%72%65%64%69%72%65%63%74%3D%30+%2D%64+%63%67%69%2E%72%65%64%69%72%65%63%74%5F%73%74%61%74%75%73%5F%65%6E%76%3D%30+%2D%64+%61%75%74%6F%5F%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A%2F%2F%69%6E%70%75%74+%2D%6E HTTP/1.1" 404 297 "-" "-"
[..]

Namármost. Nézegettem valamikor az URL en-, dekódolást, de ez már nekem is kifejezetten sok volt, úgyhogy segítséget ragadtam (URL Decoder/Encoder), aminek ez lett az eredménye:


//cgi-bin/php?-d allow_url_include=on -d safe_mode=off -d suhosin.simulation=on -d disable_functions="" -d open_basedir=none -d auto_prepend_file=php://input -d cgi.force_redirect=0 -d cgi.redirect_status_env=0 -d auto_prepend_file=php://input -n

Hmm. Kicsit bosszús lettem. A magam képességeihez mérten mindent megteszek az általam üzemeltetett szerverek biztonságáért, ezért - többek mellett - a sokak által is kedvelt fail2bant használom a kéretlen látogatók ellen.

Most jön a lényeg:
Hogyan tudnám a fent idézett enkódolt URLt megemészteni a fail2ban részére? Merre induljak el? Mert mire ezt a

failregex

szel megemésztetem, én magam is megzöldülök.

Segítségeteket előre is köszönöm.

Szerk.

A keresett kifejezés végül ez lett:

failregex = ^< HOST> -.*"POST //%%63%%67%%69%%2D%%62%%69%%6E/%%70%%68%%70?.*"

Valamint találtam egy másik (kiegészítő) megoldást is, ami hasznos lehet:

failregex = \[client < HOST>\] (File does not exist|script not found or unable to stat): [^ ]*/([^ ]*\.asp|[^ ]*\.dll|[^ ]*\.exe|admin|Admin|Ads|ads|apps|archive|awstats|b0ard|bin|blog|board|cgi|clan|cms|community|cube|database|datenbank|directforum|drupal|f0rum|file:|forum|horde|Horde|html|mail|myadmin|mysql|padmin|page|php|pma|PMA|rc|README|rms|round|scgi|script|seite|sql|stat|ucp.php|wbb|WBB|web|wm|wp-login.php|xmlrpc|xmlsrv)

(A motor sajnos kivágja a HOST kifejezést, ezért értelemszerűen nincs szóköz a

^<

és a

HOST

között!)

Hozzászólások

A teljes kódolt regexpre átírás nem lenne annyira bonyolult, mint amilyennek látszik ill. amilyen hosszú, de ha rövidet és átláthatót szeretnél, nem lenne egyszerűbb azt megnézni, hogy pontosan honnan kezdve dől el, amikortól nem szeretnél ilyen látogatókat?

Példa:
minta: "//cgi-bin/php?"

failregex = ^<HOST> -.*"POST.*//%63%67%69%2D%62%69%6E/%70%68%70\?

Fura nalam is 2013.11.05 ugyan ezzel megproblakoztak de nalam ez az ip van: 66.197.237.101
fail2ban megoldast lehet en is megnezem.

Különböző címekről jönnek. A fenti IP csak egy volt a sok közül. Viszont a fail2bant igencsak szigorúra állítottam ezzel a kéréssel kapcsolatban. Tettem ezt azért, mert ha az ember egy scripten keresztül is hivatkozik valamire, akkor igen kevés százalékban használ encode-olt urlt az elérési útban... Úgyhogy ha érzékel egy ilyet, akkor már rá is cuppan, s nagyon sokáig nem engedi. :) Esetleg még lehetne finomítani, hogy ugorjon még a különböző hívószavakra (allow_url_include=on, safe_mode=off, stb.), de most egyelőre így tesztelgetem.

---
Lehet, hogy kívül szőke vagyok, de belül sötét, oké?!

Erre van lehetőség, hogy iptables-el dropoljam a csomagokat amik tartalmazzák ezt a stringet?

A fail2ban azért nem tetszik, mert az 1 próbálkozás után adja a tűzfalhoz a szabályt, viszont nálunk mér sok ilyen próbálkozás van és idegel... Kézzel bannolgatni őket meg szélmalomharc.

Jelenleg 80 cimnél tartok és ezek a mocskok csak egyszer próbálkoznak 1 címről.
-------------------------
neut @ présház