Bon, ca fait un moment que j'ai eut marre de Blogger et les galères pour mettre du code ou travailler avec. du coup j'ai monter un wordpress chez Byethosts et je bascule petit a petit les articles que j'ai besoin de garder et je ferai la mise en forme / re-encodage des que j'ai 5 minutes :
voici ou vous pourrez suivre les derniers actus :
pint2stone.byethost12.com
lundi 3 janvier 2011
Demenagement
jeudi 30 décembre 2010
Mon premier Module Joomla #4
Mod_server_health.php et helper.php
Les fichiers mod_server_health.php et helper.php sont les fichiers ou tout la magie se passe.
Voici le fichier mod_server_health.php
<?php
//empeche les autres scripts d'executer notre fichier !! tres important pour la securité
defined('_JEXEC') or die('Direct Access to this location is not allowed.');
// inclure le fichier helper qui contient nos fonctions
require_once(dirname(__FILE__).DS.'helper.php');
//on recupere nos paramettres saisi dans le paneau d'administration de Joomla par l'admin du site. on notera les noms identiques ici et dans le fichier XML
$domainbase = $params->get('domainbase');
$domainbase = str_replace("http://","",strtolower($domainbase));
$domainport = $params->get('domainport');
//on execute notre fonction pour verifier si notre serveur repond. on notera ModServerHealthHelper:: corepond a class ModServerHealthHelper du fichier helper.php
$status = ModServerHealthHelper::pingDomain($domainbase, $domainport);
//verifie l'etat de notre serveur maintenant que la fonction c'est executé. on notera JText::_('IS_ALIVE') va recuperer les chaines de texte traduits de notre fichier de langue ini
if ($status != -1)
{
$text = $domainbase." ".JText::_('IS_ALIVE')." (".$status." ms)";
}
else
{
$text = "<span style='color:red'>".$domainbase." ".JText::_('IS_DOWN')."</span>";
}
//on inclus le fichier tmpl/default.php pour l'affichage
require(JModuleHelper::getLayoutPath('mod_server_health'));
?>
Le fichier helper.php
<?php
//empeche les autres scripts d'executer notre fichier !! tres important pour la securité
defined('_JEXEC') or die('Direct Access to this location is not allowed.');
//on créer notre class
class ModServerHealthHelper
{
// et notre fonction pingDomain
public function pingDomain($domain, $port)
{
$starttime = microtime(true);
$file = fsockopen ($domain, $port, $errno, $errstr, 10);
$stoptime = microtime(true);
$status = 0;
if (!$file) $status = -1; // Site est coupé
else {
fclose($file);
$status = ($stoptime - $starttime) * 1000;
$status = floor($status);
}
return $status;
}
}
?>
Et enfin pour l’affichage, notre fichier default.php …
<?php //on affiche le texte echo $text; ?>
Ce fichier mériterait de recevoir plus d’informations et d’en enlever au fichier mod_server_health.php. Mais ca n’empêche pas le bon fonctionnement du module.
Enfin il ne reste plus qu’a zipper le dossier mod_server_health et de l’envoyer sur notre serveur web Joomla pour l’installer comme n’importe quel module.
Et le voici sur mon site http://teamstarbug.byethost12.com qui surveille mon serveur mumble.
Ceci est un exemple assez simple mais deja plus poussé que le "Hello World" habituel. si vous avez compris ceci sans problemes particuliers, vous pouvez attaquer des modules plus complexe.
Bon courage et bon code.
Stone
liens vers la serie complet :
http://pint2stone.blogspot.com/2010/12/mon-premier-module-joomla-1.html
http://pint2stone.blogspot.com/2010/12/mon-premier-module-joomla-2.html
http://pint2stone.blogspot.com/2010/12/mon-premier-module-joomla-3.html
http://pint2stone.blogspot.com/2010/12/mon-premier-module-joomla-4.html
Libellés : Joomla
Mon premier Module Joomla #3
Les fichiers xml et ini
Vous pouvez télécharger tout ces fichiers à :
http://sites.google.com/site/pint2stone/mod_server_health.zip
Ici je vais presenterr le fichier mod_server_health.xml avec les commentaires en français :
<?xml version="1.0" encoding="utf-8"?>
<install type="module" version="1.5.0">
<!-- Le nom du module -->
<name>Server Health</name>
<!-- Nom de l'auteur -->
<author>Stone</author>
<!-- date de notre version actuel -->
<creationDate>2010-12-23</creationDate>
<!-- Copyright -->
<copyright>Aucun copyright, que ceci sert d'exemple</copyright>
<!-- Information sur la license -->
<license>utilise ceic et ameillore le, au pire GPL 2.0 !</license>
<!-- Adresse mail de l'auteur -->
<authorEmail>Aucun@rien.fr</authorEmail>
<!-- site web de l'auteur -->
<authorUrl>pint2stone.blogspot.com</authorUrl>
<!-- Numero de version actuel -->
<version>1.1.0</version>
<!-- decrit le fonctionnement du module -->
<description>Verifie si un serveur repond sur un certain port, exemple : www.google.com sur le port 80</description>
<!-- Liste de tout les fichiers qui doivent etre installés -->
<files>
<!-- l'attribue "module" signifie que ceci est le fichier de controle principal -->
<filename module="mod_server_health">mod_server_health.php</filename>
<filename>index.html</filename>
<filename>helper.php</filename>
<filename>tmpl/default.php</filename>
<filename>tmpl/index.html</filename>
</files>
<languages>
<!-- Tout les fichiers de langue a inclure -->
<language tag="en-GB">en-GB.mod_server_health.ini</language>
<language tag="fr-FR">fr-FR.mod_server_health.ini</language>
</languages>
<!-- Les options configurables du module -->
<params>
<!-- Les paramettres qui permettenet à l'admin du site de modifier le serveur et le port a tester -->
<!-- le defaut est ceux qui est present par defaut dans les cases, ca sert d'aide -->
<!-- label et description sont les titres et les descriptions, ces valeurs sont recuperer depuis les fichiers langues -->
<param name="domainbase" type="text" default="www.google.com" label="DOMAIN TEST" description="DESC DOMAIN TEST" />
<param name="domainport" type="text" default="80" label="DOMAIN PORT" description="DESC DOMAIN PORT" />
</params>
</install>
Ceux qui nous donne ceci dans Joomla :
Tout les autres paramètres du fichier sont utilisé lors de l'install du module dans Joomla. les plus importants sont les fichiers a installer (ne pas se tromper de nom ni les oublier). Tout les autres peuvent être gérer dans le code mais votre module sera moins flexible sans les paramètres proposé à l'administrateur du site et moins atreyant si on est obligé de démonter tout votre code pour le traduire.
Et voici le contenu du fichier fr-FR.mod_server_health.ini
DOMAIN TEST=Domaine a tester DESC DOMAIN TEST=Le domaine que vous souhaitez verifier DOMAIN PORT=Port du domaine DESC DOMAIN PORT=Le port sur laquel vous souhaitez tester IS_ALIVE=est ACTIVE IS_DOWN=ne repond pas
liens vers la serie complet :
http://pint2stone.blogspot.com/2010/12/mon-premier-module-joomla-1.html
http://pint2stone.blogspot.com/2010/12/mon-premier-module-joomla-2.html
http://pint2stone.blogspot.com/2010/12/mon-premier-module-joomla-3.html
http://pint2stone.blogspot.com/2010/12/mon-premier-module-joomla-4.html
Libellés : Joomla
Mon premier Module Joomla #2
L’arborescence
Joomla est un CMS très puissant et surtout flexible grâce à son gestion de modules. Vous pouvez vous informer des possibilités de Joomla sur le site :
www.joomla.fr
Je me suis largement basé sur cet exemple pour le module Joomla :
http://docs.joomla.org/How_to_create_a_module
et voici le module finalisé
http://sites.google.com/site/pint2stone/mod_server_health.zip
Un module Joomla demande une arborescence assez rigoureuse. Je n’ai pas su si c’était obligatoire mais en tout cas, c’est des bonnes méthodes a prendre pour vous faciliter la vie plus tard.
On créé en premier un dossier modules (il ne nous servira pas mais c'est pour l'organisation)
la dedans on aura un dossier pour chaque module avec le nom final de notre module sans espace. il faut également qu'il commence par "mod_" pour respecter les appellations dans Joomla!. enfin dans ce dossier mod_... on place un dossier tmpl pour stocker nos fichiers de mise en page (template)

Les fichiers dans mod_server_health
Et les fichiers dans tmpl
Les index.html sont des fichiers vides, ils ont pour but de sécuriser le dossier. Si malencontreusement, quelqu’un arrive à faire pointer son navigateur sur votre dossier, par défaut il voit la liste de tous les fichiers. Le fait de mettre un index.html empêche ce fonctionnement et affichera cette page par défaut.
Les deux fichiers ini sont en fait des fichiers de langues. Tout le texte à afficher sera placé dans ces fichiers. Ensuite, en fonction de la langue, Joomla va chercher le texte correspondant. Ici j’ai créé le module en anglais (en-GB) et français (fr-FR).
Le fichier helper.php sert a stocker les fonctions php qu’on a créer (pour nous ca sera notre « PingDomaine ») et le fichier mod_server_health.php fera tout le traitement.
Mod_server_health.xml est le fichier de configuration nécessaire pour l’installation du module dans Joomla. C’est lui qui va dire a joomla les fichiers présents et les paramètres a créer.
Les fichiers dans tmpl (ici default.php) sont les fichiers de mise en page (Template) qui feront l’affichage final.
Chose important : on remarquera que les fichiers et le dossier parent ont tos le même nom, mod_server_health. Il faut respecter cette méthode et garder le nom identique tout au long du paramétrage.
liens vers la serie complet :
http://pint2stone.blogspot.com/2010/12/mon-premier-module-joomla-1.html
http://pint2stone.blogspot.com/2010/12/mon-premier-module-joomla-2.html
http://pint2stone.blogspot.com/2010/12/mon-premier-module-joomla-3.html
http://pint2stone.blogspot.com/2010/12/mon-premier-module-joomla-4.html
Libellés : Joomla
Mon premier Module Joomla #1
La création du script pingdomaine en PHP
Voici un petit descriptif sur la création d’un module très simple pour Joomla. J’espère qu’il vous permettra de comprendre comment fonctionnes les modules dans cette excellent CMS.
C’est mon premier tentative donc il y’ a surement des choses à améliorer.
Le but de ce module est de savoir en un coup d’œil si un serveur est actif ou non. J’avais besoin de ce genre d’outil pour vérifier le bon fonctionnement de plusieurs serveurs sur le net ou en interne.
Pour commencer, un petit script PHP qui va faire notre vérification. Le script d’origine vient de ce site :
http://www.phptoys.com/e107_plugins/content/content.php?content.41
Il n’y avait aucun mention de licence sur le site donc je me suis inspiré des commandes trouvés.
Voici la fonction PHP que nous allons utiliser :
<?php
// Function to check response time
function pingDomain($domain, $port){
$starttime = microtime(true);
$file = fsockopen ($domain, $port, $errno, $errstr, 10);
$stoptime = microtime(true);
$status = 0;
if (!$file) $status = -1; // Site ne reponds pas
else {
fclose($file);
$status = ($stoptime - $starttime) * 1000;
$status = floor($status);
}
return $status;
}
?>
Vous pouvez vérifier le bon fonctionnement en collant ce code dans un “index.php” et le lancer en local. Attention, il faut que la fonction PHP fsockopen() soit activé chez votre hebergeur.
<html>
<head>
<title>Test Ping en PHP</title>
</head>
<body>
<?php
// Function to check response time
function pingDomain($domain, $port){
$starttime = microtime(true);
$file = fsockopen ($domain, $port, $errno, $errstr, 10);
$stoptime = microtime(true);
$status = 0;
if (!$file) $status = -1; // Site ne reponds pas
else {
fclose($file);
$status = ($stoptime - $starttime) * 1000;
$status = floor($status);
}
return $status;
}
$domainbase = ‘www.google.fr’;
$domainbase = str_replace("http://","",strtolower($domainbase));
$port = ‘80’;
echo '<table>';
$status = pingDomain($domainbase, $port);
if ($status != -1) echo "<tr><td>http://$domainbase est active ($status ms)</td><tr>";
else echo "<tr><td>http://$domainbase ne repond pas</td><tr>";
echo '</table>';
?>
</body>
</html>
ceux qui nous donne ceci :
Prochain article, comment intégrer ceci dans Joomla
liens vers la serie complet :
http://pint2stone.blogspot.com/2010/12/mon-premier-module-joomla-1.html
http://pint2stone.blogspot.com/2010/12/mon-premier-module-joomla-2.html
http://pint2stone.blogspot.com/2010/12/mon-premier-module-joomla-3.html
http://pint2stone.blogspot.com/2010/12/mon-premier-module-joomla-4.html
Libellés : Joomla
mercredi 21 octobre 2009
Exemple de Phishing recent
jeudi 3 septembre 2009
Le Social Engineering

Es que vous avez déjà entendu le terme de Social Engineering ? Si la réponse est non, alors ouvrez grand les yeux et lisez la suite …
issu de notre ami Wikipédia
L'ingénierie sociale (social engineering en anglais) est une forme d'escroquerie utilisée en informatique pour obtenir un bien ou une information. Cette pratique exploite l'aspect humain et social de la structure à laquelle est lié le système informatique visé. Utilisant ses connaissances, son charisme, l'imposture ou le culot, le hacker abuse de la confiance, l'ignorance ou la crédulité, de personnes possédant ce qu'il tente d'obtenir. Dans son ouvrage L'art de la supercherie, Kevin Mitnick a théorisé et popularisé cette pratique qui vise le facteur humain d'un système informatique pour briser sa sécurité.
Tout simplement, on va utiliser votre bonne volonté ou vous mettre en situation de panique pour vous estoquer des informations. Ces infos peuvent paraître anodin a vos yeux mais il est assez simple de réunir plusieurs petits bouts d'information pour arriver a nos fins.
Pour commencer à vous faire peur, je vais donner quelques exemples allant du plus simple a plus complexe et tordus.
1 ) La récupération des infos sans intervention humaine
Grâce au web 2.0 et les réseaux sociaux, on à accès à ÉNORMÉMENT DE DONNÉES PERSONELLES. Facebook et copains d'avant sont mes sites préférés pour trouver des infos juteux. D'autres sites peuvent également vous fournir des informations sur la personne souhaité. Google est LE maitre à ce jeux. Si si, tapez le nom et le prénom de quelques amis présents sur le net (de préférence entre « » pour que google cherche le nom entier et non les deux sépares). Vous serai surpris des infos qu'on retrouve. On trouve également d
es sites comme des forums ou des sites de rencontres qui contiennent des données perso.
Mais, vous allez me dire que les infos qu'on met sur ces sites ne servent a rien … ben voyons !!
exemple : levez la main, combien de personnes ont comme mot de passe :
- leur date de naissance
- leur nom / prénom
- nom / prénom des enfants
- quelque chose en rapport avec leur passion
- nom des animaux
- lieu de naissance
- nom / prénom avec date de naissance / département
en gros quelque chose en rapport direct avec vous même !!!
maintenant, regardez sur les sites ou vous êtes inscrits, on peut facilement retrouver votre nom de connexion (souvent affiché comme pseudo) et / ou votre adresse email (utilisé par beaucoup de sites pour se connecter). Le pirate informatique a maintenant tout les infos dont il a besoin pour accéder a votre compte. Et bien sur, vous utilisez le même mot de passe partout, donc des que le pirate retrouve votre adresse mail ou pseudo sur un autre site, il y a également accès.
Edit : Numerama viens de confirmer ce dernier par un chiffre ... plus d'un français sur deux n'ont qu'un seul mot de passe pour tout !!! Bravo la securité
http://www.numerama.com/magazine/13823-Un-seul-mot-de-passe-pour-plus-de-la-moitie-des-Francais.html
En poussant un peu plus loin que l'informatique, un petit article que j'ai lu cette semaine montre bien le danger des réseaux sociaux. Comme information, on a souvent votre adresse ou même une carte ou vous avez définis votre lieu d'habitation. Puis vous allez partir en vacance et vous souhaitez que tous vos amis virtuels sachent que vous n'allez pas être dispos pendant une semaine … donc on le précise sur notre site préféré. Dommage, justement un bande de voleurs passait dans votre cartier pendant cette semaine la, ils ont était soulagé de savoir que vous étés en vacance et que personne ne viendra les déranger pendant qu'ils vident votre maison.
Maintenant, faites un essai, ouvrez un compte bidon sur votre site d'amis préféré, calculez combien de temps il faut pour la créer, regardez la quantité d'information déjà disponible. Maintenant envoyez une invitation a votre vrai compte, acceptez le et ré-regardez tout les infos disponibles. Maintenant, de combien de personnes vous avez acceptez les invitations sans savoir qui ils étaient vraiment ??
En décalé avec la récupération des infos, les premiers mots de passe qu'on test lorsqu'on essaye de rentrer sur le compte de quelqu'un sont :
- azerty (regardez votre clavier)
- 123, 456, 1973, ou une autre combinaison de chiffres en croix ou en ligne
- même chose que l'identifiant du site
- nom du site en question (pour Facebook on essayera comme mot de passe « Facebook »)
Moralité : ne jamais laisser des informations trop confidentielles sur le net et TOUJOURS utiliser des mots de passe sécurisés
2 ) le coup de fil
Ici je vais parler d'un histoire (que j'ai inventé) basé sur une connexion internet, mais on peut imaginer énormément de situations avec le même principe.
Vos codes d'accès à internet et au site de gestion de votre fournisseur d'accès sont très précieux, c'est grâce à eux que vous pouvez consulter vos mails et naviguer sur le net.
Un jour, vous recevez un coup de fil :
Opérateur : oui, bonjour, je fait parti du service juridique de « placez votre opérateur ici »,
Vous : oui, bonjour (voix tremblant et hésitant, il n'est jamais bon d'avoir le service juridique de votre fournisseur en ligne)
Opérateur : on a détecter que votre compte internet à était utilisé pour plusieurs attaques informatiques qui ont détourné plusieurs millions d'euros au cours du derniers mois. Es que vous niées les faits ??
Vous : mais, mais, je n'y connait pas grand chose en informatique, comment voulez vous que je pirate quelque chose …
Opérateur : OK calmez vous, aucune procédure n'a était lancé pour le moment. Il est possible que votre ordinateur soit infecté d'un virus informatique et qu'un pirate ait utilisé votre machine a votre insu a distance. Mais pour le prouver, il me faudrait vos identifiants de connexion et votre adresse mail pour vérifier vos heures de connexion à internet.
Vous, complètement paniqué : oui, oui, bien sur, je vais les chercher de suite … voilà, alors mon adresse mail est « votre adresse ici » et mes identifiants sont « vos identifiants ici ».
Opérateur : OK merci beaucoup, je vous ré-contacterai des qu'on a analysé les données. Beep, Beep, Beep
Bien sur cette histoire est un peu courte mais vous comprenez le principe. Un pirate informatique (un vrai) vous appelle et vous met en situation de stresse, puis vous indique que rien ne va se passer si vous donnez des infos confidentielles. Bien sur vu qu'il se fait passer pour quelqu'un qui est en rapport avec ces données, ça ne paraît pas complètement anormal. Et puis vous donnez par téléphone, a un parfait inconnu, les informations dont il demande.
Il faut savoir qu'on ne vous demandera jamais des informations confidentiels comme celles-ci par téléphone, ni par mail. Ceux qui vient a mon 3eme exemple
3 ) le Phishing ou hameçonnage en français.
Voici un exemple trouvé sur le net (chez http://www.francoisrodrigue.com/blogstory/2007/03/01/318-astuce-anti-phishing)
Vous recevez un mail de votre banque indiquant que des transactions frauduleux ont était commis avec votre compte, et qu'il faut cliquer sur un lien ou votre compte sera bloqué.
On prend peur et on clique sur le lien proposé. Ici l'image montre que notre navigateur libre et sécurisé (Firefox) nous avertis mais ce n'est pas toujours le cas si l'attaque est récent.
Le site est quasiment identique au site de notre banque et on nous demande simplement nos coordonnées bancaires.
Bien sur, vous l'avez deviné, c'est un faux site qui n'a rien a voir avec votre banque. mais si vous saisissez vos coordonnées, ils seront immédiatement envoyés à un pirate informatique qui n'a plus qu'a se servir...
Bien sur, ces exemples sont assez simples et on vois de suite les failles, mais on peut imaginer à une plus grande échelle. Par exemple, on peut passer des coups de fil au hasard dans une entreprise en disant qu'on fait parti du hotline et qu'on vous rappelle comme demandé. A force, on tombera bien sur quelqu'un qui a un souci informatique et qui fera tout ceux que vous demandez par téléphone dans l'espoir de retrouver son poste de travail en état.
Ou sinon, le coup classique mais moins accès informatique. Arriver devant une GRANDE entreprise (celle ou on ne peut connaitre tout le monde) et faire comme si on avait oublié son badge d'accès, quelqu'un vous ouvrira par gentillesse.
On pourra pousser encore plus loin, mais pour réussir, la plus part des attaques par social engineering demandent quelques connaissances a propos de la personne ou de l'entreprise. Faites attention a ceux que vous mettez dans vos poubelles ...
Je ne peut que finir par une petite traduction d'un citation de Kevin Mitnick :
On peut dépenser une fortune sur des logiciels de sécurité, mais votre réseau sera toujours vulnérable face à une bonne veille manipulation des utilisateurs (Kevin Mitnick)
Tout les images sauf les deux captures de mail sont issus de http://openclipart.org. les deux captures pour l'exemple du phishing sont issus de http://www.francoisrodrigue.com
(merci à lui pour son accord d'utilisation) et ne sont pas soumis au licence suivant. contactez les auteurs respectifs pour ces images.






