special

This webpage has been robot translated, sorry for typos if any. To view the original content of the page, simply replace the translation subdomain with www in the address bar or use this link.



0. Предисловие:


Технология ADSL (асимметричная цифровая абонентская линия) наконец то добралась до самых отдалённых уголков России и продолжает распространяться стремительно. Всё больше и больше пользователей подключается к интернет через ADSL модем. Не буду вдаваться в подробности и описывать работу этой технологии, скажу своими словами так: DSL позволяет передать данные по обычным двум телефонным проводам с намного большей скоростью, чем обычный DIAL-UP модем (который передаёт данные в звуковом диапазоне - наверняка все слышали звук обычного модема при его работе). Так вот DSL (цифровая абонентская линия) - это технология которая позволяет передавать сигнал на более высоких частотах (поэтому и скорость выше) на той же паре проводов что и обычный низкочастотный сигнал слышимого диапазона. Для разделения высокочастотного и низкочастотного сигнала используются на обоих концах линии конечное оборудование - сплиттеры, далее у пользователя: один сигнал идёт на обычный телефон, второй на ADSL модем, на второй стороне также один сигнал идёт в телефонную сеть (АТС) второй провайдеру. В общем кто не знаком с ADSL, рекомендую почитать теорию http://ru.wikipedia.org/wiki/ADSL

Наш предмет пристального внимания - модем ADSL. Зачем его ломать спросите вы? Ну во первых как правило в него встроен NAT, файрвол и модем сам по себе уже является серъёзным препятствием на пути хакера до компьютера жертвы. Например заслали вы по почте троя или пробуюте получить шелл на компьютере жертвы с помощью 0day-сплоита для IE и у вас ничего не выходит, так как жертва находится за NAТ и(или) Фаером. А домашние сети с общим подключением в интернет, ведь в домашней локалке как правило все шары в свободном доступе и завладев одной машинкой в сети Вам будет легко получить доступ к остальным.
Здесь будет рассмотрем взлом ADSL- модемов с Ethernet подключением к компьютеру пользователя (есть ещё и USB - не рассматриваем тут).

Как и любое устройство, подключенное в интернет, ADSL модем имеет свой IP (он называется внешний IP, WAN-IP или реальный IP - как кому угодно), а также внутренний IP (LAN-IP) для вашей локалки (это шлюз в интернет в свойствах TCP/IP протокола на Вашем компе).

Между этими двумя интерфейсами WAN и LAN и располагается всё остальное (NAT,роутер, фаервол). Удалённое упрвление настройками ADSL (т.е. NAT`ом, роутером, фаерволом) модема доступно через разные протоколы (http, ftp, telnet и др.). Теперь самое интересное, по-умолчанию это удалённое управление у многих модемов доступно как и из локалки, так и из внешней сети. То есть, говоря другими словами ADSL-модем светит своими сервисами как наружу в интернет, так и в локалку. Многие пользователи (=ламеры) не особо утруждают себя настройкой ADSL модема для обеспечения своей безопасности и оставляют в настройке разрешение на управление модемом из вне, т. е. из интернет, кроме того, даже забывают (или просто не знают) изменить пароль для входа в конфигуратор ADSL-модема и оставляют его тоже дефалтным (по умолчанию)!



1. Подготовка.

а) нам потребуется любой сетевой сканер (для поиска встроенных в ADSL-модем WEB-серверов конфигуратора модема, я например для этих дел использую LanScope - не содержит ничего лишнего - это многопотоковый сканер сети, осуществляет мониторинг сети на наличие доступных ресурсов NetBios (Samba), FTP и HTTP, сканируя заданные диапазоны IP-адресов. Показывает права доступа к ресурсам: чтение, запись. Сканер ресурсов выполняет поиск по заданному имени ресурса, например, music, video и т.п. скачать можно тут скачать сканнер LanScope>
б) минимальные знания html и javascript.
в) прямые руки и светлая голова.

2. Поиск потенциальных жертв.

Сканируем подстеть прова на присутствие ADSL модемов. Как узнать подсеть провайдера - легко смотрите свой внешний IP и выбирайте диапазон такой же или близкий, например наш WAN IP ххх.ххх.241.20 берём задаём диапазон ххх.ххх.241.1-ххх.ххх.243.255. Через некоторое время в окне сканнера мы увидим сервисы web, ftp, шары. Нас интересуют web-конфигураторы ADSL-модемов.



3. Собственно сам взлом

Начинаем тыкаться браузером в каждый, попадаем на страницу авторизации входа в конфигуратор (там Вам выводится баннер с краткой инфой типа ADSL модем такой-то), введите пароль для входа. Мы пробуем пароль по умолчанию 1234, раз модем, два модем, ОПС на третий модем подошёл (во ламак попался один).
(прим. как ломать пароль для входа в конфигуратор читайте в следующих статьях, тут пока не рассмотрено)

У меня жертвой стал http://ххх.ххх.241.59:80
Вот баннер и страница входа Web-сервиса конфигуратора модема ADSL




вбиваем 1234 в поле password и попадаем сюда:




Тут нам говорят, что пасс по умалчанию 1234 и надо бы его вообще-то сменить (ну мы пока менять не будем, а то ламаку потом придётся сбрасывать модем и возится с его настройкой), по этому клацаем кнопку ignore и попадаем сюда:




Лезем в мастер настройки модема (Wizard Setup)




Логин уже видим, пасс скрыт за звёздочками
Это html-код этой страницы.

<html><head>
<meta http-equiv='content-type' content='text/html;charset=iso-8859-1'>
<title>Web Configurator</title>
<SCRIPT src="General.js"></SCRIPT>
<frameset cols="150,*" rows="*" frameborder="NO" border="0" bordercolor="#000000">
<frame src="Panel.html" name="panel" scrolling="NO" noresize frameborder="NO" bordercolor="#000000" marginwidth="0" marginheight="0">

<frameset cols="*" rows="78,*" frameborder="NO" border="0" bordercolor="#000000">

<frame src="Title.html" name="title" scrolling="NO" noresize frameborder="NO" marginwidth="0" marginheight="0">

<frame src="FirstPage.html" name="main" scrolling="AUTO" noresize frameborder="NO" marginwidth="0" marginheight="0">

</frameset></frameset><noframes>
<body>
</body></noframes>
</html>


Видим мало интересного и что страница состоит из фреймов. Глянем фреймы, например этот FirstPage.html,




попадаем опять на первую страницу,
но уже на конкретный файл FirstPage.html, клацаем снова на Wizard Setup, строка в браузере имеет вид http://ххх.ххх.241.59:80/wzOthers.html,




клацаем next - теперь в строке браузера страничка http://ххх.ххх.241.59:80/wzPPPOE.html,




смотрим её исходник, вот он:
<html><head>

<meta http-equiv='content-type' content='text/html;charset=iso-8859-1'>
<title>Web Configurator</title>
<SCRIPT src="General.js"></SCRIPT>

<script language="JavaScript">
<!--

function doPPPoEIPAddr(form)
{
if ( form.radiobutton4[0].checked )
{
form.wzPPPOE_StaticIP.disabled = true;
}
else

{
form.wzPPPOE_StaticIP.disabled = false;
}
}

function PPPoEChkIdleTime(form)
{

if ( form.PPPoE_PPPoEVCKA[0].checked )
{
form.PPPoE_PPPoEVCIdleTime.disabled = false;
}
else
{

form.PPPoE_PPPoEVCIdleTime.disabled = true;
}
}

function PPPoEAOLWordChk(Word)
{
}


// -->
</script></head><body bgcolor="#ffffff" marginwidth="0" marginheight="0" onLoad="top.title.location='Title.html';">
<FORM METHOD="POST" ACTION="/Forms/wzPPPOE_1" name="ISPform">

<table width="100%" border="0" cellspacing="0" cellpadding="0" >
<tr>

<td width="2%">&nbsp;</td><td width="5%"></td><td width="93%">
<div align=left valign=top>
<table border="0" cellspacing="0" cellpadding="0" width="560">

<tr>
<td colspan="4" class="NaviText">
<div align=left> Wizard Setup - ISP Parameters for Internet Access</div></td></tr>

<tr>
<td colspan="4">
<hr class="hrColor">
</td></tr> <tr>

<td colspan="2"> Service Name </td><td colspan="2">
<INPUT TYPE="TEXT" NAME="wzPPPOE_ServiceName" SIZE="30" MAXLENGTH="31" VALUE=""></td></tr> <tr>

<td colspan="2"> User Name </td><td colspan="2"> <INPUT TYPE="TEXT" NAME="wzPPPOE_UserName" SIZE="30" MAXLENGTH="70" VALUE="ll2498" onkeypress="chk_chtNumUserName(event)"></td></tr><tr>

<td colspan="2"> Password </td><td colspan="2">
<INPUT TYPE="PASSWORD" NAME="wzPPPOE_Password" SIZE="30" MAXLENGTH="70" VALUE="bukzajop" onBlur="PPPoEAOLWordChk(this.value)"></td></tr><tr>

<td colspan="4">&nbsp; </td></tr> <tr>
<td colspan="4" class="header2"> IP Address </td></tr><tr>

<td colspan="2"> </td><td colspan="2"> <INPUT TYPE="RADIO" NAME="radiobutton4" VALUE="wzPPPOE_DynIP" CHECKED onClick="doPPPoEIPAddr(this.form);">Obtain an IP Address Automatically </td></tr><tr>

<td colspan="2"> </td><td colspan="2"> <INPUT TYPE="RADIO" NAME="radiobutton4" VALUE="wzPPPOE_RadioStaticIP" onClick="doPPPoEIPAddr(this.form);">Static IP Address </td></tr><tr>

<td width="32"></td><td width="115">&nbsp;</td><td width="24">
</td><td width="479">
<INPUT TYPE="TEXT" NAME="wzPPPOE_StaticIP" SIZE="15" MAXLENGTH="15" VALUE="0.0.0.0" onBlur="checkIPFormat(this)"></td></tr> <tr>

<td colspan="4"></td></tr>
<tr>
<td colspan=4 class="header2">Connection</td></tr> <tr>

<td width="33"></td><td width="119">&nbsp;</td><td colspan="2">
<INPUT TYPE="RADIO" NAME="PPPoE_PPPoEVCKA" VALUE="0" onClick="PPPoEChkIdleTime(this.form);"> Connect on Demand: Max Idle Timeout <INPUT TYPE="TEXT" NAME="PPPoE_PPPoEVCIdleTime" SIZE="5" MAXLENGTH="5" VALUE="0" onkeypress="chk_num(event)">sec</td></tr>

<tr>
<td width="33"></td><td width="119">&nbsp;</td><td colspan="2"> <INPUT TYPE="RADIO" NAME="PPPoE_PPPoEVCKA" VALUE="1" CHECKED onClick="PPPoEChkIdleTime(this.form);"> Nailed-Up Connection</td></tr> <tr>

<td colspan=4 class="header2">&nbsp;</td></tr><tr>
<td colspan=4 class="header2">Network Address Translation</td></tr><tr>

<td colspan="2"></td><td colspan="2"> <SELECT NAME="wzPPPOE_NAT" SIZE="1"><OPTION VALUE=00000000>None
<OPTION VALUE=01000000 SELECTED>SUA Only

<OPTION VALUE=02000000>Full Feature
</SELECT></td></tr> <tr>
<td colspan="4">&nbsp;</td></tr>

<tr align=center valign=middle>
<td colspan="6" height="36">
<hr class="hrColor">
</td></tr> <tr>

<td colspan="4">
<div align=center> <INPUT TYPE="SUBMIT" NAME="wzPPPOEBack" VALUE="Back">&nbsp;&nbsp;&nbsp; <INPUT TYPE="SUBMIT" NAME="wzPPPOENext" VALUE="Next"></div></td></tr>

<tr>
<td colspan="6" height="10">&nbsp;</td></tr> </table></td></tr></table></form><script language="JavaScript">

<!--
doPPPoEIPAddr(document.forms[0]);
PPPoEChkIdleTime(document.forms[0]);
// -->
</script>

</body></html>


Вот она строка где сидит наш пароль:

<INPUT TYPE="PASSWORD" NAME="wzPPPOE_Password" SIZE="30" MAXLENGTH="70" VALUE="bukzajop" onBlur="PPPoEAOLWordChk(this.value)"></td></tr><tr>


Вот скриншот:




Нетрудно догадаться что пасс это: "bukzajop", ну а логин от Вас в конфигураторе никто и не скрывает.


4.Заключение
Ну что тут сказать, кроме как ламаки есть, были и будут, а так же дырки в безопасности настройки модемов ADSL тоже. Нафига закрывать пасс от юзверя звёздочками, если его всё равно мона достать, посмотрев код html нужной страницы.
Ну а что делать в настройке ADSL-модема, я думаю объяснять не надо, можно сделать например переадресацию пакетов (настройка NAT) по всем протоколам и портам с внешнего IP на внутренний и ломать (исследовать на баги) сервисы на компе в локальной сети, а можно взять и переключить модем в режим bridge, тем самым сделав модем прозрачным и перенести внешний IP на комп юзверя и затем сканить его компьютер сканнерами безопасности на предмет дыр в сетевых сервисах.

Дата створення/оновлення: 25.05.2018