МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
кафедра ЗІ
ЛАБОРАТОРНА РОБОТА №3
МЕТОДИ СКАНУВАННЯ ПОРТІВ
з курсу “Захист інформації в комп’ютерних мережах”
Виконав:
Ст. гр. ЗІД-12м
Прийняв:
Львів 2011
Мета роботи – вивчити основні методи сканування портів стеку ТСР/ІР, визначення працюючих на хості служб та типу ОС, характеристики програмних засобів для їх реалізації. Зрозуміти методи і механізми, використовувані зловмисниками для реалізації різних атак, способи їх виявлення, та принципи, що закладаються в широко відомі системи мережевої безпеки.
Теоретичні відомості.
Сканування мережевих портів (рorts scan) – процес організації множини з’єднань з віддалених хостів на різні мережеві порти локальної системи, інакше кажучи, це перевірка системи на наявність відкритих TCP/IP портів. Програма-сканер, намагається приєднатися до кожного порта і встановлює які з них відкриті, тобто надсилають відповідь.
Сканування портів або ідентифікація сервісів
Скануванням портів називається метод віддаленого аналізу, який здійснюється шляхом передачі тестових запитів на створення з’єднання і дозволяє визначити список активних служб представлення віддаленого сервісу на якомусь хості.
Для управлінням з’єднанням в ТСР-протоколі використовуються значення прапорців в полі Кодові біти (Code Bits) ТСР-заголовку, яке займає 6 біт, та містить службову інформацію про тип даного сегменту (див. Лаб. роб № 2).
Прапорець SYN (synchronize) - цей прапорець використовується для позначення початку з’єднання. Повідомлення з встановленим SYN, використовується для синхронізації лічильників переданих даних при встановленні з’єднання.
Прапорець ACK (acknowledgement) - квитанція на прийнятий сегмент.
Прапорець RST (reset) - TCP-модуль встановлює цей прапорець, якщо виникли які-небудь проблеми з підключенням (раптове закриття з’єднання).
Прапорець FIN (finish) – цим прапорцем відправник повідомляє, що про закінчення відправлення даних. FIN-прапорець закриває з’єднання.
Прапорець URG (urgent) - вказує TCP-модулю на терміновість даних. TCP-модуль повинен обробляти такі дані поза чергою.
Прапорець PSH (push) - якщо цей прапорець встановлений, то TCP-модуль повинен надсилати дані з сегмента до програми відразу, а не через буфер.
Встановлення TCP-з’єднання відбувається в 3 стадії (3-way handshake): клієнт надсилає ТСР-пакет з встановленим прапорцем SYN (С- SYN) для ініціалізації з’єднання. Якщо сервер прослуховує цей порт, він відсилає пакет з встановленими прапорцями ACK і SYN (підтвердження клієнтського запиту - C-ACK і одночасно запрошуючи зворотне з’єднання S-SYN) і переводить сесію в стан SYN_RECEIVED і заносить її в чергу. Тепер вже клієнт повинен вислати підтвердження запиту сервера, пакетом з прапорцем ACK (S-ACK). Якщо на протязі заданого часу від клієнта не надійде S-ACK, з’єднання видаляється з черги, в протилежному випадку з’єднання вважається встановленим (стан ESTABLISHED) і починається обмін даними, тобто клієнт і сервер обмінюються специфічними для даних аплікацій командами, створюючи з’єднання вже на прикладному рівні. Коли одна з сторін виконає передачу іншій, вона може послати пакет FIN. Інша сторона повинна підтвердити цей пакет FIN надіславши пакет ACK і надіслати своє власне повідомлення FIN, очікуючи від другої сторони підтвердження того, що з’єднання дійсно закрито. Для екстреного переривання з’єднання будь-яка з сторін може передати пакет з прапорцем RST. ТСР-взаємодію між клієнтом і сервером представлено нижче:
Клієнт надсилає серверу повідомлення SYN.
Сервер відповідає SYN/ ACK.
Клієнт надсилає повідомлення ACK - серверу.
Клієнт і сервер обмінюються пакетами, підтверджуючи кожну передачу сигналом ACK.
Клієнт бажає завершити взаємодію і надсилає серверу повідомлення FIN.
Сервер надсилає повідомлення ACK. Потім сервер надсилає власне повідомлення FIN.
Клієнт відправляє підтвердження ACK – серверу.
Мережеві служби (серверні аплікації), такі як WWW, FTP, TELNET і ін. після завантаження очікують одержання запитів на підключення від клієнтів на певних, наперед для них зарезервованих TCP- або, значно рідше, UDP-портax. Таким чином, список відкритих (активних) портів на сервері означає наявність запущених на ньому серверних аплікацій, це так звана ідентифікація сервісів (service detection) (див. Дод 1). ЗВ визначає працюючі сервіси і відкриті порти, що дозволяє встановити потенційні вразливості на атакованому вузлі та звузити число можливих атак на нього.
Етап створення ТСР-з’єднання з вказаним портом є стандартним і абсолютно інваріантним відносно виду серверної служби, до якої здійснюється підключення. На цій особливості і базуються всі методи мережевого сканування.
Всі відомі на сьогоднішній день основні методи сканування портів в залежності від можливості визначення об’єктом безпосереднього ініціатора сканування можна розділити на дві групи:
1. Методи відкритого сканування: безпосередній ініціатор однозначно визначається об’єктом сканування по IP-адресу запитів.
2. Методи "невидимого" анонімного сканування. Безпосередній ініціатор не визначається об’єктом сканування (однозначно встановлюється тільки "транзитне" джерело скануючих запитів).
2. ЗАВДАННЯ
2.1. Домашня підготовка до роботи
1. Вивчити теоретичний матеріал.
2. Вивчити розглянуті методи сканування портів, їх переваги та недоліки.
3. Освоїти основні можливості і порядок роботи з програмою Nmap.
2.2. Виконати в лабораторії
Проведіть сканування хостів, що працюють у вашій лабораторії.
Проскануйте виявлені хости методами пасивного сканування з використанням фрагментації та фальсифікації ІР-адрес. Встановіть, які служби працюють на хостах.
Здійсніть невидиме сканування одного з комп’ютерів мережі методом німого сканування.
Визначіть тип ОС для мінімум 2 комп’ютерів мережі з різними ОС.
Результат виконання:
Проведіть сканування хостів, що працюють у вашій лабораторії.
near@uplink:~$ arp -a
HP-Compaq.local (192.168.1.20) в c4:17:fe:5a:a6:57 [ether] на wlan0
near@uplink:~$ nmap 192.168.1.20
Starting Nmap 5.21 ( http://nmap.org ) at 2011-05-23 20:53 EEST
Scanning 192.168.1.20 [1 port]
Host is up (0.0024s latency).
All 1000 scanned ports on 192.168.1.20 are filtered
MAC Address: C4:17:FE:5A:A6:57 (Unknown)
Read data files from: /usr/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 21.42 seconds
Raw packets sent: 6001 (168.042KB) | Rcvd: 1 (42B)
Проскануйте виявлені хости методами пасивного сканування з використанням фрагментації та фальсифікації ІР-адрес. Встановіть, які служби працюють на хостах.
near@uplink:~$ sudo nmap 192.168.1.20 -P0 -f -S 192.168.1.11 -e wlan0 -sV -vvv
Starting Nmap 5.21 ( http://nmap.org ) at 2011-05-23 20:53 EEST
NSE: Loaded 4 scripts for scanning.
Initiating ARP Ping Scan at 20:53
Scanning 192.168.1.20 [1 port]
Completed ARP Ping Scan at 20:53, 0.04s elapsed (1 total hosts)
mass_dns: warning: Unable to determine any DNS servers. Reverse DNS is disabled. Try using --system-dns or specify valid servers with --dns-servers
DNS resolution of 1 IPs took 0.00s. Mode: Async [#: 0, OK: 0, NX: 0, DR: 0, SF: 0, TR: 0, CN: 0]
Initiating SYN Stealth Scan at 20:53
Scanning 192.168.1.20 [1000 ports]
Completed SYN Stealth Scan at 20:53, 21.08s elapsed (1000 total ports)
Initiating Service scan at 20:53
NSE: Script scanning 192.168.1.20.
NSE: Script Scanning completed.
Nmap scan report for 192.168.1.20
Host is up (0.0024s latency).
All 1000 scanned ports on 192.168.1.20 are filtered
MAC Address: C4:17:FE:5A:A6:57 (Unknown)
Read data files from: /usr/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 21.42 seconds
Raw packets sent: 6001 (168.042KB) | Rcvd: 1 (42B)
------------------------------------------------------------------------------
Interesting ports on 10.0.10.25:
Not shown: 993 closed ports
PORT STATE SERVICE
80/tcp open http
135/tcp open msrpc
139/tcp open netbios-ssn
443/tcp open https
445/tcp open microsoft-ds
3580/tcp open unknown
8080/tcp open http-proxy
Здійсніть невидиме сканування одного з комп’ютерів мережі методом німого сканування.
Визначіть тип ОС для мінімум 2 комп’ютерів мережі з різними ОС.
near@uplink:~$ sudo nmap 192.168.1.20 -P0 -f -S 192.168.1.11 -e wlan0 -sV -vvv -O --osscan-guess
Starting Nmap 5.21 ( http://nmap.org ) at 2011-05-23 20:56 EEST
NSE: Loaded 4 scripts for scanning.
Initiating ARP Ping Scan at 20:56
Scanning 192.168.1.20 [1 port]
Completed ARP Ping Scan at 20:56, 0.01s elapsed (1 total hosts)
mass_dns: warning: Unable to determine any DNS servers. Reverse DNS is disabled. Try using --system-dns or specify valid servers with --dns-servers
DNS resolution of 1 IPs took 0.00s. Mode: Async [#: 0, OK: 0, NX: 0, DR: 0, SF: 0, TR: 0, CN: 0]
Initiating SYN Stealth Scan at 20:56
Scanning 192.168.1.20 [1000 ports]
Completed SYN Stealth Scan at 20:56, 21.06s elapsed (1000 total ports)
Initiating Service scan at 20:56
Initiating OS detection (try #1) against 192.168.1.20
Retrying OS detection (try #2) against 192.168.1.20
NSE: Script scanning 192.168.1.20.
NSE: Script Scanning completed.
Nmap scan report for 192.168.1.20
Host is up (0.0013s latency).
All 1000 scanned ports on 192.168.1.20 are filtered
MAC Address: C4:17:FE:5A:A6:57 (Unknown)
Too many fingerprints match this host to give specific OS details
TCP/IP fingerprint:
SCAN(V=5.21%D=5/23%OT=%CT=%CU=%PV=Y%DS=1%DC=D%G=N%M=C417FE%TM=4DDA9FCB%P=i686-pc-linux-gnu)
U1(R=N)
IE(R=N)
Network Distance: 1 hop
Висновок: на даній лабораторній роботі я ознайомився з роботою програми NMap, розглянув основні опції сканування портів Intense scan, no ping, Regular scan та ін. Після того як були про скановані порти ми визначили які служби працюють на хості та тип ОС.