تست و نفوذ

تست نفوذ با پایتون

پایتون زبانی ساده در عین حال کاربردی که در زمینه های
یادگیری ماشین ، برنامه نویسی backend ، هک و غیره کاربرد دارد.
پایتون زبانی خوانا و قابل فهم برای انسان است از همین رو یک زبان
سطح بالا به شمار می‌آید و برای تبدیل شدن به زبان ماشین، تا سیستم
بتواند آن را بفهمد و اجرا کند نیاز به مفسر دارد. پس واضح است که زبان
سریعی نیست البته برای تست نفوذ با پایتون بیشتر عملکرد و کارایی
اهمیت دارد.

چرا هکر ها از python استفاده می کنند؟

همانطور که در بالا نیز اشاره شد پایتون زبان بسیار ساده ای از نظر فهم بوده
و متن باز (Open source)، شی گرا به همراه کتابخانه های مفیدی برای که هم
برای ساخت برنامه های قدرتمند و معمولی مانند backed سایت و اپلیکیشن و هم
مناسب برای هک، بویژه تست نفوذ با پایتون است که برخی از پکیج های قدرتمند
آن عبارتند از: Data analytics ، Web scraping ، Pytorch ، Tensorflow و…
در ادامه با یک مثال عملی چگونگی هک پسورد را شرح می دهیم.
اگر علاقه مندید، ۱۰ زبان برنامه نویسی برای هکر شدن را بدانید، این مقاله را مطالعه کنید.

چگونگی هک پسورد با پایتون

همه می دانیم که رمز عبور هیچگاه به صورت یک متن آشکار یا plain text ذخیره نمی شود.
جالب است بدانید در اغلب پایگاه داده های معمولی پسورد به فرمت متن hash شده با الگوریتم
رمز گذاری md5 نگه داری می کنند. با توجه به موارد گفته شده و پارمتر های زیر، با کُدی
که در ادامه می آید نحوه هک پسورد با پایتون را نشان می دهیم.

  1. ابتدا در input_hash (پسورد hash شده با الگوریتم md5) را با تمامی پسورد های موجود
    در فایل متنی pass_doc مقایسه می کنیم که با فرمت متن آشکار (plain text) می باشد.
  2. برای مقایسه ابتدا با داشتن متن hash نشده رمز در pass_doc، یکی یکی هر آیتم را با md5
    رمز می کنیم و سپس با پسورد هَش شده (input_hash) مقایسه می کنیم و
    در صورت برابر بودن پسورد را در خروجی چاپ می کنیم. کد پایتون آن به قرار زیر است:
  3. توجه کنید برای اجرای کد زیر علاوه بر داشتن محیط برنامه نویسی پایتون آدرس فایل در pass_doc را به درستی در سیستم خود تنظیم کنید.
import hashlib
print("**************PASSWORD CRACKER ******************")

# To check if the password
# found or not.
pass_found = 0

input_hash = input("Enter the hashed password:")

pass_doc = input("\nEnter passwords filename including path(root / home/):")

try:
# trying to open the password file.
pass_file = open(pass_doc, 'r')
except:
print("Error:")
print(pass_doc, "is not found.\nPlease give the path of file correctly.")
quit()

# comparing the input_hash with the hashes
# of the words in password file,
# and finding password.

for word in pass_file:
# encoding the word into utf-8 format
enc_word = word.encode('utf-8')

# Hasing a word into md5 hash
hash_word = hashlib.md5(enc_word.strip())

# digesting that hash into a hexa decimal value
digest = hash_word.hexdigest()

if digest == input_hash:
# comparing hashes
print("Password found.\nThe password is:", word)
pass_found = 1
break

# if password is not found.
if not pass_found:
print("Password is not found in the", pass_doc, "file")
print('\n')
print("***************** Thank you **********************")
Click to rate this post!
[Total: ۶ Average: ۴]
نمایش بیشتر
آگهی

سیدپوریا قاضی میرسعید

من سیدپوریا قاضی‌میرسعید فارغ‌التحصیل رشته مهندسی کامپیوتر-فناوری اطلاعات از دانشگاه صنعتی شاهرود هستم. زمینه مورد علاقه من برنامه نویسی اپلیکیشن موبایل با فریم‌ورک فلاتر و تولید محتوا و سئو می‌باشد و دوست دارم در جهت ارتقای سطح دانش it هم‌نوعانم تلاش کنم، هر چند اثر کوچکی داشته باشم.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا