Найти в Дзене
Black Phoenix

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

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

Всем привет!

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

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

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

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. Далее у нас создаётся класс, в котором мы указываем любое заимодеёствие с определённым участком файловой системы: что-то открыл, удалил, модифицировал и т.д.

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

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

Запускаю скрипт и создаю любой текстовый файл на рабочем столе

-2

Провераю телеграм

-3

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

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