Budget 2015, jeu d’argent en ligne et filtration de sites illégaux

Dans le nouveau budget 2015-2016 du Gouvernement du Québec, un des éléments mentionne le jeu d’argent en ligne et la perte de revenu de Loto-Québec.  La piste de solution retenue est la responsabilité pour les fournisseurs d’accès Internet de mette en place des systèmes de filtrage de sites Internet pour bloquer des sites non autorisé par le gouvernement du Québec.

Pour reprendre l’énoncé exact du budget

Une modification législative sera proposée afin d’instaurer une mesure de filtration des sites illégaux. Celle-ci prévoira qu’aucun fournisseur de services Internet ne pourra permettre l’accès à un site de jeux de hasard et d’argent en ligne dont le nom se retrouve sur une liste de sites à proscrire établie par Loto-Québec. L’application de cette mesure sera assurée par la Régie des alcools, des courses et des jeux, laquelle devra disposer des ressources nécessaires pour exercer ces nouvelles responsabilités

 

Vous pouvez consulter le Budget ici, l’énoncé est vers la fin de celui-ci dans la section sur le jeu en ligne .

Je ne tiens pas à commenter le jeu en ligne. Par contre,  le concept de filtration de sites Internet par le gouvernement est un concept qui me déplaît.  Cette approche ne fonctionne pas.  Elle a été testé dans d’autres pays avec aucun succès, les mesures technologiques sont facilement contournables, ces dispositions législatives ouvrent la porte à des abus pouvant impacter la liberté d’expression en plus d’impliquer des infrastructures supplémentaires auprès des fournisseurs Internet.

Déjà un grand nombre de citoyens utilisent des mandataires et des réseaux privés virtuels pour accéder à du contenus non accessible du Québec tel que la vidéo sur demande ou des systèmes similaires, alors imaginer que les joueurs en ligne n’utiliseront pas les mêmes techniques et qu’ils se limiterons qu’aux sites autorisés par le gouvernement est mal connaitre la technologie en cause et le fonctionnement d’Internet et des mécanismes de contrôles associés.

Les modifications législatives ne sont pas encore proposées, mais il convient de rester vigilant.  La neutralité Internet est un concept important et la mise en place de mesure technologique n’est jamais une bonne solution pour régler ce genre de problématique qui est avant tout politique.

 

 

Comment les logiciels espions contournent Google Chrome

Au cours des dernières versions, les navigateurs Internet ont ajoutés de plus en plus de protection contre l’installation de modules tierce malveillant.  Notamment Google qui a décidé de bloquer toutes extensions n’étant pas en provenance de leur Chrome Store.  Par contre, Au cours d’une investigation récente j’ai eu l’occasion d’analyser pourquoi un de ces modules s’était installé malgré tout… Encore une fois, l’utilisateur demeure le maillon faible, mais cette fois ci, ce maillon est automatisé.

Dans le cadre de ce billet, je vais me concentrer sur la méthode d’exploitation par des logiciels malveillant/espion du navigateur de Google Chrome™ qui est souvent vu comme « plus sécuritaire », le code a été simplifié pour ne pas être trop techniques et des demandes de suppression ont été demandées donc je n’inclurai pas de lien direct.

La technique est intéressante (d’un point de vue malicieux), et la même technique peut-être facilement adaptés dans plusieurs situations.

Tout commence par le lancement du logiciel malveillant. Lors de son démarrage,  le logiciel tente d’identifier les différents navigateurs et de localiser les installations de Google Chrome

Process process = new Process();
string str = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + "\\Google\\Chrome\\Application\\chrome.exe";
if (!File.Exists(str))
str = Environment.GetEnvironmentVariable("localappdata") + "\\Google\\Chrome\\Application\\chrome.exe";

 

Lorsqu’il est localisé, le logiciel fait ouvrir une fenêtre en mode invisible et accède directement à Chrome Web Store via une URL sous la forme : https://chrome.google.com/webstore/detail/xxxxx/yyyyyyyy ( ou x représente la nom de la plugin, et y son identifiant)

process.StartInfo = new ProcessStartInfo(str, i_url)
{
WindowStyle = ProcessWindowStyle.Hidden,
CreateNoWindow = true
};
process.Start();

Par la suite le logiciel malveillant utilise le temps et l’utilisation processeur pour attendre que le navigateur soit exécuté, il identifie la fenêtre via son titre (windowCaption.Contains(« Google Chrome ») ) et par la suite, simule des actions utilisateur via les fonctions SendMessage() Windows.

sendMessage(s_chromeHandle, "007", "0", "0");
sendMessage(s_chromeHandle, "006", "00000001", "0");
sendMessage(s_chromeHandle, "0100", "9", "000F0001");
sendMessage(s_chromeHandle, "0100", "D", "001C0001");
sendMessage(s_chromeHandle, "0102", "D", "001C0001");

Ce qui correspond à donner le focus, activer la fenêtre, simuler la touche « tabulation » et simuler la touche « enter ».   Visuellement cela correspond la cliquer sur le bouton « Ajouter à Chrome »

ajout-nouvelle-extension

Même logique pour récupérer les informations de la nouvelle fenètre, et par la suite deux nouvelles touches sont envoyés.

sendMessage(s_confirmNewExtensionWindows, "0100", "25", "014B0001");
sendMessage(s_confirmNewExtensionWindows, "0100", "D", "011C001");

Flèche vers le gauche pour sélectionner « Ajouter » et ensuite « enter » pour confirmer la nouvelle extension.

Mais que venons-nous d’accepter…

confirmation-nouvelle-extension

Ainsi la totalité des privilèges a été octroyé à cette extension.

Le logiciel malicieux installe de plus, un service sur le poste de travail qui démarre un processus en écoute sur le port 60000 sur localhost accessible via le protocole websocket, cette interface est accéder à partir de plugin qui l’utilise comme moyen de communication.

websocketServerLocation = 'ws://127.0.0.1:60000';

L’API de web service plugin est aussi intéressante (encore une fois, d’un point de vue malveillant), car elle permet d’exécuter des commandes dans le contexte du poste

  • GetMacAddress
  • IsBhoInstalled
  • GetRegistryValue
  • IsUserAdmin
  • LunchProcess (j’ignore si l’erreur typographique est volontaire ou non…)

Ce service permet aussi de conserver les informations de navigations dans des bases de données sqlite externe (temporairement stocké dans le dossier %TEMP%.  À l’inverse, la gestion des messages du côté de l’extension permet plusieurs méthodes de contrôle et de manipulation de contenu et conformément à son « manifest » est automatiquement exécuté lors des accès http/https et lors de l’ouverture de nouveaux onglets.

"content_scripts": [
    {
      "matches": ["http://*/*", "https://*/*"],
      "js": ["js/------------.js" ],
      "run_at": "document_start"
    },
	{
	  "matches": ["http://*/*", "https://*/*"],
      "js": ["js/-------------.js" ],
      "run_at": "document_end"
	}
  ],

D’un point de vue « pentester », ce genre de logiciel devient intéressant, car il est probablement exploitable dans des contextes d’escalade via une falsification de résolution DNS et une Policy redirigeant vers le localhost.   Simplement développer une page vulnérable à l’externe, et faire un code javascript utilisant le web socket pour  exploiter la méthode d’exécution d’un processus LunchProcess

Au final, ce genre d’exploitation démontre qu’il est encore trop simple contourner des infrastructures sécuritaires et la nécessitée d’avoir des spécialiste en sécurité opérationnel dans les organisations.  Cela soulève aussi différents questionnement.

  • Pourquoi ce genre d’application est autorisé dans le chrome store (la réponse simple étant l’absence d’assurance qualité et d’audit) ?
  • Pourquoi un seul logiciel de sécurité sur virustotal détectait ce logiciel comme malicieux ?
  • Pourquoi il n’a toujours de plusieurs sur l’utilisation de l’UAC (Contrôle de compte Utilisateur Windows) du coté applicatif (qui mitige pourtant ce genre d’attaque par message) ? (Et oui, le premier site retourné quand on recherche UAC est comment le désactiver… malheureusement…)
  • Combien d’autres logiciels malveillants similaires sont en circulation ?
  • Pourquoi il n’a pas un service de signature à la authenticode qui vérifi la légitimité des logiciels avant d’émettre un certificat ?

Malheureusement, il n’a pas de solution miracle à ce type d’attaque.  L’application white listing est toujours une solution, mais sera toujours trop couteux en termes d’efficacité opérationnels.  Avoir un peu plus de temps, j’en profiterai  pour vérifier l’analyse comportemental des antivirus dans un contexte ou des simulations de saisie utilisateurs sont envoyés à un autre processus ou pour vérifier si tous les flux sont bien interceptés par des systèmes de détection « Command & Control »

Vulnérabilité relais courriel (sendmail.php) dans le thème WordPress « nolimits » de whoathemes

Le thème WordPress NoLimits de whoathemes intègre un script d’expédition de courriel (sendmail.php) non sécurisé permettant l’envoi de courriel à des tiers.

$to      = isset($_POST['to']) ? test_input($_POST['to']):'';
$name    = isset($_POST['name']) ? test_input($_POST['name']):'';
$email   = isset($_POST['email']) ? test_input($_POST['email']):'';
$subject = isset($_POST['subject']) ? test_input($_POST['subject']):'';
$phone   = isset($_POST['phone']) ? test_input($_POST['phone']):'';
$website = isset($_POST['website']) ? test_input($_POST['website']):'';
$country = isset($_POST['country']) ? test_input($_POST['country']):'';
$city    = isset($_POST['city']) ? test_input($_POST['city']):'';
$company = isset($_POST['company']) ? test_input($_POST['company']):'';
$content = isset($_POST['content']) ? test_input($_POST['content']):'';
$sitename = isset($_POST['sitename']) ? test_input($_POST['sitename']):'';
$siteurl = isset($_POST['siteurl']) ? test_input($_POST['siteurl']):'';

Synchronisation de courriels cpanel/whm via ftp

Petit script de synchronisation des courriels cpanel via FTP que j’ai programmé rapidement pour finaliser une migration. lftp est requis et n’est pas présent par défaut sur Cloud linux donc il doit être installé (yum install lftp). Selon la configuration du serveur source, il peut être requis d’ajouter « set ftp:ssl-allow off; » et/ou « set ftp:passive-mode off; »

#!/bin/bash
# Hote Distant
RHOST="remote_server.example.org"
RUSER="remote_user"
RPASS="remote_password"

# Utilisateur Local
LUSER="local_user"

# Domaine de messagerie
DOMAIN="example.org"

# Copy de la configuration et des courriels
/usr/bin/lftp -c "set ftp:list-options -a;
open ftp://$RUSER:$RPASS@$RHOST/;
lcd /home/$LUSER/etc/$DOMAIN;
cd /etc/$DOMAIN;
mirror --delete --verbose;
lcd /home/$LUSER/mail/$DOMAIN;
cd /mail/$DOMAIN;
mirror --delete --verbose"

# Changement de permissions
chown $LUSER:$LUSER -R /home/$LUSER/etc/$DOMAIN/* 
chown $LUSER:$LUSER -R /home/$LUSER/mail/$DOMAIN/* 
chown $LUSER:mail /home/$LUSER/etc/$DOMAIN/passwd* /home/$LUSER/etc/$DOMAIN/quota*

/usr/local/cpanel/scripts/linksubemailtomainacct $LUSER
/scripts/mailperm $LUSER

Publié ici au cas où il serait utile à un autre sysadmin.

Vulnerabilité ntopng dans pfsense

J’ai expédié un avis de vulnérabilité la semaine dernière à l’équipe de pfsense concernant le package ntopng, pour votre information voici le commit de correction https://github.com/pfsense/pfsense-packages/commit/0e931059d5cf44828b0b1dd29a9102618d0ce2a1 . Pas besoin d’inclure de PoC, le diff est assez explicatif sur la vulnérabilité. Donc si vous utilisez le package ntopng v0.2, je vous invite à le mettre à jours.

Structure des tables de Trend Micro OfficeScan 11

L’un des nouveau éléments et pas toujours très connu de la version 11 du logiciel Trend Micro OfficeScan est la possibilité d’utiliser une base de donnée SQL serveur plutôt que la base de données interne (cette option est disponible via l’utilitaire SQLTxfr.exe disponible dans le dossier d’officescan \PCCSRV\Admin\Utility\SQL).

Ceci facile  la mise en place de rapports statistiques et de conformité, la mise ne place de tableau de bord ou d’agent de surveillance et la documentation de la configuration.  C’est un élément qui est peu documenté par Trend Micro, alors à titre d’informations voici un sommaire des principales tables à utiliser pour accéder à la configuration des agents ainsi qu’à la journalisation associée.

Trend Micro OfficeScan 11 - Structure des tables principales

Cette technique permet aussi d’accéder à certain attribut très intéressant, notamment le chemin d’accès AD du poste (DIST_NAME_AD) et le GUID de l’utilisateur, ce qui permet de mieux recouper les informations avec d’autres logiciels de sécurité.

 

Lancement en mode béta de catégo.info

C’est avec plaisir que notre entreprise rend accessible en mode invitation notre plate-forme de gestion de la sécurité catégo.info. Ce produit à été développé pour aider les organisations à gérer de façon dynamique leur sécurité de l’information, notamment leur catégorisation, les analyses de risques et la rédaction de plan directeur.

Je tiens à remercier mon équipe, ainsi que mes clients qui ont participé au développement de cette plate-forme en ligne.

Pour plus d’information visitez decouvrez.catego.info ou sur catego.info

Conférence Hackfest 2013

Vous trouverez ci-bas les ma présentation sur les techniques d’évasions antivirales pour le hackfest 2013. Merci à tous ceux qui sont venu y assister.

Bon hackfest

Personnalisation des CSS par site sous Firefox (ou comment masquer les pub de linked)

Mozilla Firefox intègre des options pour surcharger le CSS des sites. Cette option est utile dans plusieurs contextes (développement, sécurité, intégration) mais aussi pour modifier des sites existants, par exemple contrôler la visibilité de sections ou agrandir des polices (ou dans le cas de réseaux sociaux, masquer le contenu commandité)

Pour ce faire, un fichier nommé userContent.css doit être créer dans le dossier chrome de votre profil Firefox (%AppData%\Roaming\Mozilla\Firefox\Profiles\XXXXXXXXX.default\chrome – il est possible que le dossier chrome ne soit pas créer dans votre profil)

Dans ce fichier, vous identifiez les sites via la directive @-moz-document domain(www.nom_du_domaine.com) { CSS ici } et spécifier les sélecteurs CSS que vous désirez surcharger.

Je ne suis pas très réseaux sociaux, par contre j’utilise linked-in sur une base occasionnelle ainsi voici mes règles associées à Linked-in pour en masquer quelques sections inutiles. Vous pouvez appliquer la même démarche à différents sites Internet.

@-moz-document domain(www.linkedin.com) {

/* Masquer les nouvelles sponsorisées */
#my-feed-post li.linkedin-sponsor {
      display:none;
      }

/* Masquer les emplois recommandés - (J'ai ma propre entreprise, alors pourquoi changer) */      
#my-feed-post li.linkedin-recommend-job {
      display:none;
      } 

/* Masquer les endossements - Personne veut endosser mes compétences en CSS ? */            
#my-feed-post li.linkedin-endorse-by {
      display:none;
  }  
 
/* Non, je ne prendrai pas un compte premium, inutile de me le rappeler */  
div.upsell {
      display:none;
}

/* Masquer la section sur les offres d'emplois */
div#jobsForYou {
      display:none;
}
  
}

Firefox doit être redémarrer pour que les changements s’appliquent.

C’est simple et efficace.

Désactiver les animations dans Office 365

Pour les gens comme moi, qui n’apprécie pas trop les animations dans Office 365, il est possible de les désactiver en modifiant une clé dans la base de registre.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Common\Graphics]
"DisableAnimations"=dword:00000001

(Vous pouvez télécharger le fichier en format registre ci-dessous, il est recommandé de démarrer après considérant que certains service d’Office sont toujours en mémoire malgré la fermeture des applications.)

desactivation animation office 365.reg (1036 téléchargements )
Go to Top