--- 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 -