مرکز آموزش کامل هک

با سلام.چون نفرات زیادی از دوستان به من لطف کردن و از من خواستند که هک کردن را به آنها آموزش بدم من هم این سایت رو بر پا کردم.

مرکز آموزش کامل هک

با سلام.چون نفرات زیادی از دوستان به من لطف کردن و از من خواستند که هک کردن را به آنها آموزش بدم من هم این سایت رو بر پا کردم.

قسمت اول


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

تجربه بهم ثابت کرده که خیلی از افرادی که ویندوز سرور هک می‌کنند، بعد از اینکه به 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>          GAMES
08/15/2003  06:20p           1,806,727 phpMyAdmin-2.5.3-rc1-php.zip
06/17/2002  07:06p      <DIR>          upload
06/19/2002  07:02p      <DIR>          mailserver
09/13/2002  03:59a               8,053 port-tcp-c.c
02/27/2003  10:28p      <DIR>          mp3
04/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:\GAMES

09/06/2003  06:29a      <DIR>          .
09/06/2003  06:29a      <DIR>          ..
09/06/2003  06:29a      <DIR>          FORMULA1
09/06/2003  06:35a      <DIR>          SP
09/06/2003  06:36a      <DIR>          SUPER
09/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/perl
print "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:\tur2

10/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\far30

10/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\system32

12/07/1999  04:00a             236,304 cmd.exe
               1 File(s)        236,304 bytes

 Directory of i:\WINNT\system32\dllcache

12/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\system32
i:\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 فرمت بشه.

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد