nbtscan(1) scan networks searching for NetBIOS information nbtscan(1)

nbtscan - پویشگر و گردآورنده اطلاعات نام‌های NetBIOS در شبکه

nbtscan [-v] [-d] [-e] [-l] [-t مهلت_زمانی] [-b پهنای_باند] [-r] [-q]
        [-s جداکننده] [-h] [-m تعداد_تلاش_مجدد] [-f نام_فایل | هدف]

برنامه nbtscan ابزاری برای پویش شبکه‌های IP به منظور یافتن اطلاعات نام‌های NetBIOS است. این برنامه پرس‌وجوی وضعیت NetBIOS را به تک‌تک آدرس‌های محدوده ارائه‌شده ارسال کرده و اطلاعات دریافتی را در قالبی خوانا برای انسان فهرست می‌کند. برای هر میزبانی که پاسخ دهد، آدرس IP، نام رایانه NetBIOS، نام کاربری واردشده و آدرس MAC (مانند اترنت) نمایش داده می‌شود.

خروجی برنامه nbtscan گزارشی شبیه به این تولید می‌کند:

IP address     NetBIOS Name  Server    User           MAC address
-----------------------------------------------------------------------
192.168.1.2    MYCOMPUTER              JDOE           00-a0-c9-12-34-56
192.168.1.5    WIN98COMP     <server>  RROE           00-a0-c9-78-90-00
192.168.1.123  DPTSERVER     <server>  ADMINISTRATOR  08-00-09-12-34-56
ستون نخست، آدرس IP میزبان پاسخ‌دهنده را فهرست می‌کند. ستون دوم، نام رایانه است. ستون سوم نشان می‌دهد آیا این رایانه فایل‌ها یا چاپگرها را به اشتراک گذاشته است یا امکان اشتراک‌گذاری آن‌ها را دارد یا خیر. برای ماشین‌های مبتنی بر NT، این به معنای در حال اجرا بودن سرویس Server روی آن رایانه است. برای ویندوز ۹۵ به این معناست که گزینه «I want to be able to give others access to my files» یا «I want to be able to allow others to print on my printer(s)» در بخش (Control Panel/Network/File and Print Sharing) فعال شده است. در اغلب موارد این ستون به معنای به اشتراک گذاشتن فایل‌ها توسط این رایانه است. ستون چهارم نام کاربر را نشان می‌دهد؛ اگر هیچ کاربری به سیستم وارد نشده باشد، همان نام رایانه نمایش داده می‌شود. آخرین ستون نیز آدرس MAC آداپتور شبکه را نمایش می‌دهد.

در صورت اجرا همراه با گزینه -v، برنامه nbtscan تمام جدول نام‌های NetBIOS را برای هر آدرس پاسخ‌دهنده فهرست می‌کند. خروجی شبیه به این خواهد بود:

NetBIOS Name Table for Host 192.168.1.123:
Name             Service          Type
----------------------------------------
DPTSERVER        <00>             UNIQUE
DPTSERVER        <20>             UNIQUE
DEPARTMENT       <00>             GROUP
DEPARTMENT       <1c>             GROUP
DEPARTMENT       <1b>             UNIQUE
DEPARTMENT       <1e>             GROUP
DPTSERVER        <03>             UNIQUE
DEPARTMENT       <1d>             UNIQUE
??__MSBROWSE__?  <01>             GROUP
INet~Services    <1c>             GROUP
IS~DPTSERVER     <00>             UNIQUE
DPTSERVER        <01>             UNIQUE
Adapter address: 00-a0-c9-12-34-56
----------------------------------------

خلاصه‌ای از گزینه‌ها در ادامه آمده است:

خروجی با جزئیات کامل (Verbose). چاپ تمام نام‌های دریافت‌شده از هر میزبان.
تخلیه بسته‌ها (Dump packets). چاپ تمام محتویات بسته‌ها. نمی‌توان همراه با گزینه‌های -v، -s یا -h استفاده کرد.
قالب‌بندی خروجی به فرمت فایل /etc/hosts.
قالب‌بندی خروجی به فرمت فایل lmhosts.
مدت زمان انتظار بر حسب ثانیه برای دریافت پاسخ. مقدار پیش‌فرض ۱ است.
محدودسازی نرخ خروجی (Throttling). کاهش سرعت ارسال تا مصرف پهنای باند از مقدار پهنای_باند (بر حسب بیت بر ثانیه / bps) فراتر نرود. برای پیوندهای کند شبکه مفید است تا پرس‌وجوهای ارسالی از دست نروند.
استفاده از درگاه محلی ۱۳۷ برای پویش. سیستم‌های ویندوز ۹۵ تنها به این درگاه پاسخ می‌دهند. برای استفاده از این گزینه دسترسی کاربر ریشه (root) لازم است.
عدم نمایش بنرها و پیام‌های خطا (حالت بی‌صدا).
خروجی مناسب برای اسکریپت‌ها. سرستون‌ها و رکوردهای عنوان چاپ نمی‌شوند و فیلدها با جداکننده مشخص‌شده از هم جدا می‌شوند.
چاپ نام‌های خوانا برای انسان برای سرویس‌ها. تنها همراه با گزینه -v قابل استفاده است.
تعداد دفعات ارسال مجدد پرس‌وجو (retransmits). مقدار پیش‌فرض ۰ است.
خواندن آدرس‌های IP مورد نظر برای پویش از فایل «نام_فایل».
هدف
ابزار nbtscan یک ابزار خط فرمانی است. شما باید حداقل یک آرگومان برای محدوده آدرس‌ها به یکی از سه شکل زیر ارائه دهید:
یک آدرس IP واحد در قالب ده‌دهی نقطه‌دار. مثال: 192.168.1.1
آدرس شبکه و ماسک زیرشبکه (CIDR). مثال: 192.168.1.0/24
محدوده آدرس IP. مثال: 192.168.1.1-127. این حالت تمام آدرس‌های 192.168.1.1 تا 192.168.1.127 را پویش می‌کند.

پویش کامل یک شبکه کلاس C:

nbtscan 192.168.1.0/24
پویش کامل یک شبکه کلاس C با استفاده از درگاه ۱۳۷:
nbtscan -r 192.168.1.0/24
پویش محدوده‌ای از 192.168.1.25 تا 192.168.1.137:
nbtscan 192.168.1.25-137
پویش شبکه کلاس C و چاپ نتایج در قالب مناسب اسکریپت با استفاده از دو‌نقطه به عنوان جداکننده فیلدها:
nbtscan -v -s : 192.168.1.0/24
دستور بالا خروجی‌ای مانند زیر تولید می‌کند:
192.168.0.1:NT_SERVER:00U
192.168.0.1:MY_DOMAIN:00G
192.168.0.1:ADMINISTRATOR:03U
192.168.0.2:OTHER_BOX:00U
...
پویش آدرس‌های IP مشخص‌شده در فایل iplist:
nbtscan -f iplist

پسوند NetBIOS که با نام کاراکتر پایانی NetBIOS (endchar) نیز شناخته می‌شود، نوع سرویس را برای نام ثبت‌شده مشخص می‌کند. شناخته‌شده‌ترین کدها در جدول زیر آورده شده‌اند. (U = نام یکتا / Unique Name، G = نام گروهی / Group Name)

Name                Number(h)  Type  Usage
--------------------------------------------------------------------------
<computername>         00       U    Workstation Service
<computername>         01       U    Messenger Service
<\--__MSBROWSE__>      01       G    Master Browser
<computername>         03       U    Messenger Service
<computername>         06       U    RAS Server Service
<computername>         1F       U    NetDDE Service
<computername>         20       U    File Server Service
<computername>         21       U    RAS Client Service
<computername>         22       U    Exchange Interchange(MSMail Connector)
<computername>         23       U    Exchange Store
<computername>         24       U    Exchange Directory
<computername>         30       U    Modem Sharing Server Service
<computername>         31       U    Modem Sharing Client Service
<computername>         43       U    SMS Clients Remote Control
<computername>         44       U    SMS Administrators Remote Control Tool
<computername>         45       U    SMS Clients Remote Chat
<computername>         46       U    SMS Clients Remote Transfer
<computername>         87       U    Microsoft Exchange MTA
<computername>         6A       U    Microsoft Exchange IMC
<computername>         BE       U    Network Monitor Agent
<computername>         BF       U    Network Monitor Application
<username>             03       U    Messenger Service
<domain>               00       G    Domain Name
<domain>               1B       U    Domain Master Browser
<domain>               1C       G    Domain Controllers
<domain>               1D       U    Master Browser
<domain>               1E       G    Browser Service Elections
<INet~Services>        1C       G    IIS
<IS~computer name>     00       U    IIS

1.
برنامه NBTscan سیستم‌های ویندوزی من را به خوبی فهرست می‌کند اما یونیکس‌ها یا روترها را فهرست نمی‌کند. چرا؟

پاسخ: عملکرد برنامه دقیقاً باید همین‌گونه باشد. NBTscan از NetBIOS برای پویش استفاده می‌کند و NetBIOS فقط توسط ویندوز (و برخی نرم‌افزارها در یونیکس مانند Samba) پیاده‌سازی شده است.

2.
چرا روی ویندوز ۲۰۰۰ خطای «Connection reset by peer» دریافت می‌کنم؟

پاسخ: برنامه NBTscan از درگاه UDP 137 برای ارسال پرس‌وجوها استفاده می‌کند. اگر این درگاه روی میزبان مقصد بسته باشد، مقصد پیام ICMP «Port unreachable» ارسال خواهد کرد. اکثر سیستم‌های عامل این پیام را نادیده می‌گیرند. ویندوز ۲۰۰۰ آن را به عنوان خطای «Connection reset by peer» به برنامه گزارش می‌دهد. کافی است آن را نادیده بگیرید.

3.
چرا NBTscan اشتراک‌ها (shares) را پویش نمی‌کند؟ آیا قرار است قابلیت پویش اشتراک‌ها به NBTscan اضافه شود؟

پاسخ: خیر. NBTscan برای انجام کارهایش از پروتکل UDP استفاده می‌کند که باعث سرعت بسیار بالای آن می‌شود. پویش اشتراک‌ها نیازمند پروتکل TCP است. از یک سو، این کار باعث کندتر شدن nbtscan می‌شود. از سوی دیگر، اضافه کردن این قابلیت مستلزم اضافه کردن حجم زیادی کد جدید به nbtscan است. پویشگرهای بسیار خوبی برای اشتراک‌ها وجود دارند، بنابراین دلیلی برای دوباره‌کاری وجود ندارد.

4.
چرا هنگام پویش یک سیستم سامبا (Samba) به جای آدرس MAC مقدار 00-00-00-00-00-00 را دریافت می‌کنم؟

پاسخ: زیرا این مقداری است که سامبا در پاسخ به پرس‌وجو ارسال می‌کند. برنامه nbtscan صرفاً هر آنچه دریافت کند را چاپ می‌کند.

برنامه NBTscan توسط Alla Bezroutchko <alla@inetcat.org> ایجاد شده است. در حال حاضر توسط داوطلبانی در https://github.com/resurrecting-open-source-projects/nbtscan نگهداری می‌شود.

این صفحه راهنما نخستین بار توسط Ryszard Lach <rla@debian.org> نوشته شد و توسط Joao Eriberto Mota Filho <eriberto@debian.org> برای سیستم دبیان گنو/لینوکس از نو بازنویسی شد (اما برای دیگران نیز قابل استفاده است).

13 Jan 2022 nbtscan-1.7.2