<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Archives des Sécurité - Xavki</title>
	<atom:link href="https://xavki.blog/category/securite/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>Open your Sources..</description>
	<lastBuildDate>Tue, 30 Mar 2021 17:02:34 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Formation SSH, les bases&#8230;</title>
		<link>https://xavki.blog/formation-ssh-bases-debuter/</link>
		
		<dc:creator><![CDATA[xavki]]></dc:creator>
		<pubDate>Thu, 25 Mar 2021 19:36:00 +0000</pubDate>
				<category><![CDATA[Sécurité]]></category>
		<guid isPermaLink="false">https://xavki.blog/?p=1206</guid>

					<description><![CDATA[<p>Si vous utilisez linux (et potentiellement windows) au quotidien et que vous êtes amenés à travailler avec des serveurs, vous ne pouvez vous passer de ssh. Certes, une bonne automatisation d&#8217;infrastructure peut vous permettre de limiter son utilisation mais rare... <a href="https://xavki.blog/formation-ssh-bases-debuter/" class="suite"><i class="fal fa-long-arrow-right"></i></a></p>
<p>L’article <a href="https://xavki.blog/formation-ssh-bases-debuter/">Formation SSH, les bases&#8230;</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="has-drop-cap">Si vous utilisez linux (et potentiellement windows) au quotidien et que vous êtes amenés à travailler avec des serveurs, vous ne pouvez vous passer de ssh. Certes, une bonne automatisation d&#8217;infrastructure peut vous permettre de limiter son utilisation mais rare est une journée sans ssh.</p>



<p>Mais finalement qu&#8217;est-ce que SSH ? le connait-on vraiment assez ?  Voilà ce que je vous propose de découvrir <a href="https://xavki.blog/formation-ssh-debuter/">dans la formation SSH</a>. Cet ensemble de tutoriels permet pour les débutants de mieux comprendre leur environnement de travail et pour d&#8217;autres peut être de reposer les bases ou encore découvrir des astuces.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="SSH - 1. Introduction, c&#039;est quoi ??" width="625" height="352" src="https://www.youtube.com/embed/gclyVcmpRaM?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">Qu&#8217;est-ce que SSH ?</h2>



<p>C&#8217;est trivial mais il faut bien repartir de quelque chose. <strong>SSH cela signifie Secure Shell</strong>&#8230; comme on dit ça casse pas 3 pattes à un canard mais pourtant c&#8217;est terriblement utile et efficace.</p>



<p>Il faut voir d&#8217;où l&#8217;on vient et à quelle époque nous sommes. Dans un passé informatique plus lointain, la communication avec les serveurs se faisait <strong>avec des outils non sécurisés ou peu sécurisés</strong> comme par <a href="https://searchnetworking.techtarget.com/definition/Telnet">exemple telnet</a> ou encore rsh (remote shell). Désormais, on utilise telnet rarement pour des tests simples comme la vérification d&#8217;ouverture de ports ou encore <a href="https://www.instructables.com/Send-an-email-via-telnet/">le test l&#8217;envoi de mail via un serveur smtp</a>.</p>



<p>Ces outils non sécurisés sont de nos jours à éviter voir à bannir. Les pirates informatiques n&#8217;ont plus besoin que nous leur ouvrions les portes déjà assez difficiles à maintenir fermées.</p>



<p>Bref la sécurité informatique commence dès l&#8217;installation d&#8217;un serveur et à tous les niveaux.</p>



<p>Pour cela, SSH se base bien sûr sur <strong>de la cryptographie assez poussée</strong>. C&#8217;est d&#8217;ailleurs pour cela que tout le monde l&#8217;utilise et que toute brèche ne traîne pas à être patchée. Il se base sur la bonne vieille mais efficace <strong>méthode de client/serveur</strong>.</p>



<p>SSH a deux objectifs principaux :</p>



<ul class="wp-block-list"><li>lutter <strong>contre l&#8217;interception</strong> : c&#8217;est à dire qu&#8217;une personne qui écoute la communication entre un client et un serveur puisse accéder à ses informations</li><li>lutter <strong>contre l&#8217;usurpation</strong> : pour éviter que le client se fasse passer le serveur et inversement</li></ul>



<p>Du coup on parle souvent de <strong>tunnel SSH</strong> avec ce sentiment d&#8217;assurer une communication sécurisée entre deux protagonistes avec une isolation totale.</p>



<p>Pour son chiffrement, SSH utilise deux phases :</p>



<ul class="wp-block-list"><li>un chiffrement <strong>asymétrique</strong> : avantage sa sécurité et inconvénient sa rapidité</li><li>un chiffrement <strong>symétrique</strong> : avantage sa rapidité et inconvénient la sécurité</li></ul>



<p>Le déroulé d&#8217;une communication est la suivante : </p>



<p><strong>Communication SSH</strong> :</p>



<ol class="wp-block-list" start="0"><li>Client &gt; Serveur : TCP &#8211; initie la connexion &#8211; poignée de main (handshake) SYNchronize</li></ol>



<ol class="wp-block-list"><li>Serveur &gt; Client : TCP &#8211; réponse handshake SYN/ACKnowledge</li></ol>



<ol class="wp-block-list" start="2"><li>Client &gt; Serveur : TCP &#8211; confirmation handshake ACK</li></ol>



<ol class="wp-block-list" start="3"><li>Client &gt; Serveur : SSH &#8211; Version serveur</li></ol>



<ol class="wp-block-list" start="4"><li>Serveur &gt; Client : SSH &#8211; Version client</li></ol>



<p>&#8230;initialisation de la clef</p>



<ol class="wp-block-list" start="5"><li>Client &gt; Serveur : SSH &#8211; requête Diffie Hellman (objectif définir clef symétrique)</li></ol>



<ol class="wp-block-list" start="6"><li>Serveur &gt; Client : SSH &#8211; envoi de la clef symétrique chiffré par la clef publique asymétrique</li></ol>



<ol class="wp-block-list" start="7"><li>Client &gt; Serveur : SSH &#8211; début des échanges par le chiffrement de la clef symétrique</li></ol>



<h2 class="wp-block-heading">L&#8217;installation d&#8217;un serveur SSH</h2>



<p>Dans mon cas je parlerai pour debian mais sur redhat et sa famille, le principe est le même :</p>



<p><code>sudo apt install openssh-serve</code>r</p>



<p><code>sudo systemctl start sshd</code></p>



<p>Désormais votre serveur écoute avec <strong>le port par défaut à savoir le port 22</strong> sur vos interfaces et donc toutes ses ips.</p>



<p>Ensuite, la configuration passe par le fichier<strong> /etc/ssh/sshd_config</strong></p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="SSH - 2. SSHD_CONFIG : configuration serveur" width="625" height="352" src="https://www.youtube.com/embed/qrS1rSFb-1w?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p>Sans rentrer dans d&#8217;importants détails, voici l&#8217;interprétation de différents paramètres (je vous recommande vivement <strong>en cas de modification de paramètres ssh de toujours ouvrir 2 sessions</strong> en cas d&#8217;erreur cela vous permettra de revenir dessus) : </p>



<pre class="wp-block-preformatted">AcceptEnv : fixer les variables d'env pouvant être importées via le client

AllowAgentForwarding : permet de conserver votre clef (ex : rebond)

AllowGroups / DenyGroups : limiter les groupes à se connecter via ssh

AllowUsers / DenyUsers : limiter les users

Banner : ajouter une bannière à la connexion ssh

Password : mettre les deux à no pour disable password

ChallengeResponseAuthentication - RFC 4256 > poser des questions à l'utilisateurs (password..) > plus sécurisé

PasswordAuthentication - RFC 4252 > specific au password

ChrootDirectory : spécifier au chroot pour users/groups (utilisé avec match généralement)

Ciphers : combinaison des algorithmes d'échange

ClientAliveCountMax : le nombre connexion sans réponse avant cloture de la connexion

ClientAliveInterval : durée de la connexion ssh sans activité (envoi une requête si sans réponse = déconnexion)

Compression : defaut yes

DisableForwarding : supprime les fowarding agent, x11...

ExposeAuthInfo : permet d'afficher des informations l'authentification (path du fichier dans SSH_USER_AUTH)

FingerprintHash : type de hash pou rle fingerprint

ForceCommand : commande exécutée à la connexion (bypass les commandes clientes)

GatewayPorts : désactivation du port forwarding possible (no)

HostbasedAcceptedKeyTypes : type de clefs accepté : edcsa, rsa...

HostbasedAuthentication : authentification sur la clef par host (pas par user)

HostKey / HostCertificate : localisation des fichiers de clefs ou certificatss

IPQoS : limitation de service via débit et/ou délai

Kerberos Authentication : activation de l'authentification via kerberos

ListenAddress : interface/ip d'écoute

LoginGraceTime : délai pour s'authentifier (120 secondes par défaut)

LogLevel : niveau de logs

Match : permet de conditionner une liste d'acions sous condition

MaxSessions : connexions permisses par connexion réseau

PermitEmptyPasswords : permettre un password vide

PermitOpen : quel port forwarding est autorisé

PermitRootLogin : autorisé la connexion en tant que root via ssh (défaut prohibit-password)

PermitUserRC : permettre l'utilisation d'un ssh rc (~/.ssh/rc) = similaire à profile

Port : spécifier le port d'écoute du serveur ssh

PrintLastLog : spécifie la denrière connexion réalisé sur le serveur à la connexion suivante

PrintMotd : affichage d'un message d'accueil (similaire à banner)

PubkeyAcceptedKeyTypes : type de clefs publiques autorisées

PubkeyAuthentication : autoriser ou non l'authentification par clef

StrictModes : vérifie les fichiers et directories avant d'accepter la connexion

SyslogFacility : format des logs

UsePAM (Pluggable Authentication Module) : utilisation du module PAM

X11Forwarding : authoriser le forward x11 (serveur graphique)</pre>



<p>A savoir qu&#8217;une partie de ces paramètres peuvent être spécifiques à certains utilisateurs ou groupes. Attention pour réaliser <strong>ce cas d&#8217;utilisation vous devez utiliser 2 Match</strong>. Le premier pour spécifier votre bloc aux caractéristiques particulières, le second pour revenir à ALL c&#8217;est à dire applicable à tous les utilisateurs.</p>



<pre class="wp-block-preformatted">Match User xavki
Banner /etc/banner.txt
X11Forwarding no
Match All</pre>



<p>Je le répète si vous modifiez une configuration SSH ouvrez toujours deux sessions. Cela vous évitera de vous couper la patte et en cas d&#8217;erreur de revenir en arrière.</p>



<p>Une fois la modification réalisée vous pouvez redémarrer le service systemd qui le gère : </p>



<p><code>sudo systemctl restart sshd</code></p>



<p>Ne vous inquiétez pas, <strong>le restart maintient les connexions actives</strong>.</p>



<h2 class="wp-block-heading">Connexion avec un client</h2>



<p>Là encore très simplement on va utiliser apt notre gestionnaire de paquets :</p>



<p><code>sudo apt install openssh-client</code></p>



<p>Ensuite c&#8217;est très facile de vous connecter à un serveur ssh. Si celui-ci accepte une connexion avec le mot de passe du user distant vous pouvez tester et que le port ssh (22) accepte les connexions externes (ou au moins la votre) : </p>



<p><code>ssh myuser@monhost</code></p>



<p>Bien sûr il <strong>n&#8217;est pas recommandé d&#8217;utiliser le mot de passe pour vous connecter</strong>. En général on autorise peu d&#8217;utilisateurs à se connecter avec un mot de passe sur un serveur ssh (voir pas du tout).</p>



<p>Nous apprendrons dans un prochain article comment <strong>créer ce que l&#8217;on appelle une clef ssh</strong> qui finalement repose sur deux clefs : publique et privée.</p>



<p>N&#8217;hésitez pas à regarder les tutoriels de la chaine xavki ;). Vous pouvez aussi me soutenir en devenant <a href="https://www.youtube.com/channel/UCs_AZuYXi6NA9tkdbhjItHQ/join">membre de celle-ci</a> ou encore simplement liker et partager ces vidéos.</p>
<p>L’article <a href="https://xavki.blog/formation-ssh-bases-debuter/">Formation SSH, les bases&#8230;</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[Sécurité] : scapy &#8211; scanner les réseaux wifi (SSID) et leur adresse MAC</title>
		<link>https://xavki.blog/securite-scapy-scanner-les-reseaux-wifi-ssid-et-leur-adresse-mac/</link>
		
		<dc:creator><![CDATA[xavki]]></dc:creator>
		<pubDate>Fri, 30 Nov 2018 09:33:29 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Sécurité]]></category>
		<guid isPermaLink="false">http://xavki.blog/?p=623</guid>

					<description><![CDATA[<p><img width="4032" height="3024" src="https://xavki.blog/wp-content/uploads/2018/08/img-3211.jpg" class="attachment- size- wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" fetchpriority="high" srcset="https://xavki.blog/wp-content/uploads/2018/08/img-3211.jpg 4032w, https://xavki.blog/wp-content/uploads/2018/08/img-3211-300x225.jpg 300w, https://xavki.blog/wp-content/uploads/2018/08/img-3211-768x576.jpg 768w, https://xavki.blog/wp-content/uploads/2018/08/img-3211-1024x768.jpg 1024w, https://xavki.blog/wp-content/uploads/2018/08/img-3211-1568x1176.jpg 1568w" sizes="(max-width: 4032px) 100vw, 4032px" />Scapy, un mot qui peut faire peur car fait référence à certaines pratiques obscures en matière de sécurité. Effectivement, scapy fait partie des outils de base des hackers&#8230; peu importe leur couleur. Retrouvez la documentation en ligne ici et mes... <a href="https://xavki.blog/securite-scapy-scanner-les-reseaux-wifi-ssid-et-leur-adresse-mac/" class="suite"><i class="fal fa-long-arrow-right"></i></a></p>
<p>L’article <a href="https://xavki.blog/securite-scapy-scanner-les-reseaux-wifi-ssid-et-leur-adresse-mac/">[Sécurité] : scapy &#8211; scanner les réseaux wifi (SSID) et leur adresse MAC</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></description>
										<content:encoded><![CDATA[<img width="4032" height="3024" src="https://xavki.blog/wp-content/uploads/2018/08/img-3211.jpg" class="attachment- size- wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" loading="lazy" srcset="https://xavki.blog/wp-content/uploads/2018/08/img-3211.jpg 4032w, https://xavki.blog/wp-content/uploads/2018/08/img-3211-300x225.jpg 300w, https://xavki.blog/wp-content/uploads/2018/08/img-3211-768x576.jpg 768w, https://xavki.blog/wp-content/uploads/2018/08/img-3211-1024x768.jpg 1024w, https://xavki.blog/wp-content/uploads/2018/08/img-3211-1568x1176.jpg 1568w" sizes="auto, (max-width: 4032px) 100vw, 4032px" /><p>Scapy, un mot qui peut faire peur car fait référence à certaines pratiques obscures en matière de sécurité. Effectivement, scapy fait partie des outils de base des hackers&#8230; peu importe leur couleur. Retrouvez <a href="https://scapy.readthedocs.io/en/latest/index.html">la documentation en ligne ici</a> et <a href="https://xavki.blog/codes-et-scripts-python/">mes autres post python ici</a>.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-624" src="http://xavki.blog/wp-content/uploads/2018/08/img-3211.jpg" alt="IMG-3211" width="4032" height="3024" srcset="https://xavki.blog/wp-content/uploads/2018/08/img-3211.jpg 4032w, https://xavki.blog/wp-content/uploads/2018/08/img-3211-300x225.jpg 300w, https://xavki.blog/wp-content/uploads/2018/08/img-3211-768x576.jpg 768w, https://xavki.blog/wp-content/uploads/2018/08/img-3211-1024x768.jpg 1024w, https://xavki.blog/wp-content/uploads/2018/08/img-3211-1568x1176.jpg 1568w" sizes="auto, (max-width: 4032px) 100vw, 4032px" /></p>
<p>Scapy permet notamment de faire de nombreuses opérations sur les réseaux comme sniffer, envoyer des paquets, scanner&#8230;</p>
<p>Ne vous inquiétez pas je ne suis pas obscure. Il s&#8217;agit simplement de l&#8217;envie de découvrir cet outil dont on entend si souvent parler. Aujourd&#8217;hui j&#8217;ai voulu découvrir comment scanner les réseaux wifi autour de moi (à priori rien d&#8217;illégale là-dedans&#8230; après cela dépend de ce que l&#8217;on fait avec le scan).</p>
<p>Première chose à faire installer scapy :</p>
<pre>pip install scapy</pre>
<p>C&#8217;est donc un simple module que je peux ajouter à python.</p>
<p>Je me reporte ensuite à <a href="https://linuxsecurityblog.com/2016/02/04/sniffing-access-points-and-its-mac-addresses-using-python/">cet article</a> qui propose de scanner les réseaux wifi. Il me faut donc installer aircrack-ng pour avoir accès à la comande airmon-ng. Aircrack est un binaire qui permet de réaliser de nombreux opérations de pénétrations de réseaux wifi (cracjing de clé&#8230;).</p>
<pre>└─ $ ▶ sudo apt-get install aircrack-ng</pre>
<p>Airmon-ng va nous permettre de devenir observateur du réseau (sans action dessus). Je lance donc airmon sur mon interface wifi :</p>
<pre>sudo airmon-ng start wlp3s0</pre>
<p>Voilà pour la première étape donc. Maintenant il faut créer un fichier python qui va utiliser le module scapy (je me reporte à la page citée précédemment&#8230; on vera pour faire notre propre script plus tard).</p>
<p>Je créé un fichier scapy_scan.py avec ceci :</p>
<pre>from scapy.a:qll import *
ap_list = []
def packetRecup (pkt) :
    if pkt.haslayer (Dot11) :
        if pkt.type == 0 and pkt.subtype == 8 :
            if pkt.addr2 not in ap_list :
                ap_list.append(pkt.addr2)
                return "Réseau SSID: %s et MAC address: %s " %(pkt.info, pkt.addr2)
sniff(iface = "mon0" , prn = packetRecup)
</pre>
<p>Que contient ce script ?</p>
<ul>
<li>import de la totalité de scapy</li>
<li>création d&#8217;une liste ap_list</li>
<li>création de la fonction packetRecup</li>
<li>si pkt est un paquet sur le 802.11 (dot11) pour <a href="https://thepacketgeek.com/scapy-p-04-looking-at-packets/">en savoir plus sur l&#8217;objet paquet rendez-vous ici</a></li>
<li>ensuite on s&#8217;intéresse à l&#8217;entête du paquet avec son type et son sous-type (<a href="https://witestlab.poly.edu/blog/802-11-wireless-lan-2/">reportez vous ici pour des rappels sur l&#8217;entête de paquet WLAN</a>)</li>
<li>ajout à la liste l&#8217;adresse mac</li>
<li>puis affichage du résultat en indiquant le SSID et MAC address</li>
</ul>
<p>Conclusion : scapy est un outil qui à l&#8217;air simple à utiliser et à apprendre. Bien sûr il faut connaitre python avant toute chose et faire attention de ne pas partir sur des tentatives plus obscures dans l&#8217;utilisation de cet outil. Je pense que je me ferais encore quelques tests sur  mon réseau local notamment tenter de sniffer des paquets et de faire des envois car c&#8217;est un peu la base de l&#8217;outil.</p>
<p>Et vous vous utilisez scapy ?</p>
<p>L’article <a href="https://xavki.blog/securite-scapy-scanner-les-reseaux-wifi-ssid-et-leur-adresse-mac/">[Sécurité] : scapy &#8211; scanner les réseaux wifi (SSID) et leur adresse MAC</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
