Jump to content

Port Scanner: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
Line 64: Line 64:
TCP холболт нь алсын төхөөрөмжийн эсрэг дараах процессуудыг дагаж мөрдөхын тулд байгуулагдсан. Гурван үе шаттайгаар байна, эхнийх нь клиент талаас SYN флагтай TCP пакетыг илгээдэг.
TCP холболт нь алсын төхөөрөмжийн эсрэг дараах процессуудыг дагаж мөрдөхын тулд байгуулагдсан. Гурван үе шаттайгаар байна, эхнийх нь клиент талаас SYN флагтай TCP пакетыг илгээдэг.
Хоёр дахь үе шат нь алсын тал SYN/ACK флагтай TCP пакет хариу болгон илгээх. Ийм флагтай бол порт нээлттэй болон сервис ажиллаж байгаа гэсэн үг юм. Гурав дахь үе шат нь клиент талаас ACK флагтай TCP пакетыг илгээх юм. Ингэснээр холболт одоо нээлттэй. Хоёр дахь үе шатанд, хэрвээ порт нь хаалттай бол сервис ажиллаагүй тул RST флагтай TCP пакетыг буцаан илгээдэг. SYN хайлт нь бүрэн TCP холболт хэзээ ч хийгдээгүй ба зөвхөн эхний SYN флаг гэж тэмдэглэгдсэн нэг пакетыг илгээдэг. Энэ нь RST, ACK эсвэл SYN / ACK аль нэг харуиг хүлээдэг. Хэрвээ RST, ACK хариу ирвэл портон дээр ямар нэг юм ачааллаагүй ба порт хаалттай гэсэн үг юм. Харин SYN, ACK хариу хүлээн авсан бол порт нээлттэй ба сервис ажиллаж байна гэдгийг илтгэж байна. Хэрвээ хэд хэд дахин дамжуулалт хийхэд ямар ч хариу өгөхгүй эсвэл түүний хариуд ICMP (type 3, code 1, 2, 3, 9, 10, or 13) гэсэн алдаануудыг зааж байвал тухайн порт галт ханаар шүүлт хийгдсэн гэсэн үг. Мөн түүнээс гадна энэхүү аргаар хайлт хийхэд SYN шидсэний хариуд буцаагаад зөвхөн SYN (ACK байхгүй) ирэхэд портыг нээлттэй байна гэж ойлгож болно.
Хоёр дахь үе шат нь алсын тал SYN/ACK флагтай TCP пакет хариу болгон илгээх. Ийм флагтай бол порт нээлттэй болон сервис ажиллаж байгаа гэсэн үг юм. Гурав дахь үе шат нь клиент талаас ACK флагтай TCP пакетыг илгээх юм. Ингэснээр холболт одоо нээлттэй. Хоёр дахь үе шатанд, хэрвээ порт нь хаалттай бол сервис ажиллаагүй тул RST флагтай TCP пакетыг буцаан илгээдэг. SYN хайлт нь бүрэн TCP холболт хэзээ ч хийгдээгүй ба зөвхөн эхний SYN флаг гэж тэмдэглэгдсэн нэг пакетыг илгээдэг. Энэ нь RST, ACK эсвэл SYN / ACK аль нэг харуиг хүлээдэг. Хэрвээ RST, ACK хариу ирвэл портон дээр ямар нэг юм ачааллаагүй ба порт хаалттай гэсэн үг юм. Харин SYN, ACK хариу хүлээн авсан бол порт нээлттэй ба сервис ажиллаж байна гэдгийг илтгэж байна. Хэрвээ хэд хэд дахин дамжуулалт хийхэд ямар ч хариу өгөхгүй эсвэл түүний хариуд ICMP (type 3, code 1, 2, 3, 9, 10, or 13) гэсэн алдаануудыг зааж байвал тухайн порт галт ханаар шүүлт хийгдсэн гэсэн үг. Мөн түүнээс гадна энэхүү аргаар хайлт хийхэд SYN шидсэний хариуд буцаагаад зөвхөн SYN (ACK байхгүй) ирэхэд портыг нээлттэй байна гэж ойлгож болно.

==References==
{{reflist|30em}}
==External links==

*[http://packetstormsecurity.org/files/view/54973/port-scanning-techniques.txt Port Scanning Techniques] by Kris Katterjohn. Includes examples using [[Nmap]] and [[Hping]].
*[http://www.thenetworkadministrator.com/hack/PortScanning.htm Port Scanning Unscanned] by Ankit Fadia
*Teo, Lawrence (December, 2000). Network Probes Explained: Understanding Port Scans and Ping Sweeps. Linux Journal, Retrieved September 5, 2009, from [http://www.linuxjournal.com/article/4234 Linuxjournal.com]

{{DEFAULTSORT:Port Scanner}}
[[Category:Computer security software]]
[[Category:Computer security exploits]]
[[Category:Internet Protocol based network software]]

Revision as of 16:35, 24 March 2016

Порт скан хийгч програм нь нээлттэй портуудын хувьд сервер эсвэл хостыг шалгах зорилготой програмууд байдаг. Энэ нь ихэвчлэн админууд өөрсдийн сүлжээний аюулгүй байдлын бодлогыг шалгах харин халдагчид хост дээр ажиллаж байгаа үйлчилгээ түүний эмзэг байдлыг ашиглан тодорхойлох гэх мэт зорилгоор ашиглаж байна.

Порт скан эсвэл портын хайлт нь хост дээрх серверийн портын хаягийн хүрээнд клиент нь идэвхтэй портыг олох зорилгоор хүсэлтийг илгээдэг үйл явц юм. Энэ нь тийм ч хорон үйл явц биш юм.[1] Порт скан ашиглах үйл явцын дийлэнх нь халдлага биш юм. Гэхдээ энгийн пробууд нь алсын машин дээр нээлттэй байгаа үйлчилгээг тодорхойлох нь илүү байдаг.

Порт свип нь (portsweep) тодорхой сонсох портод зориулж хэд хэдэн хостуудыг хайх явдал юм. Дараа нь ерөнхийдөө тодорхой үйлчилгээний тулд л хайлтыг ашигладаг. Жишээ нь SQL-д суурилсан компьютерийн өт хостын TCP 1433 портыг сонсож порт свип хайлт хийж болох юм.[2]

TCP/IP суурь мэдлэг

Интернетийн загвар болон үйл ажиллагаа нь интернет протокол иж бүрдэл -д суурилсан ба TCP/IP гэж нэрлэх нь түгээмэл. Энэ системд, хостууд болон хостын сервисүүд нь хоёр бүрэлдэхүүн хэсгүүдийг ашиглан референц хийдэг: хаяг болон портын дугаар. Ашиглах боломжтой 65536 төрлийн портууд байдаг. Ихэнхи сервисүүд нь тооны хязгаарлагдмал хүрээтэй.

Зарим порт скан хийгч програмууд нь зөвхөн хамгийн түгээмэл портын дугаарууд эсвэл ихэнхи түгээмэл портууд нь тухайн хост дээр эмзэг сервистэй холбогдсон байхад нь скан хийдэг.

Порт дээр скан хийх үр дүн нь ихэвчлэн гурван ангилалд хуваан үздэг.

  1. Нээлттэй эсвэл Хүлээн авсан: Хост сервис порт дээр сонсож байгааг харуулсан хариу илгээсэн байна.
  2. Хаалттай эсвэл Татгалзсан эсвэл Сонсохгүй байгаа: Хост холболт порт руу татгалзах болно гэдгийг харуулсан хариу илгээсэн байна.
  3. Шүүгдсэн, Гээгдсэн эсвэл Хаагдсан: Хостоос хариу өгөхгүй байх.

Администраторууд болгоомжтой байх ёстой хоёр эмзэг нээлттэй порт:

  1. Нээлттэй порт - Аюулгүй байдал болон тогтвортой байдал нь сервисийг хүргэх үүрэгтэй програмтай холбогдсон эсэхэд санаа тавих.
  2. Нээлттэй эсвэл Хаалттай портууд – Аюулгүй байдал болон тогтвортой байдал нь хост дээр ажиллаж байгаа үйлдлийн системтэй холбогдсон эсэхэд санаа тавих.

Шүүгдсэн портууд эмзэг байдлыг бий болгодоггүй.

Ойлголт

Порт сканын бүх төрлүүд бай болгосон хост RFC 793 – Transmission Control Protocol -тай нийцсэн гэсэн таамаглал дээр тулгуурладаг. Хэдийгээр энэ хэрэг нь голдуу хост буцааж үл мэдэгдэх пакетуудыг буцаан илгээх эсвэл бүр хостын TCP/IP стек RFC -д нийцэхгүй буюу өөрчилсөн байх үед хуурамч алдаануудыг бий болгох боломж байсаар байна. Энэ нь Үйлдлийн системд -д хамааралтай (жишээ нь FIN скан хийх техник)[3] арай бага түгээмэл бус скан хийх техникүүдийн хувьд ялангуяа үнэн байдаг. TCP/IP стек Fingerprinting арга нь тухайн хостын ажиллаж байгаа үйлдлийн системийн төрлийг таах тодорхой стимулаас эдгээр төрлийн сүлжээний хариун дээр тулгуурладаг.

Төрлүүд

TCP скан хайлт

Хамгийн энгийн порт скан хийгчэд нь сүлжээний үйл ажиллагааг ашиглах, ерөнхийдөө SYN нь (дараагийн тайлбарласан) боломжит сонголт биш байх үед дараагийн сонголт руу явна гэсэн үг. Nmap энэ горимын скантай холбож дууддаг, Unix connect() систем гэж дараа нь нэрлэгдсэн. Порт нээлттэй байвал үйлдлийн систем TCP three-way handshake -г гүйцээдэг ба порт скан хийгч нэн даруй DoS [3] халдлагийн дайралт хийх гүйцэтгэлээс зайлсхийхийн тулд холболтыг хаадаг. Эс тэгвээс алдаа код нь буцан ирдэг байна. Энэ скан хийх горим нь хэрэглэгчдэд тусгай зөвшөөрлүүдийг шаарддаггүйгээрээ давуу талтай юм. Гэсэн хэдий ч, OS сүлжээний функцуудыг ашиглан бага түвшний хяналтаас сэргийлдэг болохоор энэ сканы төрөл маань арай бага түгээмэл байдаг. Энэ аргыг “чимээтэй” ялангуяа “порт свип” гэдэг: Сервисүүд нь илгээгчийн IP хаягруу нэвтрэн халдлага илрүүлэх системийн алармийг өсгөж болно.

SYN скан хайлт

SYN скан нь TCP сканы өөр нэг хэлбэр юм. Үйлдлийн системийн сүлжээний функцуудыг ашиглан гэхээсээ илүү порт скан хийгч боловсруулаагүй IP пакетуудыг өөрөө үүсгэдэг ба хариу үйлдлүүдэд хяналт тавьдаг. Энэ сканы төрөл нь мөн (“half-open скан”) гэгддэг, учир нь үнэндээ бүрэн TCP холболтыг хэзээ ч нээдэггүй юм. Порт скан хийгч нь SYN пакет үүсгэдэг. Бай болгосон порт нээлттэй байвал SYN – ACK пакет бүхий хариу өгөх болно. Скан хийгчийн хост handshake[3] дуусахаас өмнө холболтыг хааж RST пакеттай хариу өгдөг. Порт нь хаалттай ч шүүгээгүй бол бай даруй RST пакеттай хариу өгөх болно. Боловсруулаагүй сүлжээг ашиглах нь хэд хэдэн давуу талтай, скан хийгчид пакетыг илгээх бүрэн удирдлагыг өгөн, хариу өгөхийн тулд хугацаа хэтрүүлдэг, мөн хариу өгөх дэлгэрэнгүй тайлагналыг зөвшөөрдөг. Скан дээрх бай хост дээр бага интрузив маргаан байдаг. SYN сканы давуу тал нь хувийн сервисүүд үнэндээ хэзээ ч холболтыг хүлээн авдаггүй. Гэсэн хэдий ч, RST нь handshake -ын үед принтер шиг тухайлбал энгийн төхөөрөмжүүдийн зарим сүлжээний стек асуудлууд үүсэж болох юм. Ямар нэгэн төгсгөлийн аргументуудын аль нэг арга байдаггүй.

UDP скан хайлт

UDP скан хийхэд техникийн шаардлага байгаа хэдий ч бас боломжтой байдаг. UDP нь холболтгүй протокол болохоор TCP SYN пакеттай ямарч төсөөтэй биш юм. Гэсэн хэдий ч, UDP пакетыг хаалттай портлуу илгээвэл систем нь ICMP порт холбогдох боломжгүй гэсэн мессеж бүхий хариу өгөх болно. Ихэнхи UDP порт скан хийгч энэ аргыг ашигладаг ба порт нээлттэй байна хэмээн дүгнэн хариу байхгүй байгааг ашигладаг. Гэсэн хэдий ч, порт нь галт ханаар хаагдсан бол энэ арга нь порт нээлттэй гэж буруу тайлагнах болно. Порт нь холбогдох боломжгүй мессеж хаагдсан бол бүх портууд нээлттэй гарч ирэх болно. Энэ арга нь мөн ICMP хурд хязгаарлалтын [4] нөлөөнд өртсөн байна.

Өөр нэг арга нь хэрэглээний давхрын хариулт бий гэж найдаж, хэрэглээний тусгай UDP пакетуудыг илгээх юм. Жишээлбэл, DNS сервер байвал DNS хүсэлтийг порт 53 -руу илгээж хариуд нь үр дүн гаргах болно. Энэ арга нь нээлттэй портуудыг тодорхойлоход илүү найдвартай байдаг. Гэсэн хэдий ч, энэ нь хэрэглээний тусгай шалгасан пакет нээлттэй тул скан хийж буй портууд хязгаарлагдмал байна. Зарим хэрэгсэл (жишээ нь Nmap) ерөнхийдөө 20-аас доошгүй UDP сервис шалгадаг байхад зарим арилжааны хэрэгслүүдэд (жишээ нь Nessus) 70 аас олон байна. Зарим тохиолдолд, сервис нь порт дээр сонсож байж болно гэхдээ тухайн шалгах пакет хариу өгөхгүй байхаар тохируулсан байдаг.

ACK скан хайлт

ACK скан нь илүү ер бусын скан төрлийн нэг юм. Энэ нь яг порт нээлттэй эсвэл хаалттай эсэхийг тодорхойлох биш, харин порт шүүгдсэн эсвэл шүүгдээгүй эсэхийг тодорхойлох юм. Энэ нь ялангуяа галт хана оршин байгаа болон түүний дүрмийн олонлогуудын талаар шалгаж оролдох үед сайн. Энгийн пакет шүүлт хийж (ACK бит багцтай пакетуудыг) бий болгосон холболтуудыг зөвшөөрөх болно харин галт хана илүү нарийн төвөгтэй төлөвт биш байж болох юм.

Window скан хайлт

Хуучны шинж чанартай учир ховор ашигласан, window скан нь порт нээсэн эсвэл хаасан эсэхийг тодорхойлоход нэлээн найдваргүй юм. Энэ нь ACK скантай адил пакет үүсгэдэг, гэхдээ пакетийн window талбар нь өөрчлөгдсөн шалгадаг. Пакет эцсийн төхөөрөмж дээр хүрэх үед порт нээлттэй бол пакетын хувьд window хэмжээ үүсгэж дизайн алдаа нь 1- тэй пакетийн window талбарын тэмдэглээгээ түүнийг илгээгчрүү буцааж явуулахаас өмнө оролддог. Энэ сканын техникийг ашиглан нээлттэй портыг хаасан гэж тэмдэглэж window талбарын хувьд систем нь энэ хэрэгжилтийг цаашид дэмждэггүй ба 0-ыг буцаан илгээдэг.[5]

FIN скан хайлт

SYN сканерын хувьд хангалттай нууц биш болохоор галт хана ерөнхийдөө SYN пакетын[3] хэлбэрт пакетуудыг хайх болон хаах юм. FIN пакетууд нь ямар ч өөрчлөлтгүйгээр галт ханыг тойрч гарч болно. Хаалттай портууд нь RST пакеттай тохирох FIN пакетыг хариулдаг харин нээлттэй портууд гар дээрх пакетыг үл тоодог. Энэ нь TCP -ын шинж чанартай учраас ердийн төлөвтэй ба зарим талаараа зайлшгүй бууралт юм. [6]

Бусад скан хайлт

Илүү ер бусын скан хийх төрөл байдаг. Эдгээрт янз бүрийн хязгаарлалт байдаг бөгөөд өргөн хэрэглэгддэг. Nmap эдгээрийн ихэнхийг дэмждэг.[7]

  • [[Xmas Порт скан|X-mas] болон Null скан - FIN скантай төстэй гэхдээ: [3]
    • Xmas нь зул сарын мод шиг асаалттай FIN, URG болон PUSH тэмдэгтэй пакетуудыг илгээдэг
    • Null нь ямар нэг TCP тэмдэглэгээгүй пакетыг илгээдэг.
  • Протокол скан - IP түвшний протокол (TCP, UDP, GRE гэх мэт) аль нь идэвхжсэн болохыг тодорхойлдог.
  • Proxy скан - прокси (SOCKS эсвэл HTTP) скан хийж гүйцэтгэхэд ашигладаг. Бай проксигийн IP хаягийн эх үүсвэрийг харах болно. Үүгээр мөн зарим нэг FTP сервер ашиглан хийж болно.
  • Idle скан - Хэн нэгний IP хаяг, урьдчилан таамаглаж болохуйц IP ID алдааны давуу талыг авч илчлэхгүйгээр скан хийх бас нэг арга юм.
  • CatSCAN - Алдаатай пакетуудын хувьд портуудыг шалгадаг.
  • ICMP скан - Хост ICMP жишээлбэл echo (ping), netmask гэх мэт хүсэлтүүдэд хариу өгөхийг тодорхойлдог.

Нээлттэй порт илрүүлэх арга

Стандарт TCP handshake

TCP холболт нь алсын төхөөрөмжийн эсрэг дараах процессуудыг дагаж мөрдөхын тулд байгуулагдсан. Гурван үе шаттайгаар байна, эхнийх нь клиент талаас SYN флагтай TCP пакетыг илгээдэг. Хоёр дахь үе шат нь алсын тал SYN/ACK флагтай TCP пакет хариу болгон илгээх. Ийм флагтай бол порт нээлттэй болон сервис ажиллаж байгаа гэсэн үг юм. Гурав дахь үе шат нь клиент талаас ACK флагтай TCP пакетыг илгээх юм. Ингэснээр холболт одоо нээлттэй. Хоёр дахь үе шатанд, хэрвээ порт нь хаалттай бол сервис ажиллаагүй тул RST флагтай TCP пакетыг буцаан илгээдэг. SYN хайлт нь бүрэн TCP холболт хэзээ ч хийгдээгүй ба зөвхөн эхний SYN флаг гэж тэмдэглэгдсэн нэг пакетыг илгээдэг. Энэ нь RST, ACK эсвэл SYN / ACK аль нэг харуиг хүлээдэг. Хэрвээ RST, ACK хариу ирвэл портон дээр ямар нэг юм ачааллаагүй ба порт хаалттай гэсэн үг юм. Харин SYN, ACK хариу хүлээн авсан бол порт нээлттэй ба сервис ажиллаж байна гэдгийг илтгэж байна. Хэрвээ хэд хэд дахин дамжуулалт хийхэд ямар ч хариу өгөхгүй эсвэл түүний хариуд ICMP (type 3, code 1, 2, 3, 9, 10, or 13) гэсэн алдаануудыг зааж байвал тухайн порт галт ханаар шүүлт хийгдсэн гэсэн үг. Мөн түүнээс гадна энэхүү аргаар хайлт хийхэд SYN шидсэний хариуд буцаагаад зөвхөн SYN (ACK байхгүй) ирэхэд портыг нээлттэй байна гэж ойлгож болно.

References

  1. ^ RFC 2828 Internet Security Glossary
  2. ^ http://support.microsoft.com/kb/313418
  3. ^ a b c d e Erikson, Jon (1977). HACKING the art of exploitation (2nd ed.). San Francisco: NoStarch Press. p. 264. ISBN 1-59327-144-1. {{cite book}}: Cite has empty unknown parameters: |laydate=, |separator=, |trans_title=, |laysummary=, |month=, |trans_chapter=, |chapterurl=, and |lastauthoramp= (help)
  4. ^ Messer, James (2007). Secrets of Network Cartography: A Comprehensive Guide to Nmap (2nd ed.). Retrieved 2011-12-05. {{cite book}}: Cite has empty unknown parameters: |trans_title= and |month= (help)
  5. ^ Messer, James (2007). Secrets of Network Cartography: A Comprehensive Guide to Nmap (2nd ed.). Retrieved 2011-12-05. {{cite book}}: Cite has empty unknown parameters: |laydate=, |separator=, |trans_title=, |laysummary=, |month=, |trans_chapter=, |chapterurl=, and |lastauthoramp= (help)
  6. ^ Maimon, Uriel (1996-11-08). "Port Scanning without the SYN flag". Phrack issue 49. Retrieved 2009-05-08.
  7. ^ Cite error: The named reference nmapguide was invoked but never defined (see the help page).