[SysAdmin] Safe-iptables
Lorsqu'on est administrateur systèmes et réseaux spécialisé dans le logiciel libre, on bosse la majorité du temps sur des serveurs GNU/Linux ou BSD, ce qui implique une utilisation privilégiée de la console ainsi que du protocole SSH pour les accès distants.
L'un des risques que l'ont encoure est de perdre cet accès SSH suite à une fausse manipulation, plus particulièrement lors de l'ajout d'une règle de firewall.
Personnellement, je travaille essentiellement sur des serveurs localisés en Afrique du sud, une telle erreur serait donc dramatique car je perdrais mon unique voie d'accès. Pour éviter de me retrouver dans une telle situation, j'ai codé en Bash une petite commande pour adapter à iptables le mécanisme de confirmation qui existe sur Shorewall.
#!/bin/sh # Safe-iptables # Author : Nassim Kacha # License : GNU GPL2 # Date : 30/08/2010 # Exit codes # # O Normal execution # 1 Can't save previous firewalling rules # 2 Bad arguments # 3 Missing root privileges # 4 Changements aborted by user TIME=5 # Can be customized if [ -z $TMPDIR]; then TMPDIR='/tmp' fi TMPFILE=`/usr/bin/mktemp --tmpdir=$TMPDIR iptables_XXXXX` privilege_checking() { if [ $(id -u) -ne 0 ]; then echo "Sorry, you must run the command as root !" exit 3 fi } main() { read -n 1 -t $TIME -p "Are you sure ? [y/N]" key case "$key" in y|Y ) /bin/rm -f $TMPFILE echo -e "n+ Rule applied" exit 0;; n|N|'' ) /usr/sbin/iptables-restore > $TMPFILE /bin/rm -f $TMPFILE echo -e "n- Rule not applied" exit 4;; * ) echo '' main;; esac } ### Main ### privilege_checking /usr/sbin/iptables-save > $TMPFILE if [ $? -ne 0 ]; then echo "Error : not possible to save the previous firewall rules" exit 1 fi /usr/sbin/iptables $* if [ $? -eq 0 ]; then main fi exit 2
Cette commande fonctionne exactement de la même manière que la commande iptables à ceci près qu'elle vous demande une confirmation après avoir appliqué la nouvelle règle de pare-feu. Ainsi, si votre règle est mauvaise et qu'elle vous coupe votre liaison SSH, elle sera annulée après cinq seconde faute d'avoir pu confirmer la commande. Cela apporte donc une sécurité non négligeable lors de l'édition de vos règles de firewalling.
Je vous recommande d'enregistrer le code ci-dessus sous un fichier /usr/sbin/safe-iptables, de l'attribuer à l'utilisateur root et de lui donner les permissions 755. Il est aussi judicieux d'insérer un alias dans votre fichier .bashrc qui remplacerait la commande iptables par safe-iptables.
Je compte packager ce script en DEB et en RPM dès que possible. Pour finir, je vous encourage à reprendre et à améliorer ce script si vous avez des idées supplémentaires.
EDIT 04/09/2010 : Modification du script suite aux excellentes remarques de TixxDZ.
Réinitialiser le mot de passe d’un compte Windows depuis Linux
Il nous arrive à tous d'oublier des choses, parfois même, d'oublier le mot de passe de son compte utilisateur. Si vous êtes sous Linux et que vous avez gardé GRUB dans sa configuration d'origine il est possible de surmonter ce problème sans CD/DVD de Linux et sans formater toutes vos données.
Par contre, s'il s'agit d'un compte Windows, la méthode conventionnelle nécessite l'emploi d'un CD/DVD de Windows, ce que vous n'avez pas forcément sous la main (notamment si vous avez un Windows OEM d'installé).
Sachez toutefois qu'il vous est possible de supprimer ou de modifier le mot de passe de votre compte Windows depuis Linux, que cela soit via un Linux présent sur votre machine autant que second système d'exploitation ou bien via un LiveCD Linux (du moment qu'il vous est possible d'installer des paquets supplémentaires).
L'outil qui permet de faire cela se nomme chntpw. Regardons ensemble comment l'utiliser :
# Installation de chntpw sous Debian/Ubuntu (droits root requis) aptitude install chntpw # Installation de chntpw sous Archlinux yaourt -S chntpw # Installation de chntpw sous Fedora (droits root requis) yum install chntpw # On doit se rendre dans le répertoire où se trouve le fichier SAM de Windows # Ce fichier est dans le répertoire WINDOWS/system32/config/ de la partition contenant votre Windows # Le début du chemin varie donc selon le montage de votre partition Windows cd /media/disk1/WINDOWS/system32/config/ # On liste les comptes Windows chntpw -l SAM
# On va par exemple travailler sur le compte 'Nassim' (voir capture d'écran ci-dessus) chntpw SAM -u Nassim
Description des options du menu :
1 - Suppression du mot de passe du compte.
2 - Modification du mot de passe du compte (à utiliser avec prudence sous XP et Vista, probablement à cause de certains dispositifs de renforcement du cryptage).
3 - Ajout des droits administrateur au compte.
4 - Débloquer/activer le compte.
q - Quitter.
Une fois votre choix fait (et éventuellement le nouveau mot de passe saisi), l'application vous demandera si vous désirez réellement sauvegarder les changements dans le fichier SAM, il faudra donc répondre oui (Y).
Voilà, j'espère que ce petit billet vous aura donné un petit coup de pouce !!!
Réinitialiser le mot de passe root d’une base de données MySQL
Öhhh catastrophe ! öhhh désespoir ! Vous êtes affolé devant votre écran, les mains qui tremblent, à essayer de retrouver le précieux sésame donnant l'accès total et sans restrictions à votre base de données MySQL. Est-ce peine perdue ? Rassurez-vous, la réponse est non !
En effet, il est toujours possible de réinitialiser le mot de passe root de votre base de données. Voici la démarche à suivre :
# Note :Toutes ses opérations nécessites d'avoir les droits root sur le système # On stoppe le serveur MySQL /etc/init.d/mysql stop # On lance le serveur en mode 'safe' /usr/bin/mysqld_safe --skip-grant-tables & # On se connecte autant que root à la BD MySQL (Ohhh miracle ! Aucun mot de passe n'est demandé ;-) ) mysql --user=root mysql
Une fois connecté autant que root à votre serveur MySQL, il suffit de paramétrer un nouveau mot de passe :
mysql> update user set Password=PASSWORD('votre-nouveau-mot-de-passe') WHERE User='root';
Finissons en relançant notre serveur MySQL en mode normal :
# On stoppe le processus mysqld_safe... attention méthode brutale ^^ killall -9 mysqld_safe # On démarre MySQL en mode normal /etc/init.d/mysql start
Et voilà, la fin est toujours heureuse dans le joli monde Unix !
Ethical Hacking Contest
C'est maintenant officiel, l'administration de l'IUT nous a donné le feu vert pour participer à l'Ethical Hacking Contest organisé durant le RSSIL de Maubeuge.
La prise en charge du transport et de la restauration sera donc assurée par notre établissement universitaire, pour ce qui est du logement, la question ne se pose pas car on s'acharnera pendant 48H à relever différentes épreuves de sécurité informatique (sécurité web, sécurité applicative, sécurité des réseaux et reverse engineering).
Quant à la composition de l'équipe, les 3 membres déjà sélectionnés sont :
- Sébastien BADIA.
- Nassim KACHA (it's me ^^).
- LeBref Pépin.
Il nous reste à recruter 3 étudiants supplémentaires pour avoir un effectif au complet. Après quoi on devrait avoir normalement quelques séances de préparation orchestrées par Mr Mangeol ainsi que peut être Mr Vallar, ce qui serait logique étant donné qu'il s'agit de notre professeur de sécurité.
La compétition ne va probablement pas être facile, certaines épreuves ont été mises au point par des membres de l'ACISSI ainsi que du projet BackTrack4. De plus, nous aurons comme concurrents des étudiants de la licence professionnelle CDAISI.
Néanmoins, je reste très optimiste et je pense que nous avons nos chances... avec assez de préparation on pourrait se retrouver dans les 3 premières équipes du classement.
[Sécurité] Focus sur la scène arabe du hacking
Comme vous le savez peut être déjà, je suis quelqu'un qui s'intéresse beaucoup au domaine de la sécurité informatique. J'essaie donc de me tenir au courant des nouveautés.
Il m'arrive de plus en plus souvent ces derniers temps de tomber sur des liens pointant vers des sites arabophones, preuve que cette communauté devient de plus en plus active, il faut dire aussi que son épanouissement est favorisé par deux facteurs prédominants :
1) L'impunité juridique.
2) Le manque de sécurisation des infrastructures et services informatiques.
Je n'ai intégré aucune de ces communautés, il ne m'est donc pas possible de donner un avis objectif sur leur niveau. Cela dit, certaines teams font plus parler d'elle que d'autres.
J'ai édité assez rapidement cette petite liste de références pour les plus curieux :
- http://sc0rpion.ir
- http://www.m4r0c-s3curity.cc/
- http://sec-r1z.com/
- http://v4-team.com/
http://www.owned-m.comhttp://www.m-y.cc- http://www.hacker.ps/
- http://www.no-exploit.com
- http://www.mormoroth.net
- http://www.xp10.me/xp10/
http://www.arhack.net
Si vous avez des liens supplémentaires n'hésitez pas à me les transmettre via le formulaire de contact, j'enrichirai ainsi progressivement cette liste.





