Angry IP Scanner — сетевой сканер для Linux и Windows

В моей домашней сети находились два компьютера, один мой, а другой моих девочек, жены и дочурки, которые были подключены витой парой через Wi-Fi роутер. Передо мной стояла задача — каким образом в Убунту можно просканировать свою сеть и узнать о подключенных к ней компьютерах и других устройствах?

Что такое порты и номера портов?

Компьютерный порт — это главное место подключения потока информации из программы или Интернета в устройство или другой компьютер в сети и наоборот. Его можно представить как место обмена данными с помощью электронных средств, программного обеспечения или механизмов, связанных с программированием.

В целях обеспечения системности и для удобства программирования портам были назначены номера. Номер порта в сочетании с IP-адресом образует важную информацию, которая хранится у каждого интернет-провайдера для выполнения запросов. Порты могут иметь номер от 0 до 65 536 и обычно распределяются по популярности.

Порты с номерами от 0 до 1023 широко известны. Они предназначены для использования Интернета, хотя также могут выполнять специализированные задачи. Они находятся в ведении Администрации адресного пространства Интернет (IANA). Эти порты принадлежат ведущим компаниям, таким как Apple QuickTime, MSN, SQL Services и другим известным организациям. Ниже приведены некоторые наиболее известные порты и назначенные им службы. Возможно, они покажутся вам знакомыми.

  • Порт 20 (UDP) поддерживает протокол передачи файлов (FTP), используемый для передачи данных.
  • Порт 22 (TCP) поддерживает протокол безопасной оболочки (SSH) для безопасного входа в систему, передачи данных и переадресации портов.
  • Порт 53 (UDP) — это система доменных имен (DNS), которая переводит имена в IP-адреса.
  • Порт 80 (TCP) — протокол передачи гипертекста (HTTP) для служб всемирной сети.

Порты с 1024 по 49 151 считаются «зарегистрированными», то есть они зарегистрированы корпорациями-разработчиками программного обеспечения. Порты с 49 151 по 65 536 являются динамическими и частными и могут использоваться практически всеми.

Открыть порт Linux и посмотреть открытые средствами самой системы

В ОС Linux понятие открытие порта немного звучит некорректно. Можно, конечно закрыть сначала все соединения и потом открыть порт Linux, который необходим.

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

Сначала нужно посмотреть открытые порты Linux в системе. Для этого можно воспользоваться утилитой netstat. В большинстве популярных дистрибутивов Linux она установлена по умолчанию, если нет, то ее следует установить.

Читайте также:  Взлом Wi-Fi с помощью Kali Linux: записки очкастого эксперта

После установки достаточно ввести в консоль команду

и в выводе можно увидеть все открытые порты, ip адреса и имена процессов, которым принадлежат соединения.

Файрволл iptables есть во всех дистрибутивах Linux, его правила одинаковы везде, будь то Ubuntu, Gentoo или Fedora, а вот настройка и запуск различны. Но есть один универсальный способ. Профессионалы вряд ли его применят, но для простых пользователей самое то.

Открыть порт Linux средствами самой системы

Для проверки, установлен ли iptables в системе следует выполнить в консоли команду

результатом ее выполнения будет вывод информации об отсутствии этой команды в системе или текущих настроек программы.

Оптимально будет закрыть все порты, открыть нужные системе, а потом, добавляя правила, открыть порты Linux нужные для игр, передачи файлов, web-серфинга.

Для этого, убедившись, что iptables установлен, создаем с правами суперпользователя файл /etc/ с таким содержимым

Разбор синтаксиса при открытии портов Linux

Необходимо пояснить синтаксис:

  • ACCEPT — разрешающие соединения
  • DROP — запрещающие
  • OUTPUT и INPUT — входящие и исходящие
  • eth0 — сетевой интерфейс, его номер может быть другим.

Сохраняем файл, закрываем, делаем его исполняемым командой в консоли

и помещаем его команду для запуска в файл /etc/ до строчки exit 0.

Запускаем файл — sh /etc/, проверяем netstat открытые порты, если надо закрыть какой-либо порт, добавляем еще строчку в файл и снова запускаем программу.

Все действия по созданию, запуску и изменению файлов для того чтобы открыть порт Linux нужно выполнять с правами суперпользователя.

Источник

Как проверить, открытые порты с помощью утилиты netstat?

Утилита netstat позволяет увидеть открытые в системе порты, а также открытые на данный момент сетевые соединения. Для отображения максимально подробной информации надо использовать опции:

  • -l или —listening — посмотреть только прослушиваемые порты;
  • -p или —program — показать имя программы и ее PID;
  • -t или —tcp — показать tcp порты;
  • -u или —udp показать udp порты;
  • -n или —numeric показывать ip адреса в числовом виде.

Открытые порты Linux, которые ожидают соединений имеют тип LISTEN, а перед портом отображается IP адрес на котором сервис ожидает подключений. Это может быть определенный IP адрес или */0.0.0.0 что означают любой доступный адрес:

$ netstat -tulpn

Как закрыть порт

Скажем, вы размещаете веб-сервер на компьютере, но не хотите прослушивать порт 8080. Вместо этого вы хотите, чтобы трафик проходил только через порты 80 (HTTP) и 443 (HTTPS). Чтобы закрыть порт 8080, мы будем использовать команду ufw (Uncomplicated FireWall) следующим образом:

sudo ufw deny 8080

Вы должны увидеть, что правила были обновлены, а порт заблокирован. Если вы обнаружите, что блокирование этого порта вызывает проблемы со службой или приложением, вы можете снова открыть его с помощью команды:

sudo ufw allow 8080

И это все, что нужно для поиска и закрытия открытого порта на Ubuntu. Этот процесс должен работать в большинстве дистрибутивов, единственное предостережение — как вы блокируете порт, так как не каждый дистрибутив использует ufw. Если выбранный вами дистрибутив использует другую команду для блокировки портов (например, sudo iptables -A INPUT -p tcp —destination-port 80 -j DROP), убедитесь, что вы знаете, как выполнить эту задачу на своем сервере.

Что умеет Angry IP Scanner?

Angry IP Scanner – это кросс-платформенное приложение, которое умеет работать и в Windows и Linux. Таким приложениям стоит уделять особое внимание, так как они могут придти на помощь практически во всех случаях. Если вы поклонник XSpider, то, наверное, знаете, что это сканер безопасности работает только в операционной системе Windows и в Linux запустить его хоть и можно, но будет не совсем правильно.

Angry IP Scanner умеет сканировать IP-адреса по заданному диапазону, находя все компьютеры, которые работают в данный момент. Я пользуюсь этим, когда просто хочу посмотреть обстановку в локальной сети, узнать кто сейчас трудиться, а кто даже компьютер не удосуживается включить. Сразу становиться все понятно. К тому же Angry IP Scanner умеет сканировать не только отсылая и анализируя эхо-запросы, но также используя UDP и TCP сессии, что повышает шанс найти «скрытый» компьютер в локальной сети.

Angry IP Scanner можно настроить, чтобы тот при сканировании более щепетильно относился к каждому компьютеру и определял какие порты открыты в данный момент. Это необходимо знать если вы планируете защищать компьютеры от несанкционированного доступа, который может быть получен из внешней или внутренней сети. Да и благодаря этому можно легко понять, у кого работает FTP-сервер, а кто не легитимно расшарил папки на своем компьютере.

На каждом найденном хосте можно получить быстрый доступ ко всем ресурсам ( telnet, ssh, ftp, web-сервер), которые были найдены.

Если вы заинтересовались Angry IP Scanner, то смело идите на оф. сайт и там качайте сетевой сканер под свою операционную систему.

Теги: сеть и ПО Linux

Проверяем на SQL инъекции

Так повелось, что большинство современных веб-приложений в той или иной мере используют SQL базы данных. Обычно параметры веб-страницы или какие-либо пользовательские данные подставляются в SQL запросы и результаты запроса отображаются на веб-странице. Если передаваемые параметры плохо фильтруются, то веб-сервис становится уязвимым для SQL инъекций.

Читайте также:  Корневая файловая система Linux: каталоги и команды

Если сайт уязвим и выполняет такие инъекции, то по сути есть возможность творить с БД (чаще всего это MySQL) что угодно. Именно таким образом чаще всего воруют базы пользователей и их личные данные.

Далее я покажу как с помощью скриптов быстро и эффективно проверить есть в вашем продукте подобные уязвимости. Часто даже довольно опытные разработчики забывают о мерах предосторожности, поэтому даже серьезные продукты имеют подобные проблемы. Попробуем проверить наш тестовый веб-сервис на наличие таких проблем c помощью инструмента sqlmap.

Установка sqlmap.

Sqlmap — это кроссплатформенный сканер с открытым исходным кодом, который позволяет в автоматическом режиме тестировать веб-сервисы на наличие SQL инъекций, а затем использовать их для получения контроля над базой данных.

В данной статье я рассмотрю только способы как можно находить уязвимые для SQL инъекций страницы, API и формы без подробностей о том, как использовать найденные уязвимости для нанесения вреда. (Владельцы сайтов тут облегченно вздохнули). Для использования необходим python версии 2.7 и старше.

Установка на Windows

Для начала работы нам необходимо установить Python. Установщик Python для Windows можно найти на официальном сайте. Ссылку я прикрепил ниже.

Download Python The official home of the Python Programming Language

На сайте две ветки — 2.x и 3.x, но скачать и установить лучше ветку 3.x. Sqlmap корректно работают с каждой из этих версий, но в дальнейшем нам потребуется версия 3.x.

Загрузить последнюю версию sqlmap можно здесь. Распакуйте архив в любую удобную папку (чтобы было проще ее найти можно распаковать в папку С:\Users\<имя вашего пользователя>)

Для запуска вначале нужно открыть командную строку. Нажмите Win+R, в появившемся окне введите cmd и нажмите enter. Пример запуска:

С:\Users\Admin\sqlmap>python ./ -u

Установка на Mac OS X

Для начала установим Python. Для этого откройте Tерминал и запустите следующую команду.

brew install python3

Теперь установим sqlmap.

brew install sqlmap

Запуск sqlmap для Mac OS X.

sqlmap -u —dbs -o -random-agent

Несколько примеров для определения атаки типа DoS или DDoS

Следующая команда позволит узнать, сколько подключений активно на каждом IP-адресе:

netstat -naltp | grep ESTABLISHED | awk «{print $5}» | awk -F: «{print $1}» | sort -n | uniq -c

Определяем большое количество запросов с одного IP-адреса:

netstat -na | grep:80 | sort

Определяем точное количество запросов, полученных на одно соединение:

netstat -np | grep SYN_RECV | wc -l

При проведении DoS-атаки число, полученное в результате работы данной команды, должно быть довольно большим. В любом случае оно может зависеть от конкретной системы. То есть на одном сервере оно может быть одним, на другом — иным.