Apprenez à installer le serveur et le client GRR (Google Rapid Response) sur Ubuntu pour effectuer des instigations.

Introduction

GRR (Google Rapid Response) est un cadre de réponse aux incidents basé sur Python qui peut être utilisé pour les enquêtes et les investigations en direct. Il vous permet d’examiner et d’analyser des attaques à distance.

GRR peut être déployé dans une architecture serveur-client. Il est livré avec une interface utilisateur basée sur le web qui vous permet d’analyser les données collectées auprès des clients. Il prend en charge les systèmes d’exploitation Linux, Mac OS X et Windows.

Exigences

  • Un serveur fonctionnant sous Ubuntu 18.xx
  • Un mot de passe root est configuré sur votre serveur

Pour commencer

Avant de commencer, vous devez mettre à jour votre système avec la dernière version. Vous pouvez le faire en exécutant la commande suivante :

apt-get update -y

Une fois votre système mis à jour, redémarrez-le pour appliquer toutes les modifications.

Installer et configurer la base de données

Tout d’abord, vous devez installer le serveur de base de données MariaDB sur votre système. Vous pouvez l’installer à l’aide de la commande suivante :

apt-get install mariadb-server -y

Une fois l’installation terminée, sécurisez l’installation de MariaDB en exécutant la commande suivante :

mysql_secure_installation

Répondez à toutes les questions comme indiqué ci-dessous :

Entrez le mot de passe actuel de root (entrez pour aucun) :
Définir le mot de passe de l'utilisateur root ? [Y/n] : N
Supprimer les utilisateurs anonymes ? [O/n] : N Y
Interdire la connexion de l'utilisateur root à distance ? [O/n] : Y
Supprimez la base de données de test et l'accès à celle-ci ? [O/n] : Y
Recharger les tables de privilèges maintenant ? [O/n] : Y

Une fois que MariaDB est sécurisé, connectez-vous à l’interpréteur de commandes de MariaDB avec la commande suivante :

mysql -u root -p

Entrez votre mot de passe root. Ensuite, créez une base de données et un utilisateur pour GRR avec la commande suivante :

MariaDB [(none)]> CREATE DATABASE grr ;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON grr.* TO 'grr'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION ;

Ensuite, effacez les privilèges et quittez le shell MariaDB avec la commande suivante :

MariaDB [(none)]> FLUSH PRIVILEGES ;
MariaDB [(none)]> EXIT ;

Ensuite, redémarrez le service MariaDB avec la commande suivante :

systemctl restart mariadb

Vous pouvez vérifier l’état du service MariaDB à l’aide de la commande suivante :

systemctl status mariadb

Vous devriez voir la sortie suivante :

mariadb.service - Serveur de base de données MariaDB 10.1.38
Loaded : chargé (/lib/systemd/system/mariadb.service ; enabled ; vendor preset : enabled)
Active : active (running) since Fri 2019-04-12 15:11:14 UTC ; 54min ago
Docs : man:mysqld(8)
https://mariadb.com/kb/en/library/systemd/
PID principal : 1050 (mysqld)
Statut : "Prend vos requêtes SQL maintenant..."
Tâches : 46 (limite : 1113)
Groupe CG : /system.slice/mariadb.service
└─1050 /usr/sbin/mysqld
Apr 12 15:10:53 ubuntu1804 systemd<x><x><x><x>[1]</x></x></x></x>: Démarrage du serveur de base de données MariaDB 10.1.38...
Apr 12 15:11:07 ubuntu1804 mysqld[1050]: 2019-04-12 15:11:07 140152311749760 [Note] /usr/sbin/mysqld (mysqld 10.1.38-MariaDB-0ubuntu0.18.04.1)
Apr 12 15:11:14 ubuntu1804 systemd<x><x><x><x>[1]</x></x></x></x>: Démarré le serveur de base de données MariaDB 10.1.38.
Apr 12 15:11:14 ubuntu1804 /etc/mysql/debian-start[1251]: Mise à jour des tables MySQL si nécessaire.
Apr 12 15:11:15 ubuntu1804 /etc/mysql/debian-start<x><x><x>[1265]</x></x></x>: /usr/bin/mysql_upgrade : l'option '--basedir' est toujours ignorée
Apr 12 15:11:15 ubuntu1804 /etc/mysql/debian-start<x><x><x>[1265]</x></x></x>: Looking for 'mysql' as : /usr/bin/mysql
Apr 12 15:11:15 ubuntu1804 /etc/mysql/debian-start<x><x><x>[1265]</x></x></x>: Looking for 'mysqlcheck' as : /usr/bin/mysqlcheck
Apr 12 15:11:15 ubuntu1804 /etc/mysql/debian-start<x><x><x>[1265]</x></x></x>: Cette installation de MySQL est déjà mise à jour vers 10.1.38-MariaDB, utilisez --force si vous le souhaitez
Apr 12 15:11:15 ubuntu1804 /etc/mysql/debian-start[1306]: Checking for insecure root accounts.
Apr 12 15:11:15 ubuntu1804 /etc/mysql/debian-start[1311]: Déclenchement de myisam-recover pour toutes les tables MyISAM et aria-recover pour toutes les tables Aria
lignes 1-21/21 (FIN)

Une fois que vous avez terminé, vous pouvez passer à l’étape suivante.

Installer le serveur GRR

Tout d’abord, vous devez télécharger un paquetage GRR depuis leur dépôt officiel GitHub.

Vous pouvez le télécharger avec la commande suivante pour télécharger la version 3.2.4.6 de GRR.

wget https://storage.googleapis.com/releases.grr-response.com/grr-server_3.2.4-6_amd64.deb

Une fois le téléchargement terminé, vous pouvez installer le fichier téléchargé à l’aide de la commande suivante :

dpkg -i grr-server_3.2.4-6_amd64.deb

Ensuite, installez les dépendances requises avec la commande suivante :

apt-get install -f

Pendant l’installation, vous devrez fournir certains détails comme l’hôte de la base de données, le nom d’utilisateur, le mot de passe, les URLs GRR et le mot de passe Admin comme indiqué ci-dessous :

Exécution de grr_config_updater initialize
Pour éviter ce message, définissez DEBIAN_FRONTEND=noninteractive
#################################################################
Vérification de l'accès en écriture à la configuration /etc/grr//server.local.yaml
Etape 0 : Importation de la configuration de l'installation précédente.
Aucun ancien fichier de configuration n'a été trouvé.
Etape 1 : Définir les paramètres de configuration de base
Nous allons maintenant configurer le serveur en utilisant une série de questions.-=GRR Datastore=-Pour que GRR fonctionne, chaque serveur GRR doit être capable de communiquer avec le datastore. Pour ce faire, nous devons configurer un datastore. GRR utilisera MySQL comme base de données. Enter connection details:MySQL Host <x>[localhost]</x>:MySQL Port (0 for local socket) [0]:MySQL Database [grr]:MySQL Username [root]: grrPlease enter password for database user grr:Successfully connected to MySQL with the provided details.-=GRR URLs=-Pour que GRR fonctionne, chaque client doit être en mesure de communiquer avec le serveur. Pour ce faire, nous avons normalement besoin d'un nom DNS public ou d'une adresse IP pour communiquer. Dans la configuration standard, cette adresse sera utilisée pour héberger à la fois le serveur orienté client et l'interface utilisateur d'administration. Veuillez saisir votre nom d'hôte, par exemple grr.example.com [ubuntu1804]: 192.168.0.104-=Server URL=-L'URL du serveur spécifie l'URL à laquelle les clients se connecteront pour communiquer avec le serveur. Pour de meilleurs résultats, cette URL doit être accessible au public. Par défaut, il s'agit du port 8080 et l'URL se termine par /control.Frontend URL [http://192.168.0.104:8080/]:-=AdminUI URL=-:L'URL UI indique où se trouve l'interface Web administrative.AdminUI URL [http://192.168.0.104:8000]:-=GRR Emails=-GRR doit pouvoir envoyer des courriels pour diverses fonctions de journalisation et d'alerte. Le domaine de messagerie sera ajouté aux noms d'utilisateur de GRR lors de l'envoi de courriels aux utilisateurs=Domaine d'email, par exemple example.com <x>[localhost]</x>:-=Adresse d'email d'alerte=-Adresse où les événements de surveillance sont envoyés, par exemple les clients bloqués, le serveur bloqué, etc.Adresse email d'alerte [grr-monitoring@localhost]:-=Adresse email d'urgence=-Adresse où les événements de haute priorité tels qu'un bypass ACL d'urgence sont envoyés.Adresse email d'accès d'urgence [grr-emergency@localhost]:Rekall n'est plus activement supporté. Activer quand même ? [yN] : [N]:Étape 2 : Génération de clésToutes les clés auront une longueur de bit de 2048.Génération de la clé de signature de l'exécutableGénération des clés de l'autorité de certificationGénération des clés du serveurGénération de la clé secrète pour la protection csrf.Repacked into /usr/share/grr-server/executables/installers/grr_3.2.4.6_amd64.debGRR Initialization complete ! Vous pouvez éditer la nouvelle configuration dans le fichier /etc/grr//server.local.yaml. Veuillez redémarrer le service pour que la nouvelle configuration prenne effet.#################################################################Installation terminée.

Maintenant, redémarrez le service GRR pour appliquer toutes les modifications :

systemctl restart grr-server

Vous pouvez maintenant vérifier l’état de GRR à l’aide de la commande suivante :

systemctl status grr-server

Vous devriez voir la sortie suivante :

grr-server.service - Service GRR
Loaded : chargé (/lib/systemd/system/grr-server.service ; enabled ; vendor preset : enabled)
Active : active (exited) since Fri 2019-04-12 15:57:09 UTC ; 6s ago
Docs : https://github.com/google/grr
Processus : 7178 ExecStop=/bin/systemctl --no-block stop grr-server@admin_ui.service grr-server@frontend.service grr-server@worker.service grr-s
Processus : 7215 ExecStart=/bin/systemctl --no-block stop 7215 ExecStart=/bin/systemctl --no-block start grr-server@admin_ui.service grr-server@frontend.service grr-server@worker.service grr
PID principal : 7215 (code=exited, status=0/SUCCESS)
Apr 12 15:57:09 ubuntu1804 systemd<x><x><x><x>[1]</x></x></x></x>: Démarrage du service GRR...
Apr 12 15:57:09 ubuntu1804 systemd<x><x><x><x>[1]</x></x></x></x>: Démarrage du service GRR.

Accédez à l’interface web du GRR

GRR est maintenant installé et écoute sur les ports 8000 (Admin) et 8080 (Frontend).

Pour accéder à l’interface d’administration du GRR, ouvrez votre navigateur web et tapez l’URL http://192.168.0.104:8000.

Il vous sera demandé de fournir un nom d’utilisateur et un mot de passe Admin, utilisez admin comme utilisateur et le mot de passe que vous avez défini lors de l’installation. Cliquez ensuite sur le bouton OK. Vous serez redirigé vers la page suivante :

Installer le client GRR

Tout d’abord, connectez-vous à l’interface web de votre serveur GRR et naviguez vers l’onglet Manage Binaries (Gérer les binaires) dans le panneau de gauche. Vous devriez voir les différentes versions des clients comme RHEL, Debian, et BSD dans la page suivante :

Votre distro est Ubuntu 18.04. Cliquez donc sur grr_3.2.4.6_amd64.deb pour télécharger le client GRR pour Ubuntu.

Une fois le téléchargement terminé, installez le fichier téléchargé avec la commande suivante :

dpkg -i grr_3.2.4.6_amd64.deb

La commande ci-dessus installera le client GRR sur votre système et s’enregistrera automatiquement sur le serveur GRR.

Vous pouvez également vérifier l’état de GRR avec la commande suivante :

systemctl status grr

Vous devriez voir la sortie suivante :

grr.service - grr linux amd64Loaded : chargé (/lib/systemd/system/grr.service ; enabled ; vendor preset : enabled)Active : active (running) since Fri 2019-04-12 16:24:39 UTC ; 16s agoMain PID : 3305 (grrd)Tasks : 6 (limit : 847)CGroup : /system.slice/grr.service├─3305 /usr/sbin/grrd --config=/usr/lib/grr/grr_3.2.4.6_amd64/grrd.yaml└─3306 /usr/sbin/grrd --config=/usr/lib/grr/grr_3.2.4.6_amd64/grrd.yamlApr 12 16:24:39 ubuntu1804 systemd<x><x><x><x>[1]</x></x></x></x>: Démarré grr linux amd64.

Effectuez l’investigation

Maintenant, allez sur l’interface web du serveur GRR, cliquez sur le champ de recherche et appuyez sur Entrée. Vous devriez voir votre client sur la page suivante :

Maintenant, cliquez sur votre Client pour voir plus de détails comme indiqué dans la page suivante :

Ensuite, nous listerons les processus en cours d’exécution sur le Client.

Pour ce faire, cliquez sur Start new flows > Processes > ListProcesses, sous Connection State, sélectionnez Established et cliquez sur Launch pour lancer le flux. Vous devriez voir la page suivante :

Ensuite, cliquez sur Gérer les flux lancés > ListProcesses > Résultats pour voir les résultats du flux ListProcesses dans la page suivante :

Félicitations ! Vous avez installé avec succès le serveur et le client GRR. Allez-y et jouez avec l’outil.