IP Squatting appliqué au SPAM – Partie 2/2

4.4 Des blocs inutilisés (quoi que…)

Le comptage de grands nombres d’adresses se fait par multiple de 2^24 – soit environ 16,7 millions – qu’on appelle « /8s » (prononcé « slash eight »). Sur les 256 /8s, 168,7 sont annoncés et routés sur Internet ; 35,3 sont réservés ; 3,6 ne sont pas encore assignés. Il y a donc 48,3 /8s qui sont assignés, mais pas utilisés dans le routage public.

Lire la suite

IP Squatting appliqué au SPAM – Partie 1/2

Les spammeurs sont des gens très créatifs. Progressant plus rapidement en réseau qu’en orthographe, certains ont industrialisé une pratique jusque-là connue des seuls bas-fonds de l’Internet : l’IP-Squatting.

1. L’attribution des adresses sur Internet

Internet permet le routage de paquets utilisant les protocoles IPv4 et IPv6 entre des adresses assignées à des réseaux, appelés « systèmes autonomes » (ou « AS ») identifiés par un Autonomous System Number (AS).

Lire la suite

Architecture 64 bits/ASLR : quelles conséquences pour les exploits 32 bits ? Étude de cas avec Java et le CVE-2010-0842 – Partie 2/2

En exécutant le binaire plusieurs fois, nous remarquons que le programme java n’a pas été compilé avec l’option PIE (Position Independent Code), donc le binaire est toujours chargé à la même adresse. Et cela bien qu’ASLR soit activé et que les adresses de toutes les librairies et de la pile soient aléatoires. Ce binaire à adresse fixe est une mine d’or (ou plutôt de gadgets) pour l’analyste. Voyons voir si ce binaire contient un jmp rbx (0xFF 0xE3 en hexadécimal). Pour ce faire, nous allons utiliser un des nombreux désassembleurs [4] pour obtenir une chaîne hexadécimale du binaire puis chercher ce qui nous intéresse.

Lire la suite

Architecture 64 bits/ASLR : quelles conséquences pour les exploits 32 bits ? Étude de cas avec Java et le CVE-2010-0842 – Partie 1/2

Les deux vulnérabilités CVE-2010-0842 exploitées sous Windows en 32 bits restent-elles toujours exploitables en mode 64 bits avec ASLR ? En théorie, il est bien plus difficile, voire presque impossible de les exploiter de manière réaliste. En pratique, nous verrons que c’est toujours possible facilement.

Introduction

Un des objectifs du langage Java est d’éliminer les risques liés à la gestion de la mémoire manuelle (par exemple, débordement de tampon) comme dans un langage tel que le C. En théorie, un accès direct à la mémoire n’est pas possible et Java utilise un ramasse-miette pour récupérer de la mémoire allouée, mais plus utilisée. En pratique, Java repose sur de nombreuses librairies C/C++ dont le code, lui, peut accéder directement à la mémoire. De plus, ce code risque de contenir des vulnérabilités de type débordement de tampon ce qui contredit un des objectifs de sécurité du langage Java. Dans cet article, nous allons dans un premier temps brièvement présenter l’architecture de la sécurité Java. Ensuite, nous détaillerons les deux vulnérabilités du CVE-2010-0842, trouvées dans du code C/C++, qui permettent de contourner le système de sécurité de Java. Puis, nous expliquerons comment les exploiter en mode 64 bits avec ASLR activé.

Lire la suite