Выцепить пароль из файла настроек роутера TP-Link

Находясь у родственников и не удовлетворившись качеством роутера TP-Link TL-WR340GD (V3), вызвавшим сурьёзные нарекания по части стабильности wifi-соединения, решил заменить его чем-то другим. Но для начала, чтобы невзначай не остаться без интернета, надо бы найти логин/пароль провайдера для PPPoE-соединения. Конечно, где-то был договор с провайдером, в тексте которого были прописаны эти данные, да только кто бы знал, где ж тот договор…


Роутер примерно такой, картинка из интернета

В принципе, зайдя в веб-морду роутера, можно увидеть логин, но вот пароль отображён чем-то типа •••••• В связи с этим остаётся только одно логичное решение: из-под веб-интерфейса сделать backup настроек, а затем попытаться прочесть этот файл (он называется config.bin).

Открытие сего конфигурационного файла в лоб текстовым редактором не привело ни к чему хорошему: одни иероглифы да кракозябры. Тогда я засунул его в hex-редактор — также ни пусто ни густо, всё та же беспросветная стена из кракозябр. В общем, понятно, труба дело, файл настроек зашифрован. Решил поискать в гугле возможные способы дешифровки, и — о, чудо — практически первая же ссылка вела на гитхаб китайского товарища (коему огромное спасибо), выложившего дешифровочный скрипт (написанный, правда, на python’е). :)

Там у него помимо config.bin ещё какой-то неведомый model.conf дешифруется, но нам в данном случае это не нужно, посему соответствующие сроки из скрипта я выбросил. Поскольку config.bin закачался у меня в директорию Downloads, я там же создал файл decryptme.py такого содержания:

from Crypto.Cipher import DES
from hashlib import md5

key = '\x47\x8D\xA5\x0B\xF9\xE3\xD2\xCF'
crypto = DES.new( key, DES.MODE_ECB )

data = open('Downloads/config.bin', 'rb').read()
data_decrypted = crypto.decrypt( data ).rstrip('\0')
assert data_decrypted[:16] == md5(data_decrypted[16:]).digest()
open('Downloads/config.bin.txt', 'wb').write(data_decrypted[16:])

Примечание. Кавычки везде должны быть «прямые» (а то Вордпресс «скривляет»): '

А дальше просто запустил в терминале:

python Downloads/decryptme.py

И вуаля — на выходе в той же Downloads появился файл config.bin.txt со всеми данными. :) Даже сам удивился, насколько всё просто оказалось…

{upd}

Господа, читайте также комментарии ниже, информация может быть весьма полезной. Удачи! :)

{upd 30/09/2020}

Часть 2. Как выцепить пароль из ADSL-модема Asus DSL-N10E

Волею судеб ещё разок пришлось столкнуться с описанной проблемой, и теперь под рукой оказался модем/роутер Asus DSL-N10E:


Картинка из интернета

На сей раз, правда, задача стояла не столь остро: в том плане, что пока не решили, стоит ли менять этот, думается, отпахавший своё модем на что-то более приличное и стабильное (по части того же wi-fi-соединения), или же сразу уйти к кабельному провайдеру. 🙂

Однако на случай продолжения пользования ADSL-интернетом и смены модема на современную модель очень неплохо было бы заранее выцепить из него учётные данные для PPPoE-соединения (и не только). Проблема лишь в том, что пароль ожидаемо закрыт буллетами: ••••• Договора с провайдером, естественно, под рукой нет, и где он лежит, никто не помнит. 😺

Однако возиться с дешифровкой конфига откровенно не хотелось, вместо чего решил прямо по-ленински пойти другим путём: с детской наивностью глянуть в браузере (в данном случае, Chrome) эту область с паролем через правую клавишу → «Просмотр кода элемента» («Inspect«).

Разумеется, шансы низкие: кто ж будет скрывать чувствительную информацию лишь средствами CSS/js, да ещё и в случае с таким уважаемый производителем, как Asus… Фактически, «защита от дурака» и не более того.

А поди ж ты — логин и пароль отображаются в девственно чистом виде! 😺

Voilà!

Естественно, способ может сработать и на других модемах и роутерах — проверить немудрено, в отличие от дешифровки на питоне. 🙂

Запись опубликована в рубрике компьютерное с метками , , , . Добавьте в закладки постоянную ссылку.

Внимание! Администрация сайта adlersky.top не имеет отношения и не несёт никакой ответственности за публикуемые ниже, т.е. под оригинальными записями и внизу страниц сайта, комментарии, не отвечает за их содержание. Все права на комментарии (и всё бремя ответственности за публикацию) принадлежат их авторам.

21 комментарий на «Выцепить пароль из файла настроек роутера TP-Link»

  1. влад говорит:

    Crypto.Cipher откуда взять? ругается именно на это.

  2. Виталик говорит:

    Блин круто! А я маялся как пароль вытащить. Спасибо, сработало. Манипуляции проводились на FreeBSD 9.1 :) К питону пришлось тоже устанавливать crypto.

    • Wsewolod говорит:

      Манипуляции проводились на FreeBSD 9.1

      Мсье знает толк… :-))))

      Кстати, в adsl-роутерах с вай-фаем типа TD-W8901N фишка не проходит, увы… :( Оттуда удаётся выцепить только пароль админа (да и то другим кодом, а не описанным в статье), но толку с того как с козла молока.

  3. Евгений говорит:

    Поясните для тех кто в «танке» 1) Модуля нет по вашей ссылке- нашел в сети — как его установить? Файл как здесь описано создал, скобки поправил но запустить его не могу — пишет синтаксическая ошибка — хотя пишу так же как у вас описано.Если не трудно ответьте — понятно что эта тема не для новичков, но вот то что тут описано как раз новичкам то и нужно.Спасибо. Python 3.3.0

  4. Vladislav Kononenko говорит:

    А мне вот этот метод понравился:
    http://teknoraver.net/software/hacks/tplink/
    Вот, правда, там linux-специфика, но мне как раз очень удобно =)
    Вся расшифровка сводится к одной строке:
    openssl enc -d -des-ecb -nopad -K 478DA50BF9E3D2CF -in config.bin

  5. Виталий говорит:

    1. Скачать установить Питон https://www.python.org/downloads/windows/
    2. Скачать модуль крипто https://pypi.python.org/pypi/pycrypto разархивировать его на диск и установить через питон командой phiton setup.py install
    3. выполнить данный модифицированный скрипт:

    from Crypto.Cipher import DES
    from hashlib import md5
    import binascii

    key = binascii.a2b_hex('478DA50BF9E3D2CF')
    crypto = DES.new( key, DES.MODE_ECB )

    data = open('config.bin', 'rb').read()
    data_decrypted = crypto.decrypt( data )
    open('config.bin.txt', 'wb').write(data_decrypted[16:])

    • Евгений говорит:

      Добрый день! Поясните еще раз, если не затруднит. Все скачал по Вашим ссылкам. Питон установил, но не могу установить модуль крипто — пишет «синтаксическая ошибка». Я понимаю, что для Вас это все как 2*2… но у меня не получается. Где должно что лежать? как именно на диск распаковывать? что значит фраза — «распакуйте на диск»??? на какой и куда именно? по конкретней-то можно? должен же быть хоть какой-то путь указан… Питон установил в папку по умолчанию «C:\Users\»Username»\AppData\Local\Programs\Python\Python35-32\python.exe»
      Заранее спасибо!

  6. Bahmet говорит:

    Ещё бы перевести на c++/c# этот скрипт! Чтобы лучше понять суть произведённых манипуляций)

  7. Андрей говорит:

    Действительно, сделали бы пошаговую инструкцию для обычных юзеров винды, мы понимаем, что для вас это — элементарно, ну и что? Я уверен — знаю и могу многое, о чем вы не в курсе, но спросите меня что-нибудь из этого и я всё подробно поясню а не просто сообщу, что это — примерно там и надо тупо запустить скрипт…

  8. Андрей говорит:

    Всё давно сделано до нас:
    http://www.nirsoft.net/utils/router_password_recovery.html
    скачиваем утилиту и открываем файл бэкапа, всё.

    • Вячеслав говорит:

      Спасибо тебе, Добрый Фей!!!!! Я неделю ё*ся, чтобы пароль узнать, как говориться «и раком и боком», уже хотел у провайдера попросить новый пароль(роутер 5-ти летней давности, вот купил новый, а карточку с паролем потерял) и тут такое счастье!! Большое человеческое спасибо!!!!!!!!!!!!!!!!!!!!

  9. Виктор говорит:

    Подскажите пожалуйста, а на Android можно установить python и запустить этот скрипт?
    Заранее спасибо!

  10. Gibrid говорит:

    Можно сделать проще. Заходите http://des.online-domain-tools.com/
    Выбираете Input type: File, указываете путь к файлу.
    Выбираете DES и мод ECB. Ключ: 478DA50BF9E3D2CF . И ставите на Hex. Дешифруете и потом нажимаете [Download as a binary file]

  11. MaryMJ говорит:

    Hello! My name is MaryMarkova, our compane need to advertise on your website. What is your prices? Thank you. Best regards, Mary.

  12. дмитрий говорит:

    супер! работает. вытащил пароль. спасибо!

  13. Сергей говорит:

    После обновления прошивки и загрузки сохраненных настроек пароль слетел (не заходит со старым). Вышеуказанными манипуляциями 2 мя способами удалось посмотреть пароль, но он вида » kЙоБнRН“Ыdы!фxЊ™ » не понятно что делать.

  14. Игорь говорит:

    Исправленный код, работает даже на телефоне:

    from Crypto.Cipher import DES
    from hashlib import md5
    #
    key = b’\x47\x8D\xA5\x0B\xF9\xE3\xD2\xCF’
    crypto = DES.new( key, DES.MODE_ECB )
    #
    data = open(‘download/config.bin’, ‘rb’).read()
    data_decrypted = crypto.decrypt( data ).rstrip(b’\0′)
    assert data_decrypted[:16] == md5(data_decrypted[16:]).digest()
    open(‘download/config.bin.txt’, ‘wb’).write(data_decrypted[16:])

Добавить комментарий для Сергей Отменить ответ

Публикуя здесь что-либо, вы обязуетесь строго следовать российскому законодательству и несёте ответственность за свои комментарии самостоятельно. Ваши персональные данные здесь не обрабатываются и не хранятся. Администрация сайта adlersky.top не имеет отношения и не несёт никакой ответственности за публикуемые под записями и страницами сайта комментарии.
☝ По нажатии "Отправить" комментарий автоматически уйдёт на модерацию

4 × 5 =