Als Fan des einen Liners ...
find /usr/bin -executable -type f -print0 | xargs file | grep ASCII
Verwenden Sie 'xargs', um die Ausgabe des Suchbefehls zu übernehmen (verwenden Sie print0, um sicherzustellen, dass Dateinamen mit Leerzeichen korrekt verarbeitet werden). Wir haben jetzt eine Liste von Dateien, die ausführbar sind, und wir geben sie einzeln als Parameter für den Befehl 'file' an. Dann grep für den Begriff ASCII, um Binärdateien zu ignorieren. Ersetzen Sie -executable im find-Befehl durch den von Ihnen bevorzugten Stil (siehe vorherige Antworten) oder was auf Ihrem 'NIX-Betriebssystem funktioniert
Ich habe das Obige benötigt, um Dateien mit eval in Skripts zu finden, deren Eigentümer root ist. Daher wurde Folgendes erstellt, um Schwachstellen in Bezug auf die Eskalation von Privilegien zu finden, bei denen der Root-Benutzer Skripts mit unsicheren Parametern ausführt ...
echo -n "+ Identifying script files owned by root that execute and have an eval in them..." find / -not \( -path /proc -prune \) -type f -executable -user root -exec grep -l eval {} \; -exec file {} \; | grep ASCII| cut -d ':' -f1 > $outputDir"/root_owned_scripts_with_eval.out" 2>/dev/null &