О! Интересную штуку откопал. Все вы наверное знаете, что часто взлом начинается со сканирования портов. Впрочем, часто со сканирования портов начинается не только взлом.
     Для сканирования портов применяется например тул под названием nmap. Это консольная утилита, которая умеет определять открытые порты. А так же догадываться, что за ОС стоит на атакуемой (сканируемой) машине.
     Так вот…
на днях я ей пользовался, и нашел у нее возможность скрытого сканирования с использованием зомби машины.
   В чем тут фокус — на сканируемую машину не приходит ни одного пакета содержащего адрес сканирующей. И это круто! Атака проходит очень красиво. Я не очень многое понимаю в том как работает TCP/IP но много тут знать и не надо. Вот описание атаки — nmap.org/book/idlescan.html
     Вкратце расскажу как это работает —
     Когда на машину приходит TCP пакет для установления соединения (называется он SYN (session establishment)), машина может ответить или SYN/ASK — то-есть принять соединение, или ответить RST — то-есть отвергнуть его.
    Когда машина получает SYN/ASK пакет которого не ждет, она отвечает RST, а когда она получает RST — то не отвечает ничего.
    Еще, в интернете (IP сетях) можно послать пакет с любым обратным адресом. Ясно, что ответа на него ждать не следует, этот ответ уйдет по поддельному обратному адресу.
     И последнее — то, что собственно позволяет провести атаку. Большинство систем нумеруют ВСЕ IP пакеты подряд, вне зависимости от получателя. Пакеты нужно нумеровать, чтобы по прибытии получатель мог собрать их в правельном порядке.
     То что пакеты нумеруются подряд значит, что можно узнать сколько пакетов послал компьютер B между двумя запросами компьютера A к нему.
     Как проходит атака —
     Есть 2 машины — A, C. Машина А хочет скрытно просканировать С. Для этого она случайно выбирает в интернете любую слабо загруженую машину «зомби» — В. Она посылает ей IP пакет и узнает IPID этой машины.
     Теперь она посылает SYN машине С, но поделывает обратный адрес на В.
     Дальше есть 2 варианта.
        1. Порт на машине С открыт, и она шлет ответ (а он отправляется машине В) — SYN/ASK. Машина В — отвечает ей RST, поскольку подключения этого не ждет, и вообще первый раз о нем слышит. Но ее IPID увеличивается на 1.
        2. Порт на машине C закрыт, и та шлет RST, опять же машине B (про А она вообще ничего не знает). Машина B как положено, по правилам, этот пакет игнорирует, и ее IPID не увеличивается.
     Теперь злобный, прыщавый и немытый хакер может послать машине B еще один IP пакет и получить ответ в котром есть новый IPID машины B. Если он отличается от первого запроса на 1, то порт на машине С — закрыт. А если на 2 — то открыт! Так-то!
     Заметьте машина B — ничем не заражалась, а машина С — не получала ли одного намека на того, кто ее не самом деле сканировал.
     В английской статье по ссылочке есть замечательные картинки, для тех кто ничего не понял, но кому интересно. А еще там есть картинка того, как сканировали RIAA. Это верно. RIAA должна сдохнуть.
     Для сканирования портов применяется например тул под названием nmap. Это консольная утилита, которая умеет определять открытые порты. А так же догадываться, что за ОС стоит на атакуемой (сканируемой) машине.
     Так вот…
на днях я ей пользовался, и нашел у нее возможность скрытого сканирования с использованием зомби машины.
   В чем тут фокус — на сканируемую машину не приходит ни одного пакета содержащего адрес сканирующей. И это круто! Атака проходит очень красиво. Я не очень многое понимаю в том как работает TCP/IP но много тут знать и не надо. Вот описание атаки — nmap.org/book/idlescan.html
     Вкратце расскажу как это работает —
     Когда на машину приходит TCP пакет для установления соединения (называется он SYN (session establishment)), машина может ответить или SYN/ASK — то-есть принять соединение, или ответить RST — то-есть отвергнуть его.
    Когда машина получает SYN/ASK пакет которого не ждет, она отвечает RST, а когда она получает RST — то не отвечает ничего.
    Еще, в интернете (IP сетях) можно послать пакет с любым обратным адресом. Ясно, что ответа на него ждать не следует, этот ответ уйдет по поддельному обратному адресу.
     И последнее — то, что собственно позволяет провести атаку. Большинство систем нумеруют ВСЕ IP пакеты подряд, вне зависимости от получателя. Пакеты нужно нумеровать, чтобы по прибытии получатель мог собрать их в правельном порядке.
     То что пакеты нумеруются подряд значит, что можно узнать сколько пакетов послал компьютер B между двумя запросами компьютера A к нему.
     Как проходит атака —
     Есть 2 машины — A, C. Машина А хочет скрытно просканировать С. Для этого она случайно выбирает в интернете любую слабо загруженую машину «зомби» — В. Она посылает ей IP пакет и узнает IPID этой машины.
     Теперь она посылает SYN машине С, но поделывает обратный адрес на В.
     Дальше есть 2 варианта.
        1. Порт на машине С открыт, и она шлет ответ (а он отправляется машине В) — SYN/ASK. Машина В — отвечает ей RST, поскольку подключения этого не ждет, и вообще первый раз о нем слышит. Но ее IPID увеличивается на 1.
        2. Порт на машине C закрыт, и та шлет RST, опять же машине B (про А она вообще ничего не знает). Машина B как положено, по правилам, этот пакет игнорирует, и ее IPID не увеличивается.
     Теперь злобный, прыщавый и немытый хакер может послать машине B еще один IP пакет и получить ответ в котром есть новый IPID машины B. Если он отличается от первого запроса на 1, то порт на машине С — закрыт. А если на 2 — то открыт! Так-то!
     Заметьте машина B — ничем не заражалась, а машина С — не получала ли одного намека на того, кто ее не самом деле сканировал.
     В английской статье по ссылочке есть замечательные картинки, для тех кто ничего не понял, но кому интересно. А еще там есть картинка того, как сканировали RIAA. Это верно. RIAA должна сдохнуть.