Как посмотреть на Linux открытые порты — описание способов

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

Введение

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

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

dmidecode

Вводим команду в терминале и получаем длинный информативный список о нашем компьютере

# dmidecode

Список может быть очень длинным, для удобства можно вывести его постранично

# dmidecode | less

Теперь его можно просто пролистать, например стрелочками вниз, вверх или прокрутить колесико до самого конца списка.

dmidecode

Для выхода из просмотра нажимаем комбинацию клавиш Ctrl+z

Если вас интересует конкретный параметр, то команда предусматривает несколько, основных, опций. Посмотреть их можно командой

# dmidecode -t

И мы увидим такое

Теперь если ввести команду с одним из атрибутов то мы получим соответствующие данные

# dmidecode -t bios

Получаем данные по нашему биос

Так же вы можете использовать и остальные команды:

# dmidecode -t bios # dmidecode -t system # dmidecode -t baseboard # dmidecode -t chassis # dmidecode -t processor # dmidecode -t memory # dmidecode -t cache # dmidecode -t connector # dmidecode -t slot

dmidecode

Пишите в комментариях кто какими командами пользуется чаще.

Всем Удачи!

Подписаться Уведомить о новых последующих комментариях новых ответах на мои комментарии {} [+] Имя* Email* Веб-сайт {} [+] Имя* Email* Веб-сайт Комментарий Межтекстовые Отзывы Посмотреть все комментарии

Действия

Команда find дает вам результаты поиска, а затем возможность выполнить действия над ними. Вот несколько предопределенных действий:

Действие Описание
-delete Удаляет файлы, соответствующие критериям поиска
-ls Показывает подробный вывод ls с размерами файлов и количеством inode
-print Показывает полный путь к соответствующим файлам. Это действие по умолчанию, если не указано другое действие.
-exec Выполняет следующую команду в каждой строке результатов поиска.

Итак, если вы хотите найти все пустые файлы и удалить их, вы можете сделать это следующим образом:

$ find . -empty -delete

Внимание: перед использованием действия удаления всегда можно безопасно запустить команду один раз с действием -print и подтвердить результаты.

Действие -exec является особенным. Это позволяет вам выполнить команду по вашему выбору в результатах поиска:

Читайте также:  Apple выпустила iOS 14.4 beta 2. Что нового

-exec command {} \;

где:

  • command — это команда, которую вы хотите выполнить для результатов поиска, например rm, mv или cp.
  • {} представляет результаты поиска.
  • Команда заканчивается точкой с запятой после обратной косой черты.

Итак, команду поиска и удаления всех пустых файлов можно записать так:

$ find . -empty -exec rm {} \;

Вот еще один пример использования действия -exec. Следующая команда копирует все .png изображения в каталог backup/images:

$ find . -name "*.png" -exec cp {} /backups/images \;

Возможности скриптов Nmap Scripting Engine

Команда разработчиков сканера портов Nmap задумывала и создавала скриптовый движок прежде всего для решения таких задач, как:

1. Исследование сети

Это область основного практического применения Nmap. Некоторые скрипты призваны облегчить, оптимизировать и ускорить работу вашего любимого сканера портов. Некоторые примеры их использования включают в себя выполнение таких задач, как:

  • осуществление поиска данных WHOIS (сетевой протокол прикладного уровня, базирующийся на протоколе TCP; его основное применение — получение в текстовом виде регистрационных данных о владельцах доменных имен, IP-адресов и автономных систем) по соответствующим доменам;
  • отправка запросов на основные региональные WHOIS-серверы ARIN (Северная Америка), RIPE (Европа и Ближний Восток) или APNIC (Азия и Тихоокеанский регион) для определения владельца конкретного IP-адреса;
  • identd-поиск на открытых портах (позволяет идентифицировать подключенных к ним пользователей);
  • осуществление запросов по протоколу SNMP (интернет-протокол для управления устройствами в IP-сетях на основе архитектур TCP/UDP);
  • составление списков доступных ресурсов и сервисов через сетевые протоколы для удаленного доступа NFS, SMB или RPC.

2. Более изощренный вариант определения версий

Система Nmap для определения версий сервисов и приложений способна распознать тысячи различных сервисов с помощью зондов и сопоставления сигнатур регулярных выражений, но и она не всемогуща. К примеру, идентификация сервиса Skype v2 требует два независимо работающих друг от друга зонда, чьи возможности по определению версий не отличаются высокой гибкостью. Также Nmap способен распознать часть SNMP-сервисов, если попытается перебрать несколько сотен community имен методом грубой силы. Для решения обеих вышеприведенных задач не слишком удобно использовать стандартные методы определения версий Nmap, но обе они легко выполняются с помощью NSE. По этой причине система определения версий сейчас вызывает по умолчанию NSE для решения задачи определения версии при обработки некоторых сложных сервисов.

3. Поиск уязвимостей

Когда обнаруживается новая уязвимость, она становится общеизвестной, и специалистам по сетевой безопасности нужно срочно просканировать свои сети, чтобы быстро идентифицировать уязвимые системы, до того, как это сделают за них плохие парни. Хотя Nmap и не является полноценным сканером уязвимостей, мощный потенциал NSE позволяет ему осуществлять проверки уязвимостей даже с учетом очень жестких требований. К примеру, когда ошибка Heartbleed в криптографическом программном обеспечении OpenSSL поставила под угрозу сотни тысяч систем по всему миру, разработчики Nmap отреагировали написанием скрипта ssl-heartbleed detection в течение двух дней.

Читайте также:  11 лучших дистрибутивов Linux для программиста

4. Обнаружение бэкдоров

Многие киберзлоумышленники, а также некоторые автоматические черви оставляют бэкдоры, чтобы на будущее обеспечить себе лазейку для осуществления более легкого проникновения в вашу систему. Часть из этих бэкдоров можно обнаружить с помощью стандартной процедуры определения версий Nmap на основе сопоставления сигнатур регулярных выражений, но для надежного обнаружения многих более сложных червей и бэкдоров требуются расширенные возможности NSE. В частности, NSE применяется для обнаружения бэкдора DoublePulsar, использующего уязвимость в реализации протокола SMB, бэкдор-версий для IRC-сервера UnrealIRCd, а также FTP-серверов vsftpd и ProFTPd.

5. Обнаружение уязвимостей

Реализованный на основе скриптового языка общего назначения, NSE может быть даже использован для создания эксплойтов, которые помогут вам обнаружить уязвимости еще до того, как информация об их существовании станет общедоступной. Такая возможность добавления пользовательских скриптовых эксплойтов может быть чрезвычайна полезна некоторым людям (прежде всего тестерам проникновения). Однако, полноценной платформой для создания сигнатур и эксплойтов, наподобие Metasploit, NSE все же не является.

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

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

Если сайт уязвим и выполняет такие инъекции, то по сути есть возможность творить с БД (чаще всего это 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\<имя вашего пользователя>)

Читайте также:  Обновление до Kubuntu 20.04 с Kubuntu 18.04

Для запуска вначале нужно открыть командную строку. Нажмите 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

Как в Linux посмотреть занятые порты

Занятые порты — это те сетевые соединения, которые уже используются какими-либо программами или службами. Вообще портовые связи могут находиться в различных состояниях: открытом, закрытом, отфильтрованном и неотфильтрованном. Если сказано, что соединение открыто, то имеется в виду, что использующая его программа или служба на проверяемом персональном компьютере выполняет прослушивание входящих пакетов. Узнать, занят ли port на Linux, можно с помощью следующих способов.

В первом из них используется команда «netstat», которая уже была описана в этом материале. Она идеально подходит для сбора любой сетевой информации об операционной системе. Вывод всех портовых соединений осуществляется по команде «$ sudo netstat —ltup». Атрибут «l» указывает на то, что нужно вывести сокеты, «t» работает с TCP-соединениями, а «u» — с UDP. Последний параметр «p» выводит имена процессов, которые прослушивают порты в данный момент времени.

Второй способ заключается в использовании более функциональной утилиты «ss», обладающей аналогичными параметрами и методом вывода информации. Следующая строка покажет все соединения на протоколах TCP и UDP в формате чисел: «$ sudo ss -lntu».

Еще один быстрый способ получить данные обо всех открытых и закрытых портах заключается в использовании утилиты «nmap» — мощного и известного средства для сканирования сетей линукс, а также проверки сетевых соединений. По умолчанию этого софта нет в списке программ, поэтому его нужно будет установить. Для этого прописывают в командной строке запись и выполняют ее: «$ sudo apt install nmap» (подходит для стандартной линукс и Ubuntu).

Как в Linux посмотреть занятые порты

Обратите внимание! Сканирование всех соединений с помощью этой утилиты выполняется путем ввода строки «$ sudo nmap -n -PN -sT -sU -p- localhost». Она позволяет определить все открытые, закрытые и прослушивающие порты.

Последняя программа — «lsof». Для вывода всех файлов глобальной или локальной сети вводят команду с использованием атрибута «—i». Он способен продемонстрировать не только имена служб, но и их числовые порты: «$ sudo lsof —i».

Использование команды «$ sudo lsof —i» в терминале

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

Xargs: когда канала недостаточно

Некоторые команды не считываются из стандартного входа, канала или файла. Им, как правило, требуются аргументы. Кроме того, некоторые системы ограничивают количество аргументов в командной строке.

Например команда rm tmpdir/*.log завершится ошибкой, если файлов .log будет слишком много.

Итак, команда xargs решает сразу обе проблемы: преобразует стандартный поток ввода команды в литеральные аргументы и разбивает args на допустимое число, многократно запуская команду.

Например, можно попробовать создать файлы с именами в :

xargs touch <