احسان امجدی
کارشناس امنیت اطلاعات و ارتباطات

پورت اسکن ( Port Scan ) چیست؟ معرفی انواع پورت اسکن در کالی

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

Port Scan چیست؟ چند نوع پورت اسکن وجود دارد؟ چه ابزارهایی برای پورت اسکن وجود دارند؟ اگر بخواهیم بصورت خیلی عامیانه و کلی تعریفی داشته باشیم، باید بگوییم که Port Scanning فرآیند بررسی پورت های باز TCP یا UDP بر روی یک سیستم ریموت است. بخاطر داشته باشید که Port scanning در بسیاری از کشورها یک فرآیند غیر قانونی است و نباید در خارج از محیط آزمایشگاهی انجام شود. از جمله اخیر میتوان نتیجه گرفت که الان زمان انتقال فعالیت هایمان از فاز پسیو به اکتیو است که شامل فعالیت های مستقیم بیشتری بر روی سرورهای هدف میشود. قبل از شروع کار بسیار مهم است که چگونگی انجام port Scanning را درک کرده باشیم.

Connect Scanning چیست؟

ساده ترین تکنیک اسکن کردن پورت های TCP، به connect scanning معروف است که برپایه مکانیسم three-way handshaking کار میکند. بر طبق این مکانیسم، دو طرف ارتباط میتوانند قبل از انتقال دیتا، با یکدیگر مذاکره کنند. در Connect port scanning بر روی پورت خاصی از سیستم هدف، تلاش برای اجرای فرآیند کامل three-way handshaking صورت میپذیرد. اگر فرآیند مذکور بطور کامل اجرا شود، میتوان نتیجه گرفت که پورت مورد نظر باز میباشد.

root@kali:~# nc –nvv –w 1 –z 10.0.0.19 3388-3390
(unknown) [10.0.0.19] 3390 (?) : connection refused
(unknown) [10.0.0.19] 3389 (?) open
(unknown) [10.0.0.19] 3388 (?) : connection refused
Sent 0, rcvd 0

مثال زیر نمونه ای کپچر شده از یک TCP Netcat port scan را بر روی پورت های 3388 تا 3390 نشان میدهد:

وب سایت توسینسو

Stealth// SYN Scanning چیست؟

فرآیند SYN Scanning یک روش اسکن پورت های TCP است که شامل ارسال پکت های SYN به پورت های مختلف سیستم هدف بدون الزام به تکمیل مکانیسم 3-way handshaking است. اگر یک پورت TCP باز باشد، سیستم هدف باید یک SYN-ACK را به مبداء ارسال کند که به ما این اطلاع را میدهد که پورت باز است؛ بنابراین دیگر نیازی به ارسال ACK نهایی به سمت سیستم هدف نمیباشد.

UDP Scanning چیست؟

از آنجایی که نوع وضعیت ترافیک در UDP مشخص نیست و شامل فرآیند three-way handshaking نمیشود، مکانیسم پس زمینه در UDP Port Scanning میتواند متفاوت باشد. سعی کنید با استفاده از وایرشارک و توسط netcat فرایند UDP Scanning را بر روی یک سیستم ( سیستم تست) اجرا کنید تا نحوه کارکرد UDP Port Scan را بهتر متوجه شوید. تصویر زیر کپچری از وایرشارک را نشان میدهد که در آن با استفاده از netcat بر روی پورت های 160 تا 162 عمل UDP Port Scan را انجام داده‌ایم:

root@kali:~# nc –nv –u –z –w 1 10.0.0.19 160-162
(unknown) [10.0.0.19] 161 (snmp) open
وب سایت توسینسو

مشکلات رایج در Port Scanning چه چیزهایی هستند؟

  • UDP Port Scanning معمولا قابل اطمینان نیست. چرا که فایروال ها و روترها ممکن است در بین راه پکت های ICMP را دراپ کنند (از بین ببرند). این موضوع میتوانند باعث ایجاد نتایج مثبت اشتباه در خروجی شود و شما بطور مرتب در اسکن پورت های UDP مشاهده کنید که تمام این پورت ها در سیستم تحت اسکن، باز هستند.
  • اکثر اسکنرهای پورت تمام پورت های ممکن را اسکن نمیکنند. این نرم افزارها معمولا لیستی از پیش تعیین شده از پورت های پرکاربرد دارند که فقط بر اساس آن ها اسکن را انجام میدهند.
  • کاربران معمولا فراموش میکنند که پورت های UDP را اسکن کرده و معمولا فرآیند اسکن را محدود به پورت های TCP میکنند. بنابراین در نتیجه به خروجی آمده، فقط نیمی از پورت های ممکن را خواهند دید.

ابزار  Nmap چیست؟

Nmap یکی از نرم افزارهای اسکنر محبوب، همه کاره و قدرتمند در دنیای امروز است. این نرم افزار بیش از یک دهه است که از توسعه آن میگذرد و خصوصیات متعددی را در پشت ظاهر ساده خود دارد. در ادامه قصد داریم تا در این رابطه چند مثال را بیان کنیم تا پس آن در کار کردن با این نرم افزار احساس راحتی کنید!

NMAP پاسخگو در برابر ترافیک شما

اسکن پورت های TCP در Nmap، حدود 1000 پورت معروف را در سیستم مورد نظر شناسایی و اسکن میکند. قبل از آن که اقدام به اجرای اسکن کنیم، میخواهیم مقدار ترافیک ارسالی ناشی از یک اسکن ساده را مشاهده کنیم. برای این کار یکی از سیستم های لوکال را اسکن کرده و میزان ترافیک ارسالی به سیستم مورد نظر را با استفاده از "iptables" مانیتور خواهیم کرد.نکته:iptables یک برنامه در فضای خط فرمان (command line) است که در ساختاربندی و کانفیگ مجموعه قوانین فیلترینگ پکت در لینوکس 2.4.x و بعد از آن استفاده میشود. این برنامه جهت استفاده مدیران طرح ریزی شده است.

root@kali:~# iptables  -I INPUT 1 –s 10.0.0.19 –j ACCEPT
root@kali:~# iptables –I OUTPUT 1 –d 10.0.0.19 –j ACCEPT
root@kali:~# iptables –Z 
root@kali:~# nmap –sT  10.0.0.19

Starting Nmap 6.25 (http://nmap.org) at  2015-05-20	06:36  EDT
Nmap scan report for 10.0.0.19
Host is up (0.00048 s latency).
Not shown: 986 closed ports
PORT		STATE	SERVICE
21/tcp		open	ftp
23/tcp		open	telnet
25/tcp		open	smtp
135/tcp		open	msrpc
1*39/tcp		open	netbios-ssn
445/tcp		open	Microsoft-ds
515/tcp		open	printer
3389/tcp	open	ms-wbt-server
49152/tcp	open	unknown
49153/tcp	open	unknown
49154/tcp	open	unknown	
49155/tcp	open	unknown	
49156/tcp	open	unknown
49157/tcp	open	unknown
MAC Address:	00:C:29:3B:C8:DE (VMware)


Nmap done: 1 IP address (1 host up) scanned in 1.91 seconds


root@kali:~# iptables  -vn –L 
chain INPUT (policy ACCEPT 10 packets, 464 bytes)
pkts	bytes 	target		prot opt   in		out		source		destination
1002	40400	ACCEPT		all      --	     *		*		10.0.0.19	0.0.0.0/0
0	0	ACCEPT		all      --       *		*		10.0.0.19	0.0.0.0/0

Chain OUTPUT  (policy ACCEPT 4 packets, 1052 bytes)
Pkts	 bytes 	target 		prot   opt   in		out		source		destination
1201	71796	ACCEPT		all        --      *		*		0.0.0.0/0	10.0.0.19

root@kali:~#

این اسکن 1000 پورت فقط در قالب 72 کیلوبایت ترافیک انجام شده است. این در حالی است که یک پورت اسکن ساده تمام 65535 پورت موجود را جستحو و اسکن کرده و چیزی در حدود 4.5 مگابایت ترافیک تولید میکند. علاوه بر این با انجام این اسکن کامل دو پورت جدید از TCP را در نتایج مشاهده خواهیم کرد که در اسکن پیش فرض پورت های TCP به آن اشاره اغی نشده بود:

root@kali:~# iptables –Z
root@kali:~# nmap –sT –p 1-65535 10.0.0.19
Starting Nmap 6.25 (http://nmap.org)  at  2015-05-20   06:19  EDT
Nmap scan report for 10.0.0.19
Host is up (0.00067 s  latency).
Not shown: 65519 closed ports
PORT		STATE	SERVICE	
21/tcp		open	ftp
23/tcp		open	telnet
25/tcp		open	smtp
135/tcp		open	msrpc
139/tcp		open	netbios-ssn
180/tcp		open	ris
445/tcp		open	Microsoft-ds
515/tcp		open	printer
3389/tcp	open	ms-wbt-server
25017/tcp		open	unknown
49152/tcp		open	unknown
49153/tcp		open	unknown
49154/tcp		open	unknown
49155/tcp		open	unknown
49156/tcp		open	unknown
49157/tcp		open	unknown
MAC Address:	00:0C:29:3B:C8:DE  (VMware)

Nmap done:  1  IP  address  (1 Host up)  scanned  in  80.42  seconds
root@kali:~# iptables  -vn –L
chain  INPUT  (policy  ACCEPT  54  packets, 2412 bytes)
pkts	bytes	target		prot  opt   in	out	source		destination
65540	2622K	ACCEPT		all       --	     *	*	10.0.0.19	0.0.0.0/0
0	0	ACCEPT		all       --	     *	*	10.0.0.19	0.0.0.0/0

Chain OUTPUT  (policy ACCEPT  12 packets, 3120 bytes)
pkts	bytes	target		prot  opt   in	out	source		destination
76206	4572K    ACCEPT	all      --	     *	*	0.0.0.0/0	10.0.0.19
root@kali:~#

نتایج بالا این مفهوم را میرسانند که یک اسکن کامل Nmap از یک شبکه کلاس C با 254 هاست، میتواند در نتیجه ارسال 1000 مگابایت ترافیک در شبکه است. در بهترین وضعیت، یک اسکن کامل از پورت های TCP و UDP از یک سیستم تنها میتواند اطلاعات تقریبا دقیقی از سرویس های شبکه ای در معرض خطر بما بدهد.

مثال بالا این ایده را نیز بما میدهد که اگر میخواهیم پورت ها و سرویس های باز بیشتری را با استفاده از یک اسکن کامل تر، جستجو کنیم، نیاز داریم تا با متعادل سازی عوامل محدود کننده انتقال ترافیک (مانند یک Uplink کند)، شرایط را برای نیل به این هدف هموار سازیم. این موضوع مخصوصا برای شبکه های بزرگتر مانند شبکه های کلاس B بیشتر خود را نشان خواهد داد. اما اگر در موقعیتی هستیم که امکان اجرای یک پورت اسکن کامل را بر روی شبکه نداریم، چکار میتوانیم انجام دهیم؟

از تصویر بالا میتوان متوجه شد که اسکن های UDP کاملا نسبت به اسکن های TCP متفاوت عمل میکنند. یک پکت خالی UDP به پورت خاصی میشود. اگر پورت UDP باز باشد، هیچ جوابیه ای از طرف سیستم هدف به مبداء ارسال نخواهد شد. در مقابل اگر پورت UDP بسته باشد، یک پکت ICMP با مضمون "port unreachable" از طرف شسشتم مقصد به سیستم مبداء ارسال خواهد شد.

  • آیا اسکن کردن پورت ها جرم است؟

    در ایران خیر ، اما در بسیاری از نقاط دنیا از جمله بیشتر کشورهای اروپایی ، حتی انجام دادن Port Scan ساده بر روی سرویس های عمومی و دولتی عمل مجرمانه به حساب می آید.
  • قویترین ابزار Port Scan چیست؟

    ابزارهای Nmap و Masscan به عنوان برترین ابزارهای Port Scan در دنیا مطرح هستند.

احسان امجدی
احسان امجدی

کارشناس امنیت اطلاعات و ارتباطات

احسان امجدی ، مشاور امنیت اطلاعات و ارتباطات و تست نفوذ سنجی ، هکر کلاه سفید ، مدرس دوره های تخصصی امنیت اطلاعات و شبکه ، تخصص در حوزه های سرویس های مایکروسافت ، Routing و Switching ، مجازی سازی ، امنیت اطلاعات و تست نفوذ ، کشف جرائم رایانه ای و سیستم عامل لینوکس ، متخصص در حوزه SOC و ...

09 مرداد 1394 این مطلب را ارسال کرده

نظرات