SpareNet Servers Advertising & Link Exchange

اطلاعیه

بستن
هیچ اطلاعیه ای هنوز ایجاد نشده است .

Unix Password Cracker

بستن
X
 
  • فیلتر
  • زمان
  • نمایش
پاک کردن همه
نوشته‌های جدید

  • Unix Password Cracker

    معرفی:
    یک رمز شکن یونیکس 20 ساله . از این ماژول crypt of python برای شکستن رمزهای عبور استفاده می کند. همچنین می تواند گذرواژه ها را از پرونده سایه دستگاه لینوکس شما که در / etc / s h a do w واقع شده است ، بشکند.

    پیش نیازها
    شما باید دانش پایه ای در مورد هش کردن ، رمزنگاری و پایتون داشته باشید

    درک اجزای یک فایل shadow

    در زیر شما یک پسورد لینوکسی از فایل shadow را مشاهده میکنید که به واسطه آن میتوان وارد ایمیل شد :

    کد:
    iranhack:$6$9PUOn12d$NdIVCV32guKuwx/habJ2DokF1.jUWBcV5U8OPI3v0PVIjoyFAIEc95mKvINhkFiz3O.Wsoxw97UjX8SEzB6240:17337:0:99999:7:
    بیایید اکنون به اجزای این txt رمزگذاری شده برویم

    قسمت اول (نام کاربری): قسمت اول: iranhack ، این نام کاربری شما را مشخص می کند.

    قسمت دوم (هش): این $ 6 $ در متن است. این اساساً مشخص می کند که کدام الگوریتم برای رمزگذاری رمز عبور استفاده می شود .

    کد:
    $1 = MD5 hashing algorithm.
    $2 = Blowfish hashing algorithm.
    $2a = eksblowfish hashing algorithm.
    $5 = SHA-256 hashing algorithm.
    $6 = SHA-512 hashing algorithm.
    ماشین های مدرن مبتنی بر یونیکس از 6 $ یعنی الگوریتم SHA-512 استفاده می کنند .

    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: unix.png
مشاهده: 301
حجم: 30.7 کیلو بایت
    در تصویر بالا باید ایده ای در مورد عملکرد هش به شما ارائه شود و تفاوت آن با رمزگذاری و رمزگشایی چیست. اگر در درک این مسئله کمی مشکل دارید ، همیشه می توانید مشکل خود را در گوگل جستجو کنید. من مطمئن هستم که شما یک راه حل خواهید گرفت.

    قسمت سوم (salt): یک متن طولانی 8 بایت که ممکن است برای جلوگیری از شکستن رمزهای عبور با استفاده از جداول رنگین کمان استفاده می شود. متن زیر salt است:

    کد:
    9PUOn12d
    قسمت چهارم (رمز عبور): اکنون قسمت اصلی ، PASSWORD می آید !!. رمز عبور :

    کد:
    NdIVCV32guKuwx/habJ2DokF1.jUWBcV5U8OPI3v0PVIjoyFAIEc95mKvINhkFiz3O.Wsoxw97UjX8SEzB6240
    سایر فیلد ها مورد نیاز نیست ..

    درک کد

    ماژول های مورد استفاده:
    optparse.OptionParser - برای انجام و پذیرش عملیات خط فرمان استفاده می شود
    termcolor.colored - این فقط برای چاپ متن رنگی استفاده می شود
    crypt - ماژول اصلی این برنامه. برای رمزگذاری متن با استفاده از الگوریتم مشخص استفاده می شود


    درک عملکرد اصلی def ():

    کد:
    def main():
    parser = OptionParser()
    parser.add_option("-f",dest = "pname",type = "string",help = "specify password file")
    parser.add_option("-d",dest = "dname",type = "string",help = "specify dictionary file")
    parser.add_option("-u",dest = "user",type = "string",help = "specify username of the victim")
    (options, args) = parser.parse_args()

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

    خط اول یعنی تجزیه کننده = OptionParser () ، به پایتون می گوید که این یک متغیر طبیعی نیست بلکه یک شی O OptionParser است.

    خط دوم گزینه هایی را به این شی OptionParser اضافه می کند ، یعنی متغیر تجزیه کننده ما. این در واقع به پایتون می گوید که هر زمان کاربر چیزی مانند -f somepasswordfile.txt را وارد کند ، باید به عنوان یک رشته پذیرفته شود و به pname اختصاص یابد. کمک لازم نیست

    خط سوم گزینه هایی برای پرونده فرهنگ نامه و خط چهارم برای نام کاربری اضافه می کند. همه چیز به عنوان یک رشته و به ترتیب به dname و user اختصاص داده شده است

    خط پنجم دقیقاً مانند یک کامپایلر است. این هر آنچه را که به جسم تجزیه کننده گفته ایم ، جمع می کند.

    خوب در ادامه :

    کد:
    if (options.pname == None) or (options.dname == None) or (options.user == None):
    print(colored("Please specify password file, dictionary file and username","red") + "\n" + colored("example: python3 main.py -f <passwordFile> -d <dictionaryFile> -u <username>","yellow"))
    exit(0)
    else:
    pname = options.pname
    dname = options.dname
    user = options.user
    این قطعه کد بررسی می کند که آیا کاربر مقادیر کافی کافی وارد نمی کند یا خیر ، به جای اینکه یک خطای پیچیده توسط پایتون برگرداند ، اطلاعات مربوط به نحوه وارد کردن آرگومان های مورد نیاز را چاپ می کند و سپس از کد خارج می شود

    حال اگر کاربر تمام آرگومان های مورد نیاز را وارد کند ، به سادگی هرکدام از آنها را در یک متغیر ذخیره کنید

    عالی است ، ادامه می دهیم

    کد:
    passFile = open(pname)
    userLen = len(user)
    print("[*] Searching for the username "+"'"+user+"' ....")
    این دستور فقط پرونده رمز عبور را در خط اول باز می کند و سپس در متغیر userLen طول نام کاربری را ذخیره می کند و سپس دستور بالا را چاپ می کند تا کاربر را هدف برنامه قرار دهد.

    در ادامه :


    کد:
    for line in passFile.readlines():
    p = line.strip('\n').strip()
    if p[0:userLen] == user:
    print(colored("[+] Success user found","green"))
    print("[*] Attempting to crack password....")
    p = p[userLen+1:p.index("/")+1]
    cracker(p,dname)
    عبارات for به سادگی خطوطی را از passFile که فایل رمز عبور در آن قرار دارد می خواند.

    سپس \ n را از خط جدا کرده و در متغیر p ذخیره می کنیم

    اکنون ، پرونده سایه ما را به یاد بیاورید.

    که این بود:

    کد:
    iranhack:$6$9PUOn12d$NdIVCV32guKuwx/habJ2DokF1.jUWBcV5U8OPI3v0PVIjoyFAIEc95mKvINhkFiz3O.Wsoxw97UjX8SEzB6240:17337:0:99999:7:::
    اکنون هدف برنامه ما در حال حاضر یافتن نام کاربری iranhack در پرونده shadow است.

    اگر می بینید userLen برابر با 6 است زیرا طول iranhack 6 است.

    اکنون در 6 حرف اول هر سطر از فایل سایه ، بررسی می کنیم که آیا با نام کاربری ما برابر است یعنی iranhack اگر این درست باشد ، کدی را که بعد از آن نوشته شده است ، اجرا می کنیم ، در غیر این صورت به خط بعدی پرونده shadow می رویم

    پس از دریافت نام کاربری ، اکنون می خواهیم رمز عبور را بشکنیم. اما برای شکستن رمز عبور باید بدانیم که رمز عبور چیست. من در مورد بخش های پیش نیاز موارد مختلف پرونده shadow توضیح داده ام.

    کد:
    p = p[userLen+1:p.index("/")+1]
    این خط رمز عبور (البته در فرم هش) را از پرونده shadow استخراج می کند. می توانید خودتان این کار را انجام دهید و کمی با شاخص های فایل shadow درگیر شوید.

    نکته: رمز عبور از 6 دلار شروع می شود درست بعد از ":" که دقیقاً بعد از نام کاربری است و در بعدی ":" پایان می یابد

    اما توجه داشته باشید که ما فقط رمز عبور را با استفاده از شاخص "/" در نظر می گیریم. به این دلیل که تعداد زیادی ":" در پرونده سایه وجود دارد.

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

    تبریک !! شما def main() را متوجه شدید. بیایید به عملکرد cracker خود برویم.

    ادامه دارد ...
    -----------------------------SAFE MASTER---------------------------
    تاپیک هکر های تازه وارد
صبر کنید ..
X