Nmap нь Network Mapper гэсэн үгний товчлол бөгөөд энэхүү програмыг Гордон Люн гэгч залуу 1997 онд бичсэн бөгөөд олон нийтэд Фёдор Васкович гэх хочоороо алдаршсан хакер юм. Энэхүү програм нь компьютерийн сүлжээнд холбогдсон хост болон үйлчилгээг(service) илрүүлэх мөн тухайн сүлжээний зураглалыг бий болгоход ашиглагддаг. Тусгайлан бэлтгэж бий болгосон сүлжээний пакетыг хоструу илгээх ба ирсэн хариу дээр дүгнэлт хийж тухайн хостын мэдээллийг олж авдаг, аюулгүй байдлын шилдэг програм хангамжид зүй ёсоор багтдаг юм.
Энэхүү програм хангамж нь анхлан Линукс үйлдлийн систем дээр ажиллах багаж болон бичигдсэн байдаг ба хөгжүүлэлтийн явцад Windows, Solaris, HP-UX, BSD, Mac Os, AmigOS, IRIX, UNIX үйлдлийн систем дээр суулгаж ашиглах боломжтой болсон юм. Анхны хувилбараа 1997 оны 9 сард гаргасан байдаг. Nmap програм нь C, C++, Python, Lua програмчлалын хэл дээр бичигдсэн бөгөөд олон төрлийн платформ дээр суугдан ажилладаг. GPL V2 лицензийн дор хөгжүүлэгддэг.
График интерфэйс:
Nmap програмын албан ёсны анхны Хэрэглэгчийн график интерфэйсийг хувилбар 2.2-ооc эхлэн 4.2 хувилбар хүртэл NmapFE нэртэйгээр гаргасан ба Zach Smith гэх програм зохиогч бичжээ. Түүнээс хойших хувилбаруудад Adriano Monteiro Marques-ийн хөгжүүлсэн Zenmap GUI-р бүрэн сольж nmap хэрэглэгчийн график интерфэйстэй хувилбар болгон ашиглаж ирсэн. Мөн вэб хөтөч дээр суурилсан хэрэглэгчийн график интерфэйс хувилбарууд хэрэглэгдэж байгаа ба үүнд Nmap-web, Nmap-CGI, LOCALSCAN, NmapWin зэрэг хувилбарууд багтдаг.
Зураг 1. Zenmap
Nmap програмын шалгалтын үр дүнгийн тайлан:
Nmap програм нь үндсэн 4 төрлийн оролтын форматыг дэмждэг боловч, бүх гаралтын үр дүнг файлд хадгалах боломжтой бөгөөд тухайн гаралтыг янз бүрийн текст боловсруулагч програм хангамжуудтай уялдуулан удирдах, гаралтын үр дүнг хэрэглэгч бүрэн засварлах боломжийг олгосон байна.
Interactive - Командын мөр дээр ажиллаж буй nmap-ын үр дүнг real-time харуулдаг.
Grepable - Командын мөр дээр ашиглагддаг sed, awk, grep зэрэг багажаар гаралтыг удирдаж болно.
Normal - interactive гаралттай төстэй боловч, үр дүнгийн гаралт нь файлд бичигддэг.
Nmap анхны хувилбар 1997 оны 9 сард Phrack Magazine сэтгүүл дээр эх кодын хамт хэвлэгдэн гарсан байдаг. Түүнээс хойш компьютерийн аюулгүй байдлын бүлгэм, холбоодууд тусламж үзүүлж хувь нэмрээ оруулж байсан бөгөөд хөгжүүлэлт ч мөн үргэлжилсээр байсан юм. Эхний хувилбар нь програмчлалын C болон С++ хэл дээр бичигдсэн ба үйлдлийн систем илрүүлэлт, сервис илрүүлэлт зэрэг функцүүдтэй байсан юм.
Nmap нь 20 жилийн түүхэндээ маш олон шийдэл, төсөл, хандлагуудыг амжилттай хэрэгжүүлсэн бөгөөд, Хөгжүүлэгчдийн хэлж байгаагаар интернет болон сүлжээний технологийн шинэ инноваци эсвэл дэлхий нийтээр дагаж мөрдөн хэрэгжүүлэх шинэ технологи гарахаас нааш дорвитой шинэ төсөл төлөвлөгөө байхгүй гэж ярьж байгаа юм. Харин одоо байгаа IPv6 аюулгүй байдлыг хангах шинэ арга хэлбэрийг голчлон барихаас гадна үндсэн сангуудынхаа шинэчлэлийг улам сайжруулах төлөвлөгөөтэй гэдгээ илэрхийлсэн.
Nmap төсөл нь ойрын 10 жилийн төлөвлөгөөндөө дараах зүйлсийг тусгажээ. Үүнд:
● Nmap Scripting Engine — NSE 2010 оны дунд үеэс эхлэн 131 скриптүүдийг хөгжүүлж ирсэн ба өмнөх жилүүдээс 68% илүү үзүүлэлт байгаа юм. NSE скриптүүд жил ирэх тусам скриптийн сан өргөжин тэлсээр байгаа билээ. Хөгжүүлэлтийн багийн зүгээс ирэх жилүүдэд албан ёсны NSE скрипт санг 500+ илүү скридтүүдтэй болгохоор зорин ажиллаж байгаа.
● Scanning web sites — Nmap-ийн өөр нэг зорилт нь вэб чиглэлтэй шалгалт хийх юм. Эхний хөгжүүлэлт нь эхэлсэн ба үүнд өөр өөр сервисүүдийг ямар портын дугаар дээр ажиллаж байгаа болох, мөн далд үйлчилгээнүүдийг танилт хийх, тэдгээрийн ангилалыг тогтоож өгөхөөр төлөвлөж байгаа юм. Одоогоор шинэ сервисүүд HTTP протоколоор ажиллаж байгаа ба тэдгээр нь тухайн "URL" замаар нэр болон портын дугаартайгаа танилт хийгдэж байгаа юм. Nmap NSE скриптүүд нь аль хэдийн вэб шалгалтын хэд хэдэн нэмэлтүүдийг багтаасан байгаа бөгөөд, хөгжүүлэлтийн багийнхан үүн дээр нэмээд "http brute force password cracking", HTML/XML parser, web applica зэрэг нэмэлт сонголтуудыг хийхээр ажиллаж байгаа ба мөн прокси порт шалгагч хийхээр ажиллаж байгаа юм.
● Online scanning web service — Хэрэглэгчид өөрийн тооцоолуур машин болон сүлжээг үүлэн тооцооллоос шалгалт боломжийг бий болгох мөн календарьчилсан шалгалт хийх тэрхүү шалгалтын үр дүнг и-мэйл хаягаар анхааруулах дохио болгон илгээдэг болгох зэрэг төлөвлөгөөтэй байгаа хэмээн хөгжүүлэгчид нь дурьдсан байна.
Мөн ахисан түвшний дараах ажлуудыг төлөвлөөд байна. Үүнд:
Nmap програмыг суулгаж ажиллуулах
Та https://nmap.org/download.html хаягаар орж өөрсдийн ашиглаж буй үйлдлийн системд зориулсан хувилбарыг татаж аваад суулгах боломжтой.
Өргөн хэрэглэгддэг Debian болон RedHat суурьт системүүдийн пакетын санд nmap програм багтсан юм.
Debian суурьтай үйлдлийн системүүдэд суулгахын тулд дараах командыг ажиллуулах хэрэгтэй.
# sudo apt-get install nmap
Redhat суурьтай үйлдлийн системүүдэд суулгахын тулд дараах командыг ажиллуулах хэрэгтэй.
# yum install nmap
Nmap Програмын гаралтыг унших:
nmap [ ...] [ ] { }
Дээрх командын бичиглэлээр командаа өгөх ба шалгах төрөл мөн сонголтууд, тухайн хостын нэр эсвэл ip хаягийг бичнэ.
Дээрх гаралтад:
Тухайн домэйн эсвэл вебийн байрлаж байгаа ip хаяг. Тухайн хостыг ямар хугацаанд шалгаж дууссан хугацаа. Мөн reverse dns болон dns бичлэгийн мэдээлэл. Нийт хаалттай портуудын тоо. Nmap үндсэн мэдээлэлд порт, төлөв, үйлчилгээ, хувилбар гэсэн 4 үндсэн мэдээллийг харуулна. Мөн сонголтоос хамаараад маш олон төрлийн мэдээллийг дэлгэрүүлэн харах боломжтой. Үүнд тухайн хостын үйлдлийн систем, хувилбар, гэх мэт ...
Энгийн шалгах төрлүүд:
Энгийн шалгалт хийх хэд хэдэн төрөл байдаг ба nmap нь тухайн сүлжээтэй TCP холболттой байгаа үед [-sT] болон SYN scanning [-sS] гэсэн сонголттойгоор шалгалт хийж болно.
TCP connect() Scan [-sT] - Энэ төрөл нь алсын хост нь холболт тогтсон үед хийгдэх шалгалтын төрөл юм. Хоёр системийн хооронд “Threeway handshake” процессыг ашиглан шалгалт хийдэг. Ерөнхийдөө SYN пакетын мэдээлэл дээр тулгуурлан шалгалт хийдэг. Орчин үеийн галт хана-ууд SYN пакетыг илрүүлдэг болсон боловч Nmap нь өөрийн гэсэн аргачлалаар SYN пакетын мэдээллийг хүлээн авч боловсруулдаг.
FIN, Null and Xmas Tree Scans [-sF, -sN, -sX] - Хост эсвэл тухайн порт холболт хийгдэхгүй тохиолдолд RST пакетын мэдээллийг илгээдэг.FIN арга нь зөвхөн FIN flag дээр тулгуурлан шалгалтыг хийдэг. Xmas Tree арга нь FIN болон URG, PUSH flag дээр тулгуурлан шалгалтыг хийдэг. Null арга нь ямар нэг flag байхгүй пакетыг илгээж шалгалтыг хийдэг.
Ping Scan [-sP] - Энэ төрөл нь тухайн нэг сүлжээн дээрх онлайн буюу идэвхтэй байгаа хостуудын мэдээллийг харуулдаг ба ping хүсэлтэд тулгуурлан шалгалт хийдэг. Тухайн системд ICMP ECHO REQUEST (ping request) хүсэлт явуулдаг.Хэрвээ систем онлайн байвал ICMP ECHO REPLY хариу хүлээж авдаг.Хэрвээ ICMP нь блоклогдсон байвал Nmap нь TCP ping явуулдаг.Үүнд SYN, ACK-г дурын портруу явуулдаг.
UDP Scan [-sU] - Энэ төрөл нь нээлттэй байгаа UDP портуудыг шалгахад ашиглагддаг сонголт юм. UDP пакетыг тухайн системд илгээх ба ICMP Port Unreachable байвал тухайн порт хаалттай харин бусад тохиолдолд нээлттэй гэж үзнэ.
IP Protocol Scans [-sO] - Энэ арга нь IP протокол дэмждэг эсэхийг илрүүлж түүн дээр IP протокол шалгалт хийдэг. Nmap нь ямар нэгэн нэмэлт header нэмэхгүй IP пакетыг илгээдэг. Энэ тохиолдолд ICMP Protocol Unreachable message хариу ирвэл протокол ашиглагдахгүй байна гэж ойлгох ба бусад тохиолдолд нээлттэй гэж үздэг. Гэвч бүх хостууд дээрх мэссэжийг илгээдэггүй ба тухайлбал AIX, HP-UX мөн галт хана ч үүнд багтана.
Version Detection [-sV] - Энэхүү аргаар тухайн систем дээр ямар үйлчилгээ явагдаж байгаа мөн нээлттэй портуудын мэдээлэл, бүтээгдэхүүний нэр болон хувилбарын маш чухал мэдээллүүдийг олж авахад хэрэглэгддэг. Мөн энэ аргатай хавсарган –А сонголтыг хамт ашиглаж болох ба энэ сонголт нь тухайн үйлдлийн системийг хэвлэх, мөн түүний хувилбарын талаарх мэдээллүүдийг олж авахад ашиглагддаг.
ACK Scan [-sA] - Энэ арга нь ихэвчлэн галт ханатай хостыг шалгах болон галт ханатай системүүдийн хооронд шалгалт хийхэд ашиглагддаг. Тухайн хоструу ACK пакет илгээж шалгалтыг хийдэг. Хэрвээ RST хариу буцаж ирвэл тухайн портыг unfiltered буюу галт ханаар шүүгддэггүй порт гэж үзэх бөгөөд хариу ирэхгүй бол тухайн портыг filtered буюу галт ханаар шүүгддэг гэж үздэг. Мөн энэ төрөл нь SYN пакетыг галт ханаар шүүж байгаа үед ихэвчлэн ашигладаг.
Window Scan, RPC Scan, List Scan [-sW, -sR, -sL] - TCP Window scan нь ACK scan-тай төстэй боловч нээлттэй портуудыг мөн порт шүүгдсэн шүүгдээгүйг илрүүлдэг төрөл юм. RPC scan нь бусад шалгалтын төрлүүдтэй хамтатган ашиглахад илүү тохиромжтой ба ямар програм ажиллаж байгаа мөн ямар үйлчилгээ явагдаж байгаа түүний хувилбарын дугаар зэрэг мэдээллийг илүү дэлгэрэнгүй харахад ашиглагддаг.
Timing and Hiding Scans - Nmap нь мэдээж хэрэг сүлжээний хурднаас шалтгаалан шалгах процессын хугацаа харилцан адилгүй байна. Гэвч Nmap нь танд хурдан хүчирхэг шалгалтыг хийх боломжоор хангадаг. Энэхүү арга нь –T параметрээр илэрхийлэгдэнэ. А –Т эсвэл –Т5 гэж өгч болно. Энэ нь 5 минутын хооронд пакетыг илгээдэг. А –Т эсвэл –Т0 гэж өгч болно. Энэ нь маш хурдан сүлжээн дээр шалгалт хийж болохоор хугацаа юм.
FTP Bounce - Ftp протокол нь RFC 959 стандартаар прокси дээр дэмжигдсэн байдаг ба орчин үеийн ftpds нь үүн дээр ажилладаггүй, харин nmap ашиглавал тухай ftp серверийг илрүүлж болно.
Turning Off Ping - Nmap-ын -Р0 сонголт нь ICMP ping хаадаг. Харин –РТ сонголт нь ТСР Pings ашиглах сонголт юм. Ping ашиглахгүй байх 2 чухал шалтгаан гэвэл та ямар нэг шалгалт хийж байх үед ping ашиглаад байх нь маш их хэмжээний мэдээллийг илгээнэ гэсэн үг. Мөн Nmap хостыг шалгахад хариу ping явуулахгүй байх үед ашиглана. -PU сонголт нь UDP пакет илгээж ping хийдэг. Мөн бусад -PE (Standard ICMP Echo Request), -PP (ICMP Timestamp Request), -PM (Netmask Request) болон –PB сонголтууд байдаг.
OS Fingerprinting - Nmap-ын -О сонголт нь үйлдлийн системийн мэдээллийг олж авах сонголт юм. Үүнд тухайн системийн нэр хувилбар, кернэл хувилбар зэрэг мэдээллүүдийг харах боломжтой.
Outputting Logs - Nmap нь -oN, -oX or –oG сонголтууд дээр бүртгэл хийх боломжоор хангагдсан байдаг. –оN нь хүнд шууд уншигдхаар лог гаралт хийдэг бол -оХ нь XML лог гаралт харин –оG нь gradable лог гаралт хийдэг. –оА сонголт нь 3 форматаар буюу бүх форматаар нь лог гаргалт гаргадаг.
Бусад Nmap-ын сонголтууд
IPv6 - Nmap програмд -6 сонголт нь IPv6 протокол дэмжин ажилладаг.
Verbose Mode- Nmap програмд -v шалгалтын дэлгэрэнгүй ажиллагааг харуулах горим.
Resuming - Бид шалгалт хийж байхдаа цуцалсан командыг сэргээж өгөх эсвэл лог файл уншихад ---resume сонголтыг хэрэглэж болно.
Файлаас өгөгдлөө унших - -iL зааж өгөөд тухайн шалгах гэж байгаа хост болон системийн оролтын өгөгдлөө файлаас зааж өгч болно.
Fast Scan -F сонголтоор бүх портуудыг хурдтайгаар шалгадаг ба нийт 65535 портыг шалгана
Time-To-Live -ttl сонголтоор IPv4 пакетын time-to-live тохируулж өгч болно.
Nmap Scripting Engine (NSE) нь Nmap-ийн хамгийн хүчирхэг, уян хатан хэсэг юм. Энэ нь хэрэглэгчдэд сүлжээний таскуудыг өргөн цар хүрээтэй автоматжуулан ашиглах боломжийг олгодог. Nmap-аас гадна тэдгээр скриптүүд нь хурдан бөгөөд үр ашигтай, параллель горимоор ажилладаг байна. Хэрэглэгч скриптүүдийг шууд ашиглах болон өөрсдийн хэрэгцээнд тохируулан өөрчлөх мөн хөгжүүлэн ашиглах боломжтой юм.
Nmap програмыг ашиглах жишээ
1. Дурын нэг хост эсвэл ip хаягийг шалгах (IPv4)
# nmap google.com
# nmap 192.168.56.101
Энгийн гаралт:
2. Хэд хэдэн IP хаяг эсвэл subnet шалгалт хийх
# nmap 192.168.1.1 192.168.1.2 192.168.1.3
# nmap 192.168.1.0/24
# nmap 192.168.1.1,2,3
# nmap 192.168.1.1-10
Мөн wildcard буюу * ашиглан боломжит бүх утгыг шалгана
# nmap 192.168.56.*
Энгийн гаралт:
3. Файлд бичигдсэн хостуудыг уншиж шалгах (IPv4)
Тухай файлд nmap програмын уншигдах форматаар мөр мөрөөр нь дараалуулан бичнэ.
# nmap –iL hostlist.txt
Энгийн гаралт:
4. Хост эсвэл сүлжээ нь галт ханаар хамгаалагдсан эсэхийг шалгах
# nmap –sA 192.168.1.1
5. Сүлжээнд ажиллаж байгаа сервер болон төхөөрөмжийг шалгах
# nmap –sP 192.168.1.0/24
6. Шуурхай шалгалт хийх
# nmap –F 192.168.1.1
7. Тусгайлан сонгосон порт дээрх шалгалт хийх
80 портыг шалгах
# nmap -p 80 192.168.56.101
80 портын TCP протокол шалгах
# nmap –p T:80 192.168.56.101
Хэд хэдэн портыг зэрэг шалгах
# nmap –p 80,22 192.168.56.101
Энгийн гаралт:
8. Тухайн порт дээр ажиллаж буй үйлчилгээний хувилбарыг илрүүлэх
# nmap –sV 192.168.56.101
Энгийн гаралт:
9. UDP шалгалт хийх
# nmap –sU 192.168.56.101
10. Шалгалтын гаралтыг файлд бичих
# nmap 192.168.56.101 > output.txt
# nmap –oN output.txt 192.168.56.101
11. NSE скрипт ашиглан шалгалт хийх
NSE үндсэн скрипт сан нь /usr/share/nmap/scripts хавтсанд байх бөгөөд та өөрийн хүссэн скриптээ хөгжүүлэн ашиглах боломжтой юм.
Эдгээр скриптүүдийг ашиглахын тулд --script=script_name сонголтыг нэмж өгнө.
Мөн –script-help=script_name сонголтоор тухайн скриптийн талаарх мэдээллийг авч болно.
Энгийн гаралт:
ssh-hostkey скриптийг ашигласан байдал
Энгийн гаралт:
Үүнээс дүгнэхэд Nmap програм нь энгийн бөгөөд уян хатан бичиглэлтэй командыг ашиглан тухайн хост эсвэл сүлжээний талаар илүү дэлгэрэнгүй мэдээллийг цуглуулах цаашлаад нэмэлт “nse” скрипт санг ашиглан тухайн мэдээлэл дээрээ тулгуурлан аюулгүй байдлын шалгалтыг хийх боломжтой Нээлттэй эхийн програм хангамж юм.
Хэрэгцээт холбоос: