[S] Script das Shell´s wie c99 finden kann

zBob

New Member
Hi,

ich brauche ein Script das einen bestimmten Ordner nach Dateien durchsuchen kann, die eine bestimmte Dateigröße haben. Ich möchte nämlich über einen Cronjob nach PHP-Shell Scripten suchen, denke mal an Hand der Größe sollte man solche Scripte gut finden können. Ich habe leider von Bash-Scripting so gut wie keine Ahnung. Ich hoffe es gibt sowas bereits.


MfG
 
updatedb/locate nutzt auch nur find. ;)
Dank der DB geht das suchen nach Dateien zwar wesentlich schneller als wenn mit find durchs Dateisystem kriecht, allerdings treibt updatedb regelmäßig die Last hoch.
Wenn man nur selten etwas sucht, kann man sich das wohl ersparen und die Last nur einmal erzeugen wenn man wirklich sucht, statt täglich die DB sinnloser Weise zu aktualisieren.

Nichts desto trotz nützt es zBob recht wenig, da er nach Dateigrößen suchen möchte. :)
 
Ok, hab mir schon gedacht, dass find da brauchbar sein könnte. :D

Code:
find  /pfad/der/durchsucht/wird -size 229048c -exec mv  '{}' /opt/tmp/shells ';'

Mit dem Befehl klappt es nicht. Kann mir jemand sagen was da falsch dran ist?
 
Gehts etwas genauer? Was klappt daran nicht?
Lass zum Testen den exec erstmal weg oder ersetzte das mv gegen echo.

huschi.
 
Was klappt daran nicht?

Weiß nicht, wurde kein Fehler o.ä angezeigt. Hab aber jemanden gefunden der mir das Script schreibt. Wenn er es dieses Jahrhundert noch schafft poste ich es hier.
 
Hi,

ich brauche ein Script das einen bestimmten Ordner nach Dateien durchsuchen kann, die eine bestimmte Dateigröße haben. Ich möchte nämlich über einen Cronjob nach PHP-Shell Scripten suchen, denke mal an Hand der Größe sollte man solche Scripte gut finden können. Ich habe leider von Bash-Scripting so gut wie keine Ahnung. Ich hoffe es gibt sowas bereits.

Ich nehme mal an, daß du Kunden-Webspace nach solchen Löchern durchsuchen willst (ansonsten würde ich dir empfehlen, deinen Webserver so zu konfigurieren, daß niemand eine PHP-Datei hochladen und dann ausführen kann).

Das ganze ist etwas schwierig, weil die Grösse der Datei kein ausreichendes Argument für eine PHP-Shell ist. Ein Weg wäre, alle bekannten PHP-Shells in eine Art Blacklist aufzunehmen und diese dann als Suchmuster zu verwenden. Man kommt ein bisschen weit, aber nicht arg.

Interessanter wäre dagegen, nach typischen Merkmalen solcher Shells Ausschau zu halten, also beispielsweise nach dem PHP-Befehl "system" oder "open"; damit dürfte man natürlich auch jede Menge anderes Zeugs finden, was keine Shell ist, aber trotzdem potentiell gefährlich ist. Mit "system()" kann man sich jede Menge Schwierigkeiten einheimsen, wenn das auszuführende Kommando nicht peinlichst genau abgecheckt wurde.

Ist also alles nicht ganz so einfach.
 
Das ganze ist etwas schwierig, weil die Grösse der Datei kein ausreichendes Argument für eine PHP-Shell ist. Ein Weg wäre, alle bekannten PHP-Shells in eine Art Blacklist aufzunehmen und diese dann als Suchmuster zu verwenden. Man kommt ein bisschen weit, aber nicht arg.

Ja das stimmt. Deswegen wollte ich das erstmal nur verschieben und dann selber reingucken. Das ist mir aber ein bisschen zu primitiv. Am besten wäre es wohl, wenn dann Script erst nach der Größe und bei einem Treffer dann nach einer bestimmten eindeutigen Zeile sucht...
 
Wenn dein Server und PHP richtig konfiguriert sind, können dir die Shells egal sein ;)

Und wenn jemand eine Lücke in einem vorhandenen Script findet um selbst dateien hochzuladen, wird er keine Shell hochladen sondern ein Script welches eine Shell aufruft/einbindet oder ähnliches. Da gibt es soviel bessere und klügere varianten ;)

Desweiteren gibt es durchaus legitime Scripte die größer sind als solche PHP-Shells.

Und es gibt durchaus "böse" Scripte die kleiner sind als solche Shells.

Und eine kleine eigene Anpassung der Shell und du findest sie schon nicht mehr wenn du sie Blacklistest. Das ist der Grund warum Blacklisting nicht funktioniert.
 
Last edited by a moderator:
Back
Top