
YARA-basierter Scanner, der obfuskierten PHP-Malware und Webshells mittels semantischem Pattern-Matching statt Datei-Hashes erkennt, mit einem Whitelist-System und multithreaded Crawling.
_______ __ __ _______
| ___ || |_| || |
| | | || || ___|
| |___| || || |___ Webshell finder,
| ___|| || ___| kiddies hunter,
| | | ||_|| || | website cleaner.
|___| |_| |_||___|
Erkenne potenziell bösartige PHP-Dateien.
PHP-malware-finder gibt sein Bestes, um verschleierten/zwielichtigen Code sowie Dateien zu erkennen, die PHP-Funktionen verwenden, die oft in Malware/Webshells vorkommen.
Die folgende Liste von Encodern/Obfuskatoren/Webshells wird ebenfalls erkannt:
Natürlich ist es trivial, PMF zu umgehen, aber sein Ziel ist es, Kiddies und Idioten zu erwischen, nicht Leute mit einem funktionierenden Gehirn. Wenn du einen idiotisch maßgeschneiderten Workaround für PMF meldest, gehörst du wahrscheinlich zu einer (oder beiden) Kategorien und solltest die vorherige Aussage noch einmal lesen.
Die Erkennung erfolgt durch Crawlen des Dateisystems und Testen von Dateien gegen einen Satz von YARA-Regeln. Ja, so einfach ist das!
Anstatt einen hash-basierten Ansatz zu verwenden,
versucht PMF nach Möglichkeit semantische Muster zu nutzen, um Dinge wie
"eine $_GET-Variable wird zweimal decodiert, entpackt,
und dann an eine gefährliche Funktion wie system übergeben" zu erkennen.
sudo apt-get install yarayum install yara (erfordert das EPEL-Repository)Du kannst es auch aus den Quellen kompilieren:
git clone [email protected]:VirusTotal/yara.git
cd yara/
YACC=bison ./configure
make
git clone https://github.com/jvoisin/php-malware-finder.git$ ./phpmalwarefinder -h
Usage phpmalwarefinder [-cfhtvl] <file|folder> ...
-c Optional path to a rule file
-f Fast mode
-h Show this help message
-t Specify the number of threads to use (8 by default)
-v Verbose mode
Oder wenn du lieber yara verwendest:
$ yara -r ./php.yar /var/www
Bitte beachte, dass du mindestens YARA 3.4 verwenden solltest, da wir Hashe für das Whitelist-System und gierige Regexps verwenden. Beachte auch, dass wenn du vorhast, Yara aus den Quellen zu bauen, libssl-dev auf deinem System installiert sein muss, um Unterstützung für Hashe zu haben.
Oh, und übrigens, du kannst die umfassende Testsuite mit make tests ausführen.
Überprüfe die Datei whitelist.yar. Wenn du faul bist, kannst du mit dem Skript generate_whitelist.py Whitelists für ganze Ordner generieren.
Weil:
PHP-malware-finder ist lizenziert unter der GNU Lesser General Public License v3.
Das erstaunliche YARA-Projekt ist unter der Apache v2.0-Lizenz lizenziert.
Patches, Whitelists oder Beispiele sind natürlich mehr als willkommen.