OWASP

OWASP (Open Web Application Security) is a charity and non-profit organization. It is a global community dedicated to promoting knowledge to improve web application security. Its mission is to share information and free ways to train and make the right decisions about securing applications for individuals, professionals, universities and government agencies.

OWASP is known for publishing various documents, including the OWASP top 10, of which I will give you a brief description. This is a document that OWASP published the last two times in 2013 and 2017. It includes a list of the top 10 application security risks faced by developers and organizations, with the goal of helping developers and security teams better secure the applications they build and deploy, as well as techniques and best practices for avoiding and fixing vulnerabilities. Most security audits and specialized tools are based on this Top 10.

Here is the 2017 list of the top 10 most common vulnerabilities:

1   Injections
2   Broken Authentication
3   Sensitive Data Exposure
 XML External Entities (XXE)
5   Broken Access Control
6   Security Misconfiguration
7   Cross-Site Scripting (XSS)
8   Insecure Deserialization
9   Using Components with Known Vulnerabilities
10 Insufficient Logging & Monitoring

I provide you with the official link of the OWASP document that you can go through and analyze as you wish. It contains this list, with very detailed explanations, scenarios, as well as countermeasures to apply to secure your web applications. It also contains some links that I invite you to consult.

However, you should know that these are only the 10 main risks for web applications, and that there are many other more or less advanced ones. Don’t hesitate to get information and to consult official websites, books, links, etc. to learn more.

Here is the official document of the OWASP top 10 of 2017 in the original and complete version: https://owasp.org/www-pdf-archive/OWASP_Top_10_2017_RC2_Final.pdf

0

Metasploitable


Metasploitable
is a Linux-based virtual machine.
It is intentionally vulnerable and can be used to be exploited legally. Metasploitable Project is created and maintained by Rapid7 Community (Metasploit-FrameWork Community). In simple terms, Metasploitable is a Linux-based operating system, specifically designed for practicing penetration testing skills, network security skills. It can be accessed online, or installed on a virtual machine, at which point you will need to download it by clicking on this link.

I will use it to make scan demonstrations with different tools in some following articles. It is of course obvious that to be able to use the different tools towards the vulnerable Metasploitable machine, this one will have to be booted!

0

Phases of a pentest


I will begin by summarizing the five phases of a penetration test.
The five phases refer to each primary step in the process of a penetration test. Here is a brief overview of the five phases of a penetration test

Phase 1: Reconnaissance.

Reconnaissance is the act of gathering preliminary data or information about your target. The data is collected to better plan your attack. Reconnaissance can be done actively (meaning you hit the target directly) or passively (meaning your reconnaissance is done by an intermediary). Phase 1 includes identifying the target, discovering the target IP address range, network, domain name, mail server, DNS records, etc.

Phase 2: Scanning.

The Scanning phase requires the use of technical tools to gather more information about your target, in this case. The information sought is more often about the systems that are in place. A good example would be the use of a vulnerability scanner on a target network. Phase 2 includes scanning the target for running services, open ports, firewall detection, vulnerability scanning, bone scan, etc.

Phase 3: Obtaining access.

Obtaining access in Phase 3 requires taking control in order to extract data from the target or using that target to then launch attacks on other targets. Phase 3 includes exploiting vulnerabilities, social engineering, etc.

Phase 4: Maintaining access.

Maintaining access requires taking the necessary steps to be able to stay in the target environment to gather as much data as possible. The attacker must remain stealthy in this phase, so as not to be caught while using the host environment. Phase 4 includes escalation of privileges, installation of backdoor on the target to be able to keep the acquired access and see to connect to the target at any time, etc.

Phase 5: Erasing the traces.

This final phase simply means that the attacker must take the necessary steps to remove any semblance of traces. Any changes that were made, permissions that were escalated, etc. should all revert to a state of non-recognition by the host network administrators.


We could also add two other phases:

A pre-engagement phase: which takes place before the recognition phase and which consists of defining with the client a perimeter of the penetration test that is going to be carried out, what is allowed to be done and what is totally forbidden, as well as the objectives.

A phase where we create a final report: which is of course in the last position. It will be to provide the customer with a documented report that will explain how and with which tools the pentest was performed, what flaws were discovered, what are the risks for the customer, and of course how to remedy these problems by explaining how to correct the various flaws discovered.

0

Télécharger gratuitement le manuel officiel de Kali LInux

 

Kali Linux est une distribution basée sur Debian. Elle est le successeur de Backtrack. C’est un projet maintenu par Offensive Security qui est orienté test d’intrusion, analyse forensique, ingénierie inversée, audit de sécurité etc…
Cette distribution est la distribution favorite des professionnels de la sécurité de l’information dans le monde entier, elle contient plus de 600 des meilleurs outils préinstallés. Offensive Security propose le téléchargement gratuit d’un document en Anglais de 344 pages qui est considéré comme le premier manuel officiel de Kali Linux.
Que vous soyez débutant ou confirmé ce document sera pour tout le monde une mine d’or que vous consulterez régulièrement pour vous guider ou vous rafraichir la mémoire. En outre ce document pourra servir de feuille de route, de référence technique et de guide d’études pour ceux qui souhaiteraient suivre la certification KLCP (Kali Linux Certified Professional) proposée par Offensive Security.

Sans plus attendre voici donc le liens pour télécharger gratuitement et légalement le manuel.

https://kali.training/downloads/Kali-Linux-Revealed-1st-edition.pdf

 

N’oubliez pas que l’utilisation des différents outils et techniques pourrait dans certaines circonstances vous mettre hors la loi. Veuillez respecter la législation en vigueur en France en suivant les consignes que j’ai publie dans l’article intitulé “Rappel des textes en vigueur concernant les atteintes aux systèmes de traitement automatisé de données

0

Scanner de ports en Python (Phase2)

 

 

Comme un scan de port n’est rien sans un petit banner grabbing. Je vous propose de compléter le script utilisé dans le premier article. Afin d’extraire les versions des différents services utilises par les ports ouverts découverts durant le scan de Metasploitable.

La partie intéressante destinée a la récupérations des différentes bannières se situe a la fin du code, juste après:

[pastacode lang=”python” manual=”if%20__name__%20%3D%3D%20’__main__’%3A%0A%20%20%20%20main()” message=”” highlight=”” provider=”manual”/]

 

Je remets pour informations le code au complet avec son extension.

[pastacode lang=”python” manual=”%23%20coding%3A%20utf-8%0A%0Aimport%20socket%0Afrom%20multiprocessing%20import%20Pool%0Afrom%20datetime%20import%20datetime%0A%0A%0Aopen_p%2C%20closed_p%20%3D%20%5B%5D%2C%20%5B%5D%0Areponse%20%3D%20%5B%22OPEN%20PORTS%22%2C%22CLOSED%20PORTS%22%2C%22SCANNING%20PORTS%22%2C%22TYPE%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%22SCANNING%22%2C%22ADDRESS%22%2C%22NUMBER%20OF%20PROCESSES%22%2C%22RANGE%20MIN%22%2C%22RANGE%20MAX%22%2C%22HOST%22%2C%22HAS%20IP%22%2C%22UNREACHABLE%22%5D%0A%0A%0A%0Atarget_ip%20%3D%20raw_input(%22%7B%7D%3A%20%22.format(reponse%5B5%5D))%0Atry%3A%0A%20%20%20%20ip%20%3D%20socket.gethostbyname(target_ip)%0A%20%20%20%20host%20%3D%20socket.gethostbyaddr(target_ip)%0A%20%20%20%20print%20%22%22%0A%20%20%20%20print%20%22%7B0%7D%20%7B1%7D%3A%20%7B2%7D%22.format(reponse%5B5%5D%2C%20reponse%5B10%5D%2C%20ip)%0A%20%20%20%20print%20%22%7B0%7D%20%3A%7B1%7D%22.format(reponse%5B9%5D%2C%20host%5B0%5D)%0A%20%20%20%20print%20%22%22%0Aexcept%3A%0A%20%20%20%20print%20%22%7B0%7D%20%7B1%7D%22.format(reponse%5B5%5D%2C%20reponse%5B11%5D)%0A%0Anum_procs%20%3D%20int(raw_input(%22%7B0%7D%3A%20%22.format(reponse%5B6%5D)))%0Aminp%20%3D%20int(raw_input(%22%7B0%7D%3A%20%22.format(reponse%5B7%5D)))%0Amaxp%20%3D%20int(raw_input(%22%7B0%7D%3A%20%22.format(reponse%5B8%5D)))%0Aprint%20%22%7B0%7D%3A%7B1%7D%5Cn%22.format(reponse%5B4%5D%2Cip)%0A%0A%0AstartTime%20%3D%20datetime.now()%0Aprint%20%22DEPART%20COMPTEUR%3A%20%22%2C%20startTime%0A%0A%0A%0Adef%20scan(arg)%3A%0A%20%20%20%20target_ip%2C%20port%20%3D%20arg%0A%20%20%20%20sock%20%3D%20socket.socket(socket.AF_INET%2C%20socket.SOCK_STREAM)%0A%20%20%20%20sock.settimeout(.17)%0A%20%20%20%20result%20%3D%20sock.connect_ex((target_ip%2Cport))%0A%20%20%20%20if%20result%20%3D%3D%200%3A%0A%20%20%20%20%20%20%20%20sock.shutdown(2)%0A%20%20%20%20%20%20%20%20return%20port%2C%20True%0A%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20return%20port%2C%20False%0A%20%20%20%20%20%20%20%20sock.close%0A%0A%0Adef%20main()%3A%0A%20%20%20%20ports%20%3D%20range(minp%2C%20maxp%2B1)%0A%20%20%20%20pool%20%3D%20Pool(processes%3Dnum_procs)%0A%20%20%20%20print%20%22%7B0%7D%3A%20%22.format(reponse%5B2%5D)%0A%20%20%20%20for%20port%2C%20status%20in%20pool.imap_unordered(scan%2C%20%5B(target_ip%2C%20port)for%20port%20in%20ports%5D)%3A%0A%20%20%20%20%20%20%20%20print%20port%2C%0A%20%20%20%20%20%20%20%20open_p.append(port)if%20status%20else%20closed_p.append(port)%0A%0A%0A%0Aif%20__name__%20%3D%3D%20’__main__’%3A%0A%20%20%20%20main()%0A%0A%0Aprint%20%22%5Cn%5CnOPEN%20PORTS%3A%20%22%2C%20open_p%2C%22%5Cn%22%0Aprint%20%22BANNER%20GRABING…%5Cn%22%0A%0Afor%20elements%20in%20open_p%3A%0A%20%20%20%20try%3A%0A%20%20%20%20%20%20%20%20print%20%22%7B0%7D%20%7B1%7D%20%3A%7B2%7D%22.format(elements%2Creponse%5B3%5D%2Csocket.getservbyport(elements))%0A%20%20%20%20except%3A%0A%20%20%20%20%20%20%20%20continue%0A%20%20%20%20addr%20%3D%20(target_ip%2Celements)%0A%20%20%20%20sock%20%3D%20socket.socket()%0A%20%20%20%20sock.settimeout(.17)%0A%20%20%20%20sock.connect_ex(addr)%0A%20%20%20%20sock.send%20(%22GET%20%2F%20HTTP%2F1.0%5Cr%5CnHost%3A%20%22%20%2B%20target_ip%20%2B%20%22%5Cr%5Cn%5Cr%5Cn%22)%0A%20%20%20%20try%3A%0A%20%20%20%20%20%20%20%20print%20sock.recv(1024)%2C%20%22%5Cn%22%0A%20%20%20%20%20%20%20%20sock.close()%0A%20%20%20%20except%3A%0A%20%20%20%20%20%20%20%20print%20%22NON3%5Cn%22%0A%20%20%20%20%20%20%20%20sock.close%0A%0Aprint%20%22%5Cn%5Cn%5CnTOTAL%20TIME%3A%20%22%2Cdatetime.now()%20-%20startTime” message=”” highlight=”” provider=”manual”/]

 

Un bref aperçu d’un scan de Metasploitable  affichera comme prévu la liste des ports ouverts, mais aussi leur versions des services. Voici donc une copie d’écran des informations intéressantes extraites par ce script.

 

Vous pourrez maintenant utiliser ce script ainsi  que les informations retournées par celui-ci dans vos propres CTF ou test de vulnérabilité afin de vérifier quels sont les ports d’ouverts et quelles sont les version des services. Mais aussi si les versions des différents services sont vulnérables. Grâce aux différentes ressources disponible sur internet que je vous ai énumérées ici.

Je vous invite a explorer et disséquer ce script afin de comprendre son fonctionnement. Je vous invite aussi a le modifier car il n’est évidement pas parfait (il est loin de l’être). Mais il serait sympa de mentionner sa source en ajoutant un commentaire avec le lien de cet article ainsi que le nom de mon blog si vous comptez l’utiliser.

 

N’oubliez pas que l’utilisation des différents outils et techniques pourrait dans certaines circonstances vous mettre hors la loi. Veuillez respecter la législation en vigueur en France en suivant les consignes que j’ai publie dans l’article intitulé “Rappel des textes en vigueur concernant les atteintes aux systèmes de traitement automatisé de données

0

Le Département de la défense des États-Unis se paye des hackers.

Une première pour le gouvernement Américain. En 2016 le D.O.D département de la défense des États-Unis s’est lancé dans son premier bug bounty “Hack the Pentagon program “, proposant par le biais du site HACKERONE a des Hackers “white hat” de tester la solidité de leur différents réseaux publics pour une durée de 24 jours. S’ensuivirent d’autre bug bounty incluant celui de l’US Army en 2016, qui a duré un peu plus de 3 semaine, ainsi que celui de l’US AirForce en avril 2017 qui a duré plus de 25 jours.

Pour le programme “Hack The Pentagon”. Parmi les 200 rapports  soumis, 138 ont été jugés “légitimes, uniques et éligibles à une prime”, faisant gagner aux 250  hackers éligibles a ce challenge un total de 75.000 $ en récompenses totales. Le premier rapport ayant été remis au bout de 13 minutes. Le plus jeune participant avait 14 ans et le plus âgé en avait 53. Parmi les différentes vulnérabilité découvertes une des plus critiques était une faille de type injection SQL qui fait partie du top 10 des vulnérabilités les plus répandues selon le top 10 de l’OWASP.

Le programme “Hack The Army” avait quand a lui 371 participants éligible a ce challenge  qui ont soumis un total de 416 rapports. Le premier rapport ayant été remis après seulement 5 minutes. La totalité des rapports jugés “légitimes, uniques et éligibles à une prime” au nombre de 118 on fait gagner aux hackers durant cette campagne une somme totale de 100.000$. Une vulnérabilité extrêmement critique a été découverte par un pirate informatique qui enchaînait créativement une série de bugs. Ce qui lui a permis d’accéder a un réseau interne au département de la défense des États-Unis, et qui n’aurait du être accessible qu’avec des informations d’identifications spéciales.

Ce fut ensuite le tour du programme “Hack The US Air Force” qui fut aussi très productif. Le premier rapport a été remis au bout de 1 minute. 272 pirates éligibles a ce challenge  participèrent a ce bug bounty.  Parmi le rapports jugés “légitimes, uniques et éligibles à une prime” pas moins de 207 vulnérabilités uniques ont été découvertes. Faisant gagner un total de pas moins de 130.000$ aux divers participants. Un participant âgé de 17 ans a même trouvé plus de 30 vulnérabilités a lui tout seul. Un  “Hack The US Air Force 2.0” à également eu lieux entre décembre 2017 et janvier 2018.

Avant que le D.O.D ait commencé ses programmes de bug bounty, il aurait été impensable car totalement illégal pour ces pirates de faire une recherche de vulnérabilité sur les différents sites web publics du département de la défense, même si leur but avait été de dévoiler les différentes failles au D.O.D.

Voici donc un bel exemple de prise de conscience en matière de cybersecurité en impliquant légalement les Hackers “White Hat” dans le processus de reconnaissance des problèmes. Une phase très importante dans la sécurisation des réseaux. Un bel exemple que devraient suive tous les Opérateurs d’Importance Vitale (O.I.V), ainsi que les différents organismes gouvernementaux.

0

Recherches de vulnérabilités

Dans cet article je vais expliquer comment faire une recherche manuelle de vulnérabilités. Avant tout il faudra utiliser un outil de type NMAP, lequel permettra de scanner les différents ports d’une cibles. J’utiliserais pour illustrer cette recherches de vulnérabilités, les informations contenues dans cet article, que j’avais rédige pour faire une démonstration d’un scan de Metasploitable.

En commençant par la lecture du rapport final du scan de Metasploitable. J’utiliserait simplement le premier port ouvert découvert par NMAP durant le scan, et je vous laisserais le soin de continuer vos recherches par vous même pour les autres ports.

Voici une copie du rapport final.

 

Le premier port ouvert est: le port 21/tcp utilisant le service FTP dans sa version VSFTPD 2.3.4

Grâce a ces informations Il est maintenant possible de vérifier la présence d’une vulnérabilité en faisant une recherche manuelle sur le site https://www.exploit-db.com avec comme terme de recherches la version du service: VSFTPD 2.3.4.

 

Exploit-db nous retournes un résultat. Cliquez dessus pour afficher les détails.

 

 

Une vulnérabilité est présente dans la version VSFTPD 2.3.4 et elle est exploitable par l’intermédiaire d’un script, qui après inspection indique:

<<This file is part of the Metasploit Framework and may be subject to
redistribution and commercial restrictions. Please see the Metasploit
Framework web site for more information on licensing and terms of use.
http://metasploit.com/framework/>>

Qui veut dire que ce script fait partie du framework metasploit qu’il sera possible d’utiliser en phase d’exploitation.

Il est aussi indiqué dans le même script que:

<<This module exploits a malicious backdoor that was added to the VSFTPD download
archive. This backdoor was introdcued into the vsftpd-2.3.4.tar.gz archive between
June 30th 2011 and July 1st 2011 according to the most recent information
available. This backdoor was removed on July 3rd 2011.>>

Ce qui veut dire q’un backdoor a été ajouté à la version vsftpd 2.3.4 entre le 30 juin 2011 et le 1er juillet 2011. il aurait été supprimé le 3 juillet 2011.

En continuant la recherches d’information concernant la faille présente dans VSFTPD 2.3.4, il sera judicieux d’utiliser Google avec les termes suivants: vsftpd 2.3.4 vulnérabilité (en n’omettant pas d’activer l’option “recherche en français uniquement”).

Le premier lien qui devrait s’afficher devrais être: https://vigilance.fr/vulnerabilite/vsftpd-backdoor-de-la-version-2-3-4-10805

 

 

Une brève lecture de la description de la vulnérabilité retournera des informations très inintéressantes.

Description de la vulnérabilité
Le code source du serveur FTP vsftpd est hébergé sur le site vsftpd.beasts.org. Cependant, entre le 30 juin 2011 et le 3 juillet 2011, un backdoor a été ajouté dans ce code source. Ce backdoor détecte si le nom de login commence par “:)”, et ouvre un shell sur le port 6200/tcp. Un attaquant distant peut donc employer ce backdoor, afin d’accéder au système.

La constatation est sans appel. Cette vulnérabilité permettrait donc grâce a quelques simples manipulations d’accéder au système ainsi que de passer en mode root afin de prendre le contrôle total de la machine…

Tentez maintenant de trouver quelles sont les autres services qui sont vulnérables, et n’oubliez pas que plus vous trouverez d’information il vous sera facile d’exploiter les différentes failles. Pour vous aider vous pourrez utiliser différents sites web dont (liste non exhaustive):

https://www.exploit-db.com
https://cve.mitre.org
https://nvd.nist.gov
https://www.rapid7.com/db/search
https://www.cert.ssi.gouv.fr
https://www.cvedetails.com
https://www.google.com/

 

ATTENTION: utilisez toujours ces informations et ces techniques dans un cadre légal. Toute entrave a cette régle pourait vous étre tres douloureuse. les amendes et les peines de prison étant trés lourdes

0

Comment et pourquoi créer un mot de passe complexe

Grâce a différents outils pour tester la solidité des mots de passe mis a disposition par Kaspersky a cette adresse : https://password.kaspersky.com/fr/ et le site web howsecureismypassword a cette adresse https://howsecureismypassword.net. Je vous propose de vous exposer le temps pris pour venir a bout de différents types de mots de passe, puis ensuite vous expliquer comment améliorer leur qualité afin d’augmenter le délai pour éventuellement forcer un potentiel pirate à abandonner son attaque et passer a une cible suivante. La durée pour venir a bout d’un mot de passe en utilisant un ordinateur de bureau standard peut varier selon sa longueur et sa complexité. Cette durée pouvant drastiquement réduite par l’utilisation de différentes techniques ainsi que de matériel plus performant.

Temps de crackage estimé par Kaspersky

1234                                              Environ 1 seconde
password                                          Environ 1 seconde
motdepasse                                        Environ 2 minutes
jean-pierre                                       Environ 11 jours
M8*o,3t%=d5E                                      Environ 4 siecles

 

Temps de crackage estimé par howsecureismypassword

1234                                              Immédiat
password                                          Immédiat
motdepasse                                        Environ 59 minutes
jean-pierre                                       Environ 5 mois
M8*o,3t%=d5E                                      Environ 485 mille années

 

Comme vous pouvez le constater les deux sites ne retournent pas les mêmes temps, car ils utilisent surement des méthodes de calcul alternatives. Il est tout de même intéressant de voire comment les deux méthodes de calcul nous confortent dans l’idée que plus le mot de passe est long et plus il comporte de caractères spéciaux, plus la durée prévue pour en venir a bout augmente. Je vais donc ci dessous vous dévoiler quelques astuces pour créer un mot de passe un peu plus sécurisé. Je vous inviterais a tester vous même la solidité des mots de passe que vous aurez crée grâce a cette simple technique grâce aux outils décrits en début d’article.

Comment creer un bon mot de passe:

1 – N’utilisez jamais un mot isolé qui existe dans un dictionnaire
2 – N’ utilisez pas de Prénom, Nom de famille, seul comme mot de passe
3 – N’utilisez pas de suite de chiffres, comme une date de naissance comme mot de passe

4 – Trouvez vous une phrase ou un mot assez long et notez le  en enlevant les espaces (mélangez des majuscules et des minuscules aléatoirement)
5 – Notez en dessous une série de chiffres
6 – En dessous ajoutez une ligne avec des caractères spéciaux
7 – Mélangez le tout
8 – TRÈS IMPORTANT: Utilisez un mot de passe différent pour chaque compte

exemple:

4 - MoNMotDePasSe
5 - 45821
6 - @-/<ù*

 

j’utiliserais le mélangeur de lettres online http://www.maxi-pedia.com/word+letter+mixer+disorganizer pour créer mon mot de passe en entrant sur une seule ligne nos trois entrées comme suit:

MoNMotDePasSe45821@-/<ù*

 

En cliquant ensuite sur “Disorganize the text” l’application nous affichera un mot de passe de type :

7 - M-oN8@eMe/SD1<24ùosa5Pt*
7 - MùMo1@eSP2ea8N-Ds45t/<o*
7 - Mo</5P-a8eM@4ùSN21stDeo*

 

Ces trois mots de passe on été générés avec la même base, j’ai juste cliqué plusieurs fois pour avoir des résultats différents. Testons maintenant leur solidité.

Temps de crackage estimé par Kaspersky

M-oN8@eMe/SD1<24ùosa5Pt*                               + de 10000 Siècles
MùMo1@eSP2ea8N-Ds45t/<o*                               + de 10000 Siècles
Mo</5P-a8eM@4ùSN21stDeo*                               + de 10000 Siècles

 

Temps de crackage estimé par howsecureismypassword

M-oN8@eMe/SD1<24ùosa5Pt*                               Undecillion (1 suivi de 66 zéros) d'années
MùMo1@eSP2ea8N-Ds45t/<o*                               Undecillion (1 suivi de 66 zéros) d'années
Mo</5P-a8eM@4ùSN21stDeo*                               Undecillion (1 suivi de 66 zéros) d'années

 

en réduisant de moitié la longueur vous arriverez a une estimation de temps raisonnable pour la longueur

Temps de crackage estimé par Kaspersky

M-oN8@eMe/S                                            33 ans
MùMo1@eSP2e                                            33 ans
Mo</5P-a8eM                                            33 ans

 

Temps de crackage estimé par howsecureismypassword

M-oN8@eMe/S                                            5 mille ans
MùMo1@eSP2e                                            5 mille ans
Mo</5P-a8eM                                            5 mille ans

 

Vous constatez comme avant que les résultats différent selon la méthode de calcul. Il en ressort néanmoins a nouveau que plus le mot de passe est long et complexe, plus le temps de calcul est long. Voila j’espère que ces petites astuces vous aideront dans votre choix pour vous futurs mot de passe en n’oubliant pas de tester leur résistance grâce aux outils cités !

0

Testez la sécurité de votre ordinateur sous Linux

Lynis est un utilitaire open source d’audit de la configuration sécurité des systèmes d’exploitation basés sur UNIX (Linux, Max, etc…). Son utilisation se fait par le terminal en lignes de commande. Il permet par la mise en place de multiples tests, d’évaluer la sécurité de votre système. En générant un rapport final Lynis vous permettra de consolider les poins faibles découverts en affichant des alertes “warnings”, des suggestions et un index de sécurisation “Hardening index”. Dans ce mini tutoriel je vous propose de vous guider dans l’utilisation de ce logiciel grâce a un audit d’un système d’exploitation Ubuntu.
Avant tout vous devrez installer Lynis, grâce a la commande suivante que vous entrerez dans le terminal: sudo apt-get install lynis
Ensuite je vous propose de faire connaissance avec les différentes options offertes par Lynis en affichant l’aide grâce a la commande: lynis -h

lynis -h

Je vais maintenant vous faire la démonstration d’un audit système de Ubuntu en mode ” NON-PRIVILEGED SCAN MODE ” en entrant la commande: lynis audit system.
Pour auditer en mode “PRIVILEGED SCAN MODE” il suffira d’ajouter “sudo” devant la commande “lynis audit system”.

lynis audit system

 

A la fin du processus d’audit vous pourrez constater qu’il n’y a aucune alerte chez moi, mais des diverses suggestions.

 

Vous aurez remarqué différentes références derrière les diverses suggestions. Elles vont servir a afficher plus de détails grâce a la commande: lynis show details TEST-ID
Par exemple pour la référence “PROC-3612” il faudra entrer la commande:  lynis show details PROC-3612

 

Vous verrez aussi le fameux “Hardening index” qui vous permettra de vous faire une idée globale de la bonne configuration de votre Système d’exploitation. Plus l’index est haut mieux c’est.

 

Voila ce mini tutoriel est maintenant termine je vous laisse essayer par vous même en espérant vous avoir aidé un peu a sécurises votre système basé sur UNIX!

 

0

9 astuces pour protéger votre ordinateur sous Windows

Si vous faites partie de la majorité des utilisateurs d’un ordinateur ayant comme système d’exploitation Windows, vous serez sûrement intéressé par la sécurisation de votre PC. En effet la multiplication des diverses attaques informatiques ces dernieres années on un impact non négligeable pour la securité de nos données, de notre portefeuil, mais aussi pour notre sécurité voire meme notre santé! Par ces quelques gestes simples, je vous propose d’utiliser différentes techniques que j’appellerais plutôt du bon sens ! Vous serez ainsi en mesure de créer un environnement qui vous permettra de lutter efficacement pour sécuriser votre ordinateur. Sachez néanmoins qu’aucune technique ne permet à ce jour de sécuriser un ordinateur a 100%.

Voici sans attendre une liste de choses a faire pour vous protéger contre différentes attaques :

  1. Mettez des que possible et a chaque fois que disponible a jour votre système d’exploitation avec Windows update.
  2. Installez un antivirus, gratuit ou payant. En gardant a l’esprit que les deux se valent, avec quelques options supplémentaires pour les antivirus payant. Pour ma part j’utilise un antivirus gratuit et qui fait très bien son affaire.
  3. Faites une mise a jour régulière de votre antivirus.
  4. Installez une pare-feux (si votre antivirus n’en intègre pas).
  5. Faite en sorte de créer un point de restauration régulièrement
  6. Vérifiez et sauvegardez régulièrement vos documents importants sur un support externe, genre une clef USB ou un disque externe. pour plus de sécurité stockez sur un support qui n’est pas relié a internet.
  7. Portez une attention particulière a ce que vous faites sur votre ordinateur. Vérifiez bien sur quels sites web vous visitez et sur quels liens vous cliquez (surtout venant d’un mail)
  8. Scannez manuellement avec votre antivirus chaque pièce jointe et chaque logiciel que vous auriez téléchargé AVANT de l’ouvrir. Faites pareil pour chaque document et logiciel venant d’un support externe (clef USB, CD/DVD, Disque dur externe…) que vous souhaitez installer sur votre ordinateur.
  9. Utilisez des mots de passe complexes et suffisamment long, en évitant d’utiliser des mots existant dans des dictionnaires, en évitant les dates de naissance, les prénoms. Utilisez de préférence un mélange de chiffres, de lettres (minuscules et majuscules), et de caractères spéciaux du type “é!:%$*”  dans un ordre désordonné!
0

Scanner de ports en Python

Un petit scanner de ports que je me suis amusé a scripter il y a un bout de temps . Ce scanner utilise les modules socket qui sont des objets permettant d’ouvrir une connexion avec une machine locale ou distante et d’échanger avec elle, et multiprocessing qui permet de créer plusieurs processus séparés, et de les orchestrer pour qu’ils travaillent ensemble. Ce script est simple d’utilisation mais pourra bien sur être amélioré de plusieurs manières. Je vous invite a d’abord bien le regarder et a vous renseigner sur les différentes techniques grâce a la documentation officielle de python puis bien sur de le tester. Vous verrez il n’est pas parfait mais il fait son affaire et j’ai grâce au module multiprocessing rendu un tout petit peu plus rapide qu’il ne l’était sans !

# coding: utf-8

import socket
from multiprocessing import Pool


open_p, closed_p = [], []
reponse = ["OPEN PORTS","CLOSED PORTS","SCANNING PORTS","TYPE",
           "SCANNING","ADDRESS","NUMBER OF PROCESSES","RANGE MIN","RANGE MAX","HOST","HAS IP","UNREACHABLE"]



target_ip = raw_input("{}: ".format(reponse[5]))
try:
    ip = socket.gethostbyname(target_ip)
    host = socket.gethostbyaddr(target_ip)
    print ""  
    print "{0} {1}: {2}".format(reponse[5], reponse[10], ip)  
    print "{0} :{1}".format(reponse[9], host[0])
    print ""
except:    
    print "{0} {1}".format(reponse[5], reponse[11])

num_procs = int(raw_input("{0}: ".format(reponse[6])))
minp = int(raw_input("{0}: ".format(reponse[7])))
maxp = int(raw_input("{0}: ".format(reponse[8])))
print "{0}:{1}\n".format(reponse[4],ip)


def scan(arg):
    target_ip, port = arg
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)    
    sock.settimeout(.11)  
    result = sock.connect_ex((target_ip,port))
    if result == 0:             
        sock.shutdown(2)
        return port, True
    else:       
        return port, False
    sock.close
   

def main():  
    ports = range(minp, maxp+1)
    pool = Pool(processes=num_procs)
    print "{0}: ".format(reponse[2])
   
    for port, status in pool.imap_unordered(scan, [(target_ip, port)for port in ports]):
        print port,
        open_p.append(port)if status else closed_p.append(port)
        

if __name__ == '__main__':
    main()
   
print "\n\n{0}".format(reponse[0])
for elements in open_p:
    print "{0} {1} :{2}".format(elements,reponse[3],socket.getservbyport(elements))

 

Pour la démonstration je l’ai enregistré sous le nom “scanner.py” puis entré la commande suivante dans le terminal de linux: python scanner.py
Il suffit ensuite de suivre les instructions affichées pour l’utiliser. Pour l’exemple j’ai utilise les réglages suivant

  • ADDRESSE: 192.168.1.17 qui est celle de metasploitable sur ma machine virtuelle
  • NOMBRE DE PROCESS: 10
  • RANGE MIN: 10
  • RANGE MAX:500

Le résultat retournes la liste des différents ports ouverts que le script a découvert ainsi que les services utilisés par chaque port. Il serait intéressant de modifier le script pour pouvoir choisir entre une gamme de ports (range) et une liste de ports choisis. Il serait tout aussi intéressant de faire en sorte que ce script affiche les versions des services trouvés, ce qui pourrait ensuite servir a trouver différentes failles qu’il serait possible d’exploiter ultérieurement !

Je n’ai volontairement pas donné d’explications quand au fonctionnement du script pour vous laisser la chance de rechercher par vous même dans la documentation officielle ou sur d’autres sites, et de tester les différentes parties en les disséquant et les modifiant a votre guise.

Je rappellerais comme a chaque fois d’utiliser les différents outils dans la légalité. L’inverse pouvant vous coûter très cher (Voire sur Légifrance)

0

Phishing

Le mot « phishing » est compose des mots anglais « password » qui signifie « mot de passe » , « harvesting » qui signifie « récolte » et «fishing » qui signifie « péche ».

Le phishing ou en français hameçonnage est une technique de piratage par fraude d’émail et de sites web. Les mails se présentent sous la forme de fausses notifications provenant de banques, de fournisseurs, de systèmes de paiement électronique et d’autres organisations. Les mails renvoyant en général vers des sites web, étant habituellement une copie exacte de sites web officiels…. Le message invitera le destinataire pour des motifs urgents à entrer ou à mettre à jour ses informations personnelles.Il peut s’agir, par exemple, d’accéder à des mots de passe de différents sites , d’accéder a des données de comptes courriel, ou aux données d’accès à la banque électronique. Les raisons  sont généralement liées à (faussement) la perte de données, aux pannes de système et à des choses similaires.

Quelques techniques de contre mesures.

En premier lieu. Si vous recevez un émail vous demandant des renseignements confidentiels, dites vous bien qu’aucun organisme ne vous demandera ce genre d’informations par mail. Vérifiez donc toujours quel est le véritable expéditeur (comment trouver l’expéditeur) , ne donnez simplement pas ce genre d’informations et contactez votre organisme pour les mettre au courant en leur fournissant une copie du mail (et de son expéditeur) et ou de l’adresse du site .

Deuxièmement. Si jamais vous aviez cliqué sur un lien provenant d’un mail de ce type. Vérifiez l’URL dans la barre d’adresse, vous remarquerez que celle ci n’est pas tout a fait pareil que l’original . ça veut tout dire c’est un site frauduleux.

Troisièmement. Les mails et les sites frauduleux sont souvent remplis (mais pas toujours) de fautes d’orthographe et diverses petites erreurs. Ça devrait aussi vous mettre la puce a l’oreille.

Quatrièmement. Faites des recherches sur votre moteur de recherche préféré concernant l’expéditeur du mail ou / et l’adresse (l’URL) du site concerné . Pour l’URL vous pourriez aussi trouvez des informations intéressantes en faisant un WHOIS. Faites un essai avec un site que vous connaissez et regardez bien les informations disponibles

Cinquièmement. Si vous avez un doute , changez immédiatement le mot de passe en allant sur le site officiel (n’oubliez pas de vérifier l’URL a chaque fois et d’utiliser les autres techniques pour être sur)

Un dernier point de sécurisation. Si disponible, activez TOUJOURS la double vérification qui existe par exemple sur Facebook et Gmail , mais aussi sur d’autres supports. Cela vous permettra de ne pas perdre l’accès a vos données sur les support proposant cette option au cas ou on aurait quand même réussi a vous soutirer un mot de passe , car la double vérification se fait par mot de passe ET par un SMS contenant un code de vérification qui change a chaque connexion que vous devrez entrer en supplément de votre mot de passe

0

OWASP

OWASP (Open Web Application Security) est une organisation caritative et un organisme a but non lucratif. c’est une communauté mondiale qui a pour but de promouvoir les connaissances pour améliorer la sécurité des applications web. Sa mission est de partager des informations et des moyens libres pour s’entraîner et prendre les bonnes décisions quand a la sécurisation des applications, aussi bien pour les particuliers que pour les professionnels, mais aussi pour les universités et les agences gouvernementales.

OWASP est connu pour la publication de différents documents, dont le OWASP top 10 duquel je vais vous faire une brève description. C’est un document que OWASP a publié les deux dernières fois en 2013 et en 2017. Il comprends une liste des 10 principaux risques de sécurité applicative rencontrés par les développeurs et les organisations, dans le but d’aider les développeurs et les équipes de sécurité à mieux sécuriser les applications qu’ils conçoivent et déploient, ainsi que les techniques et les meilleures pratiques pour éviter et corriger les vulnérabilités. La plupart des audits de sécurité et outils spécialisés se basent sur ce Top 10.

Voici la liste de 2017 du top 10 des failles les plus courantes:

  1. Injections
  2. Broken Authentication
  3. Sensitive Data Exposure
  4. XML External Entities (XXE)
  5. Broken Access Control
  6. Security Misconfiguration
  7. Cross-Site Scripting (XSS)
  8. Insecure Deserialization
  9. Using Components with Known Vulnerabilities
  10. Insufficient Logging & Monitoring

 

Je vous fournis le liens officiel du document OWASP que vous pourrez éplucher et analyser a souhait. Il contient cette liste, avec des explications très détaillées, des scénarios, ainsi que les contre-mesures a appliquer pour sécuriser un maximum vos applications web. Il contient aussi quelques liens que je vous invite a consulter.

Sachez néanmoins que ce ne sont que les 10 principaux risques pour les applications web, et qu’il en existe bien d’autre plus ou moins évoluées. N’hésitez pas a vous renseigner et a consulter les sites officiels , livres, liens, etc pour en apprendre plus.

Voici le document officiel du OWASP top 10 de 2017 en version originale et complète: https://www.owasp.org/images/7/72/OWASP_Top_10-2017_%28en%29.pdf.pdf