PDA

Просмотр полной версии : Брутфорс e-mail через SMTP


X-TAZY
11.12.2008, 22:42
Привет всем форумчанам! У меня такой вопрос: "Почему почту брутят в основном только через pop3 протокол?". Я решил поэкспериментировать и написал так называемый smtp брутфорс на Delphi. Если что сильно не пинайте, а лучше подскажите как добавить многопоточность и чего бы можно было добавить еще. Скачать его можно здесь (http://depositfiles.com/files/kk1qake8w). Жду ваших отзывов и предложений.

sa~
11.12.2008, 22:49
http://www.virustotal.com/ru/analisis/8d4487897d1311d4014aa1a07891319d
...

X-TAZY
11.12.2008, 23:03
Ты хочешь сказать, что я тут вирусы распространяю? Это напрасно, программа действительно работает, я думаю кто разбирается в delphi без труда разберет код.

De-visible
11.12.2008, 23:19
Просмотрел код, молодец.
А то думал очередная хрень через компоненты(, а так лови+:)
Если есть время будь активней лучше в разделе кодинг)))

12usver12
12.12.2008, 10:47
я не смотрел код , но при реализации многоп-ти тебе надо сразу будет подумать, как распределить работу между потоками... да и еще таймаут, прокси, соксы и т.д.

X-TAZY
12.12.2008, 11:30
При всем уважении к google, хотелось бы получить более конкретные советы, рекомендации, примеры, т.к. тема интересна и нигде мне не встречалась. Еще хочу отметить, что не реализовал resolve в программе, но это не так важно и при желании я смогу это сделать, поэтому в поле smtp сервер вводится IP-адрес smtp сервера, а не доменное имя.

MongBa†
14.12.2008, 14:23
Элемантарная реализация многопоточности..

type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
BtChoose: TButton;
//.........................
procedure BtChooseClick(Sender: TObject);
procedure BtBeginClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

Brute = class(TThread)
WSAData:TWSAData;
sock:TSocket;
addr:TSockAddrIn;
procedure Execute; override;
end;

var
Form1: TForm1;
thr: array [1..999] of Brute;

implementation

{$R *.dfm}

procedure Brute.Execute;
begin
// Здесь код одного потока брута
end;

procedure TForm1.BtBeginClick(Sender: TObject);
var i:integer;
begin
for i:=1 to 99 do
begin
thr[i]:=Brute.Create(false); // Стартуем
sleep(500);
end;
end;


В дальнейшем столкнешся с проблемами таймаута для каждой нити, с глюками TStringList-а , который при совместных обращениях может вытащить либо пустой пароль либо вовсе заглючить и выкинуть..
СМТП брут уже давно реализован в Гидре , так что не знаю есть ли смысл изобретать велосипед, разве что в целях собственного развития :)

X-TAZY
15.12.2008, 00:24
Отлично! Большое спасибо! Попробую реализовать...