ɪɴ ᴍʏ ʜᴇᴀᴅ
706 subscribers
33 photos
16 videos
11 files
18 links
ᴡᴇʟᴄᴏᴍᴇ ᴛᴏ ᴍʏ ʜᴇᴀᴅ
Download Telegram
ɪɴ ᴍʏ ʜᴇᴀᴅ
آیا واقعا کانفیگای پابلیکی که استفاده میکنیم امن هستن؟ امکان اجرای MITM روی اینها هست یا نه؟ خب توی این پست متوجه میشیم که آقا هکره میتونه از این طریق یوزرنیم پسورداتونو بدزده یا نه ;)
This media is not supported in your browser
VIEW IN TELEGRAM
همونطور که دیدید با mitmproxy تونستم حمله mitm رو روی vless اجرا کنم و نتیجه دلخواهم رو به کاربر نشون بدم ;)
البته که این تست روی HTTP انجام شد... برای پیاده سازی این سناریو روی HTTPS حتما نیازه که کاربر certificate شما رو نصب کنه...
البته که روش های دیگه ای هم برای دور زدن این فرایند وجود داره که بعدا شاید درموردشون ی پست گذاشتم🤝
ɪɴ ᴍʏ ʜᴇᴀᴅ
چطوری توی سامانه سمیاد وارد اکانت استادامون شدم؟
——————————————————————————-
——————————————————————————-
ɪɴ ᴍʏ ʜᴇᴀᴅ
چطوری اپلیکیشن باهم رو هک کردم؟! توی این ویدیو تمام اون باگ هایی که بالاتر گفته شدن رو پیاده سازی کردم ، وارد اکانت بقیه شدم و با اکانتشون توی گروه پیام ارسال کردم و بیوشونو عوض کردم و....
Media is too big
VIEW IN TELEGRAM
توی ویدیو من پارامتر key رو سانسور کردم چونکه کلید شخصی خودم توش بود ، شما هم اگه میخواید ی همچین پنلی داشته باشید میتونید کد main.py رو واسه خودتون ران کنید و طبق ویدیو پیش برید ، البته که باید ی secret key مثل من واسه خودتون درنظر بگیرید که هرکسی با داشتن آدرس API نتونه اطلاعات رو ببینه ، توی خط 13 کد main.py میتونید این کلید رو تعریف کنید

بقیه سورس کد های استفاده شده توی ویدیو رو هم واستون گذاشتم توی zip 👇
❤1
exploits.zip
2.1 MB
اگه خواستید API رو ران کنید علاوه بر خط 13 که باید secret key رو بزنید ، توی خط 180 هم جایی که نوشتن YOUR TOKEN ی توکن valid از ی اکانتی که توی اپلیکیشن دارید بهش بدید (حتی میتونید با کد getAccount.py بدون شماره اکانت بسازید و توکنش رو اینجا وارد کنید) این توکن فقط برای دریافت یوزرنیم کاربر توسط userid استفاده میشه...
——————————————————————————-
ɪɴ ᴍʏ ʜᴇᴀᴅ
⁧USB killer چیه و چطوری کار میکنه؟
⁧USB killer یک دستگاه مخربه که هدفش ایجاد ولتاژ های بسیار بالا روی خطوط سیگنال USB هستش ، با این کار میتونه به اجزای مختلف سیستم مثل : چیپ ست مادربرد ، کنترلر USB و... آسیب برسونه و تخریبشون بکنه.

حالا چطوری این کار رو انجام میده؟!
این دستگاه میاد ولتاژ کمی که از خود سیستم توسط USB میگیره رو (معمولا 5v) به پالس های ولتاژ عظیم تبدیل میکنه و به خطوط دیتا یا همون پایه های RX و TX پورت USB تزریق میکنه!

با چیا این کار رو میکنه؟
معمولا ی مدار voltage boosting ساده داره که تشکیل شده از DC-DC boost یا charge pump هستش ، این مدار ولتاژ 5v ای که از سیستم تغذیه میکنه رو به چند صد ولت تبدیل میکنه!
بعد از بالا بردن ولتاژ چند خازن داخلی شارژ میشن و انرژی الکتریکی رو ذخیره میکنن ، این قسمت شبیه یک mini pulse generator عمل میکنه
بعد از این مراحل خازن هایی که شارژ شدن تمام انرژی خودشون رو روی data line ها تخلیه میکنن ، با این کار ولتاژ بالا به خطوط دیتا تزریق میشه و اینجاست که سیستمتون دار فانی رو وداع میگه😂
حالا چرا دار فانی رو وداع میگه؟ چونکه مدارهای USB برای سیگنال های low voltage طراحی شدن نه چیزی به این عظمت که ما داریم بهش تزریق میکنیم
و USB killer این کار رو فقط یک بار انجام نمیده ، معمولا تا وقتیکه تغذیه بشه این کار رو ادامه میده... هی شارژ میشه و هی پالس های مرگ آور میفرسته سمت دیتا لاین.
⁧USB killer فقط مختص به کشتن یا به قولی خراب کردن لپ تاپ یا کیس نیست ، شما باهاش میتونید هر پورت USB ای رو که دیدید از بین ببرید (البته اگه دیتا لاین هاش به جایی متصل باشن یا محافظ TVS diode نداشته باشه و پورت ایزوله نشده باشه)
——————————————————————————-
ɪɴ ᴍʏ ʜᴇᴀᴅ
فرق بین encoding و encryption و obfuscation چیه؟
اکثر بچه های این حوزه اصطلاحات encoding و encryption و obfuscation رو باهمدیگه اشتباه میگیرن.
ی بار برای همیشه میخوام با مثال توضیحش بدم چون تقریبا هرکیو دیدم اینارو باهم اشتباه میگرفته...

رمزگذاری (encoding) چیه؟
به زبان ساده یعنی تبدیل داده به فرم دیگه. خب این یعنی چی؟ مثلا encoding رو میشه به تبدیل افکارمون به داده متنی یا صوتی تشبیه کرد
الآن من دارم با استفاده از ادبیات فارسی منظور خودم و داده ای که توی سرم دارم رو انکد میکنم و میدم به شما که بخونی و متوجهش بشی
مثلا ما با جابجایی حروف یک داده میتونیم اونو انکد کنیم :
def encode(text):
result = str()
for i in text:
result += chr(ord(i)+1)
return result

encoded_text = encode('this is a test')
print(encoded_text)

اینجا ما اومدیم متن "this is a test" رو با کدی که نوشتیم انکد کردیم. به همین راحتی متن رو از ی فرم به ی فرم دیگه تبدیل کردیم (خروجی کد بالا میشه "uijt!jt!b!uftu" این یعنی فرمشو عوض کردیم...)

خب حالا که فهمیدیم encoding چیه بریم سراغ encryption
ما هم به encoding و هم به encryption میگیم رمزگذاری ولی در اصل encryption ی کوچولو پیشرفته تره...
ما طی انجام عمل encryption میایم همون encode رو انجام میدیم ولی با ی کلید امنیتی
یعنی چی؟
یعنی ما میایم ی الگوریتم مینویسیم که بیاد دیتامونو از ی فرم به فرم دیگه تبدیل کنه ولی با استفاده از یک کلید ، و همین باعث میشه که با تغییر کلید ، اگه حتی دیتا هم یکسان باشه هر سری بتونیم خروجی متفاوتی با خروجی قبلی بگیریم.
ی مثال میزنم واستون ، مثلا کد بالا رو در نظر بگیرید
ما اومدیم این کارو کردیم :
result += chr(ord(i)+1)

اومدیم عدد ASCII کاراکتر رو گرفتیم و یدونه بهش اضافه کردیم و دوباره معادل عددی که به دست اومده رو تبدیل به کاراکتر ASCII کردیم و به متغیر result اضافه کردیم...
حالا چی میشه اگه بجای یدونه بیایم n تا بهش اضافه کنیم؟
اینجا در اصل کلید ما 1 هستش ولی خب توی الگوریتم بالا که نوشتیم ثابته... میتونیم متغیرش کنیم :
def encrypt(text, key):
result = str()
for i in text:
result += chr(ord(i)+key)
return result

encrypted_text = encrypt('this is a test', 10)
print(encrypted_text)


اینجا ما اومدیم دقیقا همون کدی که واسه انکد کردن نوشته بودیم رو نوشتیم ولی با ی کلید
اینجا متن ما داره با کلید 10 انکریپت میشه که خروجیش میشه : ~rs}*s}*k*~o}~
اگه مثلا با کلید 13 انکریپت کنیم خروجی متفاوت خواهد بود : uv-v-n-r

حالا مبهم سازی(obfuscation) چیه؟
اول متن هم گفتم اکثر کسایی که توی این حوزه فعالیت میکنن اینارو باهم اشتباه میگیرن ولی بیشترین اشتباهی که میشه روی obfuscation هستش که با encode اشتباهش میگیرن...
اینجا ما سعی میکنیم با استفاده از ی سری روش های خاص (بعضا encode و encrypt هم استفاده میکنیم واسه مبهم سازی) کدمون رو سخت و غیر قابل فهم بکنیم ، طوری که وقتی کسی میبینتش متوجه الگوریتم و طرز کارکرد کد نشه
بیشتر هم JS کار ها ازش استفاده میکنن برای اینکه کسی متوجه کدایی که زدن نشه.
مثلا من چندسال پیش ی همچین کدی نوشته بودم :
print(*[''.join([chr(42) if int(n) else chr(32) for n in i]) for i in [str(bin(int(i))).replace('0b','').zfill(11) for i in str(0x12653f8317a6a2f478e3d40c8).split('90')]],''.join([chr(int(i,16)-0x20a5) for i in ['20e520f5211e210420f8211a21092114'[i:i+4] for i in range(0,32,4)]]),sep='\n')


این کد فقط توی یک خط نوشته شده و ی کار ساده رو داره انجام میده.
اگه اجراش کنید اینو پرینت میکنه :
 ***   *** 
* * *
* *
* *
* *
*
@Py_Sudo


خب ما میتونستیم انقد به خودمون زحمت ندیم و مستقیم بیایم همچین کدی بنویسیم واسش :
print('''
*** ***
* * *
* *
* *
* *
*
@Py_Sudo''')


ولی خب هدف ما obfuscate کردن کد بود :)
ببینید کد به این سادگی رو تونستیم چقدر پیچیده و سخت کنیم. (سخت تر از اینم میشه کرد)
به این میگن obfuscation یا مبهم سازی.
❤‍🔥3
——————————————————————————-
ɪɴ ᴍʏ ʜᴇᴀᴅ
ret hijacking توی اسمبلی چیه و چطوری پیاده سازی میشه؟
Media is too big
VIEW IN TELEGRAM
این ویدیو هم هدیه من به دوستداران مهندسی معکوس و اون دسته از دوستانی که مشتاق یادگیری بیشتر درمورد سطوح پایین تر کامپیوتر هستن
امیدوارم براتون مفید بوده باشه و تونسته باشم منظور و مفاهیم رو درست حسابی بیان کرده باشم

اگه هم جاییش رو متوجه نشدید و براتون گُنگ بود زیر همین پست بیانش کنید تا با همدیگه رفع اشکال کنیم❤️
بابت بعضی از جاهای ویدیو هم که صدا قطع و وصل میشد عذرخواهم ، با womic صدا ضبط میشد یکی دوجا از ویدیو صدا چند لحظه قطع و وصل شد...
🔥3
و تمام
🔥3
اثر دانینگ کروگر میگه کسی که تخصصی توی حوزه ای نداره اعتماد به نفسش توی اون حوزه از کسایی که متخصصن بیشتره ، من اینطور افراد رو هرروز دارم میبینم (تقریبا 70 درصد افرادی که توی تلگرام دیدم ادعای برنامه نویسی دارن داستانشون همین بوده...)

و میگه هرچقدر که تخصصت بیشتر میشه اعتماد به نفست میاد پایین تر ، ولی طولی نمیکشه که هرچقدر بیشتر ادامه میدی اعتماد به نفست هم بیشتر میشه
😂این نمودار رو خودتون نگاه کنید میفهمید :
👍9
This media is not supported in your browser
VIEW IN TELEGRAM
وقتی میای فحش میدی همین میشه دیگه
🔥8
اگه باتی ساختید که قیمت دلار رو بصورت زنده از API میگیره و نمایش میده ، به خودتون زحمت اضافی ندید ، API رو حذف کنید از پروژه.
راه حلش اینه که فقط هر روز بصورت رندوم از 3 تا 5 هزار تومن به مقدار فعلی اضافه کنید
همون میشه زیاد فرقی نمیکنه
تو فکر پایین اومدنشم نباشید حالا حالاها😂😂
👍11❤2
ی کوچولو محتوا ها رو مرتب کنیم اینطوری دسترسی بهشون راحت تره :

- سیستم فایل چیه و چطوری کار میکنه؟
- دستکاری کردن opcode های فایل کامپایل شده پایتونی
- چطوری مهندسی معکوس میکنن و لایسنس برنامه هارو دور میزنن؟
- چطوری سنجشو هک کردم؟
- اعداد منفی چطوری توی مموری ذخیره میشن؟
- پیچیدگی محاسباتی چیه و به چه دردی میخوره؟
- واقعا switch/case پیچیدگی زمانیش O(1)؟
- حمله CSRF چیه و چطوری میتونیم پیاده سازیش کنیم؟
- چطوری اطلاعاتمون رو از عکسای ظاهرا بی اهمیت در میارن؟
- حمله HID چیه؟
- حمله Meltdown و Spectre چین؟
- واقعا کانفیگای پابلیک امن هستن یا نه؟
- چطوری توی سامانه سمیاد وارد اکانت استادامون شدم؟
- اپلیکیشن باهم رو چطوری هک کردم؟
- یواس‌بی مخرب چیه و چطوری کار میکنه؟
- فرق بین encoding و encryption و obfuscation چیه؟
- تکنیک ret hijacking توی اسمبلی چیه و چطوری میتونیم پیاده سازیش کنیم؟
- چطوری راهی شو رو هک کردم؟
- اعداد توی CPU هامون چطوری جمع میشن؟
- هک کردن کامپیوتر با صدای فن

گیتهاب من : Github.com/PySudo

این لیست همزمان با آپلود شدن پستای جدید آپدیت میشه.
❤18
روزتون مبارک کوچولوهای درحال انقراض🥰 ( AI داره منقرضمون میکنه )
❤19
کلا اخلاق با دین ی جا نمیتونه بیاد
قابل درکه
👍11
یادش بخیر الآن یهویی یادم افتاد
یکی از بچها ی گروه داده بود که باهاشون مثکه بد بود
رفتم توش دیدم ی بات گیم دارن که ادمینه من اومدم روی این یکم کرم بریزم ببینم ازش چیزی در میاد یا نه
رفتم توی صفحه پرداختش پرداختو انجام ندادم انصرافو زدم ، ی callback داشت که این token پرداخت و مقدار پرداختی رو تحت عنوان amount داشت بصورت ی پارامتر میفرستاد واسه ی URL ای
اون وسط ی پارامتر success هم بود
اونو از 0 به 1 تغییر دادم دیدم روی صفحه وب زد پرداخت موفق بود
گفتم خب شاید این ی پارامتر کوچولوعه که هر سری نره token رو چک کنه همونجا دیگه success رو چک میکنه و میبینه اگه 0 بود توی صفحه نشون میده پرداخت ناموفق اگه هم 1 بود نشون میده موفق ولی تغییری توی بکند ایجاد نمیشه
برگشتم توی بات دیدم نوشته حساب شما n تومن شارژ شد
رفتم صفحه رو ی دور دیگه رفرش کردم پارامتر success هم 1 بود
دوباره از بات پیام اومد که حسابت شارژ شد😂😂😂
(اسم و طرز کارکرد پارامترا رو نمیدونم درست گفتم یا نه موضوع مال خیلی وقت پیشه ولی خب الگوریتمش ی همچین شتی بود)
❤2