ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Сканер портов на Php
  #1  
Старый 10.03.2006, 16:50
Аватар для Utochka
Utochka
Постоянный
Регистрация: 21.12.2005
Сообщений: 620
Провел на форуме:
1867718

Репутация: 268


По умолчанию Сканер портов на Php

Иногда любому хакеру бывает просто необходимо просканировать порты удаленного сервера на наличие уязвимых сервисов и просто их доступности. Для этого используются специальные программы под винду или известный никсовый сканер Nmap, но не всегда есть shell для установки Nmap, а если сканить прогами под винду, то светишь свой IP. Но есть простой выход это написание скрипта на PHP! Сейчас мы рассмотрим написание довольно простого сканера портов на PHP. Итак приступим.

Для начала необходимо создать некое подобие интерфейса для удобства использования сканера. Страницу с интерфейсом назовем к примеру scan.html ну или как вам будет угодно. Я не буду описывать процесс создания интерфейса, думаю все разбираются в html и с легкостью напишут нужный им интерфейс.

Код:
<form action="portscan.php" method="post" target="view">
  <table align="center" cellpadding="0" cellspacing="0" style="border: #cccccc 1px solid" width="55%">
    <tr> 
      <td align="center" style="background-color: #cccccc; font-family: Verdana; font-size: 8pt; font-weight: bold; height: 20px">
        ПАРАМЕТРЫ СКАНИРОВАНИЯ
      </td>
    </tr>
    <tr><td style="background-color: #cccccc; height: 1px"><spacer height="1" type="block"></td></tr>

    <tr> 
      <td align="left" style="color: #aaaaaa; font-family: Verdana; font-size: 8pt; ">
      <table cellpadding="0" cellspacing="0" width="100%">
        <tr>
          <td style="font-size: 8pt; height: 27">
            &nbsp; Host:&nbsp;<input name="host" style="width: 90%" value="">
          </td>
          <td rowspan="10" style="background-color: #cccccc" width="1"><spacer type="block" width="1"></td>
          <td width="120" rowspan="10">
            <center><input style="border: 1px #cccccc solid;" type="submit" value="Start!"></center>
          </td>
        </tr>
        <tr><td style="background-color: #cccccc; height: 1px"><spacer height="1" type="block"></td></tr>      
        <tr>
          <td style="font-size: 8pt; height: 27">
            &nbsp; Сканировать порты, номера от
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input maxlength="6" name="from" size="6" value="20">&nbsp; до
            &nbsp;&nbsp;<input maxlength="6" name="to"   size="6" value="50">
          </td>
        </tr>
        <tr><td style="background-color: #cccccc; height: 1px"><spacer height="1" type="block"></td></tr>      
        <tr>
          <td style="font-size: 8pt; height: 27">
            &nbsp; Время подключения к порту не более (сек.):
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input maxlength="2" name="timeout" size="2" value="2"> 
          </td>  
       </tr>
      </table>
      </td>
    </tr>
    <tr><td style="background-color: #cccccc; height: 1px"><spacer height="1" type="block"></td></tr>


    <tr> 
      <td align="center" style="background-color: #cccccc; font-family: Verdana; font-size: 8pt; font-weight: bold; height: 20px">
        ПРОТОКОЛ СКАНИРОВАНИЯ
      </td>
    </tr>
    <tr><td style="background-color: #cccccc; height: 1px"><spacer height="1" type="block"></td></tr>

    <tr> 
      <td>
        <iframe border="0" frameborder="no" height="180" marginwidth="0" marginheight="0" name="view" scrolling="auto" src="about:blank" width="100%">
          Ваш браузер не поддерживает плавающие фреймы...
        </iframe>
      </td>
    </tr>
    <tr><td style="background-color: #cccccc; height: 1px"><spacer height="1" type="block"></td></tr>

    <tr> 
      <td align="center" style="background-color: #efefef; font-family: Verdana; font-size: 8pt; font-weight: bold; height: 20px">
        <a href="http://Xzone.org.ru"><font color=#FF5500>By Neo aka NeX [Antichat.ru]</font></a>
      </td>
    </tr>
  </table>
  </form>
Вот мы и написали наш интерфейс теперь нам надо написать сам скрипт, который и будет сканировать порты. Я тоже не стану расписывать ход написания скрипта, чтобы не раздувать статью и это незачем т.к. весь скрипт снабжен подробными комментариями, так что я думаю каждый при желании растереться. Назовем наш скрипт portscan.php

А вот его код:

PHP код:
<?php

// PortScan by Neo aka NeX [antichat.ru]

// Снятие ограничения на время выполнения скрипта

   
@set_time_limit (0);

// Определение POST-переменных формы

   
$host      $HTTP_POST_VARS ["host"];
   
$to_port   $HTTP_POST_VARS ["to"];
   
$from_port $HTTP_POST_VARS ["from"];
   
$time_conn $HTTP_POST_VARS ["timeout"];

// Время начала выполнения опроса портов

   
$tm = @split (" ", @microtime());
   
$started $tm [0] + $tm [1];

// База данных служб и соответствующих им портов (стандарт) возможно дополнение

   
$port_database = array (
     
"21"   => "FTP",
     
"22"   => "SSH",
     
"23"   => "TELNET",
     
"25"   => "SMTP",
     
"38"   => "RAP",
     
"43"   => "WHOIS",
     
"80"   => "HTTP",
     
"109"  => "POP",
     
"110"  => "POP3",
     
"115"  => "Simple FTP",
     
"118"  => "SQL Services",
     
"119"  => "NNTP",
     
"143"  => "IMAP",
     
"194"  => "IRC",
     
"220"  => "IMAP3",
     
"443"  => "HTTPS / SLL",
     
"540"  => "UUCP",
     
"585"  => "IMAP4-SSL",
     
"591"  => "HTTP-ALT",
     
"1112" => "mSQL — Mini-SQL Server",
     
"1433" => "msSQL-Server",
     
"1434" => "msSQL-Monitor",
     
"3128" => "Proxy",
     
"3197" => "Proxy",
     
"3306" => "MySQL",
     
"4000" => "ICQ",
     
"4333" => "MSQL - Mini SQL Server",
     
"5100" => "ICQ",
     
"5432" => "Postgres SQL",
     
"6669" => "IRC",
     
"8000" => "Stream Audio",
     
"8080" => "HTTP",
     
"9014" => "VOC Daemon",
     
"9200" => "WAP"
   
);

// Создание массива для хранения номеров существующих портов

   
$success_port = array ();

// Вывод информации для опознавания браузером

   
for ($i 0$i 100$i++) echo "<!---->";
   
flush ();

// Скидываем счетчики

   
$opened 0;
   
$closed 0;

// Сканирование порта

   
$total $to_port $from_port 1;

   for (
$port $from_port$port <= $to_port$port++) {
     
$connect = @fsockopen ($host$port$errno$errstr$time_conn);

     echo 
"<li> Подключение к <b><i>$host</i></b>, порт <b><i>$port</i></b>... ";

     if (
$connect == TRUE) {
       
$service "";

       foreach (
$port_database as $wp => $wd) {
         if (
$wp == $port) {
           
$service "предположительно "$wd;
           break;
         }

         else if (
$wp != $port) {
           continue;
         }
       }

       
$opened++;

       if (@empty (
$service) == 1$service "тип не определен";
       echo 
"<font color='#008800'>порт открыт, $service</font>";
     }

     else if (
$connect == 0) {
       
$closed++;
       echo 
"<font color='#FF5500'><b>[порт закрыт]</b></font>";
     }

     echo 
"<br>\n";
     @
flush ();
   }

// Время начала выполнения опроса портов

   
$tm    = @split (" ", @microtime());
   
$ended $tm [0] + $tm [1];

   
$time  $ended $started;
   
$dtime = @round ($time3);

// Вывод небольшой статистики

   
echo "<hr><tt>\n";
   echo 
"Всего портов проверено: <b>" $total "</b><br>\n";
   echo 
"Открытых портов: <b>" $opened "</b><br>\n";
   echo 
"Закрытых портов: <b>" $closed "</b><br>\n";
   echo 
"Время, затраченное на сканирование: <b>" $dtime " сек.</b>\n";
   echo 
"</tt>\n";

?>
Я думаю с кодом все понятно, остается сказать лишь то, что теперь мы имеем полноценный сканер портов и он полностью готов к использованию в наших корыстных целях. Заливаем скрипт, на какой ни будь shell, думаю их у вас предостаточно, и используем по назначению. Свой IP мы скрыли и цель выполнили )).

С вами был NeX aka Neo [Xzone.org.ru].
Specially for [Antichat.ru]
 
Ответить с цитированием

  #2  
Старый 10.03.2006, 17:07
Аватар для TTyck
TTyck
Участник форума
Регистрация: 13.11.2005
Сообщений: 199
Провел на форуме:
824195

Репутация: 75
Отправить сообщение для TTyck с помощью ICQ
По умолчанию

не плохо =-) +1
 
Ответить с цитированием

  #3  
Старый 10.03.2006, 17:39
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

потоков нет =\
 
Ответить с цитированием

  #4  
Старый 10.03.2006, 17:42
Аватар для D1mOn
D1mOn
Постоянный
Регистрация: 02.10.2005
Сообщений: 490
Провел на форуме:
2333839

Репутация: 212
По умолчанию

nerezus, а ты же как то на перле выкладывал)))
 
Ответить с цитированием

  #5  
Старый 10.03.2006, 18:11
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Цитата:
nerezus, а ты же как то на перле выкладывал)))
все ошибаются )

многопоточный написать? )
 
Ответить с цитированием

  #6  
Старый 10.03.2006, 18:26
Аватар для D1mOn
D1mOn
Постоянный
Регистрация: 02.10.2005
Сообщений: 490
Провел на форуме:
2333839

Репутация: 212
По умолчанию

сорри если ошибся, но помню кто то выкладывал))
а многопоточный конечно напиши)))
 
Ответить с цитированием

  #7  
Старый 10.03.2006, 20:02
Аватар для KEZ
KEZ
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме:
1941233

Репутация: 2726


По умолчанию

Очень тормозной способ - сканировать порты штатными средствами Winsock - tcp connect(), и т д
 
Ответить с цитированием

  #8  
Старый 13.03.2006, 02:23
Аватар для FIND ME
FIND ME
Новичок
Регистрация: 15.05.2005
Сообщений: 8
Провел на форуме:
17414

Репутация: 1
По умолчанию

a mozno ego peredelat pod scaner proxi ?
zadavat 1 port pod mnogo hostov ?
 
Ответить с цитированием

  #9  
Старый 15.03.2006, 00:02
Аватар для donetsk
donetsk
Участник форума
Регистрация: 30.01.2006
Сообщений: 176
Провел на форуме:
607472

Репутация: 29
По умолчанию

Сори за вопрос возможно тупой!
Но зачем пользоваться сканером н пхп, когда есть пауки, нмэпы, что в них плохого?
 
Ответить с цитированием

  #10  
Старый 15.03.2006, 13:56
Аватар для Nova
Nova
OpenVPN.CC
Регистрация: 15.07.2005
Сообщений: 1,599
Провел на форуме:
7670961

Репутация: 1034


Отправить сообщение для Nova с помощью ICQ
По умолчанию

Цитата:
Сообщение от donetsk  
Сори за вопрос возможно тупой!
Но зачем пользоваться сканером н пхп, когда есть пауки, нмэпы, что в них плохого?
Обьясню попроще как для чайников....
Когда ты бедеш со своей тачки сканить Xspiderom чела у которого стоит фаервол то фаер покажет твой Ip к примеру а сканер на php это анонимность по тому что он покажет Ip хоста или сервера на котором лежит данный php скрипт и всё....

Поправьте меня если я ошибся немного....
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP, PERL, MySQL, JavaScript 186 21.02.2010 02:41
Нужен сканер портов... uranoff Soft - Windows 3 25.09.2005 03:59
Безопасность в Php, Часть Iii k00p3r Чужие Статьи 0 11.07.2005 19:02
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31
зацените сканер портов для диапазона ip nerezus PHP, PERL, MySQL, JavaScript 7 09.06.2005 17:33



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ