Showing posts with label icmp. Show all posts
Showing posts with label icmp. Show all posts

Thursday, 29 February 2024

Работа с сетью в командной строке Windows, #3.

Всем привет.

Продолжаем рассматривать сетевые утилиты командной строки Windows, сегодня у нас в фокусе NETSTAT и другая мега-утилита NET.

Утилита NETSTAT

    Утилита netstat.exe присутствует во всех версиях Windows, однако, существуют некоторые отличия используемых параметров командной строки и результатов ее выполнения, в зависимости от операционной системы. Используется для отображения TCP и UDP -соединений, слушаемых портов, таблицы маршрутизации, статистических данных для различных протоколов. 

Синтаксис:

netstat[-a] [-e] [-n] [-o] [-pProtocol] [-r] [-s] [Interval]

-a - отображение всех активных соединений по протоколам TCP и UDP, а также, списка портов, которые ожидают входящие соединения (слушаемых портов). 

-b - отображение всех активных соединений по протоколам TCP и UDP, а также, списка портов, которые ожидают входящие соединения (слушаемых портов) с информацией об именах исполняемых файлов. Данный параметр применим для операционных систем Widows XP и старше.

-e - отображение статистики Ethernet в виде счетчиков принятых и отправленных байт и пакетов. 

-n - отображение номеров портов в виде десятичных чисел.

-o - отображение соединений, включая идентификатор процесса (PID) для каждого соединения. 

-p Protocol - отображение соединений для заданного протокола. Протокол может принимать значения tcp, udp, tcpv6, udpv6 . При использовании совместно с параметром -s в качестве протокола можно задавать tcp, udp, icmp, ip, tcpv6, udpv6, icmpv6, ipv6.

-s - отображение статистических данных по протоколам TCP, UDP, ICMP, IP , TCP over IPv6, UDP over IPv6, ICMPv6, и IPv6 . Если задан параметр-p , то статистика будет отбражатися только для выбранных протоколов.

-r - отображение таблицы маршрутов. Эквивалент команды route print 

Interval - интервал обновления отображаемой информации в секундах. 

-v - отображать подробную информацию. 

/? - отобразить справку по использованию netstat 

При использовании утилиты netstat.exe удобно пользоваться командами постраничного вывода (more), перенаправления стандартного вывода в файл ( > ) и поиска текста в результатах (find). 

netstat -a | more - отобразить все соединения в постраничном режиме вывода на экран.

netstat -a > C:\netstatall.txt - отобразить все соединения с записью результатов в файл C:\netstatall.txt.

netstat -a | find /I "LISTENING" - отобразить все соединения со статусом LISTENING. Ключ /I в команде find указывает, что при поиске текста не нужно учитывать регистр символов. 

netstat -a | find /I "listening" > C:\listening.txt - отобразить все соединения со статусом LISTENING с записью результатов в файл C:\listening.txt.

Sunday, 26 June 2022

More on scanning and more.

Всем привет.

Чем мы занимались на прошлых лекциях? Мы занимались footprinting-ом, но footprinting не ставит перед собой целью получить доступ к целевой системе напрямую. Поэтому рассмотрим в финальной части цикла методы прямого исследование целевой системы:


  • жива ли система (проверка сетевого пинга)
  • перечень запущенных сервисов
  • тип/версия ОС
  • версия стека протоколов.


Determining if system is alive

Purpose: find out which IP addresses have live hosts on them. No point in detailed examination of empty address!

Network Ping sweep:

  • ARP Host discovery
  • ICMP Host discovery
  • OS Utilities
  • Network discovery tools
  • TCP/UDP Host discovery


ARP Host discovery - 1

Address Resolution Protocol:

  • Works on top of layer 2, in parallel with network layer
  • Has its own ethertype value
  • Needed for “plug-and-play” autoconfiguration and mobility
  • Request is broadcast to all hosts on LAN
  • Host with matching address is required to respond
  • Attacker needs to be on same LAN


ARP Host discovery - 2

Nmap by Fyodor (nmap.org):

  • De facto tool of choice 
  • Works on Linux, Windows, Mac
  • Does much more than ARP scanning
  • ARP scan through -PR <CIDR address> option
  • Turn off port scan using -sn option
  • Reports IP address, MAC address, OUI's name, and latency

CAIN (oxid.it/cain.html):

  • Windows tool
  • Does much more than ARP scanning
  • GUI-based tool

Limitations of ARP scanning: targets on distant network segments.

Sunday, 12 June 2022

Scapy packet manipulation.

Всем привет.

Этим я открываю небольшую серию по итогам презентации на тему "Анализ сетевых пакетов" от автора "CE 340/S. Kondakci, IEU, Computer Engineering". По ходу будет масса примеров анализа с помощью таких инструментов как Scapy, Nmap, Nping и tcpdump. Устраивайтесь поудобнее и начнем. А начнем мы со Scapy.

Scapy packet manipulation agenda:

  • Creating a packet
  • Send/Receiving packets
  • Basic Scapy commands
  • Capturing packets and reading packet capture files into Scapy
  • Layering packets

Four steps before:

1. Install Python 3.5+

2. Download and install Scapy

3. Install additional software for special features (optional)

4. Run Scapy with root privileges.


Example: Hello World

send(IP(dst= 127.0.0.1 )/ICMP()/ HelloWorld )

  • send - this tells Scapy that you want to send a packet (just a single packet)
  • IP - the protocol of the packet you want to create
  • (dst= 127.0.0.1 ) - the destination IP to send the packet to 
  • /ICMP() - Create an ICMP packet with the default values provided by Scapy
  • / HelloWorld  - the payload to include in the ICMP packet


Wireshark capture:

Scapy command: send(IP(dst= 127.0.0.1 )/ICMP()/ HelloWorld )

Wireshark output: 

Internet Protocol Version 4, Src: 127.0.0.12 (127.0.0.12), Dst: 127.0.0.1 (127.0.0.1)

Protocol: ICMP

Data: 48656c6c6f576f726c64 or  HelloWorld 


Example: fabricate an ICMP Packet

send(IP(src= 127.0.0.1 , dst= 127.0.0.1 , ttl=128)/ICMP()/ HelloWorld )

Wireshark:

Internet Protocol Version 4, Src: 127.0.0.1 (127.0.0.1), Dst: 127.0.0.1 (127.0.0.1) Time to live: 128


What does this ICMP packet mean?

Internet Protocol Version 4, Src: 127.0.0.1 (127.0.0.1), Dst: 127.0.0.1 (127.0.0.1) Internet Control Message Protocol

Type: 0 (Echo (ping) reply)

Wednesday, 8 June 2022

Визуальный ping.


Всем привет.

Оказалось что в дружной семье HpingFping и Nping существует еще одна пингоподобная утилита - Gping.  

Если знакомая всем Ping  – это утилита, используемая администраторами компьютерных сетей для проверки доступности хоста в IP-сети путем измерения времени, которое требуется для сообщений, отправленных с исходного на конечный узел, время чтобы добраться до места назначения и вернуться в исходную точку, то Gping  этакая ее продвинутая сестричка командной строки, которая отображает свои результаты в виде графика. 

Причина, по которой разработчик Gping создал проект опубликован на GitHub, в том что он часто использовал ping -t google.com в командной строке, чтобы получить общее представление о скорости в сети. Однажды он подумал, что график был бы отличным способом визуализации данных. Именно по этой причине он решил попробовать написать кросс-платформенный инструмент, который помог бы ему в процессе визуализации.

Особенности утилиты скромные: бесплатное использование, т.е. исходный код на GitHub, и собственно сам график на выходе.

Установка на Ubuntu:

1) Install the gnupg package, which is used for adding a repository key to APT:

sudo apt install gnupg

2) Add the Azlux repository to APT. Change 'stable' with the codename of your Linux release:

echo "deb http://packages.azlux.fr/debian/ stable main" | sudo tee /etc/apt/sources.list.d/azlux.list

3) Add the Azlux repository key to APT:

wget -qO - https://azlux.fr/repo.gpg.key | sudo apt-key add -

4) Update the APT registry, and install gping:

sudo apt update

sudo apt install gping

Пользуемся так:

gping google.com

или так:

gping google.com ukr.ent


Утилита может измерять и время выполнения локальных команд:

gping --cmd 'ls /'

Мелочь, а приятно.

Удачи.

Saturday, 28 November 2020

Разведка из открытых источников, часть 3.

Всем привет.

Решив отдать должное автору статьи "Разведка из открытых источников, часть 2" Андрею Бирюкову я публикую еще одну часть из его журнальной серии "Системный администратор". 3-я часть посвящена технической стороне разведки, а именно сканированию сети.

Сканирование сети является неотъемлемой частью сетевых атак. Для успешной защиты необходимо понимать, как осуществляется обнаружение узлов в сети. Мы проведем исследование тех служб, которые при­меняются в сети. Сначала рассмотрим, как злоумышленник может идентифицировать работающие узлы. Затем перей­дем к тому, как определить, какие службы запущены на дан­ных машинах. Для идентификации активных узлов в локальной сети можно использовать различные протоколы сетевого и транспортного уровня, такие как ICMP, UDP и TCP. Но обо всем по порядку.

ICMP как простой инструмент исследования сети

Протокол ICMP служит для выявления проблем, связан­ных с сетевым уровнем. Как правило, в локальных сетях его не блокируют, так как он часто используется самими си­стемными администраторами для поиска неполадок в сети.

Прежде всего рассмотрим основные принципы работы данного протокола. Сообщения ICMP передаются в виде IP- датаграмм, то есть к ним прибавляется заголовок IP

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

-    8-битного целого числа, обозначающего тип сообще­ния (TYPE);

-    8-битного поля кода (CODE), который конкретизирует назначение сообщения;

-    16-битного поля контрольной суммы (CHECKSUM).

Все типы сообщений ICMP можно условно поделить на две группы.

-    Сообщения об ошибках (например, Destination Unreachable).

-    Запросы и ответы (например, Echo Request и Echo Reply).

Начнем с рассмотрения сообщений об ошибках. Они содержат заголовок и первые 64 бита данных пакета IP, при передаче которого возникла ошибка. Это делается для того, чтобы узел-отправитель смог более точно проана­лизировать причину ошибки, так как все протоколы при­кладного уровня стека TCP/IP содержат наиболее важную информацию для анализа именно в первых 64 битах своих сообщений. Для сообщений об ошибках задействовано поле кода. В основном для исследования сети используют­ся Echo Reply, Echo Request и Timestamp.

Наилучшим методом определения доступности узла явля­ется посылка сообщения ICMP Echo (Туре 8). Если система работает и отсутствует фильтрация графика данного типа, то в ответ придет сообщение ICMP Echo Reply (Type 0).

Идентификация (то есть обнаружение) сетевых уст­ройств с помощью протокола ICMP может быть выполнена двумя способами.

-   посылкой запроса, получением ответа;

-   вызовом ситуации ошибки, получением сообщения об ошибке.

В основу идентификации заложен следующий принцип. Узел, отправляющий ICMP-запрос, устанавливает значения полей Identifier, эти значения позволяют определить ответы, пришедшие от разных узлов. А для того, чтобы отличить не­сколько ответов, пришедших от одного узла, используется поле Sequence Number. В поле Code записывается ноль, поле данных произвольно (например, алфавит). Отвечаю­щая сторона должна заменить значение поля Туре на 0 и от­править датаграмму обратно.

Для выполнения обнаружения узла обычно используется утилита ping, входящая в состав большинства ОС. В качест­ве параметра ping указывается IP/имя, и в результате получа­ем ответ удаленной системы. Однако у нее есть существен­ный недостаток - все узлы опрашиваются последовательно, что заметно увеличивает продолжительность опроса.

Sunday, 10 November 2019

Разрешить или заблокировать ping в Linux.

Всем привет.

Не секрет что блокирование ответов пинг в ОС может предотвратить атаки флуда ICMP пакетов, но в тоже время большинство систем используют данную услугу для онлайн мониторинга (системного мониторинга). Поэтому нам будет полезно знать как быстренько можно заблокировать Ping  ответы в Linux.

Блокировка PING на сервер является полезным, если сервер постоянно сталкивается с какой-то DoS атакой с помощью функции PING. При использовании IPTables мы можем просто остановить запретить прохождение ICMP пакетов (т.е. запретить PING) на сервер. Перед началом этого необходимо иметь представление о том, что такое Iptables в Linux. Iptables это система межсетевого экрана с набором правил, которые контролирует входящие и исходящие пакеты. По умолчанию Iptables работает без каких-либо правил, вы можете создавать, добавлять, редактировать правила.

Отключения Ping используя iptables

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

-A : Добавляет правила.
-D : Удаляет правило с таблицы.
-p : Опция чтобы указать протокол (где ‘icmp’).
—icmp-type : Опция для указания типа.
-J : Перейти к цепочке.

Как заблокировать PING на сервере с выводом сообщений об ошибке?

Таким образом, вы можете частично блокировать PING с выводом сообщения об ошибке «Destination Port Unreachable». Добавьте следующие правила Iptables чтобы заблокировать PING с выводом сообщения об ошибке:

# iptables -A INPUT -p icmp --icmp-type echo-request -j REJECT

Заблокировать PING на сервере без каких-либо сообщений об ошибках.
Для этого, используем команду для iptables:

# iptables -A OUTPUT -p icmp --icmp-type echo-request -j DROP
# iptables -A INPUT -p icmp --icmp-type echo-reply -j DROP

Это заблокирует все входящие и исходящие ICMP пакеты на сервере.

Разрешить Ping используя iptables

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

# iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
# iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

Данные правила разрешат прохождения ICMP пакетов с сервера и на него.

Версия на печать

Популярное