special



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