Encoded JS Injection
lima-city → Forum → Die eigene Homepage → Sicherheit im Internet
art
attacke
aufruf
auszug
byte
code
entsprechen
gefahr
http
kurzem code
regel
sequenz
stern
string
tapp
url
verbindung
verstehen
wissen
zeichenkette
-
In regelmäßigen Abständen werden auf meinem Server dubiose URL's aufgerufen. Wenn ich es richtig interpretiere, sind das eine Art "JS Injection". Oder gibt's dafür einen extra Begriff? ( Habe das von SQL Injection abgeleitet.)
Sieht dann z.B. so aus:
1xx.xxx.xxx.xxx - - [04/Apr/2017:12:41:44 +0200] "\x5Cb3\x0F\xA3\x9D\xCC\xF0\xC4f\x1E\xB8\xE4\x9F\xD4\xA7\xFC\xF7\xF2\xA6[\x0Bzd\x1Fa\x97Y\x22\x1B\xF4\x05O\xE03\x826\x9F\xAE0QU\xA7\xE1\x15P_\xF2\x1AbU{-\x1D\xE8-\xC3\x94\xEFn\xC2\xF4\x16\xFA" 400 166 "-" "-"
Wenn man das durch den Obfuscator jagt, kommt dann schließlich
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('\\4\\k\\f\\e\\d\\g\\h\\j\\c\\b\\0\\5\\1\\6\\7\\2\\a[\\9\\8\\i\\B\\w\\3\\l\\x\\y\\0\\A\\1\\z\\u\\2\\t{-\\o\\n-\\m\\p\\q\\s\\3\\r\\v',38,38,'x9F|xA7|xF2|xF4|x5Cb3|xD4|xFC|xF7|x1Fa|x0Bzd|xA6|xE4|xB8|xCC|x9D|xA3|xF0|xC4f|x97Y|x1E|x0F|x05O|xC3|xE8|x1D|x94|xEFn|x16|xC2|x1AbU|x15P_|xFA|x1B|xE03|x826|xE1|xAE0QU|x22'.split('|'),0,{}))
Was versucht man damit ( nicht nur mit diesem Stück Code, sondern allgemein dieser Art "Attacke" ) zu bezwecken? SQL Injection verstehe ich noch. Hier steige ich leider aus. Das einzige halt was direkt ins Auge springt, sind die reguläre Ausdrücke.
Fail2Ban filtert ( bzw. blockt ) diese Attacken zwar fein raus. Aber ich möchte verstehen, was der Angreifer damit bezweckt und wo ich dadurch evtl. an der Sicherheit schrauben sollte. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Obfuscator? Ich dachte immer, der würde dazu dienen, dass man den Code dann nicht mehr "lesen" kann.
Aber egal. Was hinter dem Code steckt weiß ich auch nicht, aber da ich einen ähnlichen habe, würde ich gern wissen, wo du den "dechiffriert" hast.
Grundsätzlich teile ich deine Neugier. -
Naja, der ist schon "obfuscated". Denn leserlich ist er nicht. Allerdings ist er noch leicht verschlüsselt. (Base64?)
Es gibt einige Seiten, die das online übersetzten können, z.B. diese hier: http://www.danstools.com/javascript-obfuscate/index.php
Ich würde gerne wissen was man damit erreichen möchte. -
Ja, das ist wirklich sehr verwunderlich.
Ich schaue zunächst einmal auf den Auszug aus dem access_log. Offensichtlich hat ein Client mit dem Webserver verbunden aber keinen gültigen Request abgesendet sondern nur eine fragwürdige Zeichenkette verschickt. Der Webserver hat das zurecht mit 400 Bad Request beantwortet.
Diese fragwürdige Zeichenkette enthält viele Sequenzen in der Form "\x**" wobei die beiden Sterne jeweils einer Hexziffer entsprechen. Das erinnert mich sofort an PHP, denn dort kann man Sonderzeichen auf diese Weise kodieren. Dekodiere ich das ganze, erhalte ich 64 Byte für mich zufällig scheinende binäre Daten, aus denen ich nichts weiter schließen kann.
Ich vermute einen unabsichtlichen Fehler irgendeines Programmes da draußen im Netz, aus dem keine Gefahr hervorgeht. Mir ist nicht klar, wie du das ganze mit Javascript und einem Javascript Obfuscator in Verbindung bringst oder woraus du schließt, dass Fail2Ban die Verbindung blockiert hätte.
Für weitere Analyse würde ich mehrere dieser Requests sammeln. (kozak und mein-wunschname, ihr könnt das gern gemeinsam tun) Vielleicht lässt sich dann ein Schema erkennen. Außerdem könnte man versuchen, die IP-Adresse zurück zu verfolgen, z.B. über einen Reverse Lookup oder durch geografisches Eingrenzen. -
Ich habe i-wann eine Filter-Regel für Fail2Ban im WWW aufgeschnappt, die auf JS reagieren soll.
[Definition] failregex = ^<HOST> -.*GET.*(\.php|\.asp|\.exe|\.pl|\.cgi|\.scgi) ignoreregex =
Die kommt bei mir zum Einsatz und bei diesen Art von URL Aurufen schlägt die zu. ( IP's verschleiere ich erstmals, kP ob ich die veröffentlichen darf. )
[ Auszug ]
169.xxx.xxx.xxx - - [03/Apr/2017:15:37:34 +0200] "\x90\xB5V%\xC9r\xE2\xF48U\xB7\xDBoJ\xA9\xDA}\xE7\x89\x1E\xF0\xECc\x9C\x8F\xF4_\x0F@" 400 166 "-" "-" 47.xxx.xxx.xxx - - [31/Mar/2017:03:33:30 +0200] "\x04\x01\x00P\xC0c\xF660\x00" 400 166 "-" "-" 47.xxx.xxx.xxx - - [31/Mar/2017:03:33:31 +0200] "\x05\x01\x00" 400 166 "-" "-" 180.xxx.xxx.xxx - - [30/Mar/2017:05:30:21 +0200] "\x04\x01\x00P\xB4\xA3qR\x00" 400 166 "-" "-"
Da diese Regel in Verbindung mit JS gebracht war, hatte ich in diese Richtung gegraben und i-wann auf die o.g. Seite gestoßen, die daraus JS ( sieht für mich zumindest so aus ) rekonstruieren kann.
Ich will hier nichts festlegen und tappe in der Dunkelheit. Will bloß verstehen was diese Aufrufe zu bedeuten haben. Vlt. missverstehe ich auch was. Ist nicht ausgeschlossen.
Für einen oder mehrere "verirrte" Clients sieht es für mich nicht aus. Dafür kommen die zu häufig vor und von unterschiedlichen IP-Ranges. -
Also ich hatte vor kurzem:
\xdf\x8d\x85\x1f\xdc\x16)\x0c\xb2\x89\x15\t rz\xe0\xf91.\xb2\tK\xd0m\x8e|\xded\"R\x9f`\x1b\v?\xbe-\xf9)\xe6\xbeE#\xea\x88'\xc4\xe9\x9b\xbd_\xfe\rZ\xdb\xc0g\x9dG\x96\xe8\xc3
Die Abfrage kam von
http://169.229.3.91/
Dazu findet man auch:
https://security.stackexchange.com/questions/115168/weird-log-record-from-researchscan1-eecs-berkeley-edu-169-229-3-91-is-this-a
-
Der verlinkte Artikel von mein-wunschname auf Stackexchange scheint schlüssig, demnach bedeuten diese Requests auch keine Bedrohung.
Ich muss mich noch einmal korrigieren, die maskierten Sonderzeichen sind nicht vom Client maskiert sondern vom Webserver, um sie in das access_log zu schreiben. Und die Länge von 64 byte ist wohl auch nicht konsistent, wenn man die von kozak veröffentlichten Zugriffe betrachtet.
Ich würde das ganze also einfach ignorieren, eine Gefahr besteht wie gesagt nicht. -
Yope, hast recht. Bring Licht ins Dunkel. Dann wäre die Sache geklärt.
Ich müsste meine Paranoia ein wenig zurück drehen. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage