Catégorie : Sécurité

20 juin 2017 /

Pour cela nous devons installer exiv2:

apt-get install -y exiv2

Nous pouvons maintenant voir les métadonnées d’une photo via la commande suivante:

exiv2 /Photo/Divers/2016-12-04_13.34.46.jpg

File name : /Photo/Divers/2016-12-04_13.34.46.jpg
File size : 1114471 Bytes
MIME type : image/jpeg
Image size : 2048 x 1536
Camera make : Oneplus
Camera model : One
Image timestamp : 2016:12:04 13:34:45
Image number :
Exposure time : 1/500 s
Aperture : F2.8
Exposure bias : 0 EV
Flash : No flash
Flash bias :
Focal length : 3.6 mm
Subject distance:
ISO speed : 100
Exposure mode : Aperture priority
Metering mode : Center weighted average
Macro mode :
Image quality :
Exif Resolution : 2048 x 1536
White balance : Auto
Thumbnail : image/jpeg, 41311 Bytes
Copyright :
Exif comment :

Pour voir toutes les métadonnées (EXIF, IPTC et XMP):

exiv2 -pa /Photo/Divers/2016-12-04_13.34.46.jpg

Pour supprimer les métadonnées (par exemple avant de publier sur internet):

exiv2 rm /Photo/Divers/2016-12-04_13.34.46.jpg

Pour renommer une photo avec la date de prise de vue :

exiv2 -r %Y%m%d_:basename:_sujet rename /Photo/Divers/2016-12-04_13.34.46.jpg

Modifier le champ Copyright:

exiv2 -M"set Exif.Image.Copyright Ascii starmate.fr" /Photo/Divers/2016-12-04_13.34.46.jpg

Suppression du champ Copyright:

exiv2 -M"del Exif.Image.Copyright Ascii starmate.fr" /Photo/Divers/2016-12-04_13.34.46.jpg

Pour enlever 3 jours (-D), ajouter 5 mois (-O) et ajouter 10 heures (-a) à la date de prise de vue:

exiv2 -v ad -D -3 -O +5 -a +10:00:00 /Photo/Divers/2016-12-04_13.34.46.jpg

Modifier la date de prise de vue au 4 décembre 1984 à 11h34 et 55 secondes:

exiv2 -M"set Exif.Photo.DateTimeOriginal Ascii 1984:12:04 11:34:55" /Photo/Divers/2016-12-04_13.34.46.jpg
exiv2 -M"set Exif.Photo.DateTimeDigitized Ascii 1984:12:04 11:34:55" /Photo/Divers/2016-12-04_13.34.46.jpg

Pour renseigner le champs « auteur »:

exiv2 -M"set Exif.Image.Artist Ascii starmate production" /Photo/Divers/2016-12-04_13.34.46.jpg

Pour renseigner le champ description :

exiv2 -M "set Exif.Image.ImageDescription Ascii Anniversaire de Marie" /Photo/Divers/2016-12-04_13.34.46.jpg

Afficher une métadonnée en particulier (par exemple Exif.GPSInfo.GPSLatitude) :

exiv2 -g Exif.GPSInfo.GPSLatitude /Photo/Divers/2016-12-04_13.34.46.jpg

Extraire uniquement la valeur de la balise Exif.GPSInfo.GPSLatitude :

exiv2 -g Exif.GPSInfo.GPSLatitude -Pv /Photo/Divers/2016-12-04_13.34.46.jpg

Afficher tous les champs disponibles :

exiv2 -P k /Photo/Divers/2016-12-04_13.34.46.jpg

Afficher les informations de géolocalisation:

exiv2 pr -p a /Photo/Divers/2016-12-04_13.34.46.jpg | grep -i GPS

Petit script pour éditer les informations de géolocalisation à la volée:

#!/bin/bash
# Modification des metadonnées de geolocalisation a la volee
##1 - Entrez le chemin du repertoire ou se trouve les photos.
##2 - Entrez l’extension de fichier en respectant la casse, c'est-à-dire, en majuscules ou minuscules (jpg, JPG, etc..)
##3 - Entrez la latitude (N) ou (S) : N ou S Cela se transformera en North ou South sur les tags exif
##4 - Entrez la latitude sous la forme "48/1 13/1 24/1",(exemple pour une latitude: 48°, 13min et 24sec).
##5 - Entrez la longitude (E) ou (O) : E ou O cela se transformera en East ou West
##6 - Entrez la longitude sous la forme "9/1 52/1 51/1", (exemple pour une longitude: 9°, 52min et 51sec).
##
echo -n "1 - Entrez le chemin des photos, sans oublier le slash "/" à la fin "
read chemin
echo -n "1 - Entrez l'extention des photos: "
read extension
echo -n "2 - Entrez la latitude, N ou S : "
read latref
echo -n "3 - Entrez la latitude sous cette forme "48/1 13/1 24/1" : "
read lat
echo -n "Entrez la longitude, E ou O : "
read longref
echo -n "Entrez la longitude sous cette forme "9/1 52/1 51/1" : "
read long
for i in $chemin*.$extension
do
exiv2 -M"set Exif.GPSInfo.GPSLatitudeRef $latref" $i
exiv2 -M"set Exif.GPSInfo.GPSLatitude $lat" $i
exiv2 -M"set Exif.GPSInfo.GPSLongitudeRef $longref" $i
exiv2 -M"set Exif.GPSInfo.GPSLongitude $long" $i
done
echo "TERMINE"

18 mai 2017 /

Voici comment détecter rapidement les machines vulnérable à l’exploit WannaCry grâce à Nmap (version 7 minimum) et  du plugin associé à l’exploit : smb-vuln-ms17-010.nse.

Vous pouvez vérifié votre version de Nmap avec la commande suivante:

nmap -V

Nmap version 5.51 ( http://nmap.org )

Si vous avez une version inférieur à la 7, il faudra compiler Nmap à partir de la dernière version disponible (nmap-7.40.tar.bz2 actuellement).

cd /usr/share/
wget https://nmap.org/dist/nmap-7.40.tar.bz2
bzip2 -cd nmap-7.40.tar.bz2 | tar xvf -
cd nmap-7.40
./configure
make
make install

Maintenant que Nmap est installé et en version au moins égale à la 7.4, nous allons installer le plugin nécessaire pour identifier les machines vulnérable à Wannacry.

Pour cela nous devons trouver le répertoire contenant les scripts Nmap, vous pouvez pour cela vous aider de cette commande:

locate -i *.nse

ou

locate -i nmap | grep -i script

Une fois trouvé, on se rend dedans et on télécharge le plugin:

cd /usr/share/nmap-7.40/scripts/
wget https://raw.githubusercontent.com/cldrn/nmap-nse-scripts/master/scripts/smb-vuln-ms17-010.nse

On met à jour la base de donnée de Nmap:

cd /usr/share/nmap-7.40/
./nmap --script-updatedb

Pour scanner une machine en 192.168.0.33 et générer le résultat dans un fichier HTLM:

./nmap -sC -p 445 --script smb-vuln-ms17-010.nse 192.168.0.33 -oX scan.xml && xsltproc scan.xml -o "wannacry_192.168.0.33_`date +%d%m%y`.html"

 

On peut ensuite consulter le fichier HTML contenant rapport généré par Nmap:

 

 

Pour scanner le réseau 192.168.0.0/24 et générer le résultat dans un fichier HTLM:

./nmap -sC -p 445 -max-hostgroup 3 -open --script smb-vuln-ms17-010.nse 192.168.0.0/24 -oX scan.xml && xsltproc scan.xml -o "wannacry_192.168.0.0-24_`date +%d%m%y`.html"

 

On peut ensuite consulter le fichier HTML contenant rapport généré par Nmap:

 

 

Pour scanner une liste d’adresse IP et générer le résultat dans un fichier HTLM:

vi ip.txt

Dans le fichier ip.txt nous allons mettre toute nos adresse IP à scanner (une adresse ip par ligne) et on le donne en argument à Nmap:

./nmap -sC -p 445 -max-hostgroup 3 -open --script smb-vuln-ms17-010.nse -iL ip.txt -oX scan.xml && xsltproc scan.xml -o "wannacry_listeIP_`date +%d%m%y`.html"

 

Si aucune machine vulnérable à l’exploit SMBv1 n’est détectée (ou que le service n’est pas activé, patché ou pas), la sortie sera vide.
Si une machine à le protocole SMBv1 activé mais qu’il a été patché, la sortie affichera « Could not connect to ‘IPC$’ « .

Mais si une machine vulnérable à l’exploit SMBv1 est détectée (service activé et non patché), voici la sortie que vous allez avoir:

Starting Nmap 7.40 ( https://nmap.org ) at 2017-05-18 12:16 CEST
Nmap scan report for 192.168.0.33
Host is up (0.0013s latency).
PORT    STATE SERVICE
445/tcp open  microsoft-ds
MAC Address: 00:0C:29:E5:8A:29 (VMware)

Host script results:
| smb-vuln-ms17-010:
|   VULNERABLE:
|   Remote Code Execution vulnerability in Microsoft SMBv1 servers (ms17-010)

|     State: VULNERABLE

|     IDs:  CVE:CVE-2017-0143

|     Risk factor: HIGH

|       A critical remote code execution vulnerability exists in Microsoft SMBv1

|        servers (ms17-010)
.
|
|     Disclosure date: 2017-03-14
|     References:
|       https://blogs.technet.microsoft.com/msrc/2017/05/12/customer-guidance-for-wannacrypt-attacks/
|       https://technet.microsoft.com/en-us/library/security/ms17-010.aspx
|_      https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0143

Nmap done: 1 IP address (1 host up) scanned in 13.61 seconds

 

Et voila, vous savez maintenant le nombre machine Windaube qu’il faut patcher…

 

11 avril 2017 /

Lynis vérifie quasiment tous les paramètres de votre système Linux puis en fait une synthèse complète avec des suggestions pour combler les différents points faibles remontés.

Installation pour Red Hat/CentoS:

yum install lynis -y

Installation pour Ubuntu:

apt-get install lynis -y

Pour afficher les options de Lynis :

lynis

Pour mettre à jour Lynis :

lynis update release

Pour lancer un scan complet sur son système:

lynis audit system

Pour lancer un scan complet sur un système distant:

lynis audit system remote adresse_ip

Une fois l’execution terminée, le rapport généré ce trouve à cet emplacement :

vi /var/log/lynis-report.dat

5 mars 2017 /

Un petit mémo pour mettre en place une connexion Openvpn, avec reconnexion auto.

On commence par stocker ses identifiants de connexion ici:

vi /etc/openvpn/starmate.pass

login
passwd

On sécurise le fichier:

chmod 700 /etc/openvpn/starmate.pass

On télécharge les fichiers de configuration de HMA:

mkdir /etc/openvpn/hma
wget -t 3 -T 20 -r -A.ovpn -nd --no-parent -e robots=off https://vpn.hidemyass.com/vpn-config/UDP/ -P /etc/openvpn/hma

On declare où se trouve le couple login/passwd dans les fichiers de configuration openvpn :

sed -i 's/auth-user-pass/auth-user-pass \/etc\/openvpn\/starmate.pass/g' /etc/openvpn/hma/*ovpn

On relance le service

service openvpn stop
service openvpn start

On peut tester la connexion avec cette commande

openvpn /etc/openvpn/hma/Netherlands.Amsterdam.UDP.ovpn

Pour automatiser cela, nous allons faire un petit script pour cron:

vi /etc/openvpn/vpn.sh

#!/bin/bash
VPN=`ifconfig | grep tun0 > /dev/null 2>&1 ; echo $?`
if [ "$VPN" -eq "1" ];
then
openvpn /etc/openvpn/hma/Netherlands.Amsterdam_LOC2S5.UDP.ovpn
fi

chmod +x /etc/openvpn/vpn.sh

Et la ligne crontab pour une exécution toutes les minutes:

vi /etc/crontab

* * * * * root /etc/openvpn/vpn.sh > /dev/null 2>&1

Ou alors, encore mieux, créer un service:

On commence par copier le fichier de connexion désiré dans /etc/openvpn :

cd /etc/openvpn/hma
cp -p /etc/openvpn/hma/Netherlands.Amsterdam.UDP.ovpn /etc/openvpn/Netherlands.conf

Puis on créer le service.

systemctl enable openvpn@Netherlands.service
systemctl start openvpn@Netherlands.service

La partie suivant directement le @, « Netherlands« , est le nom du fichier de connexion que l’on à copié précédemment.

On peut vérifier son adresse publique:

dig +short myip.opendns.com @resolver1.opendns.com

19 octobre 2016 /

Voici méthode qui consiste à démarrer non pas init comme premier processus, mais un shell.

Tout d’abord, au démarrage, quand le menu de grub apparaît (appuyez sur echap si il n’apparaît pas), sélectionnez la ligne de boot sur lequel le système démarre habituellement:

screenshot_centos7-0_starmate_2016-10-15_191840

On va maintenant modifier la ligne de démarrage du système en appuyant sur la touche « e« :

screenshot_centos7-0_starmate_2016-10-15_192623

Sur la ligne commençant par « linux16 /vmlinux….. », nous allons ajouter à la fin « init=/bin/sh » et supprimer « rhgb quiet » :

screenshot_centos7-0_starmate_2016-10-15_194047

On valide les paramètres et on boot en appuyant sur les touches « Ctrl-x » ou bien avec la touche F10.

On arrive très vite dans un shell simple sans mot de passe et avec les droits root:

screenshot_centos7-0_starmate_2016-10-15_193200

On va tout d’abord charger la politique SELinux existante avec cette commande (le -i correspond à « initial policy load ») :

/usr/sbin/load_policy -i

Ensuite, on va remonter « / » en lecture-écriture car il est monté en lecture seule :

mount -o remount,rw /

On peut maintenant passer à la modification du mot de passe root :

passwd root

On ré-étiquette le système (SELinux) pour le prochain redémarrage :

touch /.autorelabel

Il ne reste plus qu’a redémarrer votre CentOS7/RedHat7 pour avoir vous connecter avec le nouveau mot de passe:

exec /sbin/init