Archive for the ‘Linux’ Category

Comment Faire : Honeydrive3

Tuesday, June 6th, 2017

Voici un petit post pour faciliter la mise en place de honeydrive3 dans votre environnement

Ni Honeydrive3 ni ce qu’est un honeypot ne sera détaillé ici.

Préparation de la VM

  • Télécharger le fichier OVA : https://sourceforge.net/projects/honeydrive/
  • Double-cliquer sur le fichier téléchargé pour importer la VM avec virtualbox (tel que recommandé par l’auteur de HoneyDrive)
  • Modifier les paramètres réseaux de la VM  pour passer en mode Bridge
  • Lancer la VM
  • Lancer ‘Terminator’
  • Passer en root (mdp = honeydrive)
honeydrive@honeydrive:~$ sudo su
  • Changer pour un clavier AZERTY :
root@honeydrive:/home/honeydrive# setxkbmap fr
  • Changer le mot de passe du compte honeydrive :
root@honeydrive:/home/honeydrive# passwd honeydrive
  • Mettre à jour le system :
root@honeydrive:/home/honeydrive# apt-get update && apt-get upgrade

Les HoneyPots

Attention!  Il n’est pas possible de lancer tous les honeypots (plusieurs ont les memes fonctionalités). Voici donc une sélection que je vous propose :

 

[Kippo] : Honneypot écrit en Python, simule un serveur SSH avec commandes et système de fichiers accessibles

honeydrive@honeydrive:~$ cd /honeydrive/kippo/

honeydrive@honeydrive:~$ ./start.sh

Pour visualiser les statistiques, aller sur http://192.168.0.13/kippo-graph/index.php

[Dionaea] Honneypot simulant un serveur FTP, SMB, TFTP, MSSQL et HTTP

honeydrive@honeydrive:~$ cd /honeydrive/dionaea-vagrant/
honeydrive@honeydrive:~$  ./runDionaea.sh
[sudo] password for honeydrive :

Pour visualiser les statistiques, aller (depuis la VM honeydrive) sur http://localhost/phpliteadmin/phpliteadmin.php

[Honeyd] permet simuler plusieurs honeypots virtuels avec les services FTP, HTTP. Double emplois avec les 2 précédents

–> Je n’utilise pas

[Amun] Honeypot en python, dernière MaJ en 2014. Message sur Sourceforge : Warning! Malware detected. Download at your own risk.

–> Je n’ai pas cherché plus loin

 

[Conpot] Honeypot simulant des ICS/SCADA ! ça c’est cool!

Le projet est mené par un dev de chez blueCoat, projet open-source soutenu par quelques ‘géants’ >.>…

plusieurs ‘templates’ sont disponibles (/honeydrive3/conpot/conpot/templates/)

 

D’autres Honey pot que je n’ai pas eu le temps de tester sont présents.

A tester plus tard :

[Wordpot]

[Thug]

[PhoneyC]

[LaBrea]

[IIS Emulator]

[INetSim]

 

 

 


 

 

 

Cacutza!!!

Tuesday, July 23rd, 2013

Mais qu’est ce que cela signifie?? un prénom hispanique? je paie un bière à celui qui trouve :P

Depuis quelques temps, j’ai implémenté un honeypot qui enregistre les logins/mots de passe des tentatives de connexion vers mon domaine (antoinepelloux.eu). En moins de 2 mois,il y a eu plus de 35 000 attaques SSH enregistrées, on peut donc commencer à sortir des stats intéressantes. C’est d’ailleurs dans le top 10 des mots de passe utilisés qu’on trouve ce mot curieux: cacutza

En recherchant un peu, on tombe sur des sites comme celui-ci ou on constate que ce mot de passe est effectivement utilisé pour le bruteforce SSH. Quant à savoir pourquoi, serait-ce réellement un mot de passe fréquemment utilisé ou s’agit-il d’un rigolo qui à publié un dictionnaire avec des mots farfelu sans raison apparente? who knows? but who cares?

L’objectif caché de ce billet est d’annoncer la sortie de nsm.antoinepelloux.eu qui prend le relais sur la supervision sécu de mes sites webs! Actuellement, les tentatives de connexion SSH et FTP sont enregistrées et publiées. D’autre protocoles d’accès à distance sont en cours de développement (VNC/RDP). On trouve également un Snort avec un front-end fait maison (certes rudimentaire mais il fait ce que je souhaite).

D’autre honeypots/outils supervisions devraient s’y ajouter dans les prochaines semaines!!

 

 

BASH strings cheat sheet

Sunday, May 12th, 2013

Un autre cheat sheet pour continuer dans la foulée, cette fois ci, focus sur les manipulations de chaines de caractères en bash. Beaucoup de manipulations ci-dessous sont plus simple à réaliser à l’aide d’outils tiers (awk, sed, tr,wc…) mais ici, nous nous faisons du bash pur. L’intérêt est de gagner en performance ce qui peut être primordial pour certains projets.

Soit la chaine de caractères suivante:

var="bli-bla-blo"

${#var} = la longueur de la chaine (11)
${var:0:1} = le premier caractère (‘b’)
${var:4:6} = les caractères du 5eme à 7eme (‘bla’)
${var: -1} = le dernier caractère (‘o’)
${var%-*} = la plus grande sous-chaine jusqu’à un ‘-’ en partant de la gauche (‘bli-bla’)
${var%%-*} = la plus petite sous-chaine jusqu’à un ‘-’ en partant de la gauche (‘bli’)
${var#*-} = la plus grande sous-chaine jusqu’à un ‘-’ en partant de la droite (‘bla-blo’)
${var##*-} = la plus petite sous-chaine jusqu’à un ‘-’ en partant de la droite (‘blo’)

Voici un script qui reprend les notions décrites avec des exemples concrets:

String_Cheat_Sheet

 

regex cheat sheet

Wednesday, April 3rd, 2013

Il existe déjà des tonnes de sites avec références/exemples/tutoriaux sur les expressions régulières. Ce dont j’ai besoin, c’est plutôt d’une page qui résume simplement et en un coup d’œil l’essentiel des regex que j’utilise:

Basiques
^a = match ‘a’ au début de la ligne
a$ = match ‘a’ à la fin de la ligne
a? = match ‘a’ 0 ou 1 fois
a+ = match ‘a’ 1 fois ou plus
a* = match ‘a’ 0, 1 fois ou plus
a{n} = match ‘a’ n fois
a{n,m} = match ‘a’ entre n et m fois
a{n,} = match ‘a’ entre n fois ou plus
[x-y] = match n’importe quel caractère dans le range x to y
. = n’importe quel caractère

Raccourcis
\d = [0-9]
\D = [^0-9]
\w = [a-zA-Z0-9_]
\W = [^a-zA-Z0-9_]
\s = un espace
\S = PAS un espace
\t = tab
\n = nouvelle ligne
\r = retour chariot
\r\n = CRLF de DOS/windows

Avancées
^((?!pattern).)*$        = match toutes les  lignes qui ne contiennent pas ‘pattern’
(\d{1,3}\.){3}\d{1,3} = match un adresse IP

les options
i = ignorer la case
s = le ‘.’ ne matchera pas le retour chariot

Les moins courantes
\xIJ    = ASCII hexcode (\x41 will match ‘A’)
\Q…\E = pas d’interprétation des caractères spéciaux \Q*!$$\E match ‘*!$$’

Comment faire: Lancer une commande persistante après fin de session

Monday, February 18th, 2013

Lorsque vous lancez une une commande sur votre serveur linux, si la session est interrompue, la commande sera interrompue également. Heureusement, il existe une solution pour qu’une commande soit immunisée contre les déconnexions.

Par exemple, nous souhaitons scanner les adresses du subnet de notre FAI (ici 88.120.0.0/16) dont le port 3389 est ouvert. Nous utilisons nmap comme ceci:

nmap -v -PN -n -p3389 88.120.1-254.1-254 | grep open

Le problème avec la commande ci-dessus, est qu’on est obligé de garder la session ouverte au risque d’interrompre la commande avant la fin.

La solution à choisir est donc d’utiliser nohup :

nohup <ma_super_commande> &

le ‘&’ en fin de ligne permet de récupérer le prompt.

 

SSH : Connexion à l’aide d’une paire de clés

Wednesday, February 13th, 2013

L’utilisation de clés RSA plutot qu’un mot de passe est préférable pour plusieurs raison. On peut désactiver l’authentification par mot de passe ou on peut utiliser la clé en plus du mot de passe pour plus de sécurité. mais surtout, c’est indispensable pour les comptes de service.

Générer la pair de clé
Nous devons commencer par générer une pair de clé sur le “client”.

ssh-keygen

Par défaut, cette commande génère une paire de clé RSA de 2048 bit. Deux fichier sont créé dans ~/.ssh/ :
ls ~/.ssh/
id_rsa
id_rsa.pub

id_rsa est la clé privé : Elle doit resté confidentielle.
id_rsa.pub est la clé publique : C’est celle-ci qui doit être ajouté dans la liste des client autorisé sur le serveur afin que la connexion SSH avec agent fonctionne.

Copier la clé publique sur le serveur

Le plus simple est de copier la clé publique… par ssh

Si le serveur n’a pas encore de fichier authorized_keys, vous pouvez taper la commande suivante sur le Client:

scp ~/.ssh/id_rsa.pub <IP_du_serveur>:.ssh/authorized_keys

Si le serveur à déja un fichier authorized_keys, nous allons ajouter la clé publique à la fine du fichier authorized_keys déja sur le serveur. Tapez la commande suivante sur le Client:

scp ~/.ssh/id_rsa.pub <IP_du_serveur>:.ssh/myClientNewKey

Puis sur le serveur:

cat ~/.ssh/myClientNewKey >> ~/.ssh/authorized_keys

Et voila!! Vous pouvez désormais vous connecter à l’aide de votre clé RSA.

 

Katana toolkit : pentest, network analysis, forensic…

Tuesday, February 5th, 2013

Voici un projet formidable qui regroupe la plupart des outils de sécurité informatique.
katana bootable embarque backtrack, caine, ophcrack, clonezilla…
katana toolkit (linux et windows) regroupe tout un pannel d’outils sécurité:
chiffrement, anti-virus, destruction de données, sauvegarde, analyse de fichiers…
Bref, une trousse à outils qui vous servira tot ou tard:

 

Comment protéger son serveur linux d’une fork bombe

Sunday, February 3rd, 2013

Si je vous dis :

: ( ) { : | : & } ; :

Cela évoque-t-il quel que chose?

C’est est une fork bomb bash. sans rentrer dans les détails, une fork bomb est une fonction récursive qui crée des process, tout simplement.

Ceci est une forme d’attaque DOS très simple et terriblement efficace.

Heureusement, il est possible de s’en prémunir facilement : limiter le nombre de process par utilisateur!

Tout d’abord taper la commande suivante nous informe sur les limites système:

ulimit -a

Parmi les résultats, la ligne qui nous intéresse est  celle-ci:

max user processes              (-u) unlimited

Nous allons donc instaurer une limite de process par utilisateur afin de nous prémunir:

editer le fichier /etc/security/limit.conf, et ajouter les lignes suivantes:

username      soft    nproc     30
username      hard    nproc     50

De cette manière, l’utilisateur ne pourra créer plus de 50 process.
On peut tout à fait appliquer cette limite à un groupe d’utilisateur en commençant la ligne avec le nom du groupe précédé de ‘@’:

@group     soft    nproc    30
@group     hard    nproc    50