Participant

anonymous

YOLO CTF

 Mon premier CTF 

Ghost in the Shell


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


Crouching Tiger, Hidden Dragon
5

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.

Home Sweet Home
5
 $ 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

Résidence secondaire
5

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

C'est juste temporaire
5

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

My sweet Business Executive
7

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

Agent Double
7

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

Attrape moi si tu peux
7

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 ?

Y en a un peu plus, j'vous le mets quand même ?
10

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.

Du goudron et des plumes
10

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 !