Bonjour a tous,
Il y a un an je me connectais sur ce site, voulant découvrir le monde de la sécu informatique.
j'avais une petite expérience en dev de l'époque de mes études (**No slang**, 10 ans c'est loin

), j'avais suivi de loin les problématiques de sécu, mais rien de concret depuis 10 ans.
je ne savais pas ce qu'était un Buffer overflow, une injection sql, de la stéganographie. Merde, je ne savais même pas que Python était un language informatique

j'ai été assez emballé par le fait de trouver de tout sur le site, de la prog, de la logique, autant que des épreuves pur sécu.
Du coup même avec mon niveau de gros naze, je pouvais m'attaquer à certaines épreuves, et après 2/3 validations, j'étais accro

L'objectif de ce post est de vous faire partager le parcours que j'ai suivi depuis un level quasi 0, jusqu'à aujourd'hui.
A l'époque je ne savais pas vraiment par ou commencer, j'espère que ces quelques lignes permettront d'aider les futurs débutants et de leur faire gagner du temps.
Il n'y a rien d'absolu dans ce parcours, il est plus lié à ma vision, ma logique, et les bases que j'avais en démarrant. libre à chacun de l'adapter.
--------------------------------------------------------------
Tips 1:Avant de devenir un grand H4cK3r, il va falloir bosser.
si vous pensez pouvoir faire quoi que ce soit de valable sans savoir bien coder, vous n'avancerez pas. je ne parle pas de coder propre (tous ceux qui me connaissent savent à quel point je code comme un porc

), mais je parle d'être capable de tout faire en codant, il faut devenir un ninja de la prog, un baroudeur de la ligne de code.
Pour ça il n'y a pas de secret, il faut en bouffer.
tout ce que vous pouvez faire en codant, coder le !
je suis sérieux, vous récupérez un texte qui se trouve sur 5 lignes au lieu d'une. ne supprimez pas les passages à la ligne à la main ! codez le !!
obligez vous à trouver des solutions à tous vos problèmes, vous verrez ils reviendront forcement, alors autant s'être posé les bonnes questions la première fois.
Mon conseil:Python is your friend !
puta!n mais que ce language est un bonheur ! pour ceux qui ont bouffé du C dans leur jeunesse, je sais que vous me comprenez.
strcat() ? mais pourquoi faire ? str = str1 + str2 ! WHAT ?!!

substr(str,1,strlen(str)) ? pourquoi faire ? str = str[1:]

vous voulez faire n'importe quoi => Google "python 'un truc pour faire ça'" => premier hit sur stackoverflow, regardez même pas la question, l'explication avec la bonne méthode est forcement juste en dessous.
Pour bien démarrer en prog : TOUJOURS TOUT CODER !!! (quoi, je l'ai déjà dis ?

)
une des premières lib a regarder en profondeur : RE (
https://docs.python.org/2/library/re.html)
pour un ninja du coding, les regex c'est la vie. faites des regex pour tout tant que vous ne les maîtrisez pas sur le bout des doigts.
pour vérifier ce que vous faites, un très bon site de test :
https://regex101.com/petite cheatsheet :
https://www.debuggex.com/cheatsheet/regex/pythonquelques lib a regarder rapidement:
urllib,cookielib : pour vous connecter au site et faire les échanges de données.
socket : pour des connexion basiques en tcp/udp (pour les challenges irc par exemple)
PIL : quand vous commencerez à jouer avec des images, PIL is the only way !!
Tesseract : pour la reconnaissance de caractère, exceptionnel ! mais il y a du boulot pour lui donner des images 'propres' et pour ça il faut etre un ninja en PIL

libs pour les cryptos:
binascii : pour passer d'hexa a ascii et inversement (regarder aussi les fonction ord, chr, str, int <- surtout int(), quand vous comprenez que int('nombre',16) peut servir a convertir de l'hexa c'est cool. quand vous comprenez que int('valeur',36) fait une transformation depuis une base 36 ça commence a vraiment ouvrir des possibilités)
hashlib : pour faire du shaXXX, du md5, attention les algos disponibles sont liés à votre install d'openssl
On avait parlé d'une feuille de route ? la voici :
Phase 1: faire chauffer les méninges, et progresser un peu sur les bases techniquesPour les méninges, les épreuves de
logiques sont parfaites. allez y de temps en temps, à votre rythme, pour vous détendre.
Vous n'allez pas forcement énormément progresser sur le plan technique, mais vous allez reconnecter les neurones, et ça ne fait jamais de mal.
Pour la partie technique, vous l'avez deviné,
commencez par les progs ! Dans cette première phase je vous conseille d'aller jusqu'a "Fichu nombre" (la 14°)
Vous pouvez également faire
les premières cryptos,
mais en codant tout. ça sera même plutot plus fun que les prog. Vous pouvez aller jusque "un Fromage" (la 16°)
par contre pour les cryptos, pensez a bien lire les sites cités dans la partie liens sur la crypto. vous devez connaitre au moins de nom les différentes méthodes de chiffrement, sinon vous ne serez pas quoi appliquer.
pour cette première phase, le but est de monter en compétence sur le coding, pas de se triturer les méninges sur du cracking de cryptos trop complexes.
Tips 2:Venez sur IRC !
https://www.newbiecontest.org/index.php?page=ircC'est une vrai partie de l'experience NC, ce réseau de passionnés qui sont la pour s'entraider.
on y parle de tout et de rien, il n'y a pas de mauvaise questions, on a tous débuté un jour.
par contre vérifiez déjà si la réponse à votre problème ne se trouve pas en première ligne sur google ...
mais pour aider quelqu'un qui s'est creusé les méninges et qui bloque sur un sujet, vous trouverez toujours quelqu'un ici.
Phase 2: Progressons sur le codingAvancez sur les progs, vous devriez pouvoir aller jusque "apprendre à écouter", ainsi que les 2 sokoban qui sont dans la fin de classement plus parcequ'elles sont récentes que difficile.
avec un bon niveau de prog, vous devriez pouvoir faire facilement toutes les épreuves "clientside". C'est surtout de l'analyse de code et de la compréhension (
http://www.javadecompilers.com/ pour quelques uns)
ça y est vous devez être un ninja de la prog, nous allons pouvoir passer aux choses sérieuses.
Phase 3: un peu de détente Vous avez bien bossé, ça mérite de s'amuser un peu.
vous pouvez aller faire un tour sur :
- les 4 premières Hack (enfin ?

)
- les 10 premières stéganos
- continuer d'avancer sur les logiques un peu a la fois
- la partie Forensics
Phase 4: un peu de spécialisation Fondamentalement, à partir de maintenant chaque phase va nécessiter de se pencher en profondeur sur les sujets.
vous ne pourrez plus vous contenter de survoler les choses.
les grands sujets (Hack, Wargame, Crackme, Stega, Forensic) étant assez peu reliés, vous pouvez les attaquer dans votre ordre de préférence
mon conseil pour chacun de ces sujets,
bouffez de la doc avant meme de commencer ! Vous trouverez ci dessous des liens vers des docs importantes pour chaques catégories. lisez les avant meme d'attaquer la moindre épreuve, vous gagnerez beaucoup de temps au final.
Personnellement j'ai suivi a peu près le cheminement suivant :
Hack -> Wargame -> Stegano -> Crackme
Vous trouverez pas mal de choses similaires entre la partie crackme et BOF, sur l'analyse de binaire et les connaissance en assembleur. il n'est donc pas déconnant de progresser dans ces 2 parties en parallèle
Liens par catégoriesPour les cryptos : toutes les explications sur les cryptos anciennes, avec souvent des solveurs online.
http://www.apprendre-en-ligne.net/cryptohttp://www.bibmath.net/crypto/le but du solveur online est juste de vérifier que votre implémentation de l'algo fonctionne, parcequ'on a bien prévu de toujours coder a la mano ce qu'on ne maitrise pas encore , hein
quand vous aurez vraiment tout coder, pour aller plus vite :
http://www.dcode.fr/http://www.cryptool-online.org/pour les cryptos plus récentes :
https://crackstation.net/ : pour casser du hash connu
http://www.factordb.com/: pour factoriser des grands nombres (généralement pour casser du rsa)
Pour les crackmes : https://ddracepro.net/files/LegendofR4ndom/ : une enorme série de tutos pour la partie crackme. je suis mal placé pour parler crackme, je suis toujours une bille, mais je viens de finir cette série de 24 tutos et je vous la recommande chaudement
https://tuts4you.com/download.php : pour trouver tous les tuto, les crackme, les unpackme. c'est pour moi le lieu de reference. je pense qu'il y a quelques années de boulot avant de lire tout ce qui se trouve sur ce site.
http://www.woodmann.com/TiGa/idaseries.html : petite serie bien faite pour prendre en main IDA
Pour les Wargame : LA base du BOF :
http://lasec.epfl.ch/~oechslin/advbof.pdfle TRES bon site de notre PIXIS national :
http://beta.hackndo.com/buffer-overflow/pour les Format String :
https://crypto.stanford.edu/cs155/papers/formatstring-1.2.pdfune fois les bases de l'overflow acquises, regardez de près les différentes protections : NX/DEP, ASLR, Canary, RELRO, PIE
ensuite il faut en bouffer. une bonne manière de faire peu aussi être de lire les writeup des CTF publics via
https://ctftime.org/writeupsles Hack/Web :N'utilisez pas sqlmap, vous perdriez tout l'interet de comprendre comme ça fonctionne. toutes les attaques sont facilement codable en python !
BurpProxy : le tool à utiliser sur la quasi totalité des challs
WireShark : je sais que c'est un tuto pour débutant, mais quand meme ...
https://websec.wordpress.com/ : beaucoup d'infos faites par une personne qui l'expérimente au quotidien.
http://www.w3resource.com/mysql/mysql-functions-and-operators.php : Pour bypass des filtrage, pas le choix, il faut connaitre toutes les fonctions possibles
http://pentestmonkey.net/cheat-sheet/sql-injection/mysql-sql-injection-cheat-sheetPour le forensics : le tool ultime a maitriser : Volatility
vous trouvez des tonnes de tutos sur le net, GIYF
un petit besoin de Wireshark pour les épreuves intégrant des flux de données interceptées
Pour la stegano : jusqu'a "matrice" nous allons parler de stegano non-techniques. on est plus dans le bidouillage d'un auteur, il faut se placer dans sa tête et suivre les pistes.
installer GIMP et un bon editeur Hexa et vous passerez deja les 3/4 des épreuves.
ensuite, on attaque la technique.
pour ça il faut maitriser les conteneurs et leurs formats.
mon conseil, programmez vous un parser pour chacuns des formats BMP,JPEG,GIF,PNG à partir des RFC
en lisant les docs et en écrivant le parser vous découvrirez ou il est possible de cacher de l'information.
Il faut également connaitre les principes de la stégano en
LSB (Least Significant Bit) , la aussi GIYF
j'essayerai de revenir plus en détails sur chacunes des "phases 4" dans les jours a venir.
to be completed ...