Identify, Find, Listen
Cybernight 2022 - Identify, Find, Listen
Category
Hardware
Part 1 - Identify
Description
Un agent ennemi s’est infiltré à la Cybernight ! Nous l’avons vu passer sur une caméra avec un sac rempli de matériel puis sortir du campus.
Nous pensons qu’il essaye de nous espionner sur le réseau wifi mais nous ne savons pas comment. Une idée de ce qu’il a pu faire ?
Challenge à effectuer en physique uniquement aux 4 étages du bâtiment A. N’hésitez pas à fouiller sur d’autres étages. Pas besoin d’aller demander la caméra au gardien.
Difficulty
EASY
- Author: Maestran
Write up
Etant à l’étage challenger, juste à côté de la salle admin, je me dis que je devrais pas trop avoir à bouger de ma chaise s’ils veulent avoir un oeil sur leur chall “sur place”
Ca parle de WiFi, donc premier reflexe, regarder les réseaux Wifi :
Suspect, n’est-ce pas ? Ce n’est évidemment pas le flag comme ça, et si c’était encodé ? Genre en base64
Je capte donc
CYBN{ca_capte?}
Part 2 - Find Me
Description
Ok, ce point wifi n’est clairement pas légitime. Il faudrait le trouver sur le campus.
A vous de trouver une méthode pour le localiser !
Challenge à effectuer en physique uniquement
Difficulty
EASY
- Author: Maestran
Write up
En activant les paramètres développeurs pour android, on peut voir sous chaque réseau Wifi deux choses :
- l’adresse MAC de l’AP
- la puissance en dB (donc négative)
Grâce à l’un, on peut trouver la marque du fabricant (data missing) : Raspberry PI
Grâce à la deuxième, potentiellement calculer une distance.
On se dit que flemme, c’est en salle admin, on trouve une Raspberry, “vire la, elle porte à confusion” qu’ils disent, donc c’est pas la bonne
Et là, qu’est-ce qu’on voit au fond de la salle, caché derrière un sac ! (très smart)
CYBN{WTF_Rogue_AP?!}
Part 3 - Yo Listen
Description
Bon super, on a trouvé son matos. Laissons le tourner pour l’instant. Il serait intéressant de voir ce que ce truc diffuse en boucle sur les postes qui se connectent.
Le code du wifi est “toto1234@”.
Challenge à effectuer en physique uniquement
Difficulty
EASY
- Author: Maestran
Files
Write up
Bon on a domc une Rasp, et le mot de passe de sa WiFi
On s’y connecte.
Apparemment elle “diffuse” en boucle, bah go ouvrir Wireshark :
Mouais beaucoup de merde. On va virer les requetes DNS venant de mon ordi, et ne garder que ce que la rasp envoi (avec l’ip source 192.168.3.1):
C’est déjà mieux. 3 Choses intéressantes à noter :
- Quand on à un peu l’habitude, doit pas y avoir autant d’UDP sans raison.
- L’ip de destination de ces paquets UDP est un broadcast, donc envoie à tout le monde, ca “diffuse”, donc très certainement ce qu’on cherche
- ya un petit message dans chacun de ces paquets (rien que du troll) :
Ne gardons plus que ces paquets alors :
Ca c’est clean.
Bon maintenant ya des paquets de protocoles bizares, mais malformés : BOOTP et XTACACS
Des trucs qui n’ont rien à faire là quoi
Passons, mais regardons ce qui diffère d’un paquet à l’autre… Le port source c’est normal, mais par contre le port de destination à l’air bien choisi Et si c’était de l’ASCII ??
Letter | ASCII code |
---|---|
C | 67 |
Y | 89 |
B | 66 |
N | 78 |
TIENS TIENS TIENS
BOOTP utilise le port 67, d’où le fait qu’il soit considéré comme malformé : ce n’est PAS une requête BOOTP
Et bien allons-y pour extraire en plain text (txt) la capture, et essayons d’extraire ça à l’aide de python:
Exemple :
Solving :
with open('ports.txt') as f:
lines = [l.strip() for l in f.readlines()]
flag = ""
for line in lines:
if 'Destination Port:' in line:
port = line.split('Destination Port:')[1].split()[0].strip()
c = chr(int(port))
flag += c
print(flag)
Ce qui donne : {s_13_t0_l1st3n}CYBN{t's_n1c3t0_s3n}CYN{t's_n1c3_t0_l1s3nCYB{1t's_n1c3_t0_l1st3n}CBN{1t's_c3_t0_lst3n}CYBN{1t'_n1c3_t0_l1st3n}
Puisque l’UDP à pour habitude de perde ses paquets dans la nature, on l’affiche plusieurs fois, et on essaie de le reconstituer, et bingo
CYBN{1t's_n1c3_t0_l1s3n}