Fast Searching

Je ne pense pas que le terme existe, en tout cas pas avec une utilisation commune. Ce que j'appelle Fast Searching est tout ce qui est en rapport avec la recherche rapide d'informations importantes dans une quantité importantes de données.

Grep

Grep est un outil présent sur presque toutes les distributions Linux par défaut. Il est probablement le meilleur outil pour répondre à un tel besoin et n'est pas à sous-estimer. Voici quelques expressions régulières fort utiles pour du Fast Searching, mais aussi du filtre de données :

# Wordlist pour clés secrètes, credentials, etc...
grep -oFf wordlist.txt fichier.txt
# Adresses IPv4
grep -oE "\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b"
# Adresses IPv6
grep -oE "\b[0-9a-fA-F]{1,4}(:[0-9a-fA-F]{1,4}){7}\b"
# URL
grep -oE "(([a-zA-Z][a-zA-Z0-9+-.]*\:\/\/)|mailto|data\:)([a-zA-Z0-9\.\&\/\?\:@\+-\_=#%;,])*"
# Formats populaires de chaînes base64 
grep -oE "([^A-Za-z0-9+/]|^)(eyJ|YTo|Tzo|PD[89]|aHR0cHM6L|aHR0cDo|rO0|data:image/png;base64,|data:image/jpeg;base64,|data:application/pdf;base64,|data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64,|data:application/json;base64,|data:image/svg+xml;base64,|data:audio/mpeg;base64,|data:video/mp4;base64,)[%a-zA-Z0-9+/]+={0,2}"
# Adresses mail
grep -oE "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b"
# Erreurs PHP
grep -oE "php warning|php error|fatal error|uncaught exception|include_path|undefined index|undefined variable|\\\?php|<\\\?[^x]|stack trace:|expects parameter [0-9]*|Debug Trace"
# Affichage de debugs
grep -oE "(Application-Trace|Routing Error|DEBUG\"? ?[=:] ?True|Caused by:|stack trace:|Microsoft .NET Framework|Traceback|[0-9]:in \`|#!/us|WebApplicationException|java\\.lang\\.|phpinfo|swaggerUi|on line [0-9]|SQLSTATE)"

# Pour du CamelCase de plus de 12 caractères (généralement pour les flags de CTF)
grep -oE "[A-Z]([A-Z0-9]*[a-z][a-z0-9]*[A-Z]|[a-z0-9]*[A-Z][A-Z0-9]*[a-z])[A-Za-z0-9]*" | sed -n '/.\{12\}/p' | sort -u
# Tous les autres formats de flags populaires et qui font plus de 12 caractères
grep -ioE "(flag|thm|ctf|htb|picoctf){[^}]*}" | sed -n '/.\{12\}/p' | sort -u
# Pour toutes les informations sensibles sur une machine
grep -irH "admin|key|authorization|bearer|passwd|email|id_rsa|oauth_token|pass|password|secret|token|username|private"
# Pour lister tous les fichiers dont le nom contient flag, secret, key, password, token, admin, root
find / -type f \( -name "*flag*" -o -name "*secret*" -o -name "*key*" -o -name "*password*" -o -name "*token*" -o -name "*admin*" -o -name "*root*" \) -exec ls {} \;

Applications web

Pour rechercher de manière rapide et efficace, il y a plusieurs choses qui peuvent être faites :

  • Automatiser le listing des différents points d'entrées. (Cookies, Champs de formulaires, Paramètres d'URL)

  • Télécharger tout le contenu accessible de l'application web afin de par exemple utiliser grep et trouver du contenu important.

Vous pourrez ensuite utiliser cette collecte d'informations pour aller vérifier manuellement si certaines sont dignes d'intérêt. Cela peut accélérer grandement le processus de recherche mais ne dispense pas d'une vérification manuelle.

Dernière mise à jour

Cet article vous a-t-il été utile ?