---
# System prepended metadata

title: Winsec - 2
tags: [' moemoea.fierin', winsec]

---

---
title: Winsec - 2
tags: winsec, moemoea.fierin
---


[TOC]
# <span style="color: red"> Plan </span>
Introduction à Windows
Cours prochain: réseau
autorisation



# <span style="color: red"> Histoire et versions de Windows </span>
## <span style="color: green"> Histoire du DOS </span>
**Apparition Windows NT:**
- premier version: 3.1

Seul windows NT survie 
Les sys Windows d'auj sont tous base sur Windows NT

**Familles NT:**
Windows 10 et Win Serv 2016, quand on prend les binaires c'est la meme chose globalement.

**Caract Windows NT:**
Actuellement dans l'univers PC on a 2 elements:
- x86 abandonner pour les serveur depuis 2008 R2
- x64 de windows XP/serv 2003


**Fonctionnalités editions serveur:**
- ce qui fait la pluvalu de ces elements c'est qu'on va avoir des elements en plus:
server web, dhcp
- Virtualisation: HyperV (critical business pr microsoft
- AD: c'est ce qui porte l'authen en entreprise donc element critique aussi 
- type d'installation: les nano ont ete remplacer, pour certais on ne met pas les outils d'administration graphique meme s'il supporte le graphique





# <span style="color: red"> Architecture Général du système </span>
## <span style="color: green"> archi schématique </span>
- Materiel
- Historique: la HAL on avait d'autre sys avant donc il fallait abstraire tout ca grace a une biiblio d'abstraction (la HAL)
- Par dessus on a le noyau: gestion entree sortie etc.
- Les pilotes au meme niveau
- Au dessus l'executif! gestion des processn de la mem, la securite, gestion de la config du sys.

Ensuite Espace utilisateur
- smss.exe: gestionnaire de session par ce que l'utilisateur va avoir des object qui lui sont propre.
- gestionnaire d'environnement des sous sys: 
    - windows est née dans un env ou il y a pas mal de materiel 
    - va assurer l'env d'exec des process (ca a disparu auj mais l'archi est rester on a tjrs un sous sys windows qui existe sous windows)
- Services support:  gerer les journaux, ...
- Appli utilisateurs:( ca n'existe plus )

## <span style="color: green"> sous sys  </span>
Sous systeme: (ils ont disparu)
- POSIX sous sys: n'a jamais vraiment marché
    -  Windows 10 2004 WSL 2 

## <span style="color: green"> relations et appels  </span>

Le loader win charge kes principales bibliothk
quand on fait un createfile ca appelle l'api sys de windows
c'est la force de windows: le code marche tjrs meme si on l'a coder y'a des année.
Le process est le meme, juste les biblio qui sont rajoute
tant que la biblio assure la perenite de la bibliotek derriere ca fonctionne.


les biblio: elle  connaissent le sys
- biblio autosuffisante: 
- biblio demande des choses que l'executif ne sait pas faire donc le sous sys s'en occupe
- biblio fait un appel sys donc solicitation d'un executif

Interface NTDLL: prepare l'appel a l'executif

dispatcher: 280  fonctions ou on rajouter NT devant et c'est envoyer a l'execution
![](https://i.imgur.com/grSeUr7.png)


Session:
simultanement a dist par un protocol reseau
on va s'auth quand on arrive sur windows et cest tout cette env qui est gerer par la sessiosn windows

qd le sys demarre il creer les process (sessiosn 0) on y trouve les process du sys
qd les prog sont ds des sessiosn diff, certains objets noyau ne peuvent pas etre ouvrt d'une session a une autre. (mutex d'une session et mutex d'une autre)


Comment on passe d'une sess a une autre:
- on se co ca creer la sess 1, 
- se deconnecter: la session reste
- si on se reco avec le meme utilisateur cest la meme sess mais si cest un autre on recreer une autre sess

ouverture d'une session laisse des secrets sur la machine


client: MSTSC
TCP 3389 (truffe de vuln, ça)

Fermer la session; on tue tous les process de notre session et donc on la ferme completement
Fermer la session != disconnect != verouillage



![](https://i.imgur.com/TGckk1n.png)

chaine de demarrage pieger?
qui a le droit de demarrer quoi?
probleme de signature numerique mais il faut demarrer la chaine = secure boot (qui a des certificats et on regarde si ce qui est executer est signé. )

Gestionnaire de session en session 0 (car aucune session de creer)
ensuite on demarre vraiment la session 0
SMSS 
- un qui gere que la session 0
-    se relance ((il va rester en mode chef d'orchestre))
-    on creer une session 1

windows init: gestionnaire d'initialisation
winlogon: winit version alleger de winlogon, winlogon prend en charge l'authen des utilisateur

une fois que la session est termoner on supprime les deux SMSS
on lance LSASS: process qui prend en charge enormement d'aspect securité

ensuite on va avoir besoin de tous les reste: serveur dns, dhcp, ... implementer sous forme de service 
SCM: service control manager (service.exe):
- tourne en sessio 0
- va demarrer les serv selon sa base de configuration
- gestion des journaux/gestio partage de fichier , tous ses services qui sont implem sous forme de process
- c'est implem la par ce qu'on a besoin très très tot 

le sys est demarrer , on a un fond d'ecran , ... 
CTRL ALT SUP: sequence d'authent securise,, Logon process intercepte  et creer un credential provider (loil recupere les mdp et les passe a logon et les passe a local securituy authority
renvoie a winlogon et il demarre user init qui va faire des travaux pour terminer l'initalisation de la session 

:::info

si le truc bleu crash on s'en fou
si l'amat de vert crash cest le service maanger qui decide
si lesprocessus systeme crash il y'a evidemment plus de chance a ce que tout crash.

:::

# <span style="color: red"> Pyramide des droits </span>

**Entité**
Utilisateur anonyme
Peut se produire avec des acces reseau -!>pas eu d'authen donc on ne sait pas qui c.
Utilisateur: ne peuvent pas porter atteinte al'integrite du sys ou des autre utilisateuyrs
admin: atteinte a l'integrite du sys ou des autres utilisateurs
utilisateur root sous linux, sous windows ils ont creer une entite de securité superieur aux admin: systeme
systeme; bien plus privilegie
noyau tourne dans le meme contxt de secu que le noyau, difference de restrictions materiele entre les deux.

**Frontiere:**
utilisateur anonyme/utilisateur: frontiere impermeable
utilisateur /admin= on veut qu'elle soit impermeable mais il y'a des elevations de privilege
admin/system: on voudrait que ce soit impermeable mais cest impossible. Frontiere qu'on ne cherche pas a empeche car ca n'a pas d'interet
sys/noyau: on ne peut pas l'emppeche (chargement de pilotes)


![](https://i.imgur.com/aluyp6M.png)

kernel signing
on ne peu pas charger un pilote s'il n'est pas signé. (Securite pas ouf)


Depuis une ou 2 generation il faut que ce soit signé et que ce soit contre signé par microsoft (poste sur un site de microsoft et qu'eu de leur coté valide)

au dessus du noyau: on a eu SMM (mode particulier du processor)
auj: on a la virtualisation au dessus du noyau

:::warning
Avec process explorer/hacker: on peut voir les process en system
:::



## <span style="color: green"> Principaux composants </span>
Composants lier a la securite:
- strategie de securite locale: secpol.msc (snapping d'administration qui se lance par MMC), avoir une console d'administration dans lequel on vient rajouter des composants d'administration.
- Stratégie de groupe locale 
- Base SAM: c'est bse des comptes locaux. Par defaut les admin sont autorise a modifier la base des comptes (SAM) mais rien n'empeche de le changer. Le modele de securité est extremement fin. Les autres groupes de type d'entite: sont des groupes de delégations.


## <span style="color: green"> Appel en mode utilisateur </span>
get-localUser ...
generation batch -> generation graphique -> generation powershell
tout ca, ca va modifier 

 
 
 
 
 Journalisation: si on journalise trop on sera noyer
 strategie d'audit -> categories d'event qu'on peut activer ou pas
 Un truc cool pour la detection d'event: creation de processus, faut bien le traiter derriere aussi 
 
 
 autre event : journaux applicatif: dixaine d'event (par exemple GPO=>
, le moteur d'appli des GPO gnere ici ces events)
 
 
 l'observateur d'event: gerer par un service eventplug (?) 
 
 
 Principaux produits
 
 
 
# <span style="color: red">Update BuildRevision(UBR)</span>
Au lieu de passer par de la maj unitaire on est passe a de la maj cumulative (UBR)
Sous Win10, les maj sont forcement cumulative.

Mise a jour a faire regulierement obligatoire
on sort un windows: numero de build (3 eme) et UBR (numero de revision des maj, 4e chiffre)


Feature update: 

canaux de windows 10:
- canal semi annuel: qd on doit maj 2 fois par ans. Ils ont 18mois pour le faire sauf s'ils ont la version entreprise (30mois dans ce cas)

WUA => chargé des mises à jour système

WSUS (prononcé wusus) on peut les doubles chainés, il y'a des process pour avoir des WSUS offlines

Tier 0 ADM dom => DC (vient tirer sur le WSUS)
Tier 1 Serveurs => WSUS
Tier 2 Workstations



# <span style="color: red">Organisation</span>

Le rgistre: un ens de donnée, des bout dyn et des bouts persistants
- les ruches
- hierarchiser: comment j'aggripe les bouts du regisstre.
    - root keys: la ou il y'a toutes la config de la machine, 
    - HKLM Local machine: les utilisateur peuvent lire et les admn peuvent ecrire (HKLM) config de la machine
    - HKCU current user (pour sauvgarder des param pr nous meme)

programmeData => zone d'ecriture des données de type fichiers pr le sys
App data => plusieurs dir dedans (roaming, local)


wow64: Windows 32b on Windows 64
quand 64 bit est sortie: on permet dans un env 64 bit de creer un env 32 bit (emulation pour que les prog 32b fonctionnent)

SCM: 
- demarrage de certains pilotes
- gestion de la base des service/pilotes installer (ajout , supp, config)


outil de gestions des services

type de service:
- herbergeur de services
- il y'a plusieurs svchost
- 
