Для реализации вам потребуются глубокие знания о том, как работает TCP/IP, и желание разобраться.
В результате мы сможем просканировать удаленную машину на наличие открытых портов с чужого адреса по следующей схеме (картинка из руководства по nmap):
Теоретическое введение
Как может см.в википедии
, каждому отправленному IP-пакету присваивается свой номер (хотя фрагментированные пакеты имеют один номер), хранящийся в специальном 16-битном поле.Если поле переполняется, отсчет начинается с нуля.
Сделав 2 измерения количества сетевых пакетов, можно судить о сетевой активности контролируемого компьютера.
TCP-соединение устанавливается по схеме «тройного рукопожатия».
Клиент отправляет серверу пакет с установленным флагом SYN, сигнализируя о предложении создать соединение.
Если серверу удастся создать сокет для подключения, он ответит клиенту пакетом со встречным предложением SYN и запросом на подтверждение ACK (где, в свою очередь, клиент подтверждает свое желание создать TCP-соединение с помощью пакет с флагом ACK).
Если сервер отказывает в соединении, он отправляет отказ клиенту в виде пакета с флагом RST, на что клиент, к сожалению, хранит молчание.
На основе этой разницы мы построим сканирование открытых портов от чужого имени.
Упражняться
Как отметил уважаемый ванаф , метод будет работать, если сканируемый и сканирующий хосты находятся в одной подсети или если они находятся в разных подсетях, тогда сканирующий и фиктивный хосты должны находиться в одной подсети.Для реализации мы будем использовать один из основных инструментов специалиста по компьютерной безопасности.
hping3 .
В схеме участвуют 3 машины, условно называемые злоумышленник, цель и подставная машина, от имени которых мы будем проводить сканирование.
В качестве машины-пустышки нужно выбрать ту, которая генерирует минимальное количество трафика (в идеале – вообще никакого).
Чтобы узнать эту интимную деталь поддельной машины, мы будем с ней общаться и наблюдать за изменением номеров посылок.
В идеале каждый раз, когда мы с ней общаемся, количество пакетов должно увеличиваться на единицу, а это значит, что за этот промежуток времени она больше не проводила никаких коммуникаций.
Для этого запустите hping следующим образом: root@Atom:~# hping3 -r 192.168.2.140
HPING 192.168.2.140 (eth0 192.168.2.140): NO FLAGS are set, 40 headers + 0 data bytes
len=46 ip=192.168.2.140 ttl=128 id=25378 sport=0 flags=RA seq=0 win=0 rtt=0.2 ms
len=46 ip=192.168.2.140 ttl=128 id=+1 sport=0 flags=RA seq=1 win=0 rtt=0.3 ms
len=46 ip=192.168.2.140 ttl=128 id=+1 sport=0 flags=RA seq=2 win=0 rtt=0.2 ms
len=46 ip=192.168.2.140 ttl=128 id=+1 sport=0 flags=RA seq=3 win=0 rtt=0.2 ms
len=46 ip=192.168.2.140 ttl=128 id=+1 sport=0 flags=RA seq=4 win=0 rtt=0.2 ms
^C
--- 192.168.2.140 hping statistic ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 0.2/0.2/0.3 ms
Переключатель -r указывает hping3 отображать приращение номера пакета.
Как мы видим, с каждой нашей связью он увеличивается на 1, то есть освобождается от ненужной связи.
Давайте запустим этот процесс в бесконечный «пинг», чтобы отслеживать изменения идентификатора пакета.
Далее нам необходимо отправить целевой машине предложение для установления TCP-соединения, причем предложение составляется определенным образом: в поле источника пакета мы задаем адрес фиктивной машины, на которую будут поступать ответы.
.
Если указанный порт на целевой машине закрыт, на мошенническую машину будет отправлено сообщение об отклонении (RST), которое мошенническая машина проигнорирует. Если порт открыт. затем целевая машина отправит встречное предложение установить соединение (SYN+ACK), на которое машина-мошенник будет вынуждена ответить отказом, то есть пакетом с флагом (RST).
Именно здесь мы обнаружим, что наша ранее отдыхавшая машина что-то кому-то сказала в тот самый момент, когда мы от ее имени отправляли предложение подключения.
Во избежание несчастных случаев эксперимент повторяют.
Вы можете отправить запрос на подключение от чужого имени следующим образом: root@Atom:~# hping3 -c 1 -S -a 192.168.2.140 192.168.2.1 -p 5222
HPING 192.168.2.1 (eth0 192.168.2.1): S set, 40 headers + 0 data bytes
--- 192.168.2.1 hping statistic ---
1 packets transmitted, 0 packets received, 100% packet loss
Где: -с 1 означает отправку только одного пакета; -С установить флаг SYN -а 192.168.2.140 установите адрес 192.168.2.140 в качестве источника пакета (в нашем случае это адрес поддельной машины) 192.168.2.1 адрес целевой машины -р 5222 целевой TCP-порт
Мы не получили ответа на посылку, потому что она попала на поддельную машину, вероятно, вынудив ее отказаться, что мы и обнаружим.
Если порт открыт, мы увидим следующую картину: len=46 ip=192.168.2.140 ttl=128 id=+1 sport=0 flags=RA seq=4 win=0 rtt=0.2 ms
len=46 ip=192.168.2.140 ttl=128 id=+1 sport=0 flags=RA seq=5 win=0 rtt=0.2 ms
len=46 ip=192.168.2.140 ttl=128 id=+2 sport=0 flags=RA seq=6 win=0 rtt=0.2 ms
len=46 ip=192.168.2.140 ttl=128 id=+1 sport=0 flags=RA seq=7 win=0 rtt=0.2 ms
len=46 ip=192.168.2.140 ttl=128 id=+1 sport=0 flags=RA seq=8 win=0 rtt=0.2 ms
Видите ли вы на 3-й линии, что фальшивая машина в этот самый момент успела пообщаться с кем-то еще? Скорее всего это отказ (RST) на предложение взаимности (SYN+ACK), поэтому поддельная машина на самом деле не отправляла SYN. Для уверенности эксперимент повторяют.
Для удобства вы можете использовать ключи -i для установки временного интервала и -p++ для увеличения порта на 1 с каждым пакетом.
Заключение
Тот же метод можно использовать для блокировки ничего не подозревающей поддельной машины, если на целевой машине имеется система обнаружения вторжений.Это лишь одно из многих впечатляющих применений hping3. Он может пинговать, когда icmp отключен (по умолчанию он отправляет пакет через TCP на нулевой порт).
Также может использоваться для передачи файлов даже через строго настроенные межсетевые экраны (даже через ping), работать трассировщиком не только по icmp, но и по UDP и TCP, помогает определить удаленную ОС, может быть весьма специфическим трояном и многое другое.
, гораздо более.
Я настоятельно рекомендую познакомиться с ним поближе.
У него есть хорошие инструкции ;) Если понравилось, принимаю благодарность.
УПД: Спасибо jcmvbkbc для информации, что аналогичный трюк можно проделать с помощью nmap: nmap.org/book/idlescan.html Теги: #сканирование портов #скрытое сканирование #hping #информационная безопасность
-
Почему Вам Нужно Беспокоиться О Спаме
19 Oct, 24 -
Web 3.0: Следующая Интернет-Революция
19 Oct, 24 -
Что, Если Дизайнер Научится Программировать?
19 Oct, 24 -
Как И Зачем Делать Отчеты?
19 Oct, 24 -
2012 Год
19 Oct, 24