Hacker Lab


La supervision de la sécurité regroupe l’ensemble des outils et méthodes permettant :

  • de collecter des journaux (logs),
  • de surveiller l’activité d’un système d’information,
  • de détecter des comportements anormaux ou malveillants,
  • d’alerter les équipes de sécurité,
  • de permettre la réaction à incident.

    La supervision est une brique essentielle d’un SOC (Security Operations Center).

1 / 36 - Supervision
1

Lire le fichier en lien.

2 / 36 - Conformité
1

Lire le fichier en lien.

3 / 36 - QCM réponses multiples
1

La directive NIS2 impose :

Une notification d'incident majeur sous 24h
Une obligation de sécurité pour les entités essentielles
Une certification obligatoire pour toutes les entreprises européennes
4 / 36 - QCM réponses multiples
1

Le RGPD concerne :

La protection des données personnelles
La protection des données purement techniques ne contenant aucune information sur une personne
Les organismes qui traitent des données de citoyens européens
5 / 36 - QCM réponses multiples
1

Une violation de données personnelles doit être notifiée :

À la CNIL sous 72 h
Uniquement si plus de 1000 utilisateurs sont concernés
Uniquement en cas d’attaque informatique
6 / 36 - QCM réponses multiples
1

La norme ISO 27001 :

Définit un système de management de la sécurité de l'information (SMSI)
Est obligatoire pour les entreprises de plus de 250 salariés
Inclut des contrôles liés à la journalisation et à la surveillance
7 / 36 - QCM réponses multiples
1

Dans le cadre de NIS2, une entité essentielle :

Est soumise à des obligations renforcées
Peut inclure des secteurs comme l’énergie ou la santé
Correspond uniquement à des entreprises de plus de 5000 employés
8 / 36 - QCM réponses multiples
1

Un registre des traitements est exigé par :

La directive NIS2
Le RGPD
La norme ISO 27001 uniquement
9 / 36 - QCM réponses multiples
1

Les contrôles ISO 27001 :

Sont regroupés dans l'annexe A
Sont identiques à ceux de la directive NIS2
Contiennent des mesures relatives aux accès, aux journaux et à la surveillance
10 / 36 - QCM réponses multiples
1

Les données personnelles incluent :

Une adresse IP associée à un utilisateur
Une adresse email nominative
Un numéro de port réseau d’un serveur
11 / 36 - QCM réponses multiples
1

La pseudonymisation permet :

De réduire les risques associés au traitement de données personnelles
De rendre les données totalement anonymes
De faciliter la conformité au RGPD
12 / 36 - QCM réponses multiples
1

Une entreprise certifiée ISO 27001 :

Doit maintenir un processus d'amélioration continue
Est automatiquement conforme au RGPD
Est auditée régulièrement pour conserver sa certification
13 / 36 - Atelier
1

Vous êtes en charge du SOC, et les développeur viennent de vous confier la supervison de leur nouveau service.

Vous allez étudier le service, et définir la mise sous SOC

Rédiger une étude pour la mise sous SOC:

  • services exposés
  • fichiers de logs
  • traitements sur les fichiers de log pour identifier les attaques
  • étude du service et proposition de supervision de niveau applicatif

    Ce document sera à uploader sur le serveur de l'école.
14 / 36 - Atelier dockers
1

Télécharger et décompresser le fichier en lien.
Installer Docker, et Docker-compose
Lancer l'atelier

unzip atelier.zip 
cd atelier 
./go_create_lan.sh 
docker-compose down && docker-compose rm -f && docker-compose build && docker-compose up 
docker compose down && docker compose rm -f && docker compose build && docker compose up 
15 / 36 - ports
1

Identifiez les ports exposés par le service en regardant le fichier docker-compose

cat docker-compose.yml 
16 / 36 - logs
1

Connectez vous en root au docker 'service' et identifiez les fichiers de logs

docker exec -it service bash 
17 / 36 - logs ssh
1

Saisissez l'emplacement des logs ssh

18 / 36 - analyse manuelle des logs ssh
1

Extrayez les logs ssh du docker.
Identifiez les tentatives de connection.
Identifiez les attaquants. Quelles informations sont pertinentes ?

19 / 36 - analyse auto des logs ssh
1

Proposez un script qui extrait les champs intéressants et identifiez les attaques
Lesquelles sont reussies ?

20 / 36 - logs http
1

Saisissez l'emplacement des logs des requètes http valides

21 / 36 - logs http en erreurs
1

Saisissez l'emplacement des logs des requètes http en erreur

22 / 36 - analyse manuelle des logs http
1

Extrayez les logs http du docker, identifiez les attaques.
Identifiez les attaquants. Quelles informations sont pertinentes ?

23 / 36 - analyse auto des logs http
1

Proposez un script qui extrait les champs intéressants et identifiez les attaques.
Lesquelles sont reussies ?

24 / 36 - Connaitre le service
1

Connectez-vous au service en http

http://localhost:8080 
25 / 36 - LFI
1

Identifiez la LFI
Réalisez une exploitation de la LFI

26 / 36 - upload
1
http://localhost:8080/upload.php 

Identifiez les vulnerabilités du service d'upload
Réalisez une attaque par shellcode.
Comment la détecter ?

27 / 36 - ssh creds ftw
1

Exploitez les crédentials ssh, et détectez votre intrusion

28 / 36 - Trafic réseau
1

Sur le host, identifiez le bridge qui correspond à atelier_labnet

docker network inspect atelier_labnet : grep Id 

Docker crée automatiquement l’interface Linux avec les 12 premiers caractères de l’ID

ip link | grep br-b6caf072e957 


Lancez un tcpdump dans un shell

sudo tcpdump -i br-b6caf072e957 -w labnet.pcap 


Et relancez l'atelier dans un second shell

Installez et utilisez wireshark pour identifier:

  • les endpoints
  • les flux entre ces endpoints
29 / 36 - Scapy
1

Utilisez scapy pour:

  • identifier les endpoints
  • identifier les protocoles
30 / 36 - Scapy ssh
1

Que peux-ton faire avec scapy pour analyser ssh ?

31 / 36 - Scapy http
1

Que peux-ton faire avec scapy pour analyser http et identifier les attaques ?

32 / 36 - Scapy http app
1

Que peux-ton faire avec scapy pour analyser http et identifier les attaques vers les endpoints conus de notre applicatif ?

33 / 36 - Splunk
1

Installer splunk

docker pull splunk/splunk:latest 
docker run -d -p 8000:8000 -e "SPLUNK_START_ARGS=--accept-license" -e "SPLUNK_GENERAL_TERMS=--accept-sgt-current-at-splunk-com" -e "SPLUNK_PASSWORD=Superpassword101$" --name splunk splunk/splunk:latest 


Consultez les logs

docker logs splunk 

Connectez vous à l'interface en http://localhost:8000 avec admin:Superpassword101$


Aide: https://docs.splunk.com/Documentation/Splunk/10.0.2/SearchTutorial/NavigatingSplunk

34 / 36 - Splunk HTTP
1

Utilisez Splunk pour analyser le trafic HTTP

Importer des données

Format d'horodatage: %d/%b/%Y:%H:%M:%S
Help: https://docs.splunk.com/Documentation/Splunk/10.0.2/Data/Configuretimestamprecognition?ref=hk


Extraction des champs
Séparation par des Espaces
ip remote_log_name userid date timezone request_method path request_version status length referrer user_agent session_id generation_time_micro virtual_host

Regex:
"(?P.?) (?P.?) (?P.?) \[(?P.?)(?= ) (?P.?)\] \"(?P.?) (?P.?)(?P HTTP/.)?\" (?P.?) (?P.?) \"(?P.?)\" \"(?P.?)\" (?P.?) (?P.?) (?P.*)"g

HTTP en Général

  • IP les plus présentes
  • Url les plus sollicitées
  • Nombre d'évènement en 200 et 400
  • IP avec le plus de 404

    Votre appli
  • Ses endpoints en erreur
  • Les IP avec des mix errreurs et 200

    Comment établir un tableau de bord permettant de détecter
  • utilisateur légitime
  • scanner génériques
  • scanner reussissant à exploiter le service après des tentatives
35 / 36 - Splunk ssh
1

Mettez en place un tableau de bord pour ssh

36 / 36 - Splunk dashboard
1

Mettez en place un tableau de bord multi protocole permettant d'identifier les attaques