Vous venez de pénétrer sur un serveur en devinant le login/password d'un utilisateur. Que faites vous maintenant ? Les administrateurs et les utilisateurs font souvent de petites entorses à la sécurité pour gagner du temps. Droits en execution ou lecture de fichiers ouverts à tous. Fichier temporaires qui trainent... Nos outils de base pour partir à la chasse aux Flags cachés sur le système sont:
- ls -al pour trouver les fichiers en .xxx
- /etc/passwd pour connaitre les répertoires des utilisateurs et compte machines
- /home, /tmp, /var/tmp, pour les fichiers temporaires
- find pour lister les fichiers en lectures et les sticky bits
- les sticky bits sur less, nmap, ...
- ps pour identifier les process qui tournent et exploiter des races conditions
- strings pour extraire les chaines de caractère d'un binaire
- grep pour extraire les 'flags_' de fichiers textes Demain, laisserez vous trainer un zip dans /tmp ?
Démarrez votre serveur dédié en cliquant sur [Start server].
Server status : stopped
Parfois les fichiers sont cachés en plein jour.
$ ssh yoda@ctf-shell_
Connecte toi au serveur en ctf-shell_, avec le user 'yoda' et le mot de passe 'naboo'.
ls -al
Liste les fichiers cachés, et affiche des infos sur le propriétaire et les groupes.
$ ssh obiwan@ctf-shell_
Connecte toi au serveur en ctf-shell_, avec le user 'obiwan' et le mot de passe 'hoth'. Comment ça ton frigo est vide ? Et comment est celui de la voisine ? Jete un oeil chez /home/padme... Les répertoires des utilisateurs sont le plus souvent dans le répertoire /home. Celui de l'administrateur en /root. Ce sont les répertoires à examiner en priorité... Ils sont parfois autorisés en lecture. Commandes : ls, cat
Connecte toi au serveur en ctf-shell_, avec le user 'jarjar' et le mot de passe 'shili'. Certains comptes système comme les serveur web ou de base de donnée n'ont pas de répertoire du tout, ou un répertoire situé dans les données de leur application. On les trouve en avant-dernière colonne du fichier /etc/passwd qui est toujours en lecture par tous. Utilise cat sur /etc/passwd pour en voir le contenu, et identifie la ligne de mace. Ou se trouve le home du compte mace ? Commandes : cat, ls
Connecte toi en ssh à ctf-shell_ avec le user dooku et le password dagobah.
find / -name flag*.txt 2>/dev/null
Utilise la commande find pour rechercher tous les fichiers qui ont un nom du type flagXX.txt Le 2>/dev/null à la fin de la commande permet de ne pas afficher les messages d'erreurs quand la commande tente d'accéder à des répertoires protégés en lecture. Si tu avais utilisé cette commande des le premier flag, tu aurais gagné du temps... Les utilisateurs et administrateurs laissent souvent des fichiers interessant dans les répertoires temporaires comme /tmp et /var/tmp. Commandes : find, cat
Connecte toi au serveur en ctf-shell_, avec le user 'quigong' et le mot de passe 'bespin'.
./welcome_07
Lancer un fichier exécutable dans le répertoire courant avec ./xxxxx.
strings welcome_07
Dumper les chaînes de caractères contenues dans le binaire. On y trouve généralement les noms de fichiers de config, et parfois des comptes ou des mots de passe en clair. Commandes : ls, ./ , strings
Connecte toi au serveur en ctf-shell_, avec le user 'grievous' et le mot de passe 'yavin'. Utilise les informations qui ont leaké pour te faire passer pour leia avec la commande: su - lea Commandes : ls, cat, su
Connecte toi au serveur en ctf-shell_, avec le user 'han' et le mot de passe 'ando'. Outch, ce fichier est vraiment gros... Ca va prendre des heures de le lire...
grep flag liste10.txt
Filtrons le pour n'afficher que les lignes avec le mot 'flag'. J'ai plein de temps pour improver mon skillz à Candy Crush(tm) maintenant... C'est qui le plus malin ?
Connecte toi au serveur en ctf-shell_, avec le user 'c3po' et le mot de passe 'corellia'. Les fichiers zip sont des souvent utilisés pour faire des sauvegardes. On y trouve parfois des fichiers de config avec des infos três intéressantes.
head flag11.zip
Affiche les premières lignes du fichier zip avec head. L'entête commence par PK, c'est bien un zip, on peut lire le nom des fichiers qu'il contient et le flag parait être en clair. Intéressant... L'algo ne compresse pas les tout petits fichiers...
unzip flag11.zip
Il est utile de connaitre les différents outils de compression : zip, unzip, 7zip, rar,... et savoir reconnaitre leurs entêtes caractéristiques.
Connecte toi au serveur en ctf-shell_, avec le user 'finn' et le mot de passe 'yavin'. La commande tar est utilisée pour faire tenir toute une arborescence de fichiers en un seul fichier xxx.tar, qui est généralement compressé avec l'algorithme gzip. On se retrouve avec un fichier xxx.tar.gz, ou xxx.tgz. Décompresse le avec la commande tar (options) (fichier) Si tu as vraiment la flemme de chercher les options de la commande, tu peux regarder le contenu du fichier avec vi. L'éditeur est carrément old school, mais il est utile de le connaître car il est présent presque partout. Pour en sortir : [Esc] :q! vim est plus sympathique, mais pas toujours installé. Enjoy !