Интересно Как поймать хацкера за попу или написание своего honeypot'а

Anorali

Pro Member
Сообщения
86
Оценка реакций
121
honeypot-trap.jpg

Всем привет!

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

Код:
Honeypot (с англ. — «горшочек с мёдом») — ресурс, представляющий собой приманку для злоумышленников. Задача Honeypot — подвергнуться атаке или несанкционированному исследованию.
Honeypot'ом может являться открытый порт или оставленный на видном месте файл, который так или иначе заинтересует нашего шаловливого хацкера) Honeypot может как и собирать информацию о характере поведения хакера в системе, так и просто оповещать о присутствии постороннего нас. Honeypot'ов существует превеликое множество, все они разные, с разным функционалом и возможностями

Для демонстрации я написал за вечер небольшой honeypot на нашей любимой змейке)

Python:
import pyinotify
from telethon import TelegramClient
from telethon import sync, events
import requests

api_id = xxxxxxxx
api_hash = 'xxxxxxxxxxxxxxxxxxxxxxxxx'

client  = TelegramClient('Test test', api_id, api_hash)

client.start()

dlgs = client.get_dialogs()

class MyEventHandler(pyinotify.ProcessEvent):
    def process_IN_ACCESS(self, event):
        client.send_message('Обдолбанная лиса', "Есть пробитие!")

    def process_IN_ATTRIB(self, event):
        client.send_message('Обдолбанная лиса', "Есть пробитие!")

    def process_IN_CLOSE_NOWRITE(self, event):
        client.send_message('Обдолбанная лиса', "Есть пробитие!")

    def process_IN_CLOSE_WRITE(self, event):
        client.send_message('Обдолбанная лиса', "Есть пробитие!")

    def process_IN_CREATE(self, event):
        client.send_message('Обдолбанная лиса', "Есть пробитие!")

    def process_IN_DELETE(self, event):
        client.send_message('Обдолбанная лиса', "Есть пробитие!")

    def process_IN_MODIFY(self, event):
        client.send_message('Обдолбанная лиса', "Есть пробитие!")

    def process_IN_OPEN(self, event):
        client.send_message('Обдолбанная лиса', "Есть пробитие!")

def main():
    wm = pyinotify.WatchManager()
    wm.add_watch('/home/badrabbit404/Рабочий стол/', pyinotify.ALL_EVENTS, rec=True)
    eh = MyEventHandler()
    notifier = pyinotify.Notifier(wm, eh)
    notifier.loop()

if __name__ == '__main__':
    main()
Обычно различные профаны в безопасности оставляют на рабочем столе файлы с паролями и другими данными о себе. Хакеры об этом знают и активно этим пользуется, а мы в свою очередь сделаем русскую многоходовочку и наебнём хацкера, оставив на столе файл с интересным названием)

Теперь объясняю код - мы используем библиотеку pyinotify и telethon. Думаю с telethon всё понятно(для работы с телеграм), а вот inotify помогает нам отслеживать действий с файловой системой.

Для работы с telethon вам потребуется указать свой api_id и api_hash, которые можно узнать на сайте my.telegram.org. Далее у нас создаётся класс, в котором мы указываем любое заимодеёствие с определённым участком файловой системы: что-то открыл, удалил, модифицировал и т.д.

Теперь тестим:

Показываю чистый телеграм
85197.png

Запускаю скрипт и создаю любой текстовый файл на рабочем столе
Снимок экрана 2020-07-31 00:12:01.png

Провераю телеграм
Снимок экрана 2020-07-31 00:12:22.png

Как видим всё работает!

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

P.S. если возникли проблемы пишите в личку, всем помогу)
 
Последнее редактирование:

ParkIS

Member
Сообщения
24
Оценка реакций
8
"Горшочек с мёдом"... сразу вспоминается Винни Пух, который полез головой в горшок, а назад уже никак)
 
  • Like
Реакции: RomaDroID и Anorali

RomaDroID

Member
Сообщения
19
Оценка реакций
14
Darth Vader в контактах ~ +100 к безопасности
сам не являюсь хацкером, но выглядит всё довольно интересно
 
  • Like
Реакции: Anorali