spyman

_.-* آموزش قدم به قدم هک *-._

36 پست در این موضوع

در این مقاله یاد میگیری که هش چیه و هش md5 چیه

پسورد

joomlaforum.ir

Share this post


Link to post
Share on other sites
آموزش ووکامرس قالب جوملا قالب وردپرس قالب رایگان وردپرس قالب رایگان جوملا هاست نامحدود هاست جوملا هاست لاراول هاست وردپرس هاست ارزان هاست ربات تلگرام خرید دامنه آموزش ساخت ربات تلگرام با php آموزش html و css آموزش لاراول آموزش cPanel آموزش php آموزش سئو وردپرس آموزش امنیت وردپرس آموزش وردپرس آموزش فرم ساز RSform آموزش سئو جوملا آموزش فروشگاه ساز Hikashop آموزش فروشگاه ساز ویرچومارت آموزش طراحی سایت آگهی تبلیغاتی آموزش امنیت جوملا آموزش طراحی سایت فروش فایل آموزش طراحی قالب ریسپانسیو با Helix آموزش جوملا 3 آموزش ساخت ربات دکمه ی شیشه ای آموزش ساخت ربات همکاری در فروش آموزش ساخت ربات جذب ممبر آموزش ساخت ربات ضد اسپم آموزش ساخت ربات پیوست فایل سورس ربات مدیر گروه | ربات مدیر گروه همسریابی

ز روز اول که وبلاگم رو راه انداخته بودم ، همان طور که تو تیتر و تگش هم هست ، هدفم تا حدود زیادی نوشتن در مورد PHP بود ، ولی تقریبا می شه گفت به غیر از کارهایی که در مورد وردپرس انجام دادم و بلاگ کردم دیگه مطلبی در مورد PHP ننوشتم ، تصمیم گرفتم یه سری مقاله در مبحث “امنیت در برنامه نویسی با PHP” ترجمه کنم یا بنویسم تا هم ضعف هایی که تو این زمینه میون برنامه نویس های ایرانی وجود داره بر طرف بشه و هم کم کم وبلاگم هم رنگ و بوی PHP بگیره.

مقاله حاضر با عنوان Password Hashing توسط James McGlinn نوشته شده و اینجا و در سایت PHP Security Consortium منتشر شده. هش کردن کلمات عبور مبحث جالب و ضروری برای هر برنامه نویس برنامه های کابردی با PHP محسوب می شه.

سطح این مقاله مبتدی و متوسطه و آشنایی مختصری با MySQL هم نیاز داره.

در این مقاله سعی داریم مبحث به رمز درآوردن یک طرفه کلمات عبور(Password Hashing) در PHP را مورد بحث قرار دهیم، موضوعی که عموما توسط بسیاری از نوآموزان PHP نادیده گرفته می شود.در بسیاری از نرم افزارهای (ضعیفی) که با PHP نگاشته می شوند اطلاعات اعضا (User Profiles) به صورت متن ساده (Plain Text) در بانک اطلاعاتی ذخیره می گردد. هش کردن کلمات عبور راهی است برای یه رمز در آوردن(Encrypt) کردن کلمات عبور قبل از ذخیره سازی آن ها در بانک اطلاعاتی تا هنگام دسترسی افراد غیر مجاز به بانک اطلاعاتی ، میزان خسارت کمتر گردد. هش کردن به هیچ وجه روش جدیدی به حساب نمی آید و از مدتها قبل در سیستم های مبتنی بر UNIX برای ذخیره سازی کلمات عبور استفاده می شده است. در این مقاله سعی خواهیم کرد تا با بیان مفاهیم هش ، راه های عملی استفاده از آن در PHP (و MySQL) را برای دخیره کلمات عبور در قالب مثال هایی تشریح کنیم.

پیش گفتار

هنگام مطالعه این مقاله مشاهده خواهید نمود که ما از روشی به نامه SHA-1(Security Hashing Algorithm 1) برای هش کردن استفاده خواهیم کرد. تا هنگام نگاشته شدن این مقاله گروهی از محققان – Xiaoyun Wang, Yiqun Lisa Yin, Hongbo Yu – نشان داده اند که SHA-1 ضعیف تر از آن چیزی است که به نظر می رسیده است، به این معنی که هم اکنون برای موارد خاص مانند امضاهای دیجیتالی ، الگوریتم های قوی تری مانند SHA-256 و SHA-512 توصیه می گردد ولی برای هش کردن کلمات عبوردر برنامه های امروزی SHA-1 هنوز سطح امنیت بسیار خوبی را فراهم می کند.

برای اطلاعات بیشتر لطفا تحلیل Bruce Schneier را در مورد این موضوع ببینید.

http://www.schneier.com/blog/archive...nalysis_o.html

هش چیست؟

هش (Hash, Hash Code, Digest, Message Digest هم نامیده می شود) را می توان به صورت اثر انگشت دیجیتالی یک داده در نظر گرفت. با این روش شما می توانید رشته ای اندازه-ثابت (fixed length) از یک داده به دست آورید که با روش های ریاضی به صورت "یک طرفه" رمزنگاری شده است. کشف رشته اصلی از رشته هش آن (عملیات معکوس) به صورت کارا تقریبا غیر ممکن است. نکته دیگر اینکه هر داده یک رشته هش شده کاملا منحصر به فرد ایجاد می کند( احتمال یکی شدن رشته های هش دو رشته متفاوت در الگوریتم MD5 یک در ۳٫۴۰۲۸۲۳۶۶۹۲۰۹۳۸۴۶۳۴۶۳۳۷۴ ۶۰۷۴۳۱۷۷e+38 می باشد.. این خواص ، هش کردن را به روشی کارا و ایده آل برای ذخیره سازی کلمات عبور در برنامه های شما تبدیل می کند. چرا؟ برای این که حتی اگر یک نفوذگر(Hacker) بتواند به سیستم و بانک اطلاعاتی شما نفوذ کند و بخشی از اطلاعات شما را به دست آورد (شامل کلمات عبور هش شده) نمی تواند کلمات عبور اولیه را از روی آن ها بازیابی کند.

با این روش چگونه اعضا را شناسایی کنیم ؟

تا کنون نشان داده ایم که بازیابی کلمه عبور اصلی از روی رشته هش تقریبا غیر ممکن است ، خب چگونه برنامه های ما تشخیص دهند که کلمه عبور وارد شده توسط کاربر صحیح است ؟ به سادگی ! با تولید رشته هش کلمه عبور وارد شده توسط کاربر و مقایسه آن با رشته هش ذخیره شده در رکورد بانک اطلاعاتی مربوط به کاربر می توانید متوجه شوید که آیا دو رشته با هم برابرند یا نه. بگذارید با ذکر یک مثال این بحث را ادامه دهیم.

ثبت نام اعضا و بازبینی کلمات عبور

در طی پروسه ثبت نام ، کاربر جدید کلمه عبور انتخابی خود را در اختیار برنامه ما قرار می دهد(ترجیحا با بازبینی – Verification – و در یک جلسه امن). این کار توسط تکه کدی مانند زیر انجام می گیرد، توجه کنید که نام های کابری و کلمات عبور را در بانک اطلاعاتی ذخیره می کنیم.

عکس :

wp-content...hashing-01.png

<?php
/* Store user details */
$passwordHash = sha1($_POST['password']);
$sql = 'INSERT INTO user (username,passwordHash) VALUES (?,?)';
$result = $db->query($sql, array($_POST['username'], $passwordHash));
?> 

در هنگام مراجعه بعدی کاربر برای ورود به سیستم ، برای تایید او از تکه کدی مانند زیر استفاده می کنیم

عکس :

wp-content...hashing-02.png

<?php
/* Check user details */
$passwordHash = sha1($_POST['password']);
$sql = 'SELECT username FROM user WHERE username = ? AND passwordHash = ?';
$result = $db->query($sql, array($_POST['username'], $passwordHash));
if ($result->numRows() < 1)
{
   /* Access denied */
   echo 'Sorry, your username or password was incorrect!';
}
else
{
   /* Log user in */
   printf('Welcome back %s!', $_POST['username']);
}
?>

Share this post


Link to post
Share on other sites

انواع هش

انواع مختلفی از الگوریتم های قوی هش کردن برای استفاده در برنامه های کاربردی موجود هستند، محبوب ترین آنها که مورد استفاده برنامه نویسان هستند MD5 و SHA-1 می باشند. سیستم های قدیمی تر از DES(Data Encryption Standard) استفاده می کردند. این روش ۵۶ بیتی دیگر یک روش قوی هش کردن محسوب نمی گردد.

در PHP شما می توانید رشته هش را با استفاده از توابع md5() و sha1 تولید کنید. md5() یک رشته هش ۱۲۸ بیتی (۳۲ کاراکتر هگزادسیمال) برمی گرداند در حالیکه sha1() یک رشته هش ۱۶۰ بیتی (۴۰ کاراکتر هگزادسیمال) را بر می گرداند.

<?php
$string = 'PHP & Information Security';
printf("Original string: %sn", $string);
printf("MD5 hash: %sn", md5($string));
printf("SHA-1 hash: %sn", sha1($string));
?> 

در MySQL شما می توانید رشته هش را مستقیما و توسط توایع درونی md5() ، password() و یا sha1() تولید کنید. password() تابعی است که توسط خود MySQL برای سیستم تایید اعضایش یه کار می رود. این تابع یک رشته ۱۶ بایتی (۱۲۸ بیتی) – در MySQL قبل ازنسخه ۴٫۱ – و یک رشته ۴۱ بایتی ( ۳۲۸ بیتی) بر پایه الگوریتم SHA-1 دوگانه – در MySQL 4.1 به بالا – تولید می کند. md5() از نسخه ۳٫۲۳٫۲ به MySQL اضافه گردید و sha1() در نسخه ۴٫۰٫۲ اضافه شد.

mysql> select PASSWORD( 'PHP & Information Security' );
+------------------------------------------+
| PASSWORD( 'PHP & Information Security' ) |
+------------------------------------------+
| 379693e271cd3bd6                         |
+------------------------------------------+
1 row in set (0.00 sec) 

mysql> select MD5( 'PHP & Information Security' );
+-------------------------------------+
| MD5( 'PHP & Information Security' ) |
+-------------------------------------+
| 88dd8f282721af2c704e238e7f338c41    |
+-------------------------------------+
1 row in set (0.01 sec)  

Note: Using MySQL's password() function in your own applications isn't recommended – the algorithm used has changed over time and prior to 4.1 was particularly weak.

شما ممکن است ترجیح دهید تا از MySQL برای تولید رشته هش در برنامه های خود استفاده نمایید. مثلا در مثال این مقاله :

<?php
/* Store user details */
$sql = 'INSERT INTO user (username, passwordHash) VALUES (?, SHA1(?))';
$result = $db->query($sql, array($_POST['username'], $_POST['password']));
?> 

نقاط ضعف

از دیدگاه امنیتی ، ذخیره کردن رشته های هش کلمات عبور به صورت تنها در بانک اطلاعاتی کافی است تا کار یک نفوذگر را ده ها برابر مشکل تر کند. حال بگذارید ببینیم یک نفوذگر پس از دسترسی به این رشته های هش شده چه تلاش هایی برای بازیابی آن ها می کند، آیا او می تواند کلمات عبور اصلی را بازیابی کند ، یا خیر؟

او ابتدا می تواند با مشاهده جدول اعضا و با پیدا کردن رشته های هش مشایه حساب هایی که دارای کلمات عبور یکسان هستند را بیابد! البته این روش تا زمانی که او کلمه عبور هیچ کدام از اعضا را نداند مفید نیست و خطری را ایجاد نمی کند. روش معمول برای بازیابی رشته اصلی از رشته هش شده شکستن (Crack) کردن – یا به عبارت دیگر brute forcing – می باشد. با استفاده از این روش نفوذگر رشته های هش تمامی عباراتی که احتمال می دهد به عنوان کلمه عبور به کار برده شوند – مثلا با استفاده از یک دیکشنری لغات – را تولید می کند و با مقایسه آن ها با مقادیر ذخیره شده در بانک اطلاعاتی اقدام به یافتن کلمات عبور می نماید.

رایانه های پیشرفته امروزی توانایی تولید رشته های هش MD5 و SHA-1 را به صورت بسیار سریع دارا می باشند – در بعضی حالات با سرعت هایی در حدود چند هزار در ثانیه – . رشته های هش می توانند برای تمامی کلمات یک دیکشنری تولید شوند(حتی با احتساب حالت های متفاوت حرفی و عددی) . با این که کلمات عبور مناسب و طویل سطح امنیتی خوبی را در برابر چنین حملاتی فراهم می کنند، شما نمی توانید مطمئن باشید که کاربران شما همواره از چنین مواردی آگاه باشند.

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

نقاط ضعفی که در مورد هش کردن بیان گردیدند با اضافه کردن تغییر کوچکی در الگوریتم هش کردن به راحتی قابل برطرف کردن می باشند. می توانیم قبل از تولید هش ، یک رشته تصادفی با اندازه از پیش تعیین شده تولید کنیم و آن را به ابتدای کلمه عبور خود اضافه نماییم(این رشته را salt می نامیم). با اضافه شدن این رشته که به اندازه کافی تصادفی و به اندازه کافی طویل می باشد ، رشته هش نهایی هر بار که تابع را اجرا می کنیم منحصر به فرد خواهد بود و با دفعات قبلی فرق خواهد داشت. بدیهی است که این رشته salt نیز باید در بانک اطلاعاتی اعضا ذخیره گردد ، ولی این تنها به معنی اضافه شدن چند کاراکتر به اندازه فیلد مورد نظر است.

هنگام بررسی ورود کاربر ما همان پروسه قبلی را پی می گیریم، با این تفاوت که این بار ما از رشته salt که از بانک اطلاعاتی به دست می آوریم استفاده می کنیم نه از حالت تولید تصادفی آن . با مقایسه رشته هشی که با استفاده از ورودی کاربر به دست آمده با مقدار ذخیره شده در بانک اطلاعاتی کاربر می توانیم صحت آن را مشخص کنیم.

<?php
define('SALT_LENGTH', 9);
function generateHash($plainText, $salt = null)
{
   if ($salt === null)
   {
       $salt = substr(md5(uniqid(rand(), true)), 0, SALT_LENGTH);
   }
   else
   {
       $salt = substr($salt, 0, SALT_LENGTH);
   }

   return $salt . sha1($salt . $plainText);
}
?> 

Note: The function above is limited in that the maximum salt length is 32 characters. You may wish to write your own salt generator to overcome this limit and increase the entropy of the string.

هنگام فراخوانی generateHash() با استفاده از تنها یک آرگومان(کلمه عبور) یک رشته تصادفی تولید شده و به عنوان رشته salt استفاده می گردد. رشته تولید شده که تشکیل شده از رشته salt و رشته هش شده است در بانک اطلاعاتی ذخیره می گردد. هنگام بررسی ورود کاربر ، پروسه کاملا متفاوت است زیرا شما رشته salt را می دانید. – دقت کنید از آن جایی که طول رشته salt ثابت است ، پس از دریافت اطلاعات کاربر از بانک اطلاعاتی با یک بار استفاده از تابع substr می توانید رشته salt را بیابید – این رشته salt به عنوان پارامتر دوم به همراه کلمه عبور ارسالی کاربر به تابع generateHash() فرستاده می شود و سپس عمل مقایسه صورت می پذیرد.

با استفاده از salt احتمال یکی شدن رشته های هش کابران در صورت یکی بودن کلمات عبورشان در بانک اطلاعاتی از بین می رود.

استفاده از دیکشنری برای حمله نیز دیگر کارایی نخواهد داشت، زیرا نفوذگر باید برای هر رکورد در بانک اطلاعاتی تمامی رشته های هش دیکشنری خود را دوباره محاسبه کند!

Share this post


Link to post
Share on other sites

برنامه بازیابی پسوردهای Hash شده PasswordsPro 3.1.1.0

هش را می توان به صورت اثر انگشت دیجیتالی یک داده در نظر گرفت. با این روش شما می توانید رشته ای اندازه-ثابت (fixed length) از یک داده به دست آورید که با روش های ریاضی به صورت "یک طرفه" رمزنگاری شده است. کشف رشته اصلی از رشته هش آن (عملیات معکوس) به صورت کارا تقریبا غیر ممکن است. نکته دیگر اینکه هر داده یک رشته هش شده کاملا منحصر به فرد ایجاد می کند( احتمال یکی شدن رشته های هش دو رشته متفاوت در الگوریتم MD5 یک در 3.4028236692093846346337460743177e+38 می باشد.. این خواص ، هش کردن را به روشی کارا و ایده آل برای ذخیره سازی کلمات عبور در برنامه های شما تبدیل می کند. چرا؟ برای این که حتی اگر یک نفوذگر(Hacker) بتواند به سیستم و بانک اطلاعاتی شما نفوذ کند و بخشی از اطلاعات شما را به دست آورد (شامل کلمات عبور هش شده) نمی تواند کلمات عبور اولیه را از روی آن ها بازیابی کند. PasswordsPro به شما کمک می کند تا در کمترین زمان بتوانید تمامی پسوردهای هش را از حالت هش در بیاورید. این برنامه قادر است 30 نوع از پسوردهای هش شده را رمزگشایی کند. لیست کامل را می توانید در ادامه مطلب مشاهده فرمایید.

لیست برخی از هش های پشتیبانی شده توسط برنامه :

MySQL

– MySQL5

– DES(Unix)

– MD2

– MD4

– MD4(HMAC)

– MD4(Base64)

– MD5

– MD5(APR)

– MD5(Unix)

– MD5(HMAC)

– MD5(Base64)

– MD5(phpBB3)

– MD5(Wordpress)

– MD5_HMAC($salt,MD5_HMAC($salt,$pass))

– SHA-1

– SHA-1(HMAC)

– SHA-1(Base64)

– SHA-1(Django)

– SHA-256

– SHA-256(Unix)

– SHA-256(Django)

– SHA-256(md5($pass))

– SHA-256(PasswordSafe)

– SHA-384

– SHA-384(Django)

– SHA-512

– SHA-512(Unix)

– Haval-128

– Haval-160

– Haval-192

– Haval-224

– Haval-256

– Tiger-128

– Tiger-160

– Tiger-192

– RipeMD-128

– RipeMD-160

– MaNGOS

– Whirlpool

– RAdmin v2.x

– Lineage II C4

– Domain Cached Credentials

– md5(md5($pass))

– md5($pass.$salt)

– md5($salt.$pass)

– md5(sha1($pass))

– md5($hex_salt.$pass)

– md5(md5(md5($pass)))

– md5(md5($pass).$salt)

– md5(md5($salt).$pass)

– md5($salt.md5($pass))

– md5($salt.$pass.$salt)

– md5(md5($salt).md5($pass))

– md5(md5($pass).md5($salt))

– md5($salt.md5($salt.$pass))

– md5($salt.md5($pass.$salt))

– md5($salt.md5($pass).$salt)

– md5(sha1(md5(sha1($pass))))

– md5($hex_salt.$pass.$hex_salt)

– md5($username.md5($pass).$salt)

– md5(md5($username.$pass).$salt)

– sha1(md5($pass))

– sha1($salt.$pass)

– sha1($pass.$salt)

– sha1($username.$pass)

– sha1($username.$pass.$salt)

– sha1($salt.sha1($salt.sha1($pass)))

عکس نرم افزار

http://www.p30day.com/plugins/content/imagesresizecache/d4462ce408b90c720165ce8cbbe45575.jpeg 

دانلود با لینک مستقیم سرور اول

https://rapidshare.com/files/3933860015/PasswordsPro_3.1.1.0__www.P30Day.com_.rar 

لینک مستقیم سرور دوم

http://dl5.p30day.com/users/feisal/Software/PasswordsPro_3.1.1.0_%5Bwww.P30Day.com%5D.rar

13 MB

رمز:

www.p30day.com

Share this post


Link to post
Share on other sites

طريقه "Hash" شدن پسورد ها به اين صورت هست :

1) مقدار رشته اي "hello" به "5d41402abc4b2a76b9719d911017c592" هاش شده

2) برای مثال در اينجا اگر سالت ما "testsalt" باشد، رشته هاش شده تبديل به "5d41402abc4b2a76b9719d911017c592testsalt" ميشود

3) و در آخر رشته جديد (Hash + Salt) برای بار دوم هاش شده و به "b9a8f3032597bc73d564a6c846787f5b" تبديل ميشود

برای نوشتن کرکر (در اينجا با PHP) کافيه از :

کد:

md5(md5($pass).$salt)

________________________________________

اطلاعات اساسی در مورد password

(۱) اطلاعات اساسی در مورد password چيست؟

اکثر accountها روی سيستم*های کامپيوتری معمولا متدهای خاصی از دسترسی محدود به آن account دارند. هر زمان که قصد دسترسی به يک سيستم داشته باشيد بايد يک ID صحيح را وارد کرده و با وارد کردن password وارد account خود شويد. اکثر سيستم*ها پسوردها را نشان نمی*دهند و بجای کاراکترهای واقعی از ستاره يا نقطه استفاده می*کنند.

روی اکثر سيستم*ها پسورد از ميان چندين الگوريتم عبور داده می*شود تا بصورت hash (رمز** شده) درآيد. hash معمولا بيشتر از کاراکترهائی است که بعنوان پسورد وارد شده*اند. معمولا hash بصورت one-way (غيرقابل برگشت) درست می*شود يعنی با هيچ الگوريتمی نمی*توان hash را به متن اصلی تبديل کرد. اکثر سيستم*ها در هنگام authentication (تعيين هويت) پسوردهای ذخيره شده را آشکار نمی*کنند و آنها از ابتدا متن وارد شده را hash کرده و با hashه ذخيره شده مقايسه می*کنند.

در رمز نويسی بعضی از الگوريتم*ها بهتر از الگوريتم*های ديگر برای ساختن one-way hash هستند. در اين سری مقالات توجه ما روی سيستم* عامل*های NT, Netware, Unix خواهد بود. که همگی از الگوريتم تقريبا يکسانی استفاده می*کنند.

برای crack کردن يک پسورد لازم است شما يک کپی از hash که روی سرور ذخيره شده است بگيريد و بعد الگوريتم را بکار بگيريد تا hash شده متن*های شما را توليد کند تا زمانيکه hash شما با hashه سرور يکسان شود. در اين هنگام کلمه*ای که شما برای توليد hash بکار برده*ايد همان پسورد سيستم مورد حمله شما می*باشد. چون انجام اين کار بروش دستی زمان زيادی می*برد از اتوماسيون استفاده می*شود. نرم*افزارهای رايگان زيادی در اينترنت برای شکستن پسوردهای سيستم* عامل*های مورد مطالعه ما وجود دارد.

۳ (۲) چرا از hashها محافظت می*کنيم؟

اگر hashهای غير قابل برگشت نه خود پسوردها بلکه مشتق آنها هستند پس چرا از آنها محافظت می*کنيم؟ چون الگوريتمی که آنها را توليد می*کند شناخته شده است. يک هکر می*تواند با برنامه*های مخصوص اين کار بسادگی پسوردهای ممکن را رمز کرده و آنها را با پسوردهای داخل hash مقايسه کند تا زمانيکه پسورد را پيدا کند. دو روش برای شکستن پسورد بکار برده می*شود: روش Dictionary و روش Brute Force. معمولا hashها در قسمتی از سيستم ذخيره می*شوند که امينت ويژه*ای دارد تا دسترسی کراکرهای مستعد به آن محدود شود.

۳ (۳) منظور از شکستن پسورد بروش Dictionary چيست؟

يک برنامه شکننده پسورد بسادگی ليستی از لغات dictionary را می*گيرد و هر لحظه يک لغت را رمز کرده و با hashه سيستم مقايسه می*کند تا زمانيکه که هر دو hash برابر شوند و پسورد شکسته شود. در اين هنگام لغتی از dictionary که آزمايش شده است همان پسورد سيستم است.

بعضی از اين برنامه*ها می*توانند با بکارگيری فيلترهای مخصوص کلمات را دستکاری کنند. قواعد اين فيلترها به شما اجازه می*دهد مثلا (rnazari) را به (RNazAr1) تغيير دهيد. استفاده از اين فيلترها باعث می*شوند که شما بتوانيد از يک ليست کوچک ليستی بزرگ ساخته و آزمايش کنيد. بهترين نوع شناخته شده از اين فيلترهای خارق*العاده در برنامه*های Crack که برای محيط Unix طراحی شده*اند موجود است. قواعد اين فيلترها کلا شناخته شده و بتازگی در برنامه*هايی که برای NT طراحی شده اند گنجانيده شده است.

اگر برنامه Crackerه شما چنين قابليتی ندارد شما می*توانيد با برنامه Therion's Password Utility که برای محيط DOS طراحی شده است می*تواند با روش*های زيادی يک ليست کوچک از کلمات را از شما گرفته و به يک ليست خيلی بزرگ تبديل کند و سپس شما می*توانيد آنرا بکار بگيريد.

۳ (۴) منظور از شکستن پسورد بروش Brute Force چيست؟

يک برنامه Cracker بروش Brute Force بسادگی و با قواعدی خاص لغاتی را بصورت اتوماتيک ساخته و با hashه مقايسه می*کند. فرق اين روش با روش قبلی در اين است که تمام لغات بصورت اتوماتيک ساخته می*شوند. از ديدگاه يک هکر اين روش خيلی وقت گير بوده و قسمت زيادی از قدرت CPU را هدر می*دهد.

خيلی از برنامه*های اين حملات تنظيماتی را به شما می*دهند تا با اين تنظيمات در زمان صرف شده و قدرت CPU صرفه*جويی کنيد. مثلا می*توانيد طول پسورد ساخته شده يا کاراکترهايی که برای ساختن لغات بکار برده خواهند شد را معين کنيد.

۳ (۵) کدام روش برای Crack کردن بهترين است؟

جواب اين سوال مرتبط است با: هدف شما،* برنامه* Crackی که بکار می*بريد، و سيستم عامل سرور هدف. چند فايل dictionary با طولهای متفاوت مثلا ۴، ۵،* ۶، ۷، ۸، ... از اينترنت بگيريد بعد اين فايلها را گسترش داده و فيلترهايی روی آنها اعمال کنيد تا هرچه جامع*تر شود. و در اکثر موارد انتخاب نخست*تان روش dictionary باشد اگر با اين همه لغات بازهم نتوانستيد يک hash را بشکنيد. ديگر متاسفانه بايد از روش Brute Force استفاده کرده و سيستم خود را چند روزی مشغول اين کار کنيد.

۳ (۶) منظور از Salt (نمک) چيست؟

برای بالا بردن امنيت پسوردها بعضی از الگوريتم*ها از Salt استفاده می*کنند اين عمل باعث می*شود پيچيدگی پسورد زيادتر و شکستن آن سخت*تر شود. Saltها معمولا ۲ تا ۸ بايت درازا دارند و با الگوريتم خود باعث می*شوند که ابهام one-way hash بيشتر شود. اکثر سيستم عامل*ها اين روش را پوشش می*دهند بجز NT. اگر دو پسورد عين هم با اين الگوريتم hash شود hashها عين هم نخواهند بود و در اين روش ۴۰۹۶ نوع hash از يک پسورد می*توان ساخت و کار شکستن نيز به همان اندازه سخت*تر خواهد شد. با همه اين احوال Salt نيز امنيت صد در صد پسورد را گارانتی نمی*کند.

۳ (۷) حمله برای شکستن پسورد چه خطراتی دارد؟

يکی از خطرات اين حمله محکوم بودن شما از نظر قوانين است البته فعلا در کشور ما چنين قانونی وجود ندارد و فقط در شرايطی شما را دستگير می*کنند که شما به يکی از سرورهای دولتی، اداری يا بانکی حمله کرده باشيد. البته اگر نوع اشتراک شما کارتی نباشد و شماره تلفن*تون را مخفی نکرده باشين در غير اينصورت فکر نکنم کسی بتواند شما را رديابی کند.

اگر شما نتوانيد فايل hash را کپی کنيد شايد دلتان بخواهد که بصورت remote اين حمله را پايه*ريزی کنيد که در اينصورت يک اشکالی پيش خواهد آمد. اکثر سرورها طوری تنظيم می*شوند که اگر شما چندين بار پسورد را اشتباهی وارد کرديد دسترسی آن account را برای مدت زمانی که از پيش تعريف شده است قطع می*کنند.

اما اين روش خود يک ايرادی دارد و آن اينکه سرور در اين حالت دچار حمله (DoS (Denial-of-Service می*شود

* Hash چيست؟

Hash در لغت به معنای خرد کردن چيزی و در هم کردن آن است. در رايانه Hash نام تابعی است که در موارد بسيار زيادی کاربرد دارد. کار اين تابع اين است که هر ورودی که دريافت می کند، به وسيله تبديلی، به يک مقدار عددی می نگارد. پس به هر تابعی که اين کار را انجام دهد، عنوان Hash اطلاق می شود. الگوريتم های Hash می توانند به صورتهای مختلفی پياده شوند، اما بهترين الگوريتم Hash الگوريتمی است که احتمال يک به يک بودن آن بيشتر باشد. يعنی اين که کمترپيش بيايد که به ازای ۲ ورودی متفاوت، ععد يکسانی توليد کند. ازاين روش، معمولا برای تبديل درايه از يک ساختار داده ای مانند يک جدول به محل متناظرآن، در آن ساختار استفاده می شود. برای مثال فرض کنيد يک جدول از کلمات انگليسی داريم . دراين صورت تابع Hash ما، با عملياتی که روی مثلا مقاديراسکی هر کاراکتر کلمه انجام می دهد، آن را به عددی تبديل می کند که محل آن را در جدول کلمات مشخص می کند. الگوريتم هایHash در تعيين محل داده ها در حافظه های نهان (Cache) هم مورد استفاده قرار می گيرند. يکی ديگر از موارد ايتفاده از Hash نيز، در هنگام خلاصه کردن پيغام در ساختن يک امضای ديجيتالی است.( ديجيتالم کجا بود؟) پيغامی که به وسيله يک الگوريتم Hash خلاصه شده، قابل باز يابی نيست. -----------

مقدار Hash

رمزنگاری مبتنی بر کليد عمومی بر پايه يک مقدار hash ، استوار است . مقدار فوق ، بر اساس يک مقدار ورودی که دراختيار الگوريتم hashing گذاشته می گردد ، ايجاد می گردد. در حقيقت مقدار hash ، فرم خلاصه شده ای از مقدار اوليه ای خود است . بدون آگاهی از الگوريتم استفاده شده تشخيص عدد ورودی اوليه بعيد بنظر می رسد . مثال زير نمونه ای در اين زمينه را نشان می دهد :

عدد ورودی الگوريتم Hash مقدار

10,667 Input # x 143 1,525,381

تسخيص اينکه عدد 1.525.381 ( مقدار hash) از ضرب دو عدد 10.667 و 143 بدست آمده است ، کار بسيار مشکلی است . در صورتيکه بدانيم که يکی از اعداد 143 است ، تشخيص عدد دوم کار بسيار ساده ای خواهد بود. ( عدد 10.667) .رمز نگاری مبتنی بر کليد عمومی بمراتب پيچيده تر از مثال فوق می باشند. مثال فوق صرفا" ايده اوليه در اين خصوص را نشان می دهد.

کليدهای عمومی عموما" از الگوريتم های پيچيده و مقادير Hash بسيار بزرگ برای رمزنگاری استفاده می نمايند. در چنين مواردی اغلب از اعداد 40 و يا حتی 128 بيتی استفاده می شود. يک عدد 128 بيتی دارای 128 2 حالت متفاوت است .

تشکر یادتون نره :4d564ad6:

Share this post


Link to post
Share on other sites

خوب اینم درباره کرک شدن رمزعبور و آنیکرک کردن هش که یکی از دوستان سوال کرده بود

پایان درس هش و نوع متوسط

Share this post


Link to post
Share on other sites

سلام.

اموزش شل گیری با استفاده از باگ xss در vBulletin

تو این فیلم نفوذگر با استفاده از باگ XSS در یک انجمن vBulletin به راحتی Reverse Shell میگیره !

دانلود فیلم از سرور اژاکس

http://ajaxtm.com/upload/1/VBSeo.0day.AjaxTm.Com_www.ajaxtm.com.mp4  

تولز مورد استفاده و اطلاعات بیشتر

http://www.exploit-db.com/vbseo-from-xss-to-reverse-php-shell/  

تشکر یادتون نره

Share this post


Link to post
Share on other sites

ارسال شده در (ویرایش شده)

دوست عزیز اگر براتون امکان داره لطفا این آموزش ها رو به صورت pdf یا word ذخیره و آپلود کنید

و اگر فیلم آموزشی هم دارید پیوست کنید

با تشکر فراوان از راهنمایی هاتون

.........................................................................................................

جواب پست شما را که در پست پایینی گفته بودید اینجا دادم تا دیگر نگویید اسپم دادم

من اسپم ندادم این یک درخواست خوب برای آموزش شما بود

اینطوری که شما دارید گسسته آموزش می دید ما هیچ چیز نمی فهمیم

پس پست من رو اسپم در نظر نگیرید و انتقاد پذیر باشید

با تشکر

ویرایش شده در توسط noshijan
پاسخ به پست پایینی

Share this post


Link to post
Share on other sites

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری