Сайт Романа ПарпалакаБлог20210827

Фейковый pop3-сервер

27 августа 2021 года, 00:29

Я оказался в ситуации почти без доступа к некоторому почтовому ящику. Пароль не помнил, но этот пароль был сохранен в почтовом клиенте The Bat. Почтовик вроде как защищает пароль: его нет в открытом виде в конфиге и его нельзя скопировать из окна настройки:

Когда-то давно в аналогичной ситуации я установил анализатор трафика и взял пароль из сетевого пакета. С тех пор поддержку нешифрованного подключения через pop3 на сервере отключили, и такой фокус уже не проходит.

Я стал думать и сообразил, что фокус с перехватом трафика получился бы, если бы я подменил pop3-сервер на свой, который не требует никакого шифрования. К счастью, The Bat позволяет изменить сервер, не требуя повторного ввода пароля. Так что я ввел в это окошко локальный адрес, отключил шифрование и смог подключиться к локальному «серверу».

Чтобы не ставить настоящий сервер, нагуглил скрипт фейкового pop3-сервера. Вместе с этим пришлось узнать, что делает команда CAPA. У меня заработал такой вариант:

#!/usr/bin/env python
import socket

c = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
c.bind(('192.168.0.203',110))
c.listen(1)

while 1:
    csock, caddr = c.accept()
    cfile = csock.makefile('rw', 0)
    print "Connection accepted."
    cfile.write("+OK POP3 PROXY server ready mail.server.com\r\n")

    line = cfile.readline().strip()
    print "LINE: " + line
    cfile.write("+OK\r\nUSER\r\n.\r\n")

    line = cfile.readline().strip()
    print "LINE: " + line
    cfile.write("+OK\r\n")

    line = cfile.readline().strip()
    print "LINE: " + line
    cfile.write("+OK\r\n")

    line = cfile.readline().strip()
    print "LINE: " + line
    cfile.write("+OK\r\n")

    line = cfile.readline().strip()
    print "LINE: " + line
    cfile.write("+OK\r\n")

Запускается и после нажатия на кнопочку синхронизации выдает желаемый пароль. Даже трафик не нужно перехватывать:

roman@zeta:~$ sudo python pop3.py
Connection accepted.
LINE: CAPA
LINE: USER example
LINE: PASS password
LINE: STAT
LINE: QUIT
Поделиться

Серебристые облака — 5 Ctrl Поиграл на рояле в аэропорту

Читайте также

Прокси-сервер через ssh
Полезная вещь в современных условиях — прокси-сервер через ssh. Если у вас есть доступ к какому-нибудь серверу по ssh, и вы хотите пропускать через него свой трафик, запустите в консоли команду
2022
Отладка запросов к FastCGI из консоли
Обычно протокол FastCGI применяется для общения между веб-сервером и бэкендом. Например, связка nginx и PHP-FPM работает по этому протоколу.
2023
Неудачная попытка включить JIT в PHP
Обновил на этом сервере версию PHP с 7.4 на 8.2. Решил включить JIT-компиляцию и посмотреть, будет ли от нее эффект.
2023
Переносим сессии при переезде между серверами
Как-то нам нужно было перенести сессии PHP с одного сервера на другой. Сессии хранились в файлах.
2020

Оставьте свой комментарий


Формулы на латехе: $$f(x) = x^2-\sqrt{x}$$ превратится в $$f(x) = x^2-\sqrt{x}$$.
Выделение текста: [i]курсивом[/i] или [b]жирным[/b].
Цитату оформляйте так: [q = имя автора]цитата[/q] или [q]еще цитата[/q].
Других команд или HTML-тегов здесь нет.

Записи