информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Атака на InternetЗа кого нас держат?Spanning Tree Protocol: недокументированное применение
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 700 с лишним git-серверов пострадало... 
 От повторного пришествия Шаи-Хулуда... 
 Крупный сбой Azure и других сервисов... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Вопросик есть 12.05.03 11:09  Число просмотров: 1245
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка>
> $iaddr = inet_aton($host);
> for ($i = 0; $i <= $#ports; $i++)
> {
> $paddr = sockaddr_in($ports[$i], $iaddr);
> $connect = connect(SOCK, $paddr); if ($connect)

Перл автомтом переводит численные значения в сетевой вид ?
Это собственно вопрос.
Если нет, то тебе стоит вызвать С аналог ф-ии htons для порта. Иначе ты пытаешся законнестится непонятно к чему.

Теперь по поводу сервисов. Самый тупой и простой способ - список ;) Ты знаешь что на таком то порту такой то сервис... хехе... в большинстве случаев прокатит. Если нужна большая точность - попытайся с ними "поговорить" (и послушать ответ). Других методов нет.

Кстати твой метод сканирования конечно самый простой, но обладает как минимум двумя хорошими недостатками:
1. Очень медленный.
2. Ты светишся как неоновая лампочка в ночи.
Похорошему, сканер надо писать на raw сокетах, генерируя "хитрые" пакеты вручную. О таких методах есть много статей, если память не изменяет, то и на этом сайте.
<programming>
[Perl] Сканер портов 12.05.03 10:07  
Автор: loki Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Здравствуйте! У меня возникли проблемы, связанные с разработкой сканера портов на perl (исходный код ниже). Итак, проблема первая: сканер не находит все открытые на компьютере порты. Из трех открытых tcp-портов (smtp - 25, sunrpc - 111, X11 - 6000) он находит только один (smtp - 25). nmap (простым сканированием) нашел все три. Почему? Проблема вторая: не проблема, а вопрос. Как сделать так, чтобы мой сканер мог определять какой сервис находится на данном порту? Это были все вопросы. Принцип работы сканера таков: пользователь вводит имя хоста и порты для сканирования. Скрипт обрабатывает данные и начинает конектиться на все указанные порты. Есть коннект - порт открыт, нет - закрыт. Исходник:
#!/usr/bin/perl -w
use Socket;
print "Enter Host name:\n";
$host = <>;
print "Enter ports for TCP-scanning:\n";
$port = <>;
@ports = split(" ", $port);
socket (SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
$iaddr = inet_aton($host);
for ($i = 0; $i <= $#ports; $i++)
{
$paddr = sockaddr_in($ports[$i], $iaddr);
$connect = connect(SOCK, $paddr); if ($connect)
{$ports[$i] = "$ports[$i] - open\n"}
else
{$ports[$i] = "$ports[$i] - close\n"
}
}
for ($i = 0; $i <= $#ports; $i++) { print "$ports[$i]\n"; }
print "Press Any Key To Exit";
<>;
Вопросик есть 12.05.03 11:09  
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка>
> $iaddr = inet_aton($host);
> for ($i = 0; $i <= $#ports; $i++)
> {
> $paddr = sockaddr_in($ports[$i], $iaddr);
> $connect = connect(SOCK, $paddr); if ($connect)

Перл автомтом переводит численные значения в сетевой вид ?
Это собственно вопрос.
Если нет, то тебе стоит вызвать С аналог ф-ии htons для порта. Иначе ты пытаешся законнестится непонятно к чему.

Теперь по поводу сервисов. Самый тупой и простой способ - список ;) Ты знаешь что на таком то порту такой то сервис... хехе... в большинстве случаев прокатит. Если нужна большая точность - попытайся с ними "поговорить" (и послушать ответ). Других методов нет.

Кстати твой метод сканирования конечно самый простой, но обладает как минимум двумя хорошими недостатками:
1. Очень медленный.
2. Ты светишся как неоновая лампочка в ночи.
Похорошему, сканер надо писать на raw сокетах, генерируя "хитрые" пакеты вручную. О таких методах есть много статей, если память не изменяет, то и на этом сайте.
[Perl] Новые вопросы 12.05.03 17:26  
Автор: loki Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Спасибо за ответы! Тут у меня правда новые вопросы возникли:
>Перл автомтом переводит численные значения в сетевой вид ?
Вообще-то я думал, что да=)) Это значит, что мой скрипт не

работает?=((
>Если нет, то тебе стоит вызвать С аналог ф-ии htons для порта.
Это вот так что ли:

$iaddr = inet_aton($host);
for ($i = 0; $i <= $#ports; $i++)
{
$paddr = sockaddr_in(htons($ports[$i]), $iaddr);
$connect = connect(SOCK, $paddr);
if ($connect)

>Кстати твой метод сканирования конечно самый простой, но

>обладает как минимум двумя хорошими недостатками:
>1. Очень медленный.
>2. Ты светишся как неоновая лампочка в ночи.
Не совсем понимаю термин "шороший недостаток"=)) и тем не менее
можно ли этих недостатков избежать не используя raw сокеты? Если

да, то как?
И ещё вопрос: кроме указанной ошибки вы не заметили других багов,

недочетов, лишних строк кода и т.п?
Если вас не затруднит, ответьте, буду вам очень признателен!!!
з.ы.
>О таких методах есть много статей, если память не изменяет, то и

>на этом сайте.
На этом сайте не нашел!!! У вас линка случайно не найдется?
[Perl] Новые вопросы 14.05.03 23:09  
Автор: izlam Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Если уж юзаешь Socket, perldoc по нему сильно поможет :)

> >1. Очень медленный.
> >2. Ты светишся как неоновая лампочка в ночи.
> Не совсем понимаю термин "шороший недостаток"=)) и тем не
> менее
> можно ли этих недостатков избежать не используя raw сокеты?
raw сокеты помогут в случае с 2. В 1-м же случае видимо имелся ввиду неблокирующий IO, или fork-и, читай perldoc -f select perldoc -f fork

> Если да, то как?
Гляди perldoc Net::RawIP (только поставь его сначала)
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach