Analyse d’un malware iOS : Unflod.dylib

Suite à la parution de commentaires sur /r/jailbreak concernant un malware ciblant iOS, je me suis dis qu’une analyse serait intéressante vu que cette plateforme est encore peu ciblée par ce type de menaces du à son architecture.

La première étape fut de récupérer des informations sur le binaire, ie. Entitlements et signature du code. Le premier point n’apporte pas grand chose sur le binaire, à part qu’il peut être débuggé et accéder au Keychain.

checksignBien que n’ayant été trouvée que sur des terminaux jailbreakés, cette bibliothèque est signée avec le compte iPhone Developer de Wang Xin. Ce procédé est étrange vu que le jailbreak désactive la validation de code signé sur iOS.

L’EntryPoint de la bibliothèque est assez simple et ne réalise qu’une seule action: remplacer la fonction SSLWrite du système par une fonction implémentée dans la bibliothèque: replace_SSLWrite. Le hooking de la fonction est réalisée à l’aide de la fonction libsubstrate.dylib!MSHookFunction. La bibliothèque MobileSubstrate est utilisée par  beaucoup d’applications provenant d’AppStore tierce afin de réaliser du Swizzling/hooking, il n’est donc pas étonnant de la voir utilisée ici.

call_mshookfunction

La fonctionnalité de la fonction remplaçant SSLWrite est elle aussi très simple: détecter une tentative d’authentification sur les serveurs d’Apple et intercepter les authentifiants de l’utilisateur. Pour ce faire, la chaine /WebObjects/MZFinance.woa/wa/authenticate est recherchée dans les données envoyées via SSL. Cette chaine fait en général partie des URLs pointants sur *.itunes.apple.com.

searching_iTunes_login

Une fois identifiés, les authentifiants sont envoyés à un serveur en écoute sur le port 7878 soit à l’IP 23.88.10.4, soit à l’IP 23.228.204.55.sending_info

Pour le moment, aucune information n’est disponible quant-à la source de l’infection. Il est toutefois intéressant de voir que les terminaux iOS jailbreakés commencent à être la cible de malware grand-public.

Publié dans forensics | Tagué , , , , ,

NeDi Remote Code Execution

During a recent intrusion test, we discovered that NeDi was used in our target infrastructure. Since this application’s source code is freely available on the developer’s website (www.nedi.ch) I thought I’d have a look and see whether it would be possible to take control of a server through it.

It didn’t take too long to discover a call to PHP’s eval function in file inc/graph.php:

function drawFunction($function, $dx = 0.1) {
    $xold = $x = $this->x0;
    eval("\$yold=".$function.";");
    for ($x += $dx; $x <= $this->x1; $x += $dx) {
      eval("\$y = ".$function.";");
      imageLine($this->img, $this->posX0+$xold*$this->scale,
                            $this->posY0-$yold*$this->scale,
                            $this->posX0+$x*$this->scale,
                $this->posY0-$y*$this->scale, $this->grn);
      $xold = $x;
      $yold = $y;
    }
  }

We see that parameter $function is used directly in the eval(). Where does this particular parameter come from? Well drawFunction is called from page OtherPlot.php:

$cmd = isset($_GET['cmd']) ? $_GET['cmd'] : '';
$res = isset($_GET['res']) ? $_GET['res'] : 'vga';
$xf = isset($_GET['xf']) ? $_GET['xf'] : 4;
$yf = isset($_GET['yf']) ? $_GET['yf'] : 4;
$xt = isset($_GET['xt']) ? $_GET['xt'] : 4;
$yt = isset($_GET['yt']) ? $_GET['yt'] : 4;
$f = isset($_GET['function']) ? $_GET['function'] : 'sin(30 * $x) * 1 / cos($x) / $x';
#	$f='tan($x - $x * cos(pi() * $x))';

if ($cmd=="img"){
	include_once ("inc/graph.php");
	$graph = new FunctionGraph($xf,$yf);
	$graph->drawAxes();
	$graph->drawFunction($f, 0.01);
	$graph->writePNG();
	$graph->destroy();
	die;
}

As you can see, the parameter which is sent to the vulnerable function is taken directly from the function GET parameter.

Moreover, this particular piece of code can be called by an unauthenticated user, meaning that it is possible to execute arbitrary code (unless there is some sort of PHP hardening going on) on the web server without needing any credentials.

After discussing the issue with Remo Rickli, who wrote the application, it turns out this is a piece of legacy code which is not used any more and will be removed in future versions. For the time being, the recommendation is to remove the Other-Plot.php and inc/graph.php files from your servers (http://www.nedi.ch/nedi-news/).

Publié dans vulnérabilité

Remote Command Execution in HP TippingPoint Security Management System

During a recent security audit, SCRT discovered a TippingPoint SMS server that exposed a famously exploitable JBoss invoker to any unauthenticated user. By using this invoker, it is possible to upload new applications on the server that are then run with the permissions of the JBoss application server (which happens to be running as root in this case).  The server can then be compromised entirely by uploading new files into the SMS application’s folder and then accessing them through a Web browser. This  could be done with the help of a very practical tool called jimmix which makes it possible to invoke commands on a JBoss server from the command line.

This flaw was not discovered on the latest SMS firmware at the time, as the tested version was 3.5.0.10861. An initial analysis of the latest version (3.6.0.31698.1) seemed to show that the vulnerability had been patched. But after a little digging, we discovered that this was not the case. The vulnerable invoker had only been moved to a restricted folder that now required authentication. However, the authentication mechanism was flawed (as it is in most JBoss 4 servers) and it was possible to bypass it by tampering with the HTTP verbs that are sent to the server. For example, we could access the invoker by using the HEAD method instead of GET. The vulnerability was therefore confirmed on the latest version of the SMS firmware on branches 3.5 and 3.6!

Exploitation still leads to complete root compromise of the appliance or virtual machine, making it possible to view or modify IPS protection profiles and retrieve encrypted user passwords.

The vulnerability was reported to HP who have now issued a patch for both versions 3.5 and 3.6 of their SMS firmware. The patch simply removes the handlers for the JMX invokers which can no longer be interacted with.

CVE-2013-6201 was attributed to the vulnerability and HP published a bulletin on the 4th of March about the issue : HPSBHF02965. Make sure you update your SMS servers as soon as possible.

 

Publié dans vulnérabilité

Programme Insomni’hack

Le programme des conférences d’Insomnihack est maintenant disponible sur le site de l’événement: http://insomnihack.ch/conferences/

N’oubliez pas de vous enregistrer par ici, que ce soit pour les conférences, le workshop SCRT, le concours ou encore le repas "networking" du jeudi soir. Pour ce qui est des workshops organisés par l’AppSec Forum, ça se passe ici.

Le mini "pré-concours" (teaser.insomnihack.ch) se clôturera demain. Si vous voulez encore jeter un coup d’oeil aux épreuves, faites-le ce soir!

Publié dans Events, Insomni'hack

Insomni’hack 2014

Les premiers speakers ont été annncées, tout comme la liste des workshops de cette année. Les inscriptions sont donc maintenant ouvertes pour Insomni’hack 2014!

Vous trouverez toutes les informations concernant l’événement sur http://insomnihack.ch.

Publié dans Events, Insomni'hack

Journée Stratégique du Clusis

Le 24 janvier dernier, le Clusis a organisé sa journée stratégique sur le thème de La Veille stratégique et intelligence économique au service de la sécurité de l’information.

Le but de l’évènement était de présenter les outils et méthodes disponibles afin de commencer la mise en place d’une politique d’intelligence économique.

La journée commence par une explication théorique de l’IE. Jean-Pierre Therre nous détaille ces enjeux et buts  et nous montre le développement et la mise en place d’une politique efficace et bien menée.

Vient ensuite le tour de Christian Harbulot, Directeur de l’Ecole de Guerre Economique, qui nous explique que, selon lui, il n’est pas possible de faire de la sécurité de l’information sans avoir une politique d’IE. Conférence vraiment riche compte tenu du parcours de Monsieur Harbulot.

Les deux présentations suivantes sont des  retours d’expériences dans le domaine de l’IE.

Alain Beauvieux nous parle du logiciel développé par sa société (AMI Software) en insistant bien sur le fait qu’avec une bonne surveillance et des outils adaptés, il n’était pas utile de faire de l’espionnage pour être efficace. Il nous présente ensuite quelques cas de clients ayant réussi à contenir ou éviter une crise grâce aux outils de sa société.

Steve Crettenand présente lui la politique d’IE mise en place au sein des Services Industriels de Genève (SIG). Il propose une politique où chaque employé a un rôle à jouer pour la collecte d’informations. Ces informations sont ensuite centralisées et analysées par des personnes clés et des rapports sont ensuite générés et envoyés à l’ensemble du personnel.

L’évènement se termine par des ateliers pratiques animés par différentes personnalités du domaine de l’IE.

Conférence très instructive sur un domaine malheureusement pas encore assez connu et reconnu  en Suisse.  Il ne reste plus qu’à espérer que cette journée fera un peu évoluer les choses.

Publié dans Events

Formations 2014

SCRT aura le plaisir, tout au long de l’année, de vous proposer de nouvelles formations, telles que :

  • Fortinet avancé
  • PKI Microsoft
  • Forensics management

Vous trouverez ci-dessous le planning du premier trimestre 2014 :

  • Nouvelles attaques web – Le mercredi 05 février
  • Forensics – Le jeudi 13 février
  • Sécurité des architectures web – Le jeudi 20 février
  • Outils & Méthodes de hacking – niveau intermédiaire – Le mardi 25 février
  • Outils & Méthodes de hacking – niveau expert – Le mercredi 26 février
  • Log Management in depth – Le jeudi 13 mars

Si vous souhaitez vous inscrire à l’une de nos formations, ou simplement obtenir plus de détails, n’hésitez pas à nous contacter à l’adresse training@scrt.ch .

Publié dans Events, news