Сегодня я хочу рассказать о так называемых сканерах портов. Если кто-то не в курсе, то эта специальная программа для определения открытых портов на удаленной машине.
Как это будет работать.
Программа пытается подключиться к какому-то порту из заданного диапазона. Если подключение произошло, то говорим пользователю что порт открыт, в противном же случае, говорим что нет, после переходим к следующему порту.
Программа пытается подключиться к какому-то порту из заданного диапазона. Если подключение произошло, то говорим пользователю что порт открыт, в противном же случае, говорим что нет, после переходим к следующему порту.
Практика.
Для начала нам необходимо бросить на форму следующие компоненты: 2 Label'а, 2 Edit'а, одну кнопку, компонент Memo для вывода информации о открытых (закрытых) портах, и наконец начинку нашей программы - компонент TCPClient, с закладки Internet. Измените свойство Caption у Label'ов следующим образом: Label1 - Начальный порт, Label2 - Конечный порт. Напротив каждого из Label'ов расположите Edit'ы... Надпись на кнопке можете сделать какую хотите... Итак, осталось написать лишь сам код программы... Весь код нашей программы будет состоять лишь из одного метода (процедуры). Кликните дважды на кнопке, перед вами появится окно с исходным кодом. Вот как она должна выглядеть:
Для начала нам необходимо бросить на форму следующие компоненты: 2 Label'а, 2 Edit'а, одну кнопку, компонент Memo для вывода информации о открытых (закрытых) портах, и наконец начинку нашей программы - компонент TCPClient, с закладки Internet. Измените свойство Caption у Label'ов следующим образом: Label1 - Начальный порт, Label2 - Конечный порт. Напротив каждого из Label'ов расположите Edit'ы... Надпись на кнопке можете сделать какую хотите... Итак, осталось написать лишь сам код программы... Весь код нашей программы будет состоять лишь из одного метода (процедуры). Кликните дважды на кнопке, перед вами появится окно с исходным кодом. Вот как она должна выглядеть:
procedure TForm1.Button1Click(Sender: TObject);
var
i:Integer;
ip:String;
begin
ip:='127.0.0.1'; //По умолчанию сканируем себя
if not InputQuery('Attention','Enter IP-address',ip) then exit; //Запрашиваем адрес компа.
for i:=StrToInt(Edit1.Text) to StrToInt(Edit2.Text) do //Запускаем цикл
begin
TcpClient1.RemotePort:=IntToStr(i); //Устанавливаем порт
TcpClient1.Open; //Пытаемся его открыть
if TcpClient1.Connected then Memo1.Lines.Add(IntToStr(i)+' open'); //Если удалось, то сообщаем об этом
TcpClient1.Close; //Закрываем порт.
end;
end;
var
i:Integer;
ip:String;
begin
ip:='127.0.0.1'; //По умолчанию сканируем себя
if not InputQuery('Attention','Enter IP-address',ip) then exit; //Запрашиваем адрес компа.
for i:=StrToInt(Edit1.Text) to StrToInt(Edit2.Text) do //Запускаем цикл
begin
TcpClient1.RemotePort:=IntToStr(i); //Устанавливаем порт
TcpClient1.Open; //Пытаемся его открыть
if TcpClient1.Connected then Memo1.Lines.Add(IntToStr(i)+' open'); //Если удалось, то сообщаем об этом
TcpClient1.Close; //Закрываем порт.
end;
end;
Вот и готов наш простейший сканер портов! Введите начальный порт, конечный порт, жмите кнопку, в появившемся окне набирайте IP-адрес жертвы и в бой.
Комментариев нет:
Отправить комментарий