Cet article contient des solutions aux tâches destinées à la criminalistique de la mémoire, de la RAM et des journaux de serveur Web. Ainsi que des exemples d'utilisation des programmes Volatility Framework et Autopsy.
Information organisationnelleSurtout pour ceux qui veulent apprendre quelque chose de nouveau et se développer dans l'un des domaines de l'information et de la sécurité informatique, j'écrirai et parlerai des catégories suivantes:
- PWN;
- cryptographie (Crypto);
- technologies de réseau (réseau);
- reverse (Reverse Engineering);
- stéganographie (Stegano);
- recherche et exploitation des vulnérabilités WEB.
En plus de cela, je partagerai mon expérience en criminalistique informatique, analyse de logiciels malveillants et micrologiciels, attaques sur les réseaux sans fil et les réseaux locaux, réalisation de pentests et écriture d'exploits.
Afin que vous puissiez vous renseigner sur les nouveaux articles, logiciels et autres informations, j'ai créé une
chaîne dans Telegram et un
groupe pour discuter de tout problème dans le domaine de l'ICD. Aussi, je considérerai personnellement vos demandes, questions, suggestions et recommandations
personnelles et répondrai à tout le monde .
Toutes les informations sont fournies à des fins éducatives uniquement. L'auteur de ce document n'assume aucune responsabilité pour tout dommage causé à quelqu'un du fait de l'utilisation des connaissances et des méthodes obtenues à la suite de l'étude de ce document.
Médecine légale de la mémoire - niveau 2

Dans cette tâche, on nous donne une image de RAM et on nous demande de trouver le nom de la machine. Pour résoudre ce type de tâches, nous utiliserons le cadre de volatilité. Nous chargeons l'image avec la commande suivante, en spécifiant le chemin d'accès à l'image en tant que paramètre. Nous trouvons d'abord des informations sur l'image.
volatility -f ch2.dmp imageinfo

Ainsi, nous apprenons qu'il s'agit d'une image mémoire du système d'exploitation Windows. Autrement dit, nous pouvons trouver le nom de la machine dans le registre. Maintenant, nous devons spécifier le profil comme paramètre. La valeur de clé dans le registre peut être affichée de la manière suivante.
volatility -f ch2.dmp --profile=Win7SP1x86_23418 printkey -K "ControlSet001\Control\ComputerName"

Et maintenant, nous découvrons le nom de l'ordinateur.
volatility -f ch2.dmp --profile=Win7SP1x86_23418 printkey -K "ControlSet001\Control\ComputerName\ActiveComputerName"

Nous voyons le nom de l'ordinateur. Remettez, obtenez des points.

Logs forensics - attaque Web

Dans cette tâche, ils nous donnent un journal de serveur Web et disent qu'une attaque a été faite dessus, nous devons comprendre quelles données l'attaquant a apprises. Ouvrons le journal.

Nous voyons ces données encodées en base64 comme un paramètre d'ordre. Nous allons écrire un code pour les décoder.
from re import * from base64 import * f = open('ch13.txt') log = f.read() f.close() k = findall("action=membres&order=(.*?) HTTP", log) [print(str(b64decode(i.replace("%3D", "=")), "utf-8")) for i in k]

Convertissez un peu en compréhensible.

Ainsi, nous comparons les deux premiers bits de la première lettre du mot de passe avec 00, 01, 10, 11 et faisons une pause correspondante - 0, 2, 4 et 6 secondes. Cela se produit également avec les deuxième et troisième deux bits. Après cela, le septième bit est vérifié et, selon l'égalité 0 ou 1, une pause de 2 et 4 secondes est effectuée.
Ainsi, par le retard, nous pouvons déterminer quels bits le serveur renvoie.

Par exemple: la différence de temps entre les premières requêtes est de 6 secondes, c'est-à-dire que ce sont les bits 11, etc. Automatisez ce processus.
from re import * from base64 import * import binascii f = open('ch13.txt') log = f.read() f.close() k = findall("action=membres&order=(.*?) HTTP", log) dec_k = [str(b64decode(i.replace("%3D", "=")), "utf-8") for i in k] t = findall("2015:12:1(.*?) \+0200]", log) tim = [int(i.split(':')[0])*60 + int(i.split(':')[1]) for i in t] tim = [tim[i+1] - tim[i] for i in range(len(tim)-1)] + [0] password = "" for i in range(0, len(tim), 4): c = '' for sec in tim[i:i+3]: if sec == 0: c += '00' elif sec == 2: c += '01' elif sec == 4: c += '10' elif sec == 6: c += '11' if tim[i+3] == 2: c += '0' elif tim[i+3] == 4: c += '1' password += chr(int(c,2)) print(password)
Nous donnons le mot de passe.

Médecine légale de la mémoire - niveau 5

On nous demande de trouver le mot de passe pour John et de fournir un vidage de RAM. Comme la dernière fois, nous découvrons quel système d'exploitation est utilisé.

C'est Windows. La volatilité a une option de hachage.

Nous trouvons maintenant le mot de passe utilisateur.

Nous envoyons le mot de passe et obtenons des points.

Médecine légale du disque - trouver le chat

On nous donne une image disque et on nous demande de trouver l'endroit où se trouve le chat. Pour de telles tâches, vous pouvez utiliser FTK Imager. Je vais le résoudre en utilisant
AutoPsy . Exécutez le programme.

On nous dit d'ouvrir la page dans un navigateur. Nous ouvrons. Créez maintenant un nouveau cas et ajoutez un hôte. Ensuite, vous devez ajouter une image.
Après avoir créé l'environnement, nous avons ce qui suit.

"
Sélectionnez l'option d'analyse.

Nous affichons la structure de section suivante. Il n'y a rien d'intéressant dans le dossier Documentations. Passons à Fichiers.

Il y a un fichier odt intéressant. Nous le sélectionnons.

Le contenu est affiché ci-dessous - il y a une sorte d'image. Sélectionnez extraire pour extraire le fichier. Du fichier téléchargé, nous extrayons l'image.

Il s'agit très probablement du chat que nous devons trouver. Voyons les informations exif.

Super, il y a des coordonnées de localisation. On le trouve dans les cartes.

Nous envoyons la réponse et obtenons des points.

De plus en plus compliqué ... Vous pouvez nous rejoindre sur
Telegram . Là, vous pouvez proposer vos propres sujets et voter sur le choix des sujets pour les articles suivants.