کار با پویشگر پورت Nmap(2096 مجموع کلمات موجود در متن) (8810 بار مطالعه شده است) کار
با پورت اسکنر Nmap
0.مقدمه
برای
مدیریت صحیح یک سیستم یا شبکه باید به
اندازهی کافی دربارهی آن سیستم و شبکه
اطلاعات داشته باشیم، در حقیقت یکی از
مسائلی که میتواند در مدیریت یک شبکه
یا سیستم بسیار مهم باشد امنیت سیستم است.
امنیت
یک شبکه را در حقیقت امنیت تک تک اجزای
شبکه تشکیل میدهد.
اجزا
همان سرویس دهندهها، سرویس گیرندهها،
ابزارهای اتصالی مانند سوئیچها و روترها
و ..
هستند.
همان
طور که میدانید برای استفاده از سرویسها
در سیستم باید از طریق یک پورت با آن ارتباط
برقرار نمود، بنابراین باید از وضعیت
پورتهای فعال سیستم و یا سرویسدهندههای
خود به خوبی اطلاع داشته باشید تا بتوانید
تصمیمات صحیحی دربارهی امنیت اجزاری
شبکه و در حقیقت شبکهی خود بگیرید.
هر پورت
باز بی مصرف میتواند به مصابهی درب
ورودی برای خرابکاران باشد که برروی آن
کنترلی نیست.برای
اطلاع از وضعیت پورتهای سیستم میتوان
از برنامههای Port
Scanner یا
پویندهی پورتها استفاده کرد.
برنامههای
پورت اسکنر با روشهای مختلفی سیستم یا
سیستمهای مورد نظر را به دنبال پورتهای
باز پویش میکنند.
امروزه
میتوان این ادعا را نمود که یکی و بلکه
کاملترین این برنامههای Port
Scanner برنامهی
Nmap
است.
برنامهی
Nmap
یا
Network
Mapper همان
طور که از نامش بر میآید برای دریافت
اطلاعات و زیر نظر گرفتن شبکه است.
البته
اگر بخواهیم این برنامه را یک Port
Scanner بنامیم
باید کمی بی انصاف باشیم، چرا که این
برنامه کارهای بسیار دیگری علاوه بر Port
Scannig انجام
میدهد.
برای
نمونه از Nmap
برای
تشخیص سیستم عامل یا OS
Detection و
RPC
identification یا
ping
sweep نیز
استفاده میشود.
سایت
رسمی این برنامه را میتوانید اینجا [1]
بیابید.
همان
طور که در سایت رسمی نیز ذکر شده است این
ابزار دو سال به عنوان بهترین ابزار برای
پویش سیستمها شناخته شده است و در
سازمانهای بسیاری چون ارتش آمریکا یا
آژانس امنیت ملی آمریکا NAS
از
این ابزار استفاده میشود.
در
حقیقت این ابزار محصول شرکت Insecure
LLC که
به صورت اوپن سورس و صد البته آزاد تحت
مجوز GNU/GPL
منتشر
شده است.
آخرین
نسخههای این برنامه از سری 4.03
میباشند.
امروزه
در اغلب توزیع های لینوکسی بزرگ مانند
Debian
یا
Redhat
یا
Fedora
یا
Ubuntu
این
برنامه موجود است و کافیست شما از طریق
دستورات نصب مربوطه آن را نصب کنید و نیازی
به کامپایل سورس نیست.
البته
میتوانید سورس کدها را از سایت رسمی نیز
دانلود و نصب کنید.
برای
کار با Nmap
منابع
و راهنماهای بسیاری موجود هستند از راهنمای
کامل man
nmap تا
راهنماهای روی خط مختلف.
بسیار
خوب، پس از این مقدمهی کوچک و معرفی Nmap
به
نحوهی کار با این برنامه خواهیم پرداخت.
1.پویش پورتها با Nmap
هر چند
Nmap
کارهای
بسیاری انجام میدهد اما پورت اسکنینگ
مشهورترین کار Nmap
است.
در
حقیقت Nmap
به
دلیل قابلیت Port
Scaning خود
مشهور است.
Nmap از
روشهای مختلفی برای پورت اسکنینگ استفاده
میکند، در حقیقت بعد از مطالعهی مستندات
فنی میتوانید متوجه شوید که تقریبا از
تمام روشهای پورت اسکنینگ پشتیبانی
میکند.از
روشهای سادهای چون ()TCP
connect تا
روش های کاملتری مانند Three-Way
TCP Handshake استفاده
از پکتهای سادهی IP
تا
Bounceهای
FTP.
برای
استفاده از Nmap
باید
از اسلوب زیر استفاده نمایید:
nmap
[Scan Type(s)] [Options] {target specification}
در جدول
شماره ۱ میتوانید انواع روشهای پویش
یا Scan
Typeها
را مشاهده کنید:
-
نوع
اتصال
|
آرگومان
|
شرح
|
Connect
|
sT-
|
اجرای
یک اتصال کامل TCP
از
طریق()connect
در
صوورتی که با کاربر غیر root
برنامه
را اجرا کنید این گزینهی پیش فرض است.
|
Steath
SYN Scan
|
sS-
|
تنها
یک بستهی SYN
ارسال
میکند، در حقیقت اولین پکتی که در
three-way
handshake ارسال
میشود.اگر
یک SYN|ACK
دریافت
شود به معنی آن است که پورت مورد نظر
آزاد است.
این
بدان معناست که اتصال TCP
کامل
نمیشود یعنی یک اتصال غیر حقیقی و
متفاوت با ()connect
خواهید
داشت.
این
نوع اسکن را half-open
scan مینامند.
|
FIN
|
sF-
|
اسکن
از نوع FIN
یا
FIN
Scan. یک
پاکت FIN
خالص
ارسال میشود، اگر RST
دریافت
شود به معنی بسته بودن پورت است.
ویندوز
به دلیل دنبال نکردن تمام قابلیتهای
IP
با
این روش غیر قابل تشخیص است.
|
Xmas
Tree
|
sX-
|
Xmas
Tree Scan مانند
FIN
است
اما از بستههایی با flagهای
URG
و
PUSH
و
FIN
استفاده
میکند.
|
Null
|
sN-
|
Null
Scan Mode که
مانند FIN
اسکن
است با این تفاوت که از بستههای بدون
flag
استفاده
میکند.
|
UDP
|
sU-
|
UDP
Scan. برنامهی
Nmap
یک
بستهی UDP
با
حجم 0-byte
به
پورتها ارسال میکند، اگر ICMP
خطای
Port
Unreachble را
ارسال کرد، بنابراین پورت بسته است.این
اسکن تا حدودی کند و سنگین است.
|
IP
Protocol
|
sO-
|
IP
protocol Scanها.
برای
تشخیص نسخه و پروتوکلهای IP
در
حال اجرا در ماشین مقصد استفاده
میشود.Nmap
یک
بستهی خالی IP
برای
هر پروتوکل ارسال میکند، هر پروتوکلی
که unreachble
اعلام
نماید در حقیقت پشتیبانی نشدن از
پروتوکل را اعلاممیکند.
بعضی
Firewallها
از ارسال و دریافت ICMPها
یا بخشی از ICMPها
جلوگیری میکنند، این میتواند دلیلی
برای دریافت اطلاعات اشتباه یا دریافت
نکردن اطلاعات باشد.
|
ACK
|
sA-
|
این
روش زمانی مفید است که شما با یک فایروال
روبرویید، در فایروالی که SYN-blocking
فیلترها
فعال هستند، Nmap
یک
ACK
ارسال
مینماید که نمایندهی یک دریافت
موفقیت آمیز است.
با
ارسال این بسته به تمام پورتها، در
صورت دریافت RST
متوجه
فیلتر نبودن پورت میگردد.
|
Window
Size
|
sW-
|
این
اسکن مانند ACK
است
با این تفاوت که از TCP
window size برای
تشخیص پورتهای باز، فیلتر شده یا
نشده استفاده میکند.
خوشبختانه
لینوکس در مقابل این نوع اسکنها مشکلی
ندارد و اغلب فایروالها نیز همچنین.
|
علاوه
بر اسکنتایپهای بالا انواع دیگری نیز
وجود دارند که به دلیل گستردگی در این
مقاله از آنها بحث نشده است.
گزینههای
بسیاری نیز برای کار با Nmap
وجود
دارند که اغلب چند گزینهی مهم هستند و
سایر گزینهها در شرایط خاص اهمیت پیدا
میکنند، از این رو در این مقاله سعی
خواهم کرد مهمترین گزینههای کاربردی
را ذکر کنم.
P0- برنامهی
Nmap
اغلب
قبل از اجرای یک اسکن ابتدا مقاصد خود را
ping
میکند.
اگر
شما میدانید که ماشینی در حال استفاده
از فایروال یا هر روش دیگری برای جلوگیری
از ICMP
Ping پکتها
است میتوانید با این گزینه Nmap
را
مجبور به Ping
نکردن
بکنید.
v- به
حالت Verbose
گزارشها
را اعلام مینماید.
در
حقیقت تمام راحل انجام کار را اعلام
میکند.
vv- به
صورت Very
Verbos اعمال
را انجام میدهد.
در
این حالت تمام رفتارهای Nmap
را
گزارش میکند.
I- به
صورت Ident
فعالیت
میکند.
در
این حالت Nmap
به
پورت به صورت Full
Connect از
طریق ()Connect
متصل
میشود و در صورت برقراری تماس یک Ident
query از
قصد گرفته و آن را بر میگرداند.
با
این روش میتوان نام کاربری که در حال
گوشدادن به پورت مورد نظر است را دریافت
کرد.
برای
آن که کار با Connect
Typeها
و نیز گزینهها را بهتر فرا بگیرید به
نمونهی زیر توجه کنید:
root@ispak#
nmap -vv -sS 80.191.2.203
Starting
Nmap 4.03 ( http://www.insecure.org/nmap/ ) at 2006-10-07 15:18 IRST
DNS
resolution of 1 IPs took 0.47s. Mode: Async [#: 2, OK: 0, NX: 1, DR:
0, SF: 0, TR: 1, CN: 0]
Initiating
SYN Stealth Scan against 80.191.2.203 [1674 ports] at 15:18
Discovered
open port 80/tcp on 80.191.2.203
Discovered
open port 22/tcp on 80.191.2.203
Discovered
open port 21/tcp on 80.191.2.203
Discovered
open port 25/tcp on 80.191.2.203
Discovered
open port 110/tcp on 80.191.2.203
The
SYN Stealth Scan took 149.62s to scan 1674 total ports.
Host
80.191.2.203 appears to be up ... good.
Interesting
ports on 80.191.2.203:
(The
1667 ports scanned but not shown below are in state: filtered)
PORT
STATE SERVICE
20/tcp
closed ftp-data
21/tcp
open ftp
22/tcp
open ssh
25/tcp
open smtp
80/tcp
open http
110/tcp
open pop3
115/tcp
closed sftp
Nmap
finished: 1 IP address (1 host up) scanned in 151.990 seconds
Raw packets sent:
5020 (220.840KB) | Rcvd: 44 (1988B)
2. استفاده به عنوان
Ping Sweeper
همان
طور که ذکر شد از Nmap
میتوان
برای Ping
Sweeping استفاده
کرد، این امکان به صورت توکار یا Built-in
در
Nmap
موجود
است.
برای
استفاده از این امکان میةوانید از اسلوب
زیر استفاده کنید:
#nmap
-sP 92.168.0.0/24
به
عنوان آرگومان آدرس میتوانید از اسلوبهای
مختلف استفاده کنید:
-
نمونه
|
نوع
|
192.168.0.*
192.168.*.*
|
Wildcardها
|
192.168.0-220
192.168.20-100.0-220
|
محدوده
(range)
|
192.168.0.0/24
10.10.0.0./16
|
استفاده
از CIDR
ها
|
test.irantux.com/25
|
نمادها
|
با
استفاده از Nmap
میتواند
Ping
Sweeping را
بدن نیاز به نوشتن اسکریپتهای شل یا پرل
به سادگی یک دستور انجام دهید.
برای
نمونه:
root@lacindizustu:/home/lacin#
nmap -sP 213.207.248.*
Starting
Nmap 4.03 ( http://www.insecure.org/nmap/ ) at 2006-10-07 15:11 IRST
Host
213.207.248.0 seems to be a subnet broadcast address (returned 1
extra pings). Note -- the actual IP also responded.
Host
213.207.248.1 appears to be up.
Host
213.207.248.2 appears to be up.
Host
213.207.248.5 appears to be up.
RTTVAR
has grown to over 2.3 seconds, decreasing to 2.0
RTTVAR
has grown to over 2.3 seconds, decreasing to 2.0
RTTVAR
has grown to over 2.3 seconds, decreasing to 2.0
Host
213.207.248.7 appears to be up.
Host
213.207.248.9 appears to be up.
.........
Host
213.207.248.156 appears to be up.
Host
213.207.248.163 appears to be up.
Host
213.207.248.170 appears to be up.
Host
213.207.248.178 appears to be up.
Host
213.207.248.179 appears to be up.
Host
213.207.248.187 appears to be up.
Host
213.207.248.191 appears to be up.
Host
213.207.248.195 appears to be up.
Host
213.207.248.199 appears to be up.
Host
213.207.248.200 appears to be up.
Host
213.207.248.205 appears to be up.
Host
213.207.248.206 appears to be up.
Host
213.207.248.209 appears to be up.
Host
213.207.248.213 appears to be up.
Host
213.207.248.216 appears to be up.
Host
213.207.248.217 appears to be up.
Host
213.207.248.218 appears to be up.
Host
213.207.248.219 appears to be up.
Host
213.207.248.222 appears to be up.
......
Host
213.207.248.255 seems to be a subnet broadcast address (returned 1
extra pings). Note -- the actual IP also responded.
Nmap
finished: 256 IP addresses (79 hosts up) scanned in 178.817 seconds
3.استفاده به عنوان تشخیصگر سیستم عامل
یکی
دیگر از کارهایی که میتوانید از طریق
Nmap
انجام
دهید تشخیص سیستم عامل از راه دور است.
البته
Nmap
برای
این کار بهترین ابزار نیست و ابزارهای
دیگری مانند Queso
یا
Xprobe
ابزارهای
بسیار معروف دیگری هستند که Queso
در
حقیقت به صورت پیش فرض در آمده اما برای
تشخیص سیستم عامل میتوان از Nmap
همراه
گزینهی O-
نیز
استفاده کرد:
#nmap
-vV -sS -O
www.example.org
این
نکته قابل ذکر است که برای استفاده از
قابلیت OS
detection باید
برنامهی Nmap
را
با کاربر root
اجرا
کنید.
مانند:
root@ispak#nmap
-vv -sS -O 213.207.248.253
Starting
Nmap 4.03 ( http://www.insecure.org/nmap/ ) at 2006-10-07 15:14 IRST
DNS
resolution of 1 IPs took 0.16s. Mode: Async [#: 2, OK: 0, NX: 1, DR:
0, SF: 0, TR: 1, CN: 0]
Initiating
SYN Stealth Scan against 213.207.248.253 [1674 ports] at 15:14
Discovered
open port 1723/tcp on 213.207.248.253
Increasing
send delay for 213.207.248.253 from 0 to 5 due to 122 out of 406
dropped probes since last increase.
SYN
Stealth Scan Timing: About 45.19% done; ETC: 15:15 (0:00:36
remaining)
SYN
Stealth Scan Timing: About 51.69% done; ETC: 15:16 (0:01:02
remaining)
SYN
Stealth Scan Timing: About 62.68% done; ETC: 15:18 (0:01:18
remaining)
SYN
Stealth Scan Timing: About 76.69% done; ETC: 15:19 (0:01:04
remaining)
SYN
Stealth Scan Timing: About 86.86% done; ETC: 15:20 (0:00:41
remaining)
The
SYN Stealth Scan took 492.89s to scan 1674 total ports.
For
OSScan assuming port 1723 is open, 1 is closed, and neither are
firewalled
Host
213.207.248.253 appears to be up ... good.
Interesting
ports on 213.207.248.253:
(The
1664 ports scanned but not shown below are in state: closed)
PORT
STATE SERVICE
135/tcp
filtered msrpc
136/tcp
filtered profile
137/tcp
filtered netbios-ns
138/tcp
filtered netbios-dgm
139/tcp
filtered netbios-ssn
445/tcp
filtered microsoft-ds
1391/tcp
filtered iclpv-sas
1434/tcp
filtered ms-sql-m
1723/tcp
open pptp
4444/tcp
filtered krb524
Device
type: general purpose
Running:
Microsoft Windows 2003/.NET|NT/2K/XP
OS
details: Microsoft Windows 2003 Server or XP SP2
OS
Fingerprint:
TSeq(Class=TR%IPID=I%TS=0)
.....................
PU(Resp=Y%DF=N%TOS=0%IPLEN=B0%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E)
TCP
Sequence Prediction: Class=truly random
Difficulty=9999999
(Good luck!)
IPID
Sequence Generation: Incremental
Nmap
finished: 1 IP address (1 host up) scanned in 497.773 seconds
Raw packets sent:
3133 (138.324KB) | Rcvd: 1762 (71.168KB)
در این
مقاله سعی شد تا بخشی از قابلیتهای Nmap
را
به شما نمایش بدهم.
اما
مطمئنا این ابزار به قدر چند کتاب قابلیت
و جای بحث دارد.
در
صورتی که بخواهید کار با این ابزار را هر
چه بهتر بیاموزید میتوانید از سایت رسمی
آن شروع کنید.[۲]
با امید
این که این مقاله توانسته باشد در حل
مشکلات سیستم و شبکیتان به شما یاری
برساند.
نویسنده:
نوید
عبدی (ارسال
ایمیل)
[۱].آدرس
سایت رسمی:
www.nmap.org
است.
[۲].صفحهی
راهنمای اصلی http://insecure.org/nmap/man
PDF Version
|