Выцепить пароль из файла настроек роутера 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 со всеми данными. 🙂 Даже сам удивился, насколько всё просто оказалось…


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

18 комментариев на «Выцепить пароль из файла настроек роутера 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.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.