۵.۰۶.۱۳۸۷

نرم‌افزار Nessus چيست؟


Nessus يک نرم‌افزار براي Vulnerability Scanning است. اگر بخوام دقيق‌تر بگم بهترين نرم‌افزار Vul Scanning که به صورت Network-Based به کار ميره همين نرم‌افزار است. مهم‌ترين ويژگي اين نرم‌افزار مجاني و Open-Source بودن آن است ( اگرچه تو ايران همه‌چي مجانيه! ) اين نرم‌افزار توسط Renaud Deraison نوشته شده و توسط او توسعه پيدا مي‌کند. الان که من دارم مقاله رو مي‌نويسم، نسخه 2.0.7 اون ارائه شده است.
ويژگي مهم ديگر اون داشتن حالت Client-Server است. فرض کنيد که از چند کامپيوتر به صورت شبکه‌اي استفاده مي‌کنيد. اگر بخواهيد در تعدادي از اين‌ کامپيوترها از Nessus استفاده کنيد، کافي است فقط در يکي از آنها سرور Nessus و روي همه Client اونو اجرا کنيد. ولي اگه فقط يه کامپيوتر داريد و مي‌خواين روي اون از Nessus استفاده کنيد، هم کلاينت و هم سرور Nessus رو بايد نصب و اجرا کنيد.
در حال حاضر Server نرم‌افزار Nessus فقط براي سيستم‌هاي عامل مبتني بر يونيکس مثل لينوکس، OpenBSD Unix و... در دسترس است ونسخه ويندوزي وجود نداره. پس اگه روي يک کامپيوتر هم کلاينت و هم سرور اونو نصب مي‌کنيد، سيستم‌عامل اون کامپيوتر بايد مبتني بر يونيکس باشه. به عبارت ديگه اگه از سيستم‌عامل ويندوز استفاده مي‌کنيد، وقت خودتون رو با خوندن اين مقاله تلف نکنيد! اما راجع به کلاينت Nessus بايد عرض کنم که نسخه‌هاي ويندوز ( به نام NessusWX ) و نسخه جاوا و نيز نسخه‌هاي مبتني بر يونيکس وجود داره. يعني اينکه اگه چند تا کامپيوتر به صورت شبکه در اختيار دارين، اوني که قراره سرور Nessus روش نصب بشه بايد مبتني بر يونيکس باشد و بقيه که کلاينت هستند، مي‌تونن هر چيزي باشند. اميدوارم متوجه شده باشين!
من در اين مقاله فرض مي کنم که شما سيستم‌عامل لينوکس داريد و مي‌خواهيد هم سرور و هم کلاينت Nessus رو روي همون کامپيوتر نصب کنيد. براي استفاده از Nessus بايد لينوکس شما هم nmap و هم gtk و هم OpenSSL رو داشته باشه که معمولا داره ( فقط اگه nmap ندارين، يه فکري براش بکنيد!‌)


- از کجا Nessus رو داون‌لود کنم؟

براي داون‌لود Nessus بايد به به آدرس http://www.nessus.org/download.html مراجعه کنيد. در اين صفحه مي‌تونيد آخرين نسخه از Nessus رو ببينيد که الان Nessus 2.0 هست که به صورت يک لينک داخل جدول خاکستري رنگ هستش. روي همون کليک کنيد، تا به يک صفحه ديگر منتقل شويد. در اين صفحه جديد دو تا جدول مي‌بينيد که يکي وسط‌هاي صفحه و ديگري آخرهاي صفحه است. بالاي جدول اولي نوشته شده:
You can find the installer here
ما از همين جدول استفاده مي‌کنيم. توجه کنيد که Nessus را مي‌توان به سه شکل مختلف نصب کرد که ما همين روش که nessus-installer نام داره رو انتخاب مي‌کنيم. از همين جدول با توجه به منطقه جغرافيايي که هستيد، روي يکي از لينک‌ها کليک کنيد ( هرچقدر اون کشور به شما نزديک‌تر باشه سرعت داون‌لود بالاتر ميره ولي در کل همه لينک‌ها قرتي‌بازيه! هر کدوم رو خواستيد کليک کنيد ). شما به يک صفحه جديد منتقل مي‌شويد و در اين صفحه سه تا فايل وجود داره به نام‌هاي MD5 و README.txt و nessus-installer.sh که از اين سه تا nessus-installer.sh رو بايد داون‌لود کنيد که فکر کنم سه چهار مگي باشه در مورد فايل MD5 هم بگم که مي‌تونين داون‌لودش کنيد يا نکنيد. اگه خيلي وسواس داريد که مطمئن بشيد اين نرم‌افزار که داون‌لود مي‌کنيد دقيقا همونيه که Nessus.org توليد کرده ( يعني اينکه نرم‌افزار تغيير يافته نيست و کدهاي اضافي مثل spy-ware و ... اينا نداره) اين فايل رو هم مي‌تونيد داون‌لود کنيد، تا بعد از اينکه فايل nessus-installer.sh رو گرفتيد به کمک دستور md5sum در لينوکس اين موضوع رو تست کنيد. بنابراين فايل اصلي و لازم همون nessus-installer.sh هستش.


- فايل nessus-installer.sh رو داون‌لود کردم. چطوري نصب کنم؟

اولا بايد در مود root يعني super-user به لينوکس login کرده باشيد. حالا shell لينوکس رو باز کرده و به دايرکتوري که فايل رو اونجا داون‌لود کرده‌ايد وارد مي‌شويد. مثلا اگر در root/Desktop/ فايل رو داون‌لود کرده‌ايد، مي‌نويسيد:
# cd /root/Desktop
حالا دستور زير رو مي‌نويسيد:
# sh nessus-installer.sh
بلافاصله صفحه پاک مي‌شه و نوشته زير مياد (البته صفحه پاک نمي‌شه فقط اينکه انقدر نوشته مياد که به نظر ميرسه صفحه پاک شده):
--------------------------------------------------------------------------------
NESSUS INSTALLATION SCRIPT
--------------------------------------------------------------------------------


Welcome to the Nessus Installation Script !

This script will install Nessus 2.0.7 (STABLE) on your system.

Please note that you will need root privileges at some point so that
the installation can complete.

Nessus is released under the version 2 of the GNU General Public License
(see http://www.gnu.org/licences/gpl.html for details).

To get the latest version of Nessus, visit http://www.nessus.org


Press ENTER to continue
دکمه Enter رو فشار مي‌دهيد. يه سري چرت و پرت نوشته ميشه و صفحه پاک شده و متن زير مياد:
--------------------------------------------------------------------------------
Nessus installation : installation location
--------------------------------------------------------------------------------


Where do you want the whole Nessus package to be installed ?
[/usr/local]

اين ميگه که Nessus رو کجا نصب کنم؟ شما دکمه Enter رو فشار بدين که در محل پيش‌فرض يعني usr/local/ نصب بشه. حالا صفحه پاک ميشه و نوشته زير مياد:
--------------------------------------------------------------------------------
Nessus installation : Ready to install
--------------------------------------------------------------------------------


Nessus is now ready to be installed on this host.
The installation process will first compile it then install it


Press ENTER to continue
بازهم چرت و پرت‌ها شروع به ظاهر شدن مي‌کنند ولي اين‌دفعه يکم بيشتر طول ميکشه که اراجيف تموم بشن ( اينا ابدا اراجيف نيستند ولي چون ما به صورت اتوماتيک داريم نصب مي‌کنيم، اصلا لزومي نداره فکرتون رو خراب بکنيد! ) حالا مي‌تونين يه چايي واسه خدتون بريزين و چند دقيقه استراحت کنيد.
وقتي کار نصب تموم شد، صفحه زير ظاهر ميشه:
--------------------------------------------------------------------------------
Nessus installation : Finished
--------------------------------------------------------------------------------


Congratulations ! Nessus is now installed on this host

. Create a nessusd certificate using /usr/local/sbin/nessus-mkcert
. Add a nessusd user use /usr/local/sbin/nessus-adduser
. Start the Nessus daemon (nessusd) use /usr/local/sbin/nessusd -D
. Start the Nessus client (nessus) use /usr/local/bin/nessus
. To uninstall Nessus, use /usr/local/sbin/uninstall-nessus

. Remember to invoke 'nessus-update-plugins' periodically to update your
list of plugins

. A step by step demo of Nessus is available at :
http://www.nessus.org/demo/


Press ENTER to quit
يه Enter بزنيد که نصب تموم بشه. اين صفحه آخر اطلاعات مهمي داره که توضيح مي‌دم.
اولين جمله اينه:
Create a nessusd certificate using /usr/local/sbin/nessus-mkcert
پس ما در Shell مي‌نويسيم:
# /usr/local/sbin/nessus-mkcert
وقتي Enter بزنيم، صفحه پاک شده و متن زير ظاهر ميشه:
-------------------------------------------------------------------------------
Creation of the Nessus SSL Certificate
-------------------------------------------------------------------------------

This script will now ask you the relevant information to create the SSL
certificate of Nessus. Note that this information will *NOT* be sent to
anybody (everything stays local), but anyone with the ability to connect to your
Nessus daemon will be able to retrieve this information.


CA certificate life time in days [1460]:
از همينجا تا آخر کار ۶ تا Enter به ترتيب مي‌زنيم تا کار ايجاد certification تموم بشه. به صورت زير:
CA certificate life time in days [1460]:
Server certificate life time in days [365]:
Your country (two letter code) [FR]:
Your state or province name [none]:
Your location (e.g. town) [Paris]:
Your organization [Nessus Users United]:
بعد صفحه زير مياد:
-------------------------------------------------------------------------------
Creation of the Nessus SSL Certificate
-------------------------------------------------------------------------------

Congratulations. Your server certificate was properly created.

/usr/local/etc/nessus/nessusd.conf updated

The following files were created :

. Certification authority :
Certificate = /usr/local/com/nessus/CA/cacert.pem
Private key = /usr/local/var/nessus/CA/cakey.pem

. Nessus Server :
Certificate = /usr/local/com/nessus/CA/servercert.pem
Private key = /usr/local/var/nessus/CA/serverkey.pem

Press [ENTER] to exit
حالا آخرين Enter رو هم مي‌زنيم، تا کار تموم بشه.
پس ما تا حالا هم nessus-installer.sh رو اجرا کرديم و هم SSL Certificate براي Nessus درست کرديم. حالا بايد يک user روي سرور nessus درست کنيم که بتونيم بعدا از طريق او به نرم‌افزار login کنيم. براي اين‌کار از دستور زير استفاده مي‌کنيم:
# /usr/local/sbin/nessus-adduser
به محض اجراي اين دستور متن زير ظاهر ميشه:
Add a new nessusd user
----------------------

Login :
اين يعني يک username وارد کن. اسم مورد نظر رو وارد مي‌کنيم و بعد سطر زير مياد:
Authentication (pass/cert) [pass] :
اين يعني روش هويت‌سنجي چي باشه. ما Enter مي‌زنيم که همون پيش‌فرض يعني pass بمونه. بعد سطر زير مياد:
Login password :
اينجا بايد پسورد براي يوزر رو وارد کنيم. اول يه نگاه به چپ، بعد يه نگاه به راست، بعد يه نگاه به عقب! حالا پسورد رو بنويسيد ( از کاراکتر * موقع وارد کردن پسورد خبري نيست. واسه همين مراسم رو بجا آورديم! )
حالا اين متن ظاهر ميشه:
User rules
----------
nessusd has a rules system which allows you to restrict the hosts
that ali has the right to test. For instance, you may want
him to be able to scan his own host only.

Please see the nessus-adduser(8) man page for the rules syntax

Enter the rules for this user, and hit ctrl-D once you are done :
(the user can have an empty rules set)
اينجا ميشه يه سري Rules واسه user تعريف کنيم که دامنه جاهايي که مي‌تونه اسکن کنه رو محدود کنيم، ولي فعلا لازم نيست، پس ترکيب ctrl-D رو فشار مي‌ديم. حالا اين ظاهر ميشه:
Login : xxxxxxxxxx
Password : yyyyyyyyy
DN :
Rules :

Is that ok ? (y/n) [y]
يه Enter مي‌زنيم که کار تموم بشه.
تبريک مي‌گم. نرم‌افزار nessus به همين راحتي نصب شد!


- نرم‌افزار رو نصب کردم. حالا چطوري nessus را اجرا کنيم؟

۱- هر بار که کامپيوتر رو restart مي‌‌کنيد، اگه بخواين از nessus استفاده کنيد، اول بايد سرور nessus رو اجرا کنيد. براي اجرا کردن سرور nessus که به اون nessus daemon يا به شکل خلاصه nessusd مي‌گن، دستور زير رو مي‌نويسيم:
# /usr/local/sbin/nessusd -D
به اين راحتي سرور nessus راه‌اندازي مي‌شود.
۲- حالا کلاينت رو اجرا مي‌کنيم. نکته مهم اينکه هر چند تا کلاينت که بخواين مي‌تونين اجرا کنيد. براي اين کار از دستور زير استفاده مي‌شود:
# /usr/local/bin/nessus
با اجراي اين دستور پنجره نرم‌افزار ظاهر ميشه. توجه کنيد که nessus در حالت متني هم کار مي‌کنه ولي استفاده از حالت گرافيکي راحت‌تر است.


- پنجره کلاينت nessus باز شده است. چگونه از nessus استفاده کنيم؟

در صفحه اول login-name و password رو وارد کنيد. اگر براي بار اول login مي‌کنيد، ممکن است که پنجره‌اي باز شود به اسم SSL Setup که داراي سه سطر با دکمه راديويي است که اولي را که به صورت پيش‌فرض انتخاب شده رو تغيير نمي‌دهيم و دکمه OK رو فشار مي‌دهيم. ولي اگر بار اول نباشد، اين پنجره ظاهر نمي‌‌شود و اگر username و password درست باشد، برگه دوم که Plugins نام دارد باز مي‌شود. که ظاهري شبيه به اين دارد:



در مورد Plugins بايد توضيح بيشتري بدم. ميشه گفت Plugins قلب نرم‌افزار nessus است. مثلا فرض کنيد که nessus مي‌خواد تست کنه که آيا قرباني مشکلي به اسم Unicode bug دارد يا نه. واسه اين کار بايد يک Plugin خاص داشته باشد که اين مطلب رو تست کنه. Plugin ها به صورت فايل‌هاي جدايي هستند که معمولا به زبان NASL که مخصوص nessus است نوشته مي‌شوند (اگرچه مي‌توان با توابع مخصوص nessus به زبان C هم Plugin نوشت ). در قسمت بالاي پنجره مي‌بينيد که در آن Plugins دسته‌بندي شده‌اند مثل Windows و SNMP و ... هر کدوم را که انتخاب کنيد، در پايين پنجره ليست Plugins مرتبط ظاهر ميشه. و مي‌توان اون‌ها رو فعال يا غير فعال کرد. هر Plugins ي که فعال باشه، روي قرباني تست خواهد شد و اگه nessus تشخيص بده قرباني اون مشکل رو داره، اونو گزارش خواهد کرد. در حال حاضر نرم‌افزار nessus با بيش از هفت‌صد Plugin عرضه ميشه يعني مي‌تونه بيش از ۷۰۰ نوع حفره امنيتي ( و گاه اطلاعات مهم رو ) به ما ارائه بده و در واقع قدرت nessus در همين plugin هاست. مرتبا plugin هاي جديدي واسه حفره‌هاي امنيتي جديدي که کشف مي‌شن نوشته ميشه و به سايت اضافه ميشه که بعدا توضيح مي‌دم چطوري اين plugin هاي جديد رو داون‌لود کنيم.
اگه بخوام به‌صورت مختصر بگم، ما در اين برگه مشخص مي‌کنيم کدام Vul ها تست بشن روي سرور که nessus ببينه اون vul هست يا نه!
بر خلاف عقيده بعضي‌ها بايد عرض کنم که nessus سايت يا سروري رو hack نمي‌کنه، فقط به ما کمک مي‌کنه که بدونيم واسه هک کردن اون سرور از چه راهي بايد وارد بشيم!
نکته بعدي اينکه nessus بعضي از plugin ها رو به نام dangerous plugins معرفي مي‌کنه که plugin هايي هستند که اگه روي يه سرور تست بشوند ممکنه که کامپيوتر قرباني hang کنه يا کند بشه يا restart بشه. اگه بخوايم همه plugin ها روي قرباني تست بشه، دکمه Enable all را فشار مي‌ديم و اگه بخوايم همه رو بجز اونايي که خطرناک هستند، تست کنيم، دکمه Enable all but dangerous plugins رو انتخاب مي‌کنيم و اگه بخوايم همه عير فعال بشوند، disable all رو کليک مي‌کنيم.
برگه بعدي Prefs نام دارد. در اين برگه مي‌توان تنظيماتي در مورد Plugin ها انجام داد. مثلا اگه لازم به Ping کردن باشه، ميشه مشخص کرد که TCP يا ICMP باشد. يا اگر اطلاعاتي راجع به SMB يا FTP مثل username يا password داريم وارد کنيم و ... معمولا اين برگه رو تغيير نمي‌ديم.
برگه بعدي Scan Options است. در اين برگه مي‌توان مشخص کرد چه port هايي اسکن شود و ... که اين برگه‌ را هم تغيير نمي‌ديم. دقت کنيد که Port Scanning در nessus از طريق nmap صورت مي‌گيرد.
آخرين برگه مهم Target Selection نام دارد که مشخص مي‌کند که کجا رو مي‌خوايم اسکن کنيم. چند مثال از مواردي که در قسمت target(s) ميشه نوشت رو مي‌گم:
۱- اگه بخوايم ip به شماره ۱۹۲.۱۳۰.۱۲.۴۵ رو اسکن کنيم:
192.130.12.45
۲- اگه بخوايم ip هايي رو سه رقم اول اون ۱۹۲ و ۱۳۰ و ۱۲ و رقم آخر هم بين ۱۰ تا ۳۰ باشد رو تست کنيم:
192.130.12.10-30
۳- اگه بخوايم ip هايي رو که سه رقم اول همون بالايي‌ها و رقم آخر از ۰ تا ۲۵۵ باشد رو اسکن کنيم، مي‌شود به دو صورت نوشت:
192.130.12.0-255
192.130.12.0/24
۴- اگه بخوايم دو تا ip جدا رو تست کنيم، با يک کاما (,) از هم جدا مي‌کنيم:
192.130.12.25,192.125.46.120
۵- اگه بخوايم از روي دومين يک سرور (سايت) رو اسکن کنيم، دومين رو مي‌نويسيم:
حالا که همه‌چي آماده است، دکمه Start the Scan رو از پايين پنجره کليک مي‌کنيم که کار اسکن شروع بشه.


- بعد از کليک کردن Start the Scan چه اتفاقي مي‌افتد؟

اين پرسيدن داره؟! خوب اسکن شروع ميشه. توجه کنيد که با توجه به تعداد Plugin هاي انتخابي و و و ... زمان مي‌تونه تا ۳۰ دقيقه يا بيشتر هم طول بکشه ( يکي از ايرادهايي که به nessus وارد ميشه،‌کند بودن اونه ) خلاصه تو اين مدت بهتره بريد ناهارتون رو هم بخوريد! بعد از اتمام کار يه پنجره باز ميشه که بيان مي‌کنه چه حفره‌اي امنيتي در کامپيوتر قرباني کشف شده است. اين حفره‌ها درجه‌بندي شده هستند. مثلا بعضي‌ها در حد Low يعني کم خطر، بعضي در حد Medium ، بعضي در حد High يعني خطرناک و بعضي هم در حد Serious يعني فاجعه! هستند. اونايي که High يا Serious هستند معمولا اگه ازشون استفاده بشه، ميشه سرور رو هک کرد. البته بايد false positive رو هم در نظر داشت، يعني مواردي که nessus يک حفره رو گزارش مي‌کنه ولي حفره‌اي در کار نيست!
حالا شايد بپرسيد که وقتي nessus يه حفره رو کشف کرد، چظور از طريق اون حفره به کامپيوتر قرباني نفوذ کنيم؟
همون‌طور که گفتم با خود nessus نمي‌شه. اما nessus در اکثر موارد يه CVE به ما ميده که با کليک روي اون لينک مي‌تونيم، با کمي گشتن اينور و اونور exploit واسه اون حفره پيدا کنيم و دست به عمل کثيفي به اسم هک بزنيم! توجه کنيد که در خيلي از کشورها يه port Scanning ساده هم جرم محسوب ميشه، پس مراقب باشيد
در همان پنجره‌اي که نتايج رو نشون ميده، يه دکمه به اسم Save as وجود داره که به کمک اون ميشه نتايج رو در قالب‌هاي مختلفي مثل text و html با نمودارها و... ذخيره کرد؛ تا بعدا دقيق‌تر بررسي بشوند.


- از ديدگاه يک هکر يا يک متخصص امنيت شبکه، nessus در چه جايگاهي است؟

مسلما جايگاه خيلي خيلي بلندي نيست! اين نرم‌افزار فقط مي‌تونه حفره‌هايي رو کشف کنه که plugin براش داشته باشه. از ديدگاه يک هکر، تجربه بسيار مهم‌تر از ابزاري چون nessus است ( ضمنا nessus آنقدر ردپا بجا مي‌ذاره که قابل چشم‌پوشي نيست ) و از ديدگاه يک متخصص امنيت شبکه حتي اگر nessus هيچ حفره امنيتي را هم پيدا نکند،‌دليل بر امن بودن ۱۰۰٪ اون سرور نيست. مخلص کلام اينکه nessus نرم‌افزار خوبي است ولي خدا نيست!!


- نکاتي راجع به nessus

۱- گفتم که Plugin ها بصورت فايل‌هاي جداگانه هستند. اگه بخواين ببينيد که اين فايل‌ها چه شکلي‌اند يا چه اسم‌هايي دارند يا اينکه در حال‌ حاضر چند plugin داريد به دايرکتوري usr/local/lib/nessus/plugin/ برويد. با دستور زير :
# cd /usr/local/lib/nessus/plugin
# ls
۲- با تايپ دستور زير به فولدر usr/local/sbin/ رفته و دستور ls رو صادر کنيد:
# cd /usr/local/sbin
# ls
فايل‌هاي زير رو خواهيد ديد:
nessus-adduser nessus-mkcert nessus-update-plugins
nessusd nessus-rmuser uninstall-nessus
از بين اين فايل‌هاي اجرايي nessusd و nessus-mkcert و nessus-adduser رو قبلا توضيح دادم. حالا سه فايل ديگر رو توضيح مي‌دم:
nessus-rmuser : همان‌طور که از اسمش بر مي‌آيد، مي‌توان به کمک اون يک user خاص رو که قبلا با nessus-adduser ايجاد کرده‌ايم رو پاک کنيم.
uninstall-nessus : به کمک اين دستور مي‌توان nessus رو از سيستم پاک کرد.
nessus-update-plugins : اين مهم‌ترين دستور اين شاخه است. فرض کنيد که چند هفته پيش آخرين نسخه nessus رو داون‌لود کرده‌ايد و داريد استفاده مي‌کنيد. مسلما در اين مدت plugin هاي جديدي نوشته شده است. براي اينکه plugin هاي جديد رو دريافت کنيد، ار اين دستور استفاده مي‌کنيد. با اجراي آن با دستور زير، خود فايل اجرايي به سايت nessus.org کانکت شده و Plugin هاي شما رو تکميل مي‌کند:
# /usr/local/sbin/nessus-update-plugins
يادتون باشه که حداقل هفته‌اي يک‌بار اين دستور رو اجرا کنيد. با توجه به سرعت connection شما به اينترنت و تعداد plugin های جديدی که بايد داون‌لود بشه، اجرای اين دستور ممکن است چند دقيقه‌ای طول بکشد.


منبع:http://www.hackerz.ir/forums/aaaeoo-ac-ae-athcace/408-aena-cyocn-nessus-ioe.html

هیچ نظری موجود نیست:

http://up.iranblog.com/images/0z5dgraxwa4j49a5ts77.gif http://up.iranblog.com/images/gv83ah5giec9g8jkopmc.gif