notes·de·pit - Mot-clé - 5slidesParfois j'apprends à pêcher à des gens qui n'aiment pas le poisson2023-06-13T11:41:09+02:00PiTurn:md5:45526db4e4cfb511098640352c276065Dotcleargit en deux motsurn:md5:dfc0736df64ef89779e7c0bb7970aeea2014-01-31T12:26:00+01:002014-01-31T12:53:01+01:00PiTCartable au dos5slidesdiversesigeekgit<p>Dans la série « souvent il est nécessaire de présenter un outil, un concept, le résultat d'une recherche, … brièvement », aujourd'hui, je fais quelques slides pour présenter <strong>git</strong>.</p>
<p><img src="https://blog.namok.be/public/images/divers/2014/5slides-git/swissarmyknife-boboob.jpg" alt="swissarmyknife-boboob.jpg" style="margin: 0 auto; display: block;" title="swissarmyknife-boboob.jpg, janv. 2014" /></p>
<p>Comme il était difficile pour moi de faire ça en une seule fois, il y aura <strong>deux fois</strong> 5 slides ;-)</p>
<p><em>git</em> fait partie de la liste des <em><abbr title="version control system - système de contrôle de versions">vcs</abbr></em>, les logiciels permettant la gestion des différentes versions d'un « texte ». Les plus connus sont; <em>git</em> et <em>svn</em>.</p>
<p>Ces deux séries de slides se basent sur <a href="http://www-cs-students.stanford.edu/~blynn/gitmagic">gitmagic de B Lynn</a>.</p>
<h2>git in 5 slides</h2>
<p><img src="https://blog.namok.be/public/images/divers/2014/5slides-git/in5slides-git-mozaic.png" alt="in5slides-git-mozaic.png" style="margin: 0 auto; display: block;" title="in5slides-git-mozaic.png, janv. 2014" /></p>
<p><strong>Slide 2</strong><br />
Qu'est-ce que <em>git</em> ?<br />
Quelle est son utilité et pourquoi, c'est bien de l'utiliser ?</p>
<ul>
<li>Gestion de ses versions et</li>
<li><em>git</em> est décentralisé. À l'inverse de <em>svn</em>, chaque dépôt contient l'archive complète du projet.</li>
</ul>
<p><strong>Slide 3</strong><br />
Utilisation basique de <em>git</em>. Cette utilisation simple permet de:</p>
<ul>
<li>créer un dépôt;</li>
<li>d'y ajouter ses fichiers et;</li>
<li>de faire son premier <strong>commit</strong></li>
</ul>
<p>C'est l'occasion de dire que la bonne pratique n'est pas d'utiliser la commande</p>
<pre><code>git commit -m "Petit commentaire"
</code></pre>
<p>mais d'utiliser la commande <code>git commit</code> qui ouvrira l'éditeur par défaut et permettra d'entrer un commentaire complet … c'est-à-dire compréhensible par le lecteur et certainement plus long.</p>
<p>La recommandation étant d'avoir un titre suivi d'un texte représentatif du commit. Le titre n’excèdera pas 50 caractères tandis que le texte tronquera ses lignes à 72 caractères … c'est la <a href="https://wiki.openstack.org/wiki/GitCommitMessages">règle des 50 / 72</a> pour les messages de commit.</p>
<p><strong>Slide 4</strong><br />
Chaque <em>commit</em> est représenté par une <a href="https://fr.wikipedia.org/wiki/SHA-1">empreinte SHA1</a> de 160 bits.</p>
<pre><code> commit af0d57b52307675be81b20f2754a4036c77fa794
</code></pre>
<p>c'est sur base de cette empreinte que l'on pourra revenir à une situation précédente.</p>
<p><strong>Slide 5/6</strong><br />
Jusque là, c'est bien !<br />
Un usage d'un <em><abbr title="version control system - système de contrôle de versions">vcs</abbr></em> est de pouvoir travailler ensemble sur un même projet. Je dois donc pouvoir mettre mes sources à disposition des autres ou bien accéder au dépôt de mon collaborateur.</p>
<p>La communication entre machines peut se faire par <code>ssh</code> ou bien en faisant tourner un <em>dæmon git</em>.</p>
<p>La commande permettant de récupérer le contenu d'une archive est <strong>pull</strong> dès lors que j'ai préalablement <em>cloné</em> (pris une copie locale) le dépôt.</p>
<p><strong>Slide7</strong><br />
Oui mais on aime quand même bien centraliser le dépôt histoire que l'on puisse y avoir accès « tout le temps » ou d'avoir un dépôt de référence ou d'offrir une visibilité au projet ou …</p>
<p>Il existe <a href="http://github.com">github</a> qui fait ce boulot (et d'autres, <a href="http://gitorious.org">gitorious</a>, <a href="http://repo.or.cz">repo</a>).<br />
<a href="http://github.com">github</a> est un site web centralisant le dépôt git … et offrant des outils tels que:</p>
<ul>
<li>une page web générée à partir du fichier README.md;</li>
<li>un système d'<em>issues</em> permettant de reporter les bugs;</li>
<li>un wiki par projet;</li>
<li>… </li>
</ul>
<p>bref de quoi donner de la visibilité à un projet et permettre la collaboration autour de celui-ci.</p>
<h2>git in 5 slides (advanced)</h2>
<p><a href="https://blog.namok.be/public/images/divers/2014/5slides-git/in5slides-git-advanced-mozaic.png" title="in5slides-git-advanced-mozaic.png"><img src="https://blog.namok.be/public/images/divers/2014/5slides-git/in5slides-git-advanced-mozaic.png" alt="in5slides-git-advanced-mozaic.png" style="margin: 0 auto; display: block;" title="in5slides-git-advanced-mozaic.png, janv. 2014" /></a></p>
<p>Pour aller un peu plus loin dans l'utilisation de git.</p>
<p><strong>Slide 2</strong><br />
Lorsque l'on développe un projet, plusieurs versions évoluent en parallèle. Parce que l'on décide de travailler sur des fonctionnalités différentes ou simplement parce que l'on travaille un peu par essais / erreurs.</p>
<p>Le projet se décompose en plusieurs <strong>branches</strong>.</p>
<p><strong>Slide 3/4</strong><br />
Exemple (issu de <a href="http://www-cs-students.stanford.edu/~blynn/gitmagic">gitmagic</a>) de création de deux branches et illustration du passage d'une branche à l'autre.</p>
<p><strong>Slide 5</strong><br />
Il arrive un moment où les développements parallèles doivent être fusionnés (<strong>merge</strong>) et ce, sans perte et sans erreur.</p>
<p>Un « <strong>merge</strong> » permet de fusionner deux branches. <em>git</em> fusionne automatiquement les deux branches et prévient si il découvre un conflit.</p>
<p><strong>Slide 7</strong><br />
Présentation d'un <em>worflow</em> traditionnel. Ce <em>worflow</em> utilise les branches pour permettre de travailler et d'avancer sans soucis.</p>
<p><strong>Slide 8</strong><br />
La présentation se termine par des commandes <code>ammend</code> et <code>blame</code> que permettent, respectivement, de modifier un commit et de voir qui a fait les dernières modifications …</p>
<p>Merci à <a href="http://www-cs-students.stanford.edu/~blynn/gitmagic">gitmagic</a>.</p>
<p>Faites en bon usage …</p>
<h4>Liens / cédits</h4>
<ul>
<li><a href="http://www-cs-students.stanford.edu/~blynn/gitmagic">Gitmagic</a> par Ben Lynn</li>
<li><a href="https://wiki.openstack.org/wiki/GitCommitMessages">Git commit message best practice</a> 50 / 72 rules </li>
<li>Les sites « git »: <a href="http://github.com">Github</a>, <a href="http://gitorious.org">Gitorious</a> et <a href="http://repo.or.cz">repo.or.cz</a></li>
<li><p>Qu'est-ce qu'une empreinte SHA1 ? chez <a href="https://fr.wikipedia.org/wiki/SHA-1">Wikipedia</a></p></li>
<li><p>Crédit photo chez Flickr par <a href="http://www.flickr.com/photos/bob007/">Bob007</a></p></li>
<li>Ces slides chez <a href="http://fr.slideshare.net/PierreBETTENS">Slideshare</a>; <a href="http://fr.slideshare.net/PierreBETTENS/in5slides-git">git</a> et <a href="http://fr.slideshare.net/PierreBETTENS/git-advanced-in-5-slides">git (advanced)</a></li>
</ul>
ncat en deux motsurn:md5:c078cd3b4222e6ad2d0f48002716efa32013-11-21T12:54:00+01:002014-01-31T12:52:19+01:00PiTCartable au dos5slidesdiversesigeek<p>Dans la série « souvent il est nécessaire de présenter un outil, un concept, le résultat d'une recherche, … brièvement », aujourd'hui, je fais quelques slides pour présenter <strong>netcat</strong>.</p>
<p><img src="https://blog.namok.be/public/images/divers/2013/Broken_Door_by_RitvikPandey.jpg" alt="Blue door" /></p>
<p>netcat, présenté comme le <em>couteau suisse</em> de TCP/IP, est un logiciel permettant de lire et écrire en utilisant le protocole TCP / UDP. Sa particularité de lecture / écriture fait de lui un outil de « communication / partage » entre machines.</p>
<p>Sous debian, netcat s'installe simplement grâce à <code>apt-get install netcat</code>.</p>
<p><a href="https://blog.namok.be/public/images/divers/2013/5slides-ncat/ncat-5slides-all.png" title="ncat-5slides-all.png"><img src="https://blog.namok.be/public/images/divers/2013/5slides-ncat/ncat-5slides-all.png" alt="ncat-5slides-all.png" style="margin: 0 auto; display: block;" title="ncat-5slides-all.png, nov. 2013" /></a></p>
<p>Les slides sont beaux<sup id="fnref:1"><a href="https://blog.namok.be/?post/2013/11/20/5slides-ncat#fn:1" rel="footnote">1</a></sup> mais que raconter ?</p>
<h4>Commentaires</h4>
<p><strong>Slide 2</strong></p>
<p>netcat est un logiciel qui lit et écrit en TCP / UDP, il permet donc de se connecter à n'importe quel port (il voit donc s'il est ouvert) et d'essayer de communiquer … si je « parle mail » sur le port 25, je pourrais envoyer un mail ^^</p>
<p>Pour l'exemple, en se basant sur la <a href="http://tools.ietf.org/html/rfc821">RFC 821</a>, je peux écrire<sup id="fnref:2"><a href="https://blog.namok.be/?post/2013/11/20/5slides-ncat#fn:2" rel="footnote">2</a></sup></p>
<pre><code> $ nc -vv localhost 25
localhost [127.0.0.1] 25 (smtp) open
220 seccotine.namok.be ESMTP Postfix (Debian/GNU)
MAIL FROM:<pit@example.org>
250 2.1.0 Ok
RCPT TO:<pk@mailinator.com>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Le corps du mail
Blah blah blah
.
250 2.0.0 Ok: queued as A4114EB4044
QUIT
221 2.0.0 Bye
sent 122, rcvd 250
</code></pre>
<p>Je constate sur le screenshot que je reçois bien le mail. Profitez-en pour voir ce que racontent vos logs …</p>
<p><a href="https://blog.namok.be/public/images/divers/2013/5slides-ncat/screenshot-mail-1.png" title="screenshot-mail-1.png"><img src="https://blog.namok.be/public/images/divers/2013/5slides-ncat/.screenshot-mail-1_m.png" alt="screenshot-mail-1.png" style="margin: 0 auto; display: block;" title="screenshot-mail-1.png, nov. 2013" /></a></p>
<p><strong>Slide 3</strong></p>
<p>Comparaison avec le programme <code>telnet</code> pour le principe de connexion à un port, c'est un moyen simple de voir si un port est ouvert. L'envoi de mail fait avec <code>nc</code> peut très bien se faire avec <code>telnet</code> également.</p>
<p>J'utilise netcat en tant que <em>client</em>.</p>
<p><strong>Slide 4</strong></p>
<p>L'intérêt de <code>netcat</code> par rapport à <code>telnet</code> est de l'utiliser comme <em>serveur</em>.</p>
<p>Comme illustration, je lance une instance de netcat comme serveur sur un port et une autre instance comme client (sur le même port). Les deux instances peuvent communiquer. Ce que l'on illustre en faisant un <em>chat</em>.</p>
<p><a href="https://blog.namok.be/public/images/divers/2013/5slides-ncat/screenshot-nc-1.png" title="screenshot-nc-1.png"><img src="https://blog.namok.be/public/images/divers/2013/5slides-ncat/.screenshot-nc-1_m.png" alt="screenshot-nc-1.png" style="margin: 0 auto; display: block;" title="screenshot-nc-1.png, nov. 2013" /></a></p>
<p><strong>Slide 5</strong></p>
<p>En utilisant les redirections d'entrée / sortie, je peux envoyer / recevoir un fichier.</p>
<p><code>netcat</code> me permettra donc de faire du transfert de fichiers (artisanal certes) pour peu qu'un port soit disponible (au sens non filtré par les firewalls) sur les machines.</p>
<p><strong>Slide 6/7/8</strong></p>
<p><em>Last but not least</em>, <code>netcat</code> permet de passer une commande en argument !</p>
<p>Je peux lancer une commande sur l'une des deux machines et rediriger les entrées / sorties de celle-ci « dans le tuyau ». Ce qui a pour effet par exemple de lancer un <em>shell</em> sur la machine <em>host1</em> et d'autoriser <em>host2</em> d'utiliser ce shell avec mes privilèges.</p>
<p>Je m'appelle Bob (oui je sais, ça vous surprend) et j'ai besoin d'aide pour administrer ma machine MS Windows (ça vous étonne aussi hein !), je lance <code>netcat -lvvp 4444 -e cmd.exe</code> ce qui a pour effet de mettre l'interprèteur de commande MS Windows en écoute sur le port 4444.</p>
<p>Alice veut m'aider, il lui suffit de se connecter à ma machine via <code>netcat -vv <mon ip> 4444</code> et elle aura accès à mon <em>shell</em> \°/</p>
<p>L'inverse – être prêt à recevoir une commande plutôt que de l'envoyer– est également possible.</p>
<p>Si Alice et Bob son conscients de ce qu'il font, c'est un moyen simple de s'entraider.</p>
<p>Par contre, si Malory parvient à faire exécuter du code à Alice à son insu et que ce code est « simplement » <code>netcat -lvvp 4444 -e cmd.exe</code> … c'est pas de bol !</p>
<h4>Liens</h4>
<ul>
<li>Protocole SMTP, <a href="http://tools.ietf.org/html/rfc821">RFC 821</a></li>
<li><a href="https://en.wikipedia.org/wiki/Alice_and_Bob">Wikipedia, <em>cryptography characters</em></a></li>
<li><a href="http://www.offensive-security.com/">Offensive security lab</a></li>
<li>Ces slides chez <a href="http://fr.slideshare.net">Slideshare</a>, <a href="http://fr.slideshare.net/PierreBETTENS/netcat-in-5-slides">netcat</a></li>
<li>Crédit photo chez <a href="http://deviantart.com">DeviantArt</a> par <a href="http://ritvikpandey.deviantart.com/art/Broken-Door-103952944">Ritvikpandey</a></li>
</ul>
<div class="footnotes">
<hr />
<ol>
<li id="fn:1">
<p>Je devrais dire que je trouve que les slides sont beaux et ne pas l'affirmer de manière péremptoire. Ce n'est pas grave pour une fois ;-) <a href="https://blog.namok.be/?post/2013/11/20/5slides-ncat#fnref:1" rev="footnote">↩</a></p>
</li>
<li id="fn:2">
<p>Faire l'exercice une fois dans sa vie aide à comprendre ce qu'est un protocole et permet également de se rappeler que <em>rien n'est magique</em>. <a href="https://blog.namok.be/?post/2013/11/20/5slides-ncat#fnref:2" rev="footnote">↩</a></p>
</li>
</ol>
</div>
nmap en deux motsurn:md5:7f66e5755baaad3df82f8b4640b882a12013-11-14T08:31:00+01:002013-11-20T22:15:49+01:00PiTCartable au dos5slidesdebianesigeeksecurity<p>Souvent il est nécessaire (dans le cadre professionnel ou scolaire) de présenter un outil, un concept, le résultat d'une recherche, … brièvement, « en deux mots ».</p>
<p>Si la présentation doit se faire devant plusieurs personnes, il n'est pas ridicule de se munir de 3,4 slides contenant <strong>l'essentiel</strong> (<em>to the point</em>) de ce que l'on veut dire.</p>
<p><img src="https://blog.namok.be/public/images/divers/2013/flickr-colorfull-doors.jpg" alt="flickr-colorfull-doors.jpg" style="display:block; margin:0 auto;" title="flickr-colorfull-doors.jpg, oct. 2013" /></p> <p>Ces slides ne contiennent que les idées que l'on veut présenter et sont un <strong>support</strong> à la présentation orale. Personnellement, j'aime les agrémenter de l'une ou l'autre image qui va marquer l'esprit
<sup>[<a href="https://blog.namok.be/?post/2013/11/13/5slides-nmap#pnote-1384-1" id="rev-pnote-1384-1">1</a>]</sup> … ce que l'on n'a pas toujours le temps de faire … mais comme mes slides sont destinés à être réutilisés … je prend ce temps.</p>
<p>Comme <em>proof of concept</em>, voici les slides préparés avant de dire rapidement à mes étudiants ce qu'est <strong>nmap</strong>.</p>
<blockquote><p>Rappel: l'idée n'est pas de donner un cours sur nmap ni même de présenter le soft dans le détail … simplement de dire ce que c'est et quel est l'usage de base … le reste sera éventuellement dit oralement … ou plus tard.</p></blockquote>
<div class="txtcenter">
<iframe src="http://www.slideshare.net/slideshow/embed_code/26967038" width="427" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen> </iframe>
</div>
<h4>Commentaires</h4>
<p><strong>slide 2</strong></p>
<ul>
<li>Quel est l'usage de nmap ?</li>
<li>À quoi sert le programme ?</li>
<li>Pourquoi fait-on un <em>scan de ports</em> ?</li>
</ul>
<p><strong>slide 3</strong></p>
<ul>
<li>Comment faire un scan basique (faites-le) et quels sont les résultats obtenus ?</li>
<li>Pourquoi voudrait-on ajuster le temps entre l'envoi des différents paquets ?</li>
<li>Pourquoi la machine déciderait de ne pas répondre ?</li>
</ul>
<p><strong>slide 4</strong></p>
<ul>
<li>Quel type de paquets j'envoie ?</li>
<li>Pourquoi est-ce que je risque de me faire détecter par un <acronym title="IDS - Intrusion Detection Software">IDS</acronym> ?</li>
</ul>
<p><strong>slide 5</strong></p>
<ul>
<li>Il existe différents types de scan … en fonction du protocole utilisé.</li>
<li><code>sT</code>, utilise un scan <em>TCP connect</em> par le biais d'un appel de faut niveau à <code>connect()</code> Ce scan est plus complet car il y a tentative de la part de nmap de compléter la connexion. C'est plus long et c'est loggué … donc (probablement) détecté par l'administrateur réseau.</li>
</ul>
<p>On lui préfère un <em>scan SYN</em></p>
<ul>
<li><code>sS</code>, utilise un scan <em>TCP SYN</em>. Envoi d'un SYN et attente d'un SYN/ACK, port ouvert, d'un RESET, port fermé ou atteinte du <em>timeout</em> si le port est filtré.</li>
</ul>
<p>C'est le scan par défaut car il fonctionne pour n'importe quel hôte (respectant TCP). Comme il ne termine pas les connexions TCP, il est rapide et discret.</p>
<ul>
<li><code>sU</code> permet un scan UDP plutôt que TCP. Il peut être combiné à un scan TCP. Le scan UDP est plus lent mais permet de détecter des services tels que: DNS, SNMP ou DHCP.</li>
</ul>
<ul>
<li><code>sN sF sX</code>, utilisent un scan TCP en positionnant les flags FIN, PSH et URG de manière différente; aucun pour <code>sN</code>, le flag FIN pour <code>sF</code> et les trois pour <code>sX</code>. Ces scans (sont) étaient plus furtifs que <code>sS</code> mais ils sont cependant détectés par les IDS récents. De plus, ils ne fonctionnent que pour les systèmes respectant la RFC, ce qui n'est pas le cas de Microsoft Windows et de certains équipements Cisco.</li>
</ul>
<ul>
<li><code>sA</code>, scan TCP ACK est utilisé pour tester le firewall, il ne dira pas si le port est ouvert ou fermé, seulement s'il est filtré.</li>
</ul>
<ul>
<li><code>sI <zombie host></code>, technique avancée décrite sur le <a href="http://nmap.org/book/idlescan.html">site de nmap</a> permettant un scan furtif dont les paquets semblent envoyés de l'hôte relais.</li>
</ul>
<p>Voilà, on sait maintenant ce que c'est <em>nmap</em>.</p>
<p>Sans être un expert, on a tout pour démarrer …</p>
<h4>Liens</h4>
<ul>
<li><a href="https://blog.namok.be/?post/2013/11/13/http.//nmap.org">Nmap</a></li>
<li>Nmap, <a href="http://nmap.org/book/idlescan.html">Idle scan</a>.</li>
<li><a href="http://fr.slideshare.net/PierreBETTENS/nmap-in-5-slides">nmap in 5 slides</a> chez Slideshare</li>
</ul>
<div class="footnotes"><h4 class="footnotes-title">Note</h4>
<p>[<a href="https://blog.namok.be/?post/2013/11/13/5slides-nmap#rev-pnote-1384-1" id="pnote-1384-1">1</a>] Je pense avoir une mémoire visuelle et si j'entends plusieurs résumés / présentation / … je retiendrai plus facilement « celle avec les girafes » !</p></div>