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 - Fastolfe

#11
Programación C/C++ / Filtro para mensajes?
11 Enero 2012, 13:46 PM
Buenas!! hace un par de semanas se me ocurrió hacer un programa para ver conversaciones de chat de tuenti que habia capturado con un mitm y un sniffer. Se me ocurrió "generalizarlo", y ahora lo que hace es copiar todo lo que se encuentre entre una "cadena de inicio" y una "cadena de fin". Hay que darle un archivo para leer y otro para guardar las conversaciones, o lo que queramos "filtrar".

Aquí teneis el código:

#include <stdio.h>

#define TMENSAJE 1000

// Funciones

int sizeoffile(char Narchivo[]); // DONE
int sizeofstring(char cadena[]); // DONE
void BInicio(char texto[], int size); // DONE
void Cmensaje(char cadenaF[], char texto[], int posicion, char AEscritura[], int sizeoffin); // DONE
int BFin(char texto[], char cadenaF[], int posicion, int sizeoffin); // DONE

int main(){

char ALectura[30];
printf("Archivo de lectura: ");
scanf("%s", &ALectura);

int sizeL = sizeoffile(ALectura);
char texto[sizeL];

FILE *archivo;

archivo = fopen(ALectura, "r");


int i = 0;
for (i = 0; i < sizeL; i++){
texto[i] = fgetc(archivo);
if (texto[i] == EOF){
break;
}
}

fclose(archivo);

BInicio(texto, sizeL);

return 0;
}

int sizeoffile(char Narchivo[]){
FILE *archivo;
archivo = fopen(Narchivo, "r");

int i = 0;

while (fgetc(archivo) != EOF){
i++;
}
fclose(archivo);
return i;
}

int sizeofstring(char cadena[]){

int i = 0;

while (cadena[i] != '\0'){
i++;
}

return i;
}

void BInicio(char texto[], int size){


char CInicio[50];
printf("Cadena de inicio: ");
scanf("%s", &CInicio);

char CFin[50];
printf("Cadena de fin: ");
scanf("%s", &CFin);

char AEscritura[30];
printf("Archivo de escritura: ");
scanf("%s", &AEscritura);

int sizeofinicio = sizeofstring(CInicio);
int sizeoffin = sizeofstring(CFin);

int i = 0;
int j = 0;
int cont = 0;

for (i = 0; i < size; i++){
for (j = 0; j < sizeofinicio; j++){
if (i-j >= 0){
if (texto[i+j] == CInicio[j]){
cont++;
}else{
cont = 0;
}
if (cont == sizeofinicio){
Cmensaje(CFin, texto, i+sizeofinicio, AEscritura, sizeoffin);
cont = 0;
}
}
}
}
}

void Cmensaje(char cadenaF[], char texto[], int posicion, char AEscritura[], int sizeoffin){

FILE *archivo;

archivo = fopen(AEscritura, "a");

char mensaje[TMENSAJE];

int i = 0;
int j = 0;
int k = 0;
int cont = 0;
for (i = posicion; i < (posicion+TMENSAJE); i++){
mensaje[k] = texto[i];
k++;
for (j = 0; j < sizeoffin; j++){
if (texto[i+j] == cadenaF[j]){
cont++;
}else{
cont = 0;
}
if (cont == sizeoffin){
i = (posicion+TMENSAJE);
mensaje[k-1] = 0;
}
}
}

fprintf(archivo, "\n %s", mensaje);

fclose(archivo);
}

int BFin(char texto[], char cadenaF[], int posicion, int sizeoffin){

int i = 0;
int j = 0;
int cont = 0;

for (i = 0; i < TMENSAJE; i++){
for (j = 0; j < sizeoffin; j++){
if (i-j >= 0){
if (texto[i+j] == cadenaF[j]){
cont++;
}else{
cont = 0;
}
if (cont == sizeoffin){
cont = 0;
return 1;
}
}
}
}

return 0;
}


Tengo también el primero que hice especifico para tuenti, que ademas te pone de quien es el mensaje y para quien (con direcciones de correo de tuenti). Si alguien lo quiere puedo postearlo.

También estoy abierto a sugerencias sobre mejoras en el programa.

Espero que le sirva a alguien!! ;)

PD: siento la falta de comentarios en el código, pero si alguien no lo entiende puedo explicarselo o editarlo con comentarios.

#12
Muchas gracias Sagrini!! Me pondré a comprender tu programa y repasar de nuevo el tutorial.
Gracias! ;)
#13
Programación C/C++ / Problema con sockets
5 Enero 2012, 20:52 PM
Buenas!! acabo de empezar con los sockets y mi  programa solo envia y recibe una cadena (lo estoy probando con el netcat), lo que quiero es que sea una especie de "chat", aunque no sabiendo por que falla no sigo programando para no acumular errores.

El código es este:

#include <stdio.h>          
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

#define MAXR 100

int main(){

int fd, fd2;

struct sockaddr_in server;

struct sockaddr_in client;

int sin_size;

if ((fd=socket(AF_INET, SOCK_STREAM, 0)) == -1 ) {  
printf("error en socket()\n");
exit(-1);
}

printf("Introduce el puerto en el que quieres escuchar: ");
int puerto = 0;
scanf("%d", &puerto);

char cadena[100];
char *pcadena = &cadena;
int tcadena = 0;

server.sin_family = AF_INET;
server.sin_port = htons(puerto);
server.sin_addr.s_addr = inet_addr("127.0.0.1");
bzero(&(server.sin_zero),8);

bind(fd,(struct sockaddr*)&server,sizeof(struct sockaddr));
listen(fd,1);

char recibido[MAXR];
char *precibido = &recibido;
int i = 0;

while (1){
sin_size=sizeof(struct sockaddr_in);
fd2 = accept(fd, (struct sockaddr *)&client, &sin_size);

scanf("%s", &cadena);

tcadena = 0;

while (cadena[tcadena] != '\0' && tcadena < 100){
tcadena++;
}

send(fd2,pcadena,tcadena,0);

recv(fd2, precibido, MAXR, 0);

printf("\n %s", recibido);
}

return 0;

}


Muchas gracias de antemano!! :)

PD: programo en ubuntu 11.04
#14
Hacking / Hacking, the art of exploitation
5 Enero 2012, 00:05 AM
Buenas!! os traigo un libro bastante interesante que cogi hace unos meses de la biblioteca de la universidad, y aunque es demasiado para mi por el momento espero que le sea de ayuda a alguien.  ;D

http://www.mediafire.com/?o133boq5ct3b87g
#15
Hacking / Re: Problema con filtro en ettercap
4 Enero 2012, 06:23 AM
Las 18 páginas que llevo están bien. nunca está de más "repasar", asi que gracias de nuevo alpha015!!

He descubierto el error... y no podría ser más ridículo... 'F' en lugar de 'f'...
#16
Hacking / Re: Problema con filtro en ettercap
2 Enero 2012, 16:53 PM
Gracias por la recomendación alpha015, le echo un vistazo y te comento! =)
#17
Hacking / Re: Problema con filtro en ettercap
31 Diciembre 2011, 20:35 PM
Gracias por la ayuda vlaxys =) Pero ahora el fallo es:

Listening on wlan0...
ERROR : 16, Device or resource busy
[ec_capture.c:capture_init:171]

La cuestión es que cuando quito la opcion -f funciona, no lo entiendo...
#18
Hacking / Problema con filtro en ettercap
25 Diciembre 2011, 19:04 PM
Buenas, el filtro es el siguiente:

if (search(DATA.data,"tuenti")){
log(DATA.data, "/tmp/log.log");
}

Lo compilo con "etterfilter f2 -o filtro", se compila correctamente:

12 protocol tables loaded:
   DECODED DATA udp tcp gre icmp ip arp wifi fddi tr eth

11 constants loaded:
   VRRP OSPF GRE UDP TCP ICMP6 ICMP PPTP PPPoE IP ARP

Parsing source file 'f2'  done.

Unfolding the meta-tree  done.

Converting labels to real offsets  done.

Writing output to 'filtro'  done.

-> Script encoded into 4 instructions.

Pero al poner el ettercap (ettercap -t -f filtro -M arp:remote // -i wlan0) me sale:
TARGET (filtro) contains invalid chars !

Alguien sabe que falla?

Gracias de antemano!! =)
#19
Estaba pensando mas bien en un mitm con el sslstrip y/o algun sniffer. Ahora que lo pienso, alguien sabe si es necesario tener la tarjeta de red en modo promiscuo para capturar todos los paquetes de la red si se ha hecho un mitm antes???
#20
Una cosa que creo que deberias mirar: comprueba si su tarjeta de red esta en modo promiscuo, podria haber capturado mails, contraseñas y conversaciones.
Pd: perdon si el mensaje sale mal, estoy en el movil