Как стать автором
Обновить

Пишем свое вредоносное ПО. Часть 1: Учимся писать полностью «не обнаружимый» кейлогер

Время на прочтение6 мин
Количество просмотров154K
Всего голосов 22: ↑7 и ↓15-8
Комментарии15

Комментарии 15

В простом перехвате нажатых клавиш, нет ничего страшного. Может поэтому ни один АВ не видит угрозы?
НЛО прилетело и опубликовало эту надпись здесь
Спасибо, очень познавательно
Это нормально, что Windows даёт такие большие привелегии программам без прав администратора?
Не дает, такая программа будет работать только в интерактивном режиме (выше windows XP), при попытке запустить в качестве службы работающей для всех пользователей нажатий клавиш получить не выйдет. А программу в интерактивном режиме намного проще обнаружить.
Кроме того, этот способ не ловит нажатия в программах, запущенных с повышением привилегий UAC (например, TrueCrypt).
Удивительное рядом: можно написать такого трояна, которого не будут палить АВ!
Ну и где здесь необнаружимость?
Ожидал увидеть в статье информацию о том, как скрывать процесс из Task Manager, как мимикрировать под стандартные сервисы…
А так… Здесь недавно была статья о том, как писать кейлогер на дельфи. С ужасным кодом, но при этом фактический уровень полезности и новизны — такой же…

Ну и отдельно разжевывать, что такое regexp… Специалист по ИБ не знает что такое regexp?? o rly???
согласен с комментариями. зафиксировать нажатия клавиатуры не проблема. проблема – передать на сервер вместе с данными о машине.
По-моему, автор сам из «первой группы».

Тут даже форматирования кода нет, да и в чем «вредоносность»? Это больше похоже на статью новичка, который рассказывает как использовать из C# функцию WinAPI GetAsyncKeyState, чем на статью с таким заголовком.

Да даже если статья была бы уровнем на порядок выше, то Вы правда уверены, что она была бы полезна?
В оригинале форматирование кода, кстати, присутствует, по крайней мере в циклах.
Имхо, для новичка было бы полезнее нечто более фундаментальное, такое, как принципы построения архитектуры малвари, основы защиты и обфускации кода, маскировки. А что внутри написать, догадаться несложно, хоть хелловорлд на синем экране.
Как глупо тестить свои трояны на virustotal. Ведь они сотрудничают с антивирусными компаниями и передают им все семплы.
Увы, ничему хорошему эта статья не учит. Один вот этот пример на C# чего только стоит:
while (true)
{
    Thread.Sleep(100);
    for (Int32 i = 0; i < 255; i++)
    {
        int state = GetAsyncKeyState(i);
        if (state == 1 || state == -32767)
        {
            Console.WriteLine((Keys)i);
        }
    }
}
Не нужно каждые 100мс в цикле проверять каждую из кнопок, а не нажата ли она сейчас. Это как пустая трата ресурсов во время, когда клавиатура не используется, так и отличный шанс пропустить нажатие клавиши, если пользователь печатает достаточно быстро.

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

1. Нужно просто лишить пользователей прав установки ПО/не давать им прав админа/запретить запуск из папки TEMP. Капитан очевидность, но большинство полагают, что присутствие антивируса спасает от применения простых средств защиты.
2. Вредоносное ПО — ПО ставящееся без разрешения или выполняющее неописанные в документации функции. Если вы написали кейлоггер для легального использования и ставится он со всеми нужными уведомлениями — почему антивирус должен его уничтожать?
Перевод из журнала «Хакер»?..
Зарегистрируйтесь на Хабре, чтобы оставить комментарий