regex cheat sheet

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 ‘*!$$’

Carna : le botnet “publique” de 420.000 serveurs

March 22nd, 2013

Botnet  “publique” car c’est le hackeur à l’origine du projet Carna qui a publié le résultat de ses recherches.

Le projet est parti d’un constat simple : beaucoup d’équipements réseaux sont accessibles avec les identifiants par défauts (root, admin…). La suite est évidente, on scan le subnet 0.0.0.0/0  … internet quoi :P

Après quelques mois de ‘proof of concept’, l’auteur du projet a rassemblé quantité d’information et de statistiques nous permettant aujourd’hui de “naviguer” sur internet différemment:

http://internetcensus2012.github.com/InternetCensus2012/hilbert/index.html

J’adore…

Bien entendu, ce botnet n’est pas du tout malicieux,  les coordonnées de l’auteur étaient même incluent dans les “malwares” =].

Tous les détails de ce chef-d’œuvre ici:

http://internetcensus2012.github.com/InternetCensus2012/paper.html

security homepage

February 25th, 2013

Juste un petit post pour partager un projet entamé dans l’après-midi :

une page d’accueil regroupant l’essentiel des liens que j’utilise en termes se cyber-sécurité.

http://antoinepelloux.eu/secu/

En gros, c’est mes favoris sur une page d’accueil!

 

 

0.1% des abonnés de free ont leur port RDP ouvert

February 21st, 2013

Voici le résultat d’un rapide scan de port effectué la semaine dernière en fin d’après midi.

Sur un échantillons de 512072 IP publiques, j’ai trouvé 568 adresses à l’écoute sur le port 3389.

Que pouvons-nous en conclure? Pas grand chose en ce qui me concerne, mais  je ne pensais pas trouver autant d’IP et cela m’a assez motivé pour entreprendre d’autre scan de ce type (et poster les résultats sur ce blog évidement!).

Il faut garder à l’esprit que ces valeurs sont valable à un instant t, car en ce qui concerne le grand Ternet, une carte imprimé est une carte périmé!

 

 

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

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

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…

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

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