Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Sagrini

#31
GNU/Linux / Re: problemas al iniciar
12 Marzo 2012, 18:26 PM
Prueba a pulsar Alt+F1, a ver qué te sale. A lo mejor algo que has actualizado no es compatible con tu ordenador :P
#32
Pontificar? Jajaja xD Lo decía porque tras usar linux y su terminal (que en mi Arch va como la seda) usar la terminal de Windows es engorroso y poco práctico. Vaya recuerdos, me pasé una semana para instalar Dev-Cpp, y todo porque lo había descargado mal :P Anda que no di la lata por eso!
Por otro lado, C me parece mucho más práctico que C++. Lo malo es que después de usar C, Visual Basic espanta ;) Yo no sé C++, pero simplemente porque no me gusta. Always C, y sobre todo para aprender! ;)
#33
Bueno, pues la decisión de aprender C o C++ es tuya. Las diferencias, la sintaxis. Yo personalmente prefiero C, y te lo recomiendo antes que C++ ya que creo que C es más ordenado, sencillo y práctico. C++ es sólo una versión supuestamente mejorada de C. Como he dicho, te recomiendo C, pero haz lo que quieras.
Luego, muchísimo mejor hazlo todo desde Ubuntu. Aprenderás mucho más. Bueno, no es malo saber cómo usar sockets desde Win32, pero creo que Ubuntu va a ser mucho mejor. El entorno gráfico de su última versión no me gusta mucho, pero es 120% mejor que Windows.
Finalmente, yo creo que todo se hace mejor desde la consola porque (me repito un poco pero...) se aprende mucho más. Desde linux, te recomiendo usar gcc y nano. Como alternativa a nano (el editor de texto), yo eligiría gedit, pero es gráfico. Desde Windows hacerlo desde la consola es peor. Instala CodeBlocks, por ejemplo.

En definitiva, aprende C, utiliza siempre que puedas Ubuntu y prueba gcc como nano (te vienen preinstalados).
Te voy a mandar un mensaje personal. Respóndeme cuando puedas ;)
Un saludo. Sagrini
#34
Programación C/C++ / Re: Contar caracters
10 Marzo 2012, 21:56 PM

#include <stdio.h>
#include <string.h>

int main ()
{ char buffer [32], letra; int i=0, cont=0;
printf ("Cadena: "); read (0, buffer, 32); for (i=0; buffer[i] != '\0' && buffer[i] != '\n' && i!=32; i++); buffer [i]='\0';
printf ("Letra: "); read (0, &letra, 1);
for (i=0; i<strlen (buffer); i++) if (buffer[i]==letra) cont++;
printf ("La letra %c aparace %d veces\n", letra, cont); return 0;
}
#35
http://sagriniworkingbash.blogspot.com/2012/03/10032012-atacando-aslr-texto.html

¡Buenas noches! Recién acabado, aquí os dejo mi último texto sobre exploiting. Trata sobre la protección ASLR y sobre cómo saltársela de una forma rápida y sencillita. Está comprimido en un .zip, en el que está el .txt, los códigos en /src/  y los binarios en /bin/. Todo bajo un entorno ArchLinux con kernel 3.2.8. Seguramente no muy bien explicado, a lo mejor con alguna tontería mal escrita... Que lo disfrutéis.
Cualquier falta que podáis ver en el texto (aunque sea ortográfica ^^), cualquier duda o sugerencia, por favor escribidme a sagrini@elhacker.net. ¡Nos vemos!


:: 0x00 -- Análisis previos
:: 0x10 -- Primeros intentos
:: 0x20 -- Creando el exploit
:: 0x30 -- Final

http://www.mediafire.com/?50bidv2s2y3l9qo
http://sagriniworkingbash.blogspot.com
#36
1. Buffer overfllow en variable "var". No se puede sobreescribir nada excesivamente importante, pero está ahí y si le das unas cuantas vueltas puedes conseguir algo ;)
2. La función de comparación no funciona como debería. Ahí se podría tal vez explotar el punto 1, pero habría que pensarlo.
3. La variable "a [10]" sobra.

Dándole vueltas creo que se puede saltar la comparación y que te devuelva OK, tendré que pensarlo.
Corrijo un poco el código:

#include <stdio.h>

int lenght (char *s)
{ int i;
for (i=0; s [i] != '\0'; i++);
return i;
}

int compare(char a[], char b[])
{ int i;
if (lenght (a) != lenght (b)) return 1;
for (i=0; i<lenght (a); i++) if (a[i] != b[i]) return 1;
return 0;
}

int main()
{ printf("Introduce la clave: ");
char var [32]; char ok [] = "hola"; int i;
fgets (var, 32, stdin); for (i=0; var [i]!='\n' && i<32; i++); var [i]='\0';
if (compare(var, ok) == 0) printf("Enhorabuena!\n");
else printf("Pringao\n");
return 0;
}

Y si lo prefieres sin siquiera usar stdio.h:

int lenght (char *s)
{ int i;
for (i=0; s [i] != '\0'; i++);
return i;
}

int compare(char a[], char b[])
{ int i;
if (lenght (a) != lenght (b)) return 1;
for (i=0; i<lenght (a); i++) if (a[i] != b[i]) return 1;
return 0;
}

int main()
{ write (1, "Password: ", 10);
char var [32]; char ok [] = "hola"; int i;
read (1, var, 32); for (i=0; var [i]!='\n' && i<32; i++); var [i]='\0';
if (compare(var, ok) == 0) write (1, "OK!\n\n", 5);
else write (1, "BAD\n\n", 5);
return 0;
}
#37
Sí, será el puerto en el que tendrás que tener esperando para obtener el reverse shell. La duda es de qué tipo es el exploit.
Yo de tí probaría a correr el netcat en el puerto que tu quieras, abrirlo en tu router y correr el exploit con el número de ese puerto. De todos modos, me falta información ;) Pásame el exploit y concreto un poco más...
#38
Para nada :P No estoy dispuesto a usar nunca más FILE. Las funciones open ()-close () y write ()-read () demuestran solas su eficacia. Lo único que pierdo es feof (), pero fprintf ()-fwrite () / fscanf ()-fread (), nada. A mí el mío me va de lujo ^^. Es más, estoy haciendo un demonio para Tecnología con todas estas funciones jajaja (se derrumba con un nmap -Pn pero bueno jaja)
#39
Demanda. No necesitas pruebas para demandar, la policía se encarga de eso. Si quiere más consistencia, que presente el blog. Si la novia está dispuesta a declarar, no habrá problemas.
¿Por cierto, por qué te llaman a ti los tipos con problemas? Jaja
#40
Keylogger? No interesa. No es tan fácil hasta que lo haces. Dices que es muy fácil pero también dices que no sabes. Wow.
Busca en las chinchetas. Te dejo un código para linux que va ha hacer exactamente lo que dices en el título. Para el keylogger no te voy a ayudar, para eso vete a la sección de malware.


#include <stdio.h>
#include <fcntl.h>

int main (int argc, char *argv [])
{ if (argc != 2) { printf ("Use: %s <file>\n", argv [0]); return 1; }
int fd; char car=0;
if ((fd=open (argv [1], O_CREAT|O_APPEND|O_WRONLY, 0700)) == -1) { perror ("Opening file"); return 1; }
while (car != '\n') { read (1, &car, 1); write (fd, &car, 1); }
close (fd); return 0;
}

Código (bash) [Seleccionar]

[sagrini@Arch Desktop]$ gcc -o code code.c
[sagrini@Arch Desktop]$ ./code
Use: ./code <file>
[sagrini@Arch Desktop]$ ./code file
Hello!
[sagrini@Arch Desktop]$ cat file
Hello!
[sagrini@Arch Desktop]$