Hacking
December 23, 2021

Как я взломал Privnote

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

Всем салют, дорогие друзья!

Начать свое повествование я хотел бы с простого совета: Не стоит пренебрегать старыми-добрыми хакерскими тактиками. Ведь люди наступают на те же грабли и продолжают пренебрегать элементарными правилами безопасности. Как говорится, страна ждет героев, но рожают — идиотов.

Крупные сервисы — не исключение. И сегодня я продемонстрирую это на примере Privnote.

Privnoteэто крупный сервис одноразовых записок. Как-то раз у меня возникла проблема — я купил товар, который мне отдали через privnote, но забыл его сохранить. Продавец долго не выходил на связь — ведь товар то он уже отдал. А товар мне был ой как нужен.

И тут мою голову посетила удивительная мысль: а почему бы мне не взломать сам Privnote?

Для начала я решил просканить сам сайт с помощью с помощью dirbuster и всех остальных сканеров. Однако, это не дало мне ощутимых результатов.

Ну что, попробуем просканить сервер через nmap, может быть открыты какие-нибудь порты... К сожалению, ничего кроме 80,443 я не нашел.

Далее решено было искать поддомены с помощью сервиса https://securitytrails.com/list/apex_domain/privnote.com. Был обнаружен сервер, который меня заинтересовал:

git.privnote.com	
с IP 190.0.137.208

Я заметил, что на этом IP работал 24 порт. Ну вот теперь можно и позабавиться!

После небольших исследований я пришел к выводу, что диапазоны айпишников:

190.0.137.192/28	
190.0.137.208/28

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

Просканив один из доменов dirbuster_ом, я нашел панельку управления какими-то шопами.

Вооружившись софтом https://github.com/sqlmapproject/sqlmap я начал сканить все post и get запросы на sql injection.

Мой совет для всех новичков - при начале сканирование обязательно добавляем аргументы --level=5 --risk=3 --batch --beep
--level=5 --risk=3 - sqlmap будет сканить на полную мощь 
--batch - автоматизирует все нажатия 
--beep - сообщит звуком если чего найдет
И, о чудо, слышим звук счастья и видим скулю.

Скуля вышла только blind, но из нее не ничего вышло. Ладно, ничего страшного, и так сойдёт.

Я начал двигаться по БД и нашел таблицы с юзерами. Там меня ждал ещё один сюрприз!

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

Ну что же, сканим дальше...

Отсканив все айпишники, я нашел интересную панельку с Gitea и начал перебирать все логины и пароли к ней.

Через пару минут был получен первый успешный результат) Я начал радоваться, т.к. знал про очень интересную CVE-2020-14144.

Но и тут ждала беда, ведь для успешного финала у юзера должны быть активны git hooks.

Сам эксп https://www.exploit-db.com/exploits/49383

Подробно как его использовать https://podalirius.net/en/articles/exploiting-cve-2020-14144-gitea-authenticated-remote-code-execution/

Ну что же, ищем дальше. Перебирая пароли, я в очередной раз зашел с другой учетки и увидел, что у меня есть админ права!

Спешно набираю в консоли nc -lvp 555 запускаю экп. Наконец-то я на сервере.

Начинаю копать сервер на предмет наличия всяких интересных файлов, параллельно запустив https://github.com/carlospolop/PEASS-ng/tree/master/linPEAS

Полазив в самом Gitea, я не нашел ни одной репы, связанной с privnote. Совсем ничего интересного нет.

Помозговав, попробовал ввести вот такую вот команду: ssh root@privnote.com

Опа, коннект пошел, значит я в локальной сети!

Сижу и перебираю логины с паролями, но тут мимо меня пролетела розовая птица обломинго. Введя первый же пароль вижу Host key verification failed.

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

Всё, больше нет не каких зацепок, и смысла дальше куда то лезть.

Но, в последний момент, мне в голову пришла еще одна идея: а не попробовать ли мне залогиниться в почте того юзера, у которого был админ доступ к Gitea?

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

Вижу, что нашему юзеру перенаправляются все письма от: aws@privnote.com

Захожу на https://signin.aws.amazon.com/ и начинаю подбирать пароли... Безуспешно.

Ну что же, последнее, что можно придумать - это сбросить пароль, словить письмо и надеяться, что меня быстро не спалят.

Письмо приходит, захожу в aws.

Работа с aws заслуживает отдельной статьи, но об этом чуть позже.

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

Работа сделана, можно расслабиться. Game over. Мы выиграли.

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

В БД кроме вот таких вот записей ничего нет:

В логах сервера тоже инфа не хранится:

В некоторых логах, конечно, были айпи, но, поскольку их мало, понятно что специально их не хранят:


Заключение

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

Однако, эта статья подтверждает, что при желании взломать можно всё.

На сегодня закончим. Спасибо за внимание!

Да, хочу!