This page has been robot translated, sorry for typos if any. Original content here.



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 на комп юзверя і потім скані його комп'ютер сканерами безпеки на предмет дірок в мережевих сервісах.