logo Homepage
Pages: [1]
  Imprimer  
Auteur Fil de discussion: 1 an de NC - retour d'expérience et petit guide pour débutants  (Lu 6166 fois)
TouF

Profil challenge

Classement : 3/48225

Membre Junior
**
Hors ligne Hors ligne
Messages: 64


Voir le profil
« le: 02 Août 2016 à 15:28:33 »

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/python

quelques 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 techniques
Pour 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=irc
C'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 coding
Avancez 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égories


Pour les cryptos :
toutes les explications sur les cryptos anciennes, avec souvent des solveurs online.
http://www.apprendre-en-ligne.net/crypto
http://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.pdf
le 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.pdf
une 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/writeups

les 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-sheet



Pour 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 ...
Journalisée
pixis
Administrateur

Profil challenge

Classement : 12/48225

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 648


Voir le profil WWW
« #1 le: 02 Août 2016 à 15:51:57 »

Super post, très intéressant et je pense qu'il pourra être très instructif.

Pour les flemmards, j'ai fait un tl;dr;

TL;DR;

le TRES bon site de notre PIXIS national : http://beta.hackndo.com/buffer-overflow/

De rien.
Journalisée

Newbie Contest Staff :
Pixis
Statut :
Administrateur
Citation :
Je bourré mieux quand je suis code
Blog :
hackndo
BAAL

Profil challenge

Classement : 5/48225

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 532


Voir le profil
« #2 le: 03 Août 2016 à 00:21:54 »

Deux remarques:
-Bien que je préfère Python, je pense que PHP aide à avancer plus vite sur NC, pour plusieurs raisons.
-Je conseille à tout le monde de faire le plus d'effort possible pour me pas "coder comme un porc". J'ai moi-même eu ce problème pendant longtemps. Pas forcément un problème sur des projets solo et de moyenne envergure comme sur NC. Mais dans la vraie vie, ça fait une énorme différence.
Journalisée
pitchoule

Profil challenge

Classement : 493/48225

Néophyte
*
Hors ligne Hors ligne
Messages: 16


Voir le profil
« #3 le: 03 Août 2016 à 08:23:35 »

Super intéressant !

Cela m'a permis de trouver de nouveau site de documentation 

Attends la suite avec impatience.

J'ajouterai juste un site pour le forum : http://www.reverso.net/orthographe/correcteur-francais/
 
Journalisée

P17CH0U13-X
la mort c'est l'arrêt du coeur l'amour c'est la raie du cul !
ferbos

Profil challenge

Classement : 7/48225

Membre Senior
****
Hors ligne Hors ligne
Messages: 348

The Godfather is back....


Voir le profil WWW
« #4 le: 03 Août 2016 à 16:07:47 »

Salut,

c'est bien vu d'avoir un retour d'expérience sur NC. L'effort est très beau et très noble.

Moi j'hésite vraiment car certaines choses peuvent être prises comme du spoil, notamment si on prend le point de vue du néophyte qui, par définition, n'y connaît rien. Mais c'est une affaire de goût puisque je suis d'avis que NC est un site pour le néophyte ^^

si vous pensez pouvoir faire quoi que ce soit de valable sans savoir bien coder, vous n'avancerez pas.
Je ne suis pas d'accord: "coder" est un moyen certes incontournable dans certaines situations et non le point départ pour tout réaliser. Il y a une catégorie où il n'y a pas besoin de coder plus de 5 lignes. La conséquence: je code en PHP et je ne fais rien de propre.

D'ailleurs:
- ....je pense que PHP aide à avancer plus vite sur NC....
-Je conseille à tout le monde de faire le plus d'effort possible pour me pas "coder comme un porc".
Deux conseils contradictoires à mon sens. Boire ou conduire, il faut choisir. Et bien sûr, j'ai choisi de boire ^^

ferbos
« Dernière édition: 03 Août 2016 à 16:15:38 par ferbos » Journalisée

La mort ne frappe pas à la porte; elle entre par la fenêtre....
TouF

Profil challenge

Classement : 3/48225

Membre Junior
**
Hors ligne Hors ligne
Messages: 64


Voir le profil
« #5 le: 03 Août 2016 à 20:30:30 »


si vous pensez pouvoir faire quoi que ce soit de valable sans savoir bien coder, vous n'avancerez pas.
Je ne suis pas d'accord: "coder" est un moyen certes incontournable dans certaines situations et non le point départ pour tout réaliser. Il y a une catégorie où il n'y a pas besoin de coder plus de 5 lignes. La conséquence: je code en PHP et je ne fais rien de propre.

ferbos

je ne dis pas qu'on ne peux rien faire si on ne sait pas coder, je dis que c'est une mauvaise habitude que de vouloir prendre des raccourcis.
on résoudra pleins d'épreuves de crypto en passant par dcode.fr, pour autant je pense qu'on n'aura pas gagné 20% de l'expérience qu'on aurait pu engranger en recodant tout from scratch.
sur le long terme, le fait d'avoir systématiquement cherché à aller en profondeur est bénéfique, et le temps passé dans cette démarche au début est largement regagné par la suite.
ça ne reste que ma petite vision, mais c'est vraiment le conseil principal que je souhaite donner à quelqu'un que se lance à partir de rien aujourd'hui.

« Dernière édition: 03 Août 2016 à 21:45:22 par Touff » Journalisée
pixis
Administrateur

Profil challenge

Classement : 12/48225

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 648


Voir le profil WWW
« #6 le: 03 Août 2016 à 20:34:54 »

Citation
on résoudra pleins d'épreuves de cracking crypto en passant par dcode.fr
Journalisée

Newbie Contest Staff :
Pixis
Statut :
Administrateur
Citation :
Je bourré mieux quand je suis code
Blog :
hackndo
Womb

Profil challenge

Classement : 55/48225

Néophyte
*
Hors ligne Hors ligne
Messages: 47


Voir le profil
« #7 le: 04 Août 2016 à 07:45:38 »

on résoudra pleins d'épreuves de crypto en passant par dcode.fr, pour autant je pense qu'on n'aura pas gagné 20% de l'expérience qu'on aurait pu engranger en recodant tout from scratch.

On peux très bien ne pas coder pour résoudre et comprendre les cryptos à mon avis, pour pas mal d'entre elles (sur NC) on peut les résoudre papier/crayon (bon ok, pas les dernières).
Dans le cas de certaines, sans coder et sans dcode les résoudre à la main permet de comprendre aussi bien le chiffrement que si on avait programmé soi même un tool.
Par contre ouais, se contenter d'un outil tout fait qui résous le problème à notre place effectivement ça ne permet pas de comprendre complêtement, je suis d'accord.

Par contre quand on code pour résoudre les épreuves, dcode c'est bien pratique pour faire des tests pour vérifier si on à bien implémenté le chiffrement/déchiffrement, ou non ! tout de même 
« Dernière édition: 04 Août 2016 à 07:48:04 par Womb » Journalisée

"la critique est aisée mais l’art est difficile" ^^
the lsd
Administrateur

Profil challenge

Classement : 150/48225

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 3007

poulping for fun & profit


Voir le profil WWW
« #8 le: 04 Août 2016 à 08:55:15 »

* the lsd pense que ce topic va vite finir épinglé en haut de la liste


Enjoy

The lsd
Journalisée

Newbie Contest Staff :
The lsd - Th3_l5D (IRC)
Statut :
Administrateur
Citation :
Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
ferbos

Profil challenge

Classement : 7/48225

Membre Senior
****
Hors ligne Hors ligne
Messages: 348

The Godfather is back....


Voir le profil WWW
« #9 le: 05 Août 2016 à 08:38:58 »

Je suis bien sur la même ligne que womb:
on résoudra pleins d'épreuves de crypto en passant par dcode.fr, pour autant je pense qu'on n'aura pas gagné 20% de l'expérience qu'on aurait pu engranger en recodant tout from scratch.

On peux très bien ne pas coder pour résoudre et comprendre les cryptos à mon avis, pour pas mal d'entre elles (sur NC) on peut les résoudre papier/crayon (bon ok, pas les dernières).
Dans le cas de certaines, sans coder et sans dcode les résoudre à la main permet de comprendre aussi bien le chiffrement que si on avait programmé soi même un tool.
Par contre ouais, se contenter d'un outil tout fait qui résous le problème à notre place effectivement ça ne permet pas de comprendre complêtement, je suis d'accord.

Par contre quand on code pour résoudre les épreuves, dcode c'est bien pratique pour faire des tests pour vérifier si on à bien implémenté le chiffrement/déchiffrement, ou non ! tout de même 
Programmer les chiffrements simples relèvent plus d'une volonté personnelle et de ses ambitions (par exemple si on ne sait pas programmer et que l'on veut débuter) que d'une absolue nécessité. Le principe des épreuves avec cryptogramme est simple: identifier le chiffrement et trouver un moyen de découvrir le message en clair. Ce qui constitue vraiment un plus c'est de programmer les outils d'indentification: fréquence, test de chi² (bon sang mais où ai-je péché cela?),.... mais a-t-on besoin de programmer au sens propre du terme? Et bien non, on peut utiliser un simple tableur juste pour comprendre les points faibles ^^

Mais LE travail principal c'est de faire la recherche et l'analyse sur le sujet: recherche de la documentation (dans le théorique, on peut aller du truc très abordable au truc très (voire trop) mathématique) puis retenir les informations les plus importantes. C'est pour cela que je juge le post limite et déplacé parce qu'il incite à faire le contraire de ce qu'il dénonce ^^

ferbos
Journalisée

La mort ne frappe pas à la porte; elle entre par la fenêtre....
TouF

Profil challenge

Classement : 3/48225

Membre Junior
**
Hors ligne Hors ligne
Messages: 64


Voir le profil
« #10 le: 05 Août 2016 à 11:02:48 »

Ferbos, Je n'ai pas du bien me faire comprendre alors, parceque je suis complètement d'accord avec Womb.

Le conseil que je tente de passer est de "maitriser", "comprendre" ce que l'on fait le plus en profondeur possible .
que l'on recode un algo de chiffrement/dechiffrement ou qu'on en fasse la résolution à la main, pour moi on est en train d'en retirer le maximum dans les 2 cas.
Ce que je dénonce c'est l'utilisation aveugle de "tools" sans trop comprendre comment ça fonctionne, quelque soit le sujet (crypto, web, crackme...)
 
Journalisée
the lsd
Administrateur

Profil challenge

Classement : 150/48225

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 3007

poulping for fun & profit


Voir le profil WWW
« #11 le: 14 Octobre 2016 à 12:37:22 »

Allez hop, je l'avais dit, je le fais, le topic est épinglé

Enjoy

The lsd
Journalisée

Newbie Contest Staff :
The lsd - Th3_l5D (IRC)
Statut :
Administrateur
Citation :
Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
PatrickPotire
Profil challenge

non classé(e).

Néophyte
*
Hors ligne Hors ligne
Messages: 2


Voir le profil WWW
« #12 le: 21 Octobre 2016 à 17:48:12 »

Vraiment super interressant comme post !!
Journalisée

Bonjour à tous. Je suis Patrick. Je suis un français de 22 ans. Je suis un photographe professionnel. Actuellement, je suis en train de comparer les offres de prêts attrayants, disponibles sur internet afin de choisir l’offre de quel site vais-je faire, dans le but de construire mon studio.
sigri44

Profil challenge

Classement : 394/48225

Néophyte
*
Hors ligne Hors ligne
Messages: 42


Voir le profil WWW
« #13 le: 04 Juin 2018 à 11:59:11 »

Toujours au top ce topic, ça permet de se remettre les idées au clair des fois, merci !
Journalisée

CEO of Créa'West
Unikard : http://unikard.xyz/zmff9
Halkan
Profil challenge

Classement : 5815/48225

Néophyte
*
Hors ligne Hors ligne
Messages: 1


Voir le profil
« #14 le: 09 Juillet 2019 à 07:50:02 »

Ce n'est peut-être pas approprié mais je déterre un peu le topic car les liens tuto des crackme sont mort, quelqu'un aurait pas d'autre bon tuto sous la main ?

Halkan.
Journalisée
Pages: [1]
  Imprimer  
 
Aller à: