| NCRACK(1) | راهنمای مرجع Ncrack | NCRACK(1) |
نام (NAME)
ncrack - ابزار بررسی و ارزیابی امنیت احراز هویت سرویسهای شبکه
خلاصه دستور (SYNOPSIS)
ncrack [گزینهها] {مشخصات هدف}
توضیحات (DESCRIPTION)
ابزار Ncrack یک ابزار متنباز برای کرک و ارزیابی امنیت احراز هویت شبکه است. این ابزار برای آزمودن موازی و پرسرعت احراز هویت با بهرهگیری از یک موتور پویا طراحی شده است که میتواند خود را با شرایط مختلف شبکه وفق دهد. ابزار Ncrack همچنین قابلیت تنظیم دقیق و گسترده برای موارد خاص را دارد، هرچند پارامترهای پیشفرض آن به اندازه کافی جامع هستند تا تقریباً هر سناریویی را پوشش دهند. این ابزار بر پایه معماری ماژولار بنا شده که امکان توسعه آسان برای پشتیبانی از پروتکلهای بیشتر را فراهم میسازد. ابزار Ncrack برای شرکتها و متخصصان امنیت طراحی شده است تا شبکههای بزرگ را از نظر گذرواژههای پیشفرض یا ضعیف به شیوهای سریع و قابلاطمینان ممیزی و ارزیابی کنند. همچنین میتوان از آن برای انجام حملات آزمون فراگیر (Brute Force) پیشرفته و فشرده علیه سرویسهای اختصاصی استفاده کرد.
هشدار
پروژه Ncrack در تابستان سال ۲۰۰۹ آغاز شد. با اینکه این ابزار برای بسیاری از اهداف کاربردی است، اما همچنان نرمافزاری آزمایشی در نسخه بتا محسوب میشود. شما میتوانید با آزمایش آن و گزارش هرگونه مشکل طبق آنچه در بخش “اشکالات (BUGS)” آمده است، به توسعه آن کمک کنید.
خروجی Ncrack فهرستی از اعتبارنامهها و اطلاعات ورود کشفشده (در صورت وجود) برای هر یک از اهداف تعیینشده است. Ncrack همچنین میتواند یک گزارش وضعیت تعاملی از پیشرفت فعلی و در صورت فعال بودن گزینه مربوطه توسط کاربر، اطلاعات اشکالزدایی تکمیلی را برای ردیابی مشکلات نمایش دهد.
یک پویش معمول با Ncrack در مثال ۱ نشان داده شده است. تنها آرگومانهای بهکاررفته در این مثال دو آدرس IP هدف به همراه پورتهای متناظر آنهاست. دو پورت نمونه ۲۱ و ۲۲ به طور خودکار به سرویسهای پیشفرضی که روی آنها شنود میکنند نگاشت میشوند: ftp و ssh.
مثال ۱. نمونهای از یک پویش با Ncrack
$ ncrack 10.0.0.130:21 192.168.1.2:22 Starting Ncrack 0.6 ( http://ncrack.org ) at 2016-01-03 22:10 EEST Discovered credentials for ftp on 10.0.0.130 21/tcp: 10.0.0.130 21/tcp ftp: admin hello1 Discovered credentials for ssh on 192.168.1.2 22/tcp: 192.168.1.2 22/tcp ssh: guest 12345 192.168.1.2 22/tcp ssh: admin money$ Ncrack done: 2 services scanned in 156.03 seconds. Ncrack finished.
تازهترین نسخه Ncrack را میتوانید از نشانی http://nmap.org/ncrack دریافت کنید. همچنین آخرین نسخه این صفحه راهنما در نشانی http://nmap.org/ncrack/man.html در دسترس است.
خلاصه گزینهها (OPTIONS SUMMARY)
این خلاصه گزینهها زمانی نمایش داده میشود که Ncrack بدون هیچ آرگومانی اجرا شود. این بخش به یادآوری رایجترین گزینهها کمک میکند، اما جایگزینی برای مستندات جامع و دقیق موجود در ادامه این راهنما نیست.
Ncrack 0.7 ( http://ncrack.org )
Usage: ncrack [Options] {target and service specification}
TARGET SPECIFICATION:
Can pass hostnames, IP addresses, networks, etc.
Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
-iX <inputfilename>: Input from Nmap's -oX XML output format
-iN <inputfilename>: Input from Nmap's -oN Normal output format
-iL <inputfilename>: Input from list of hosts/networks
--exclude <host1[,host2][,host3],...>: Exclude hosts/networks
--excludefile <exclude_file>: Exclude list from file
SERVICE SPECIFICATION:
Can pass target specific services in <service>://target (standard) notation or
using -p which will be applied to all hosts in non-standard notation.
Service arguments can be specified to be host-specific, type of service-specific
(-m) or global (-g). Ex: ssh://10.0.0.10,at=10,cl=30 -m ssh:at=50 -g cd=3000
Ex2: ncrack -p ssh,ftp:3500,25 10.0.0.10 scanme.nmap.org google.com:80,ssl
-p <service-list>: services will be applied to all non-standard notation hosts
-m <service>:<options>: options will be applied to all services of this type
-g <options>: options will be applied to every service globally
Misc options:
ssl: enable SSL over this service
path <name>: used in modules like HTTP ('=' needs escaping if used)
db <name>: used in modules like MongoDB to specify the database
domain <name>: used in modules like WinRM to specify the domain
TIMING AND PERFORMANCE:
Options which take <time> are in seconds, unless you append 'ms'
(miliseconds), 'm' (minutes), or 'h' (hours) to the value (e.g. 30m).
Service-specific options:
cl (min connection limit): minimum number of concurrent parallel connections
CL (max connection limit): maximum number of concurrent parallel connections
at (authentication tries): authentication attempts per connection
cd (connection delay): delay <time> between each connection initiation
cr (connection retries): caps number of service connection attempts
to (time-out): maximum cracking <time> for service, regardless of success so far
-T<0-5>: Set timing template (higher is faster)
--connection-limit <number>: threshold for total concurrent connections
--stealthy-linear: try credentials using only one connection against each specified host
until you hit the same host again. Overrides all other timing options.
AUTHENTICATION:
-U <filename>: username file
-P <filename>: password file
--user <username_list>: comma-separated username list
--pass <password_list>: comma-separated password list
--passwords-first: Iterate password list for each username. Default is opposite.
--pairwise: Choose usernames and passwords in pairs.
OUTPUT:
-oN/-oX <file>: Output scan in normal and XML format, respectively, to the given filename.
-oA <basename>: Output in the two major formats at once
-v: Increase verbosity level (use twice or more for greater effect)
-d[level]: Set or increase debugging level (Up to 10 is meaningful)
--nsock-trace <level>: Set nsock trace level (Valid range: 0 - 10)
--log-errors: Log errors/warnings to the normal-format output file
--append-output: Append to rather than clobber specified output files
MISC:
--resume <file>: Continue previously saved session
--save <file>: Save restoration file with specific filename
-f: quit cracking service after one found credential
-6: Enable IPv6 cracking
-sL or --list: only list hosts and services
--datadir <dirname>: Specify custom Ncrack data file location
--proxy <type://proxy:port>: Make connections via socks4, 4a, http.
-V: Print version number
-h: Print this help summary page.
MODULES:
SSH, RDP, FTP, Telnet, HTTP(S), Wordpress, POP3(S), IMAP, CVS, SMB, VNC, SIP, Redis, PostgreSQL, MQTT, MySQL, MSSQL, MongoDB, Cassandra, WinRM, OWA, DICOM
EXAMPLES:
ncrack -v --user root localhost:22
ncrack -v -T5 https://192.168.0.1
ncrack -v -iX ~/nmap.xml -g CL=5,to=1h
SEE THE MAN PAGE (http://nmap.org/ncrack/man.html) FOR MORE OPTIONS AND EXAMPLES
تعیین اهداف (TARGET SPECIFICATION)
هر چیزی در خط فرمان Ncrack که یک گزینه (یا آرگومان یک گزینه) نباشد، به عنوان مشخصه میزبان هدف در نظر گرفته میشود. سادهترین حالت، تعیین یک آدرس IP یا نام میزبان هدف است. توجه داشته باشید که علاوه بر این، باید سرویسی را نیز برای آزمودن در اهداف انتخابشده مشخص کنید. ابزار Ncrack در تعیین میزبان/سرویس بسیار انعطافپذیر است. در حالی که نامهای میزبان و آدرسهای IP را میتوان با همان انعطافپذیری آشنا در Nmap تعریف کرد، سرویسها به همراه گزینههای ویژه خود دارای سبک تعریف منحصربهفردی هستند که امکان بهرهگیری از ترکیبهای مختلف قابلیتها را فراهم میکند.
گاهی اوقات میخواهید کل یک شبکه از میزبانهای مجاور را بیازمایید. برای این منظور، Ncrack از آدرسدهی به سبک CIDR پشتیبانی میکند. میتوانید /numbits را به یک آدرس IPv4 یا نام میزبان اضافه کنید و Ncrack تمام آدرسهای IP را که numbits بیت نخست آنها با IP یا نام میزبان مرجع یکسان است، خواهد آزمود. برای نمونه، 192.168.10.0/24 کاوشها را به ۲۵۶ میزبان میان 192.168.10.0 (در مبنای دو: 11000000 10101000 00001010 00000000) و 192.168.10.255 (در مبنای دو: 11000000 10101000 00001010 11111111) شامل خود آنها ارسال میکند. مشخصه 192.168.10.40/24 دقیقاً همان اهداف را هدف قرار میدهد. با فرض اینکه میزبان scanme.nmap.org دارای آدرس IP به صورت 64.13.134.52 باشد، مشخصه scanme.nmap.org/16 کاوشها را به ۶۵,۵۳۶ آدرس IP بین 64.13.0.0 و 64.13.255.255 ارسال خواهد کرد. کوچکترین مقدار مجاز /0 است که کل اینترنت را هدف میگیرد. بزرگترین مقدار /32 است که فقط همان میزبان یا آدرس IP مشخصشده را هدف قرار میدهد زیرا تمام بیتهای آدرس ثابت هستند.
نمادگذاری CIDR کوتاه است اما همیشه به اندازه کافی انعطافپذیر نیست. برای نمونه، ممکن است بخواهید کاوشها را به 192.168.0.0/16 ارسال کنید اما از IPهایی که به 0. یا 255. ختم میشوند صرفنظر کنید چون ممکن است به عنوان آدرسهای شبکه و پخشی (Broadcast) زیرشبکه استفاده شوند. Ncrack از طریق آدرسدهی با بازه هشتتایی (Octet range) از این حالت پشتیبانی میکند. به جای تعیین یک آدرس IP معمولی، میتوانید فهرستی از اعداد یا بازهها را با کاما برای هر بخش هشتتایی مشخص کنید. برای مثال، 192.168.0-255.1-254 از تمام آدرسهای بازه که به 0. یا 255. ختم میشوند صرفنظر میکند و 192.168.3-5,7.1 چهار آدرس 192.168.3.1 , 192.168.4.1 , 192.168.5.1 و 192.168.7.1 را هدف قرار میدهد. هر طرف از یک بازه را میتوان حذف کرد؛ مقادیر پیشفرض 0 در سمت چپ و 255 در سمت راست است. استفاده از - به تنهایی معادل 0-255 است، اما به یاد داشته باشید که در هشتتایی اول از -0 استفاده کنید تا مشخصه هدف شبیه یک گزینه خط فرمان به نظر نرسد. بازهها لزوماً محدود به هشتتاییهای پایانی نیستند: مشخصه کاوشها را به تمام آدرسهای IP در اینترنت که به 13.37 ختم میشوند ارسال میکند. این گونه نمونهبرداری گسترده میتواند برای پیمایشها و پژوهشهای اینترنتی کاربردی باشد.
ابزار Ncrack چندین مشخصه میزبان را در خط فرمان میپذیرد و نیازی نیست همه از یک نوع باشند. دستور ncrack scanme.nmap.org 192.168.0.0/8 10.0.0,1,3-7.- -p22 دقیقاً همان کاری را انجام میدهد که انتظار دارید.
اگرچه اهداف معمولاً در خط فرمان مشخص میشوند، گزینههای زیر نیز برای کنترل انتخاب اهداف در دسترس هستند:
-iX inputfilename (ورودی از قالب XML گزینه -oX انمپ) .
-iN inputfilename (ورودی از قالب خروجی معمولی -oN انمپ) .
-iL inputfilename (ورودی از فهرست) .
--exclude host1[, host2[, ...]] (مستثنی کردن میزبانها/شبکهها) .
--excludefile exclude_file (مستثنی کردن فهرست از فایل) .
تعیین سرویسها (SERVICE SPECIFICATION)
هیچ نشست آزمودن احراز هویتی را نمیتوان بدون تعیین یک سرویس مشخص برای حمله اجرا کرد. بخش تعیین سرویس یکی از انعطافپذیرترین زیرسیستمهای Ncrack است و به گونهای با بخش تعیین هدف تعامل دارد که امکان اعمال ترکیبهای مختلفی از گزینهها را فراهم میسازد. برای اجرای Ncrack باید دستکم یک میزبان هدف و یک سرویس مرتبط را برای حمله مشخص کنید. Ncrack روشهایی برای تعیین سرویس بر اساس شماره پورت پیشفرض آن، نام آن (برگرفته از فایل ncrack-services) یا هر دو ارائه میدهد. در حالت عادی، فقط در موارد خاصی که میدانید سرویسی مشخص روی پورتی غیرپیشفرض شنود میکند، نیاز به تعیین همزمان نام و شماره پورت خواهید داشت.
ابزار Ncrack دو شیوه متمایز برای اعمال سرویسها روی اهداف ارائه میدهد: تعیین سرویس به ازای هر میزبان و تعیین سرویس به صورت سراسری.
تعیین سرویس به ازای هر میزبان (Per-host service specification)
[service-name]://target:[port-number]
که در آن target یک نام میزبان یا آدرس IP در هر یک از قالبهای شرحدادهشده در بخش تعیین هدف است، [service-name] یکی از نامهای رایج سرویسها طبق تعریف در فایل ncrack-services (مانند ssh یا http) است و [port-number] همان شماره پورت مورد نظر است. Ncrack میتواند شماره پورتهای پیشفرض هر یک از سرویسهای تحت پشتیبانی خود را تعیین کند و همچنین قادر است با مشخص شدن یک پورت پیشفرض، نام سرویس متناظر را استنتاج نماید. تعیین هر دو مورد تنها زمانی کاربرد دارد که کاربر از قبل بداند سرویسی روی پورتی غیرپیشفرض در حال شنود است. این موضوع را میتوان به سادگی با استفاده از قابلیت تشخیص نسخه مانند گزینه -sV در Nmap مشخص کرد.
مثال ۲. نمونهای از تعیین سرویس به ازای هر میزبان
$ ncrack scanme.nmap.org:22 ftp://10.0.0.10 ssh://192.168.1.*:5910
دستور بالا اهداف زیر را خواهد آزمود: میزبان scanme.nmap.org روی سرویس SSH (پورت پیشفرض ۲۲)، میزبان 10.0.0.10 روی سرویس FTP (پورت پیشفرض ۲۱) و میزبانهای 192.168.1.0 تا 192.168.1.255 (کل این زیرشبکه کلاس C) روی سرویس SSH بر روی پورت غیرپیشفرض ۵۹۱۰ که صریحاً مشخص شده است. در مورد آخر، اگر کاربر صریحاً آن را مشخص نمیکرد، Ncrack نمیتوانست متوجه شود که میزبانهای زیرشبکه باید برای سرویس SSH روی آن پورت خاص آزموده شوند، زیرا هیچ نگاشت پیشفرضی از پورت ۵۹۱۰ به سرویس SSH وجود ندارد.
تعیین سرویس به صورت سراسری (Global service specification)
-p [service1]:[port-number1],[service2]:[port-number2],...
طبق معمول، نیازی به تعیین هر دوی نام سرویس و شماره پورت نیست زیرا Ncrack نگاشت سرویسهای پیشفرض به پورتهای پیشفرض را میداند. با این حال دقت کنید که بین نام سرویسها و شماره پورتها هیچ فاصلهای (Space) قرار ندهید، چرا که Ncrack طبق قاعده «هر چیزی که گزینه نباشد مشخصه هدف است»، آرگومان بعد از فاصله را به عنوان یک میزبان هدف در نظر میگیرد.
مثال ۳. نمونهای از تعیین سرویس به صورت سراسری
$ ncrack scanme.nmap.org 10.0.0.120-122 192.168.2.0/24 -p 22,ftp:3210,telnet
دستور بالا تمامی میزبانهای مشخصشده scanme.nmap.org ، 10.0.0.120 ، 10.0.0.121 ، 10.0.0.122 و زیرشبکه کلاس C آدرس 192.168.2.0 را در برابر سرویسهای زیر میآزماید: سرویس SSH (نگاشتشده از پورت پیشفرض ۲۲)، سرویس FTP روی پورت غیرپیشفرض ۳۲۱۰ و سرویس TELNET روی پورت پیشفرض ۲۳.
البته Ncrack به شما اجازه میدهد در صورت نیاز هر دو حالت تعیین سرویس را با هم ترکیب کنید. معمولاً تنها نیاز به تعیین چند سرویس خواهید داشت، اما آزمودن میزبانهای متعدد در برابر سرویسهای مختلف میتواند یک پروژه بلندمدت برای شبکههای بزرگی باشد که باید به طور مداوم برای گذرواژههای ضعیف ممیزی شوند. اگر شک دارید که با دستور فعلی چه میزبانها و سرویسهایی آزموده خواهند شد، میتوانید از گزینه -sL استفاده کنید (توضیحات در ادامه آمده است).
گزینههای سرویس (SERVICE OPTIONS)
جدا از تعیین کلی سرویس، Ncrack به شما امکان میدهد گزینههای متعددی را مشخص کنید که بر هر هدف یا مجموعهای از اهداف اعمال میشوند. این گزینهها شامل بهینهسازیهای زمانبندی و کارایی (که در بخشی جداگانه به تفصیل بررسی شدهاند)، فعال/غیرفعالسازی SSL و سایر پارامترهای ویژه ماژولها مانند مسیر نسبی URL برای ماژول HTTP هستند. گزینهها را میتوان به روشهای گوناگون تعریف کرد که عبارتند از: گزینههای به ازای هر میزبان، گزینههای به ازای هر ماژول و گزینههای سراسری. از آنجا که میتوان ترکیبی از این گزینهها را به کار برد، یک سلسلهمراتب اولویت دقیق وجود دارد که در ادامه شرح داده میشود.
گزینههای به ازای هر میزبان (Per-host Options)
[service-name]://target:[port-number],opt1=optval1,opt2=optval,...
قالب مربوط به مشخصات سرویس که پیش از گزینهها میآید، در بخش پیشین توضیح داده شد. optN به هر یک از نامهای گزینههای موجود اشاره دارد (فهرست آنها در ادامه میآید)، در حالی که optvalN مقدار آن گزینه را تعیین میکند و به ماهیت آن بستگی دارد. برای نمونه، بیشتر گزینههای مرتبط با زمانبندی مقادیر عددی میپذیرند، در حالی که گزینه path به یک آرگومان متنی نیاز دارد.
گزینههای به ازای هر ماژول (Per-module Options)
-m service-name:opt1=optval1,opt2=optval2,...
این گزینه را میتوان به دفعات فراخوانی کرد، به تعداد سرویسهای متفاوتی که میخواهید گزینههای سراسریِ سطح سرویس را برایشان تعریف کنید. هر تکرار این گزینه باید تنها به یک سرویس اشاره کند. با این حال برای جلوگیری از سردرگمی، بهتر است این گزینه بیش از یک بار برای یک سرویس فراخوانی نشود، هرچند این کار مجاز است و آخرین تکرار برای تمامی مقادیر بازتعریفشده بر موارد پیشین اولویت خواهد داشت.
گزینههای سراسری (Global Options)
-g opt1=optval1,opt2=optval2,...
این گزینه به عنوان یک قابلیت تسهیلکننده عمل میکند تا بتوانید گزینهها را به صورت سراسری بر تمامی سرویسها اعمال کنید. تمام موارد دیگر در مورد گزینههای در دسترس و مقادیر آنها مشابه حالتهای پیشین است.
فهرست گزینههای موجود برای سرویس
در ادامه فهرستی از تمام گزینههای موجود فعلی برای سرویسها آورده شده است. میتوانید آنها را در هر یک از سه حالت شرحدادهشده در بالا اعمال کنید. شش گزینه پایانی مرتبط با زمانبندی هستند و در بخش «زمانبندی و کارایی» این راهنما تحلیل خواهند شد.
ssl: enable SSL over this service
path: path-name used in modules like HTTP ('=' needs escaping if used)
db: used in modules like MongoDB to specify the database
domain: used in modules like WinRM to specify the domain
cl (min connection limit): minimum number of concurrent parallel connections
CL (max connection limit): maximum number of concurrent parallel connections
at (authentication tries): authentication attempts per connection
cd (connection delay): delay time between each connection initiation
cr (connection retries): caps number of service connection attempts
to (time-out): maximum cracking time for service, regardless of success so far
ssl (فعال/غیرفعالسازی SSL روی سرویس)
path <name> (نام مسیر برای آدرسهای نسبی URL)
همچنین به نماد '=' دقت کنید، زیرا این نماد توسط Ncrack برای تجزیه آرگومانها استفاده میشود و اگر در URL وجود داشته باشد باید آن را اسکیپ (Escape) کنید.
به طور پیشفرض، نام مسیر روی '/' مقداردهی اولیه میشود اما توسط سرویسهایی که به آن نیاز ندارند نادیده گرفته خواهد شد.
db <name> (نام پایگاهداده)
به طور پیشفرض، نام پایگاهداده برای MongoDB روی 'admin' مقداردهی میشود اما توسط سرویسهایی که به آن نیاز ندارند نادیده گرفته خواهد شد.
domain <name> (نام دامنه)
به طور پیشفرض، نام دامنه برای WinRM روی 'Workstation' مقداردهی میشود اما توسط سرویسهایی که به آن نیاز ندارند نادیده گرفته خواهد شد.
سلسلهمراتب اولویت گزینههای سرویس (Service Option Hierarchy)
همانطور که پیشتر اشاره شد، Ncrack امکان ترکیب سه حالت مختلف تعیین گزینههای سرویس را میدهد. در این حالت، یک سلسلهمراتب دقیق وجود دارد که ترتیب اولویت مقادیر متناقض را نسبت به یکدیگر حلوفصل میکند. این ترتیب به صورت زیر است که سمت چپترین بالاترین اولویت و سمت راستترین کمترین اولویت را دارد:
گزینههای به ازای هر میزبان > گزینههای به ازای هر ماژول > گزینههای سراسری > قالب زمانبندی (تنها برای گزینههای زمانبندی)
مفهوم «قالب زمانبندی (Timing-Template)» در بخش «زمانبندی و کارایی» توضیح داده خواهد شد، اما فعلاً به یاد داشته باشید که مقادیر آن کمترین اولویت را نسبت به همه گزینههای دیگر دارند و عملاً به عنوان مقادیر پیشفرض برای همه موارد مرتبط با زمانبندی عمل میکنند. گزینههای سراسری مشخصشده با -g اولویت بالاتری دارند، در حالی که گزینههای به ازای هر ماژول با -m بلافاصله اولویت بیشتری نسبت به آنها دارند. در راس این سلسلهمراتب، گزینههای به ازای هر میزبان قرار دارند که در واقع خاصترین گزینهها هستند. در نتیجه مشاهده میکنید که الگو به این صورت است: هرچه مشخصتر و خاصتر باشد، اولویت آن بالاتر است.
مثال ۴. نمونهای از سلسلهمراتب اولویت گزینههای سرویس
$ ncrack scanme.nmap.org:22,cl=10,at=1 10.0.0.120 10.0.0.20 -p 21 -m ftp:CL=1 -g CL=3
این مثال اولویت سلسلهمراتب را نشان میدهد. سرویسهایی که آزموده خواهند شد عبارتند از SSH برای scanme.nmap.org و FTP برای میزبانهای 10.0.0.120 و 10.0.0.20. هیچ قالب زمانبندی خاصی تعیین نشده است بنابراین مقدار پیشفرض استفاده خواهد شد (Normal - 3). گزینههای به ازای هر میزبان برای scanme.nmap.org تعیین میکنند که حداقل محدودیت اتصال (cl) برابر با ۱۰ است و Ncrack باید در هر اتصال تنها ۱ تلاش احراز هویت (at) انجام دهد. در صورت بروز هرگونه تعارض با حالتهای دیگر، این مقادیر هر مقدار دیگری را برای سرویس SSH در میزبان scanme.nmap.org بازنویسی میکنند. از آنجا که گزینه سراسری -g CL=3 تعریف شده و هیچ گزینه با اولویت بالاتری برای سرویس SSH و به ویژه scanme.nmap.org وجود ندارد، این مقدار نیز اعمال خواهد شد. در مورد اهداف FTP، گزینه به ازای هر ماژول -m ftp:CL=1 که برای تمام سرویسهای FTP تعریف شده است، بر گزینه سراسری معادل آن اولویت خواهد داشت. استفاده بیش از حد از این قابلیتها میتواند پیچیده شود، اما معمولاً از کاربر عادی Ncrack انتظار نمیرود که به همه آنها نیاز پیدا کند. با این حال سناریوهای پیچیده پویش شبکه ممکن است به آنها نیازمند باشند. برای اطمینان از اینکه نتایج مطابق انتظار شماست، فراموش نکنید که از گزینه -sL استفاده کنید که جزئیات مربوط به آنچه Ncrack در صورت اجرای عادی انجام میداد را چاپ میکند. اگر خروجی با جزئیات بیشتری میخواهید، میتوانید گزینه اشکالزدایی -d را نیز اضافه کنید. برای مثال بالا، Ncrack خروجی زیر را چاپ میکند:
مثال ۵. نمونه خروجی سلسلهمراتب اولویت گزینههای سرویس
$ ncrack scanme.nmap.org:22,cl=10,at=1 10.0.0.120 10.0.0.20 -p 21 -m ftp:CL=1 -g CL=3 -sL -d Starting Ncrack 0.6 ( http://ncrack.org ) at 2017-10-12 01:13 CDT ----- [ Timing Template ] ----- cl=7, CL=80, at=0, cd=0, cr=30, to=0 ----- [ ServicesTable ] ----- SERVICE cl CL at cd cr to ssl path db domain ftp:21 N/A 1 N/A N/A N/A N/A no null null null ssh:22 N/A N/A N/A N/A N/A N/A no null null null telnet:23 N/A N/A N/A N/A N/A N/A no null null null http:80 N/A N/A N/A N/A N/A N/A no null null null pop3:110 N/A N/A N/A N/A N/A N/A no null null null imap:143 N/A N/A N/A N/A N/A N/A no null null null netbios-ssn:445 N/A N/A N/A N/A N/A N/A no null null null smb:445 N/A N/A N/A N/A N/A N/A no null null null smb:139 N/A N/A N/A N/A N/A N/A no null null null https:443 N/A N/A N/A N/A N/A N/A yes null null null owa:443 N/A N/A N/A N/A N/A N/A yes null null null sip:5060 N/A N/A N/A N/A N/A N/A no null null null pop3s:995 N/A N/A N/A N/A N/A N/A yes null null null mssql:1433 N/A N/A N/A N/A N/A N/A no null null null mysql:3306 N/A N/A N/A N/A N/A N/A no null null null ms-wbt-server:3389 N/A N/A N/A N/A N/A N/A no null null null rdp:3389 N/A N/A N/A N/A N/A N/A no null null null psql:5432 N/A N/A N/A N/A N/A N/A no null null null vnc:5801 N/A N/A N/A N/A N/A N/A no null null null vnc:5900 N/A N/A N/A N/A N/A N/A no null null null vnc:5901 N/A N/A N/A N/A N/A N/A no null null null vnc:6001 N/A N/A N/A N/A N/A N/A no null null null redis:6379 N/A N/A N/A N/A N/A N/A no null null null winrm:5985 N/A N/A N/A N/A N/A N/A no null null Workstation winrm:5986 N/A N/A N/A N/A N/A N/A no null null Workstation cassandra:9160 N/A N/A N/A N/A N/A N/A no null null null cassandra:9042 N/A N/A N/A N/A N/A N/A no null null null mongodb:27017 N/A N/A N/A N/A N/A N/A no null admin null ----- [ Targets ] ----- Host: 45.33.32.156 ( scanme.nmap.org ) ssh:22 cl=10, CL=10, at=1, cd=0, cr=30, to=0ms, ssl=no, path=/, db=admin, domain=Workstation Host: 10.0.0.120 ftp:21 cl=3, CL=1, at=0, cd=0, cr=30, to=0ms, ssl=no, path=/, db=admin, domain=Workstation Host: 10.0.0.20 ftp:21 cl=3, CL=1, at=0, cd=0, cr=30, to=0ms, ssl=no, path=/, db=admin, domain=Workstation Ncrack done: 3 services would be scanned. Probes sent: 0 | timed-out: 0 | prematurely-closed: 0 Ncrack finished.
جدول ServicesTable صرفاً گزینههای به ازای هر ماژول را برای تمامی سرویسهای موجود فهرست میکند. همانطور که میبینید، تنها گزینه تعریفشده در سرویس FTP برای CL است. جدول Targets مهمترین بخش این خروجی است و تمامی اهداف و گزینههای مرتبط را بر اساس نحوه فراخوانی خط فرمان فهرست مینماید. در این حالت هیچ عملیات شبکهای به جز وضوحیابی مستقیم DNS برای نامهای میزبان (مانند scanme.nmap.org در این مثال) انجام نمیشود.
زمانبندی و کارایی (TIMING AND PERFORMANCE)
موتور زمانبندی شاید مهمترین بخش هر ابزار جدی ارزیابی احراز هویت شبکه باشد. موتور زمانبندی Ncrack گزینههای فراوانی را برای بهینهسازی ارائه میدهد و میتوان آن را برای پاسخگویی به هر نیازی از سوی کاربر تنظیم کرد. با پیشرفت Ncrack، این زیرسیستم به یک موتور خودمختار و پویا تبدیل خواهد شد که میتواند رفتار خود را به طور خودکار بر اساس بازخوردی که از شبکه دریافت میکند تنظیم کند، تا به حداکثر کارایی و دقت بدون نیاز به دخالت کاربر دست یابد.
برخی گزینهها یک پارامتر time (زمان) را میپذیرند. این مقدار به طور پیشفرض بر حسب ثانیه مشخص میشود، هرچند میتوانید پسوندهای ‘ms’ (میلیثانیه)، ‘m’ (دقیقه) یا ‘h’ (ساعت) را به مقدار اضافه کنید (‘s’ برای ثانیه اختیاری است). بنابراین آرگومانهای cd (تاخیر اتصال) به صورت 900000ms ، 900s و 15m همگی یک کار را انجام میدهند.
cl num-minconnections; CL num-maxconnections (تنظیم تعداد اتصالات موازی همزمان)
محدودیت اتصال (Connection Limit)
این گزینهها تعداد کل اتصالاتی را که میتوانند برای هر سرویس به طور همزمان برقرار باشند کنترل میکنند. به طور معمول، Ncrack تلاش میکند با شمارش تعداد اتصالات قطعشده یا ناموفق، تعداد اتصالات را برای هر هدف به طور پویا تنظیم کند. اگر یک وضعیت غیرعادی در شبکه رخ دهد که نشاندهنده بروز مشکل باشد، مانند قطع اتصالات جدید از سوی میزبان، Ncrack فوراً تعداد کل اتصالات ارسالی به آن سرویس را کاهش میدهد. با این حال سقف تعداد حداقل یا حداکثر اتصالاتی که برقرار خواهند شد را میتوان با استفاده از این دو گزینه بازنویسی کرد. با تنظیم مناسب آنها میتوانید کارایی را بهینه کنید، مشروط بر اینکه بتوانید محدودیتهای خود هدف را بشناسید یا کشف نمایید. قرارداد در اینجا این است که cl با حروف کوچک به حداقل محدودیت اتصال و CL با حروف بزرگ به حداکثر تعداد اتصالات اشاره دارد.
رایجترین کاربرد، تنظیم cl (حداقل محدودیت اتصال) برای اهدافی است که تقریباً مطمئن هستید میتوانند این تعداد اتصال را در هر لحظه تاب بیاورند. این گزینهای پرخطر برای تغییر است، زیرا تنظیم آن روی مقادیر بسیار بالا ممکن است با ایجاد حمله منع سرویس (DoS) ناخواسته علیه هدف و فعالسازی قوانین دیواره آتش که منجر به مسدود شدن IP شما میشود، آسیب بیشتری نسبت به فایدهاش به همراه داشته باشد.
از سوی دیگر، برای ماموریتهای مخفیانهتر، تنظیم CL (حداکثر محدودیت اتصال) روی یک مقدار پایین ممکن است همان چیزی باشد که میخواهید. با این حال، تنظیم آن روی مقادیر بسیار کم قطعاً تاثیر زیادی بر سرعت کلی خواهد گذاشت. برای حداکثر پنهانکاری، میتوان این گزینه را با cd (تاخیر اتصال) که در ادامه توضیح داده شده ترکیب کرد.
at num-attempts (تنظیم تلاشهای احراز هویت در هر اتصال)
تلاشهای احراز هویت (Authentication Tries)
با استفاده از این گزینه میتوانید به Ncrack دستور دهید تعداد تلاشهای احراز هویتی را که در هر اتصال انجام میدهد محدود کند. Ncrack ابتدا یک کاوش شناسایی ارسال میکند که به آن امکان محاسبه حداکثر تعداد این تلاشها را میدهد و از آن پس همواره تلاش میکند از آن عدد استفاده کند. بیشتر سرویسها یک سقف برای تعداد احراز هویت در هر اتصال تعیین میکنند و در اغلب موارد، یافتن آن حداکثر منجر به کارایی بهتر میشود.
تنظیم این گزینه روی مقادیر پایینتر میتواند امتیاز پنهانکاری برای شما به همراه داشته باشد، زیرا سرویسهایی مانند SSH تمایل دارند تلاشهای ناموفق را پس از گذشتن از تعداد معینی تلاش در هر اتصال ثبت کنند. آنها از این به عنوان یک معیار استفاده میکنند تا اینکه بخواهند کل تلاشهای احراز هویت یا اتصالات به ازای هر آدرس IP را بشمارند (که معمولاً توسط دیواره آتش انجام میشود). در نتیجه تعداد ۱ یا ۲ تلاش احراز هویت ممکن است در برخی موارد مانع ثبت در گزارشها شود.
توجه داشته باشید که اگر Ncrack متوجه شود که سرور اجازه این تعداد تلاش در هر اتصال را نمیدهد، تنظیم این گزینه روی مقادیر بالا هیچ تاثیری نخواهد داشت. در این حالت، این ابزار صرفاً از همان حداکثر مجاز استفاده کرده و تنظیم شما را نادیده میگیرد.
cd time (تنظیم زمان تاخیر میان هر اتصال جدید)
تاخیر اتصال (Connection Delay)
این گزینه تاخیر زمانی اعمالشده میان هر اتصال جدید را تعیین میکند. Ncrack پیش از آغاز یک اتصال جدید به سرویس مشخصشده، به میزان زمانی که در مقدار این گزینه تعیین کردهاید منتظر میماند. هرچه این مقدار را بالاتر تنظیم کنید، سرعت Ncrack کمتر خواهد شد، اما حمله شما مخفیانهتر خواهد بود.
ابزار Ncrack به طور پیشفرض تلاش میکند اتصالات جدید را تا حد امکان با سرعت بالا برقرار کند، مشروط بر اینکه ارسال کاوشهای جدید مجاز باشد و توسط پارامترهایی مانند محدودیت اتصال (Connection Limit) که میتواند به صورت پویا افزایش یا کاهش یابد محدود نشده باشد. اگرچه این رویکرد تا زمانی که میزبان پاسخگو باقی بماند به سرعت خیرهکنندهای دست مییابد، اما میتواند به مشکلاتی چون فعال شدن دیواره آتش، کاهش پهنای باند اهداف یا شما و حتی دچار شدن سرویس مورد آزمایش به حمله منع سرویس منجر شود. با تنظیم دقیق این گزینه میتوانید از این موقعیتهای ناخوشایند جلوگیری کنید.
cr max-conattempts (تنظیم حداکثر تعداد تکرار تلاشهای اتصال)
تکرار تلاشهای اتصال (Connection Retries)
این گزینه به کاربر امکان میدهد حداکثر تعداد تلاشهای ناموفق پیاپی را در برابر آن سرویس خاص مشخص کند. اگر در هر زمان از نشست آزمودن، Ncrack موفق به برقراری ارتباط با آن سرویس مشخص نشود، آزمودن آن را به طور کامل متوقف خواهد کرد.
to time (تنظیم حداکثر زمان کل آزمودن)
مهلت زمانی (Timeout)
تعیین میکند که Ncrack چه مقدار زمان را صرف آزمودن سرویس کند، پیش از آنکه صرفنظر از یافتن یا نیافتن اعتبارنامه تا آن لحظه، کار را متوقف نماید. با این حال هر توکن احراز هویتی که تا آن زمان کشف شده باشد ذخیره شده و به طور عادی چاپ خواهد شد. Ncrack زمانی یک سرویس را پایانیافته علامتگذاری میکند که پیمایش فهرستهای نام کاربری/گذرواژه به پایان برسد یا دیگر به دلیلی جدی نتواند آن را بیازماید. اگر Ncrack کار آزمودن یک سرویس را پیش از زمان مشخصشده در این گزینه به پایان برساند، این گزینه نادیده گرفته خواهد شد.
گاهی اوقات پنجره زمانی محدودی برای پویش/آزمودن میزبانهای خود دارید. این موضوع ممکن است به دلایل مختلفی رخ دهد. یک دلیل متداول این است که فعالیت عادی کاربران نباید مختل شود و از آنجا که Ncrack میتواند بسیار تهاجمی عمل کند، ممکن است تنها در ساعات مشخصی مانند ساعات شب مجاز به پویش میزبانها باشد. همچنین پویش در چنین ساعاتی احتمال شناسایی حمله را کمتر میکند.
فراموش نکنید که Ncrack به شما اجازه میدهد واحد اندازهگیری زمان را با افزودن ‘ms’ برای میلیثانیه، ‘m’ برای دقیقه یا ‘h’ برای ساعت مشخص کنید (ثانیه واحد زمانی پیشفرض است). استفاده از آنها در این گزینه خاص بسیار راحت است، زیرا میتوانید مقداری مانند to=8h را تعیین کنید تا به Ncrack در مجموع ۸ ساعت برای آزمودن آن سرویس فرصت دهید. تنظیم زمانبندی با cron در ترکیب با این گزینه نیز میتواند ایده خوبی باشد.
-T paranoid|sneaky|polite|normal|aggressive|insane (تنظیم یک قالب زمانبندی) .
این قالبها به کاربر امکان میدهند میزان تهاجمی بودن مورد نظر خود را مشخص کنند، در حالی که انتخاب مقادیر دقیق زمانبندی را بر عهده Ncrack میگذارند. اگر میدانید که سرویس شبکه حجم بالایی از اتصالات را تحمل میکند، میتوانید از قالب تهاجمی -T4 استفاده کنید. حتی در این صورت نیز این کار بیشتر برای سرویسهای مستقر در شبکه محلی توصیه میشود. رفتن به حالت دیوانهوار -T5 توصیه نمیشود، مگر اینکه دقیقاً بدانید چه کاری انجام میدهید.
اگرچه -T0. و -T1. ممکن است برای جلوگیری از هشدارهای IDS مفید باشند، اما آزمودن حتی چند سرویس با آنها زمان فوقالعاده زیادی خواهد برد. برای چنین پویشهای طولانی، ممکن است ترجیح دهید به جای اتکا به مقادیر پیشساخته -T0 و -T1، مقادیر دقیق زمانبندی مورد نیاز خود را تنظیم کنید.
--connection-limit numprobes (تنظیم آستانه کل اتصالات همزمان)
احراز هویت (AUTHENTICATION)
این بخش روشهای تعیین فهرستهای نام کاربری و گذرواژه اختصاصی شما و همچنین حالتهای موجود برای پیمایش روی آنها را شرح میدهد. ابزار Ncrack همراه با انواع مختلفی از فهرستهای نام کاربری و گذرواژه ارائه میشود که در دایرکتوری از بسته منبع قرار دارند و سپس در دایرکتوری دادههای Ncrack که معمولاً usr/local/share/ncrack/ یا usr/share/ncrack/ است نصب میشوند. میتوانید از تعیین هرگونه فهرستی صرفنظر کنید و Ncrack از فهرستهای پیشفرض که شامل برخی از متداولترین نامهای کاربری و گذرواژهها هستند استفاده خواهد کرد. فهرست گذرواژهها بر اساس فراوانی مرتب شده است و متداولترین گذرواژهها در ابتدای فهرست قرار دارند تا ابتدا آزمایش شوند. این فهرستها از ترکیب مرتبسازی فایلهای گذرواژه فاششده عمومی و سایر تکنیکها به دست آمدهاند.
-U filename (تعیین فهرست نامهای کاربری)
نامهای کاربری برای محیطهای خاص را میتوان به روشهای متعددی جمعآوری کرد، از جمله استخراج آدرسهای ایمیل از وبسایت شرکت، جستجوی اطلاعات در پایگاههای داده whois، استفاده از تکنیک SMTP VRFY در سرورهای ایمیل آسیبپذیر یا از طریق مهندسی اجتماعی.
-P filename (تعیین فهرست گذرواژهها)
گذرواژههای رایج معمولاً از فهرستهای فاششده در نتیجه نفوذهای موفق به سایتهای عمومی مانند تالارهای گفتگو یا سایر شبکههای اجتماعی مشتق میشوند. بخش بزرگی از آنها پیشتر به طور عمومی افشا شدهاند و برخی از آنها برای گردآوری فهرستهای اختصاصی Ncrack استفاده شدهاند.
--user username_list (تعیین فهرست نامهای کاربری جداشده با کاما در خط فرمان)
--pass password_list (تعیین فهرست گذرواژههای جداشده با کاما در خط فرمان)
--passwords-first (معکوس کردن شیوه پیمایش گذرواژهها)
بیشتر ابزارهای ارزیابی احراز هویت شبکه به طور پیشفرض ترجیح میدهند فهرست گذرواژه را برای هر نام کاربری پیمایش کنند. با این حال در بیشتر موارد این شیوه نسبت به پیمایش معکوس ناکارآمدتر است. این امر به این دلیل ساده صادق است که فهرستهای گذرواژه معمولاً بر اساس فراوانی مرتب میشوند؛ به این معنی که هرچه گذرواژه رایجتر باشد، به ابتدای فهرست نزدیکتر است. بنابراین پیمایش تمام نامهای کاربری برای رایجترین گذرواژهها در وهله اول، معمولاً شانس بیشتری برای رسیدن به نتیجه مثبت دارد. با پیمایش --passwords-first در صورتی که کاربر تصمیم بگیرد نشست را زودتر متوقف کند، گذرواژههای بسیار رایج ممکن است حتی برای برخی نامهای کاربری آزمایش نشوند. با این حال این گزینه ممکن است برای مواردی که مهاجم میداند و پیشتر تایید کرده است که فهرست نام کاربری حاوی نامهای کاربری واقعی است (به جای آزمودن کورکورانه آنها) ارزشمند باشد.
--pairwise (انتخاب جفتی نامهای کاربری و گذرواژهها)
خروجی (OUTPUT)
ارزش هر ابزار امنیتی به اندازه خروجی تولیدی آن است. آزمونها و الگوریتمهای پیچیده اگر در قالبی منظم و قابلدرک ارائه نشوند، ارزش چندانی ندارند. البته هیچ قالب واحدی نمیتواند رضایت همه را جلب کند. بنابراین Ncrack قالبهای متعددی را ارائه میدهد، از جمله حالت تعاملی برای خواندن مستقیم توسط انسانها و قالب XML برای تجزیه آسان توسط نرمافزارها.
علاوه بر ارائه قالبهای مختلف خروجی، Ncrack گزینههایی برای کنترل میزان جزئیات خروجی و همچنین پیامهای اشکالزدایی ارائه میدهد. انواع خروجی را میتوان به خروجی استاندارد (stdout) یا به فایلهای نامگذاریشده ارسال کرد، که Ncrack میتواند نتایج را به آنها الحاق کند یا محتوای آنها را بازنویسی نماید.
ابزار Ncrack خروجی را در سه قالب مختلف در دسترس قرار میدهد. قالب پیشفرض خروجی تعاملی (Interactive output) نامیده میشود و به خروجی استاندارد (stdout) ارسال میگردد. همچنین خروجی معمولی (Normal output) وجود دارد که شبیه خروجی تعاملی است، با این تفاوت که اطلاعات و هشدارهای زمان اجرای کمتری را نمایش میدهد زیرا انتظار میرود پس از پایان پویش تحلیل شود تا حین اجرا.
خروجی XML یکی از مهمترین انواع خروجی است، زیرا میتوان آن را به HTML تبدیل کرد، به سادگی توسط برنامههایی مانند رابطهای گرافیکی Ncrack تجزیه نمود یا در پایگاههای داده ایمپورت کرد. در حال حاضر، خروجی XML هنوز پیادهسازی نشده است.
در حالی که خروجی تعاملی حالت پیشفرض است و هیچ گزینه خط فرمانی برای آن وجود ندارد، دو گزینه قالب دیگر از دستور زبان یکسانی استفاده میکنند. آنها یک آرگومان میپذیرند که نام فایلی است که نتایج باید در آن ذخیره شوند. میتوان چندین قالب را مشخص کرد، اما هر قالب را تنها یک بار میتوان تعیین نمود. برای مثال، ممکن است بخواهید خروجی معمولی را برای بررسی خودتان ذخیره کنید و همزمان خروجی XML همان پویش را برای تحلیل برنامهنویسی نگه دارید. میتوانید این کار را با گزینههای -oX myscan.xml -oN myscan.ncrack انجام دهید. اگرچه این بخش از نامهای سادهای مانند myscan.xml برای اختصار استفاده میکند، اما به طور کلی نامهای توصیفیتر توصیه میشوند. نامهای انتخابی به سلیقه شخصی بستگی دارند. یک طرح میتواند استفاده از نامهای طولانی باشد که تاریخ پویش و یک یا دو کلمه توصیفکننده پویش را در بر میگیرند و در پوشهای به نام شرکت مورد ارزیابی قرار داده میشوند.
در حالی که این گزینهها نتایج را در فایلها ذخیره میکنند، Ncrack همچنان طبق معمول خروجی تعاملی را در stdout چاپ میکند. برای مثال، دستور nmap -oX myscan.xml [target] خروجی XML را در myscan.xml چاپ میکند و خروجی استاندارد را با همان نتایج تعاملی که در صورت عدم تعیین -oX چاپ میکرد پر میسازد. شما میتوانید با ارسال یک کاراکتر خط تیره (-) به عنوان آرگومان یکی از انواع قالب، این رفتار را تغییر دهید. این کار باعث میشود Ncrack خروجی تعاملی را غیرفعال کرده و به جای آن نتایج را با قالبی که تعیین کردهاید به جریان خروجی استاندارد ارسال کند. بنابراین دستور nmap -oX - target تنها خروجی XML را به stdout ارسال خواهد کرد. خطاهای جدی همچنان ممکن است به جریان خطای استاندارد (stderr) ارسال شوند.
برخلاف برخی آرگومانهای Ncrack، وجود فاصله میان فلگ گزینه فایل گزارش (مانند -oX) و نام فایل یا خط تیره الزامی است.
تمامی این آرگومانها از تبدیلهای شبه strftime در نام فایل پشتیبانی میکنند. H% ، M% ، S% ، m% ، d% ، y% و Y% همگی دقیقاً مشابه strftime هستند. T% معادل H%M%S% ، R% معادل H%M% و D% معادل m%d%y% است. نویسه % به همراه هر کاراکتر دیگری صرفاً همان کاراکتر را تولید میکند (%% یک علامت درصد میدهد). بنابراین -oX 'scan-%T-%D.xml' از یک فایل XML به فرم scan-144840-121307.xml استفاده خواهد کرد.
ابزار Ncrack همچنین گزینههایی برای کنترل میزان جزئیات پویش و الحاق به فایلهای خروجی به جای بازنویسی آنها ارائه میدهد. تمامی این گزینهها در ادامه شرح داده شدهاند.
قالبهای خروجی Ncrack
-oN filespec (خروجی معمولی) .
-oX filespec (خروجی XML) .
-oA basename (خروجی به تمام قالبها) .
گزینههای جزئیات و اشکالزدایی (Verbosity and debugging options)
-v (افزایش سطح جزئیات) .
-d [level] (افزایش یا تنظیم سطح اشکالزدایی) .
خروجی اشکالزدایی زمانی کاربرد دارد که به وجود اشکالی در Ncrack مشکوک باشید، یا صرفاً در مورد اینکه Ncrack چه کاری انجام میدهد و چرا، سردرگم شده باشید. از آنجا که این قابلیت بیشتر برای توسعهدهندگان در نظر گرفته شده است، خطوط اشکالزدایی همیشه خودتوضیح نیستند. اگر خطی را متوجه نمیشوید، تنها راههای شما نادیده گرفتن آن، جستجوی آن در کد منبع یا درخواست راهنمایی از فهرست پستی توسعهدهندگان (nmap-dev) است. برخی خطوط واضح هستند، اما با افزایش سطح اشکالزدایی، پیامها پیچیدهتر میشوند.
--nsock-trace level (تنظیم سطح ردگیری nsock) .
--log-errors (ثبت خطاها/هشدارها در فایل خروجی حالت معمولی) .
یک جایگزین برای --log-errors هدایت خروجی تعاملی (از جمله جریان خطای استاندارد) به یک فایل است. اکثر پوستههای یونیکس این روش را آسان میکنند، گرچه ممکن است در ویندوز دشوار باشد.
گزینههای گوناگون خروجی
--append-output (الحاق به فایلهای خروجی به جای بازنویسی) .
گزینههای گوناگون (MISCELLANEOUS OPTIONS)
این بخش برخی گزینههای مهم (و نهچندان مهم) را شرح میدهد که در بخشهای دیگر قرار نمیگیرند.
--resume file (ادامه نشست ذخیرهشده قبلی) .
-f (توقف آزمودن سرویس پس از یافتن یک اعتبارنامه) .
مهاجمان مکرراً تلاش میکنند چندین سرویس را به طور موازی بیازمایند تا شانس یافتن یک جفت اعتبارنامه معتبر را به حداکثر برسانند. با توجه به اینکه یک شبکه قویتر از ضعیفترین حلقه خود نیست، این گزینه و به ویژه همتای -f -f آن اغلب برای کاهش احتمال شناسایی و جلوگیری از هدر رفتن بیهدف منابع شبکه به کار میروند.
-6 (فعالسازی آزمودن IPv6) .
دستور زبان همانند همیشه است، با این تفاوت که گزینه -6 را نیز اضافه میکنید. البته اگر به جای نام میزبان یک آدرس را مشخص میکنید، باید از ساختار IPv6 استفاده نمایید. یک آدرس ممکن است شبیه 3ffe:7501:4819:2000:210:f3ff:fe03:14d0 باشد، بنابراین استفاده از نامهای میزبان توصیه میشود. خروجی همانند معمول به نظر میرسد و آدرس IPv6 در خط “Discovered credentials” تنها نشانه استفاده از IPv6 است.
اگرچه IPv6 جهان را دگرگون نکرده است، اما در برخی کشورها (معمولاً آسیایی) کاربرد قابلتوجهی دارد و اکثر سیستمعاملهای مدرن از آن پشتیبانی میکنند. برای استفاده از Ncrack با IPv6، هم مبدا و هم هدف پویش شما باید برای IPv6 پیکربندی شده باشند. اگر ارائهدهنده خدمات اینترنتی (ISP) شما (مانند بیشتر آنها) آدرسهای IPv6 به شما اختصاص نمیدهد، کارگزاران تونل رایگان به طور گسترده در دسترس هستند و احتمالاً با Ncrack به خوبی کار خواهند کرد. یک سرویس محبوب کارگزار تونل IPv6 در نشانی http://www.tunnelbroker.net در دسترس است. تونلهای 6to4 رویکرد محبوب و رایگان دیگری هستند.
-sL (پویش فهرستی) .
--datadir directoryname (تعیین مسیر سفارشی فایل دادههای Ncrack) .
--proxy type://proxy:port (برقراری اتصالات از طریق پراکسیهای socks4، 4a و http) .
-V; --version (چاپ شماره نسخه) .
-h; --help (چاپ صفحه راهنمای خلاصه) .
تعامل در زمان اجرا (RUNTIME INTERACTION)
در حین اجرای Ncrack، تمام کلیدهای فشردهشده دریافت میشوند. این کار به شما امکان میدهد بدون متوقف کردن و راهاندازی مجدد برنامه، با آن تعامل داشته باشید. برخی کلیدهای ویژه گزینهها را تغییر میدهند، در حالی که هر کلید دیگری یک پیام وضعیت در مورد پویش چاپ میکند. قاعده به این صورت است که حروف کوچک میزان خروجی را افزایش میدهند و حروف بزرگ میزان خروجی را کاهش میدهند. همچنین میتوانید برای راهنمایی کلید ‘?’ را فشار دهید.
v / V
d / D
p / P
?
هر کلید دیگر
Stats: 0:00:20 elapsed; 0 services completed (1 total)
Rate: 6.26; Found: 1; About 13.27% done; ETC: 21:06 (0:02:17 remaining)
پیمانهها (MODULES)
معماری Ncrack ماژولار است و هر ماژول با یک سرویس یا پروتکل خاص مطابقت دارد. در حال حاضر، Ncrack از پروتکلهای SSH, RDP, FTP, Telnet, HTTP(S), POP3(S), IMAP, SMB, VNC, SIP Redis, PostgreSQL, MySQL, MSSQL, MongoDB, Cassandra, WinRM, OWA پشتیبانی میکند. اگر میخواهید ماژولهای اختصاصی Ncrack خود را بنویسید و مشارکت کنید، حتماً راهنمای توسعهدهندگان Ncrack را در نشانی زیر مطالعه کنید: http://nmap.org/ncrack/devguide.html در ادامه به نکات کلیدی برای هر یک از آنها میپردازیم.
ماژول FTP
ماژول Telnet
ماژول SSH
آزمون فراگیر SSH دارای چالشها و ریزهکاریهای فراوانی است و توصیه میشود مقالهای را که برای توضیح آنها نوشته شده است مطالعه کنید. آخرین نسخه سند «Hacking the OpenSSH library for Ncrack» را میتوانید در مسیر docs/openssh_library.txt یا در نشانی http://sock-raw.org/papers/openssh_library بیابید.
ماژول HTTP(S)
ماژول SMB
ماژول RDP
پروتکل RDP یکی از پیچیدهترین پروتکلها است که حتی فقط برای مرحله احراز هویت به تبادل بستههای متعددی نیاز دارد. به همین دلیل آزمودن آن زمان زیادی میبرد و احتمالاً کندترین ماژول است. مرحله اتصال به طور خلاصه در نشانی زیر شرح داده شده است: http://msdn.microsoft.com/en-us/library/cc240452%28v=PROT.10%29.aspx که در آن میتوانید نموداری از بستههای مختلف درگیر را نیز مشاهده کنید. در برابر سرورهای RDP در نسخههای Windows XP باید مراقبت ویژهای به عمل آید، زیرا آنها نمیتوانند چندین اتصال را به طور همزمان مدیریت کنند. توصیه میشود از یک قالب زمانبندی بسیار کند استفاده کنید یا حتی بهتر است حداکثر اتصالات موازی را محدود نمایید با استفاده از گزینههای زمانبندی مانند CL (محدودیت اتصال) یا cd (تاخیر اتصال) در برابر سرورهای RDP ویندوز XP (و موارد مشابه). ویندوز ویستا و بالاتر از این محدودیت رنج نمیبرند.
ماژول VNC
ماژول POP3(S)
ماژول IMAP
ماژول SIP
ماژول Redis
ماژول PostgreSQL
ماژول MySQL
ماژول MSSQL
ماژول MongoDB
ماژول Cassandra
ماژول OWA
ماژول WinRM
ماژول DICOM
انجمن (Association): این مرحله اولیهای است که تقریباً تمام سرورهای PACS به آن نیاز دارند. با ارسال یک درخواست A-ASSOCIATE با عنوان موجودیت کاربردی (AET) فراخواندهشده درست، کلاینت با سرور ارتباط برقرار میکند و سپس میتواند در مراحل بعدی به انجام درخواستهای جستجو / بازیابی بپردازد. این حالتی است که Ncrack در حال حاضر با پیمایش فیلد username از آن پشتیبانی میکند. بنابراین برای آزمودن AET سرور، میتوانید فهرستی از AETها را با گزینه U- مشخص کرده و سپس یک گذرواژه خالی تعیین کنید. مثال: ncrack dicom://127.0.0.1 -U aet.txt --pass DOESNOTMATTER
سرویس جستجو (Find Service): این مرحله شامل توانایی پرسوجو از سرور PACS برای پروندههای بیماران مرتبط با تصاویر DICOM است. این مرحله پس از انجام فاز انجمن توسط کلاینت انجام میشود. یک درخواست C-FIND باید با AET فراخواننده درست ارسال شود. دانستن AET کلاینت مجاز درست (یا AET فراخواننده) توسط سرورهای PACS که به صورت امن پیکربندی شدهاند الزامی است. بسیاری از سرورهای PACS به طور پیشفرض به این نیاز ندارند.
بازیابی تصاویر (Retrieve Images): این مرحله به کلاینت امکان بازیابی تصاویر DICOM را میدهد. امنترین سرورهای PACS نیاز دارند که کلاینت یک IP مجاز مشخص برای ارسال درخواست C-MOVE / C-STORE پس از انجام دو مرحله بالا داشته باشد.
ماژول MQTT
ماژول Wordpress
ماژول CVS
اشکالات (BUGS)
همانند نویسندگانش، Ncrack نیز کامل و بینقص نیست. اما شما میتوانید با ارسال گزارش اشکال یا حتی نوشتن وصلهها به بهتر شدن آن کمک کنید. اگر Ncrack آنگونه که انتظار دارید رفتار نمیکند، ابتدا به آخرین نسخه موجود از نشانی http://nmap.org/ncrack ارتقا دهید. اگر مشکل همچنان ادامه داشت، کمی جستجو کنید تا متوجه شوید آیا این مشکل پیشتر کشف و حل شده است یا خیر. پیام خطا را در صفحه جستجوی ما در نشانی http://insecure.org/search.html یا در گوگل جستجو کنید. همچنین بایگانی nmap-dev را در نشانی http://seclists.org بررسی کنید. همچنین این صفحه راهنما را به طور کامل مطالعه کنید. اگر در حال توسعه ماژول اختصاصی Ncrack خود هستید، مطمئن شوید که ابتدا راهنمای توسعهدهندگان Ncrack را در نشانی http://nmap.org/ncrack/devguide.html خواندهاید. اگر هیچیک از اینها نتیجه نداد، گزارش اشکال را به نشانی nmap-dev@insecure.org ارسال کنید. لطفاً هر آنچه درباره مشکل متوجه شدهاید، به همراه نسخه Ncrack و نسخه سیستمعاملی که روی آن اجرا میشود را ذکر کنید. گزارشهای مشکل و پرسشهای مربوط به استفاده از Ncrack که به nmap-dev@insecure.org ارسال میشوند، بسیار بیشتر از مواردی که مستقیماً برای Fyodor ارسال میشوند شانس پاسخگویی دارند. اگر پیش از ارسال پیام در فهرست nmap-dev مشترک شوید، پیام شما از صف بازبینی عبور کرده و سریعتر به دست ما میرسد. اشتراک در نشانی زیر انجام میشود: http://cgi.insecure.org/mailman/listinfo/nmap-dev
وصلههای کد برای رفع اشکالات حتی از گزارشهای اشکال نیز بهتر هستند. دستورالعملهای پایه برای ایجاد فایلهای وصله با تغییرات شما در نشانی زیر در دسترس است: http://nmap.org/data/HACKING وصلهها را میتوانید به nmap-dev (توصیهشده) یا مستقیماً برای Fyodor ارسال کنید.
نویسندگان (AUTHORS)
ithilgore (Fotios (Fotis) Chantzis) ithilgore@sock-raw.org (http://sock-raw.org)
Fyodor fyodor@insecure.org (http://insecure.org)
حق نشر و مجوز (NCRACK COPYRIGHT AND LICENSING)
اگرچه Ncrack به همراه Nmap توزیع نمیشود، اما بخشی از پروژه Nmap است و تحت همان شرایط مجوز و عدم ضمانت قرار دارد، طبق آنچه در نشانی زیر شرح داده شده است: http://nmap.org/book/man-legal.html
| 08/23/2019 | Ncrack |