ɪɴ ᴍʏ ʜᴇᴀᴅ
706 subscribers
33 photos
16 videos
11 files
18 links
ᴡᴇʟᴄᴏᴍᴇ ᴛᴏ ᴍʏ ʜᴇᴀᴅ
Download Telegram
ɪɴ ᴍʏ ʜᴇᴀᴅ
چطوری اطلاعاتمون رو از عکسای ظاهرا بی اهمیت در میارن؟
هکر ها چطوری اطلاعاتمون رو از عکسای ظاهرا بی اهمیت در میارن؟

فرض کنید اومدین ی عکسی که کاملا سیاهه فرستادین تو ی گروه ولی یهو یکی میاد آدرس خونتونو از روی همون عکس در میاره
خب این چطوری اتفاق میوفته؟
اینجاست که Photo Metadata وارد میشه🗿
این Photo Metadata چیه؟
خیلی ساده بخوام بگم وقتی‌که عکسی میگیرید ی سری اطلاعات هم همراه اون عکس توی فایل عکسی ذخیره میشه و همه داستان اون چیزی نیست که شما دارید توی برنامه img viewer میبینید. اطلاعاتی مثل مدل گوشی ، مدل دوربین ، زمان و تاریخ دقیق گرفته شدن اون عکس ، اینکه اون عکس با فلش گرفته شده یا نه ، موقعیت مکانی اونجایی که عکس گرفته شده و......
بله همه اینا ذخیره میشن ، البته لازم نیست نگران باشید همه اینارو میتونید از توی تنظیمات دوربینتون خاموش کنید ، و واسه اکثر گوشی ها اینکه لوکیشن سیو بشه توی عکس خاموشه بصورت پیشفرض
و اینم بگم که تو اکثر پیام‌رسان ها مثل تلگرام وقتی که عکسی ارسال میکنید تلگرام برای اینکه هم اطلاعاتی از شما به جایی درز نکنه و هم حجم فایلو کمتر شه میاد متادیتاشو حذف میکنه
ولی اگه همون عکس رو بصورت فایلی بفرستید دیگه متادیتاشو حذف نمیکنه :)
با ابزار های زیادیم میتونید این متادیتا رو از عکس استخراج کنید ، معروف ترینش exiftool هستش که اکثرا استفاده میکنن.
ی مثال میزنم واستون ، ی عکس توی ی گروه تلگرامی دیدم که ی بنده خدایی فرستاده بود 👇🏼
Forwarded from 127.0.0.1:443
IMG_20250210_195229.jpg
3.3 MB
ɪɴ ᴍʏ ʜᴇᴀᴅ
IMG_20250210_195229.jpg
Media is too big
VIEW IN TELEGRAM
اینطوری اطلاعاتشو استخراج میکنن ؛)
——————————————————————————-
ɪɴ ᴍʏ ʜᴇᴀᴅ
حمله HID چیه و چطوری کار میکنه؟
حمله HID

اکثر Bad USB هایی که هکرا باهاش از سیستمتون دسترسی میگیرن با HID کار میکنه
مخفف Human Interface Device هستش به معنای «دستگاه رابط انسانی»
حالا داستانش چیه؟ اول شما باید بدونید USB ها چطوری دارن کار میکنن :

هر کانکتور یو‌اس‌بی 4 تا پایه داره
پایه VCC/5v ، پایه GND ، پایه RX ، پایه TX

پایه 5v که پایه مثبت ما هستش و GND هم همون ground یا به قولی نول هستش
پایه rx و tx پایه هایی هستن که دیتا رو بین دو دستگاه از طریق کانکتور USB انتقال میدن
مثلاً دیدین میگن سیم شارژر پاوربانک ارزون تره؟ چون سیم پاوربانک دیگه اون rx و tx رو نداره ، اگه با اون سیم گوشیتونو به سیستمتون متصل کنید فقط گوشی شارژ میشه ، نمیتونید تبادل دیتا کنید بین سیستم و گوشیتون...

خلاصه دیتا از طریق این دوتا سیم بین دوتا دستگاه رد و بدل میشه.
فرض کنید ی کیبورد خریدید. وقتی که سیم USB کیبورد رو به سیستمتون متصل میکنید چه اتفاقی میوفته؟
جریان 5v وارد کیبورد میشه ، آیسی های توی کیبورد به کار میوفتن و ی سیگنال از طریق سیم های rx و tx میدن به سیستمتون که سیستم بفهمه این ی کیبورده و از این به بعد هر دیتایی که سمتش فرستاده شد رو ازش به عنوان ی کلید ورودی قبول کنه...

وقتیکه شما مثلاً میاید روی کیبورد دکمه A رو فشار میدید ، آیسیی که توی کییورد به کار رفته میاد اونو با پایه های rx و tx ارسال میکنه سمت سیستم شما تا سیستمتون بفهمه کلید A فشرده شده.

خب ، حالا که فهمیدید پورت های USB چطوری کار میکنن و چطوری تبادل اطلاعات بین دستگاه ها توسط اونها صورت میگیره ، باید برگردیم سر سوال اول.
داستان این HID attack چیه؟

به زبون ساده هکر طی این حمله خودش رو جای موس/کیبورد یا هر وسیله دیگه ای که میتونه به سیستم شما کانکت بشه جا میزنه و ی سری اطلاعات سمت سیستمتون میفرسته تا هکتون کنه یا...😂

چطوری؟
مثلاً میاد ی مدار میبنده که تا به سیستمتون متصل شد بیاد ی سیگنال بفرسته سمت سیستمتون و الکی بگه سلام من کیبوردم و خودشو ی کیبورد جا بزنه😈😂
بعد به سیستمتون بگه که کاربر دکمه های win+r رو فشار داده
حالا powershell رو تایپ کرده
حالا هم echo test رو نوشته و Enter رو زده

به همین آسونی😂( البته به همین آسونیاهم نیست باید با Arduino یا... کدشو بنویسید)
با داشتن دسترسی به عنوان کیبورد ، خیلی راحت با ارسال چندتا کلید کوچولو موچولو سمت سیستم میتونید powershell رو بیارید بالا و کد های مخرب خودتون رو روی سیستم قربانی اجرا کنید.
مراقب باشید چیارو به سیستمتون متصل میکنید ؛)
❤1👍1
ɪɴ ᴍʏ ʜᴇᴀᴅ
حمله HID اکثر Bad USB هایی که هکرا باهاش از سیستمتون دسترسی میگیرن با HID کار میکنه مخفف Human Interface Device هستش به معنای «دستگاه رابط انسانی» حالا داستانش چیه؟ اول شما باید بدونید USB ها چطوری دارن کار میکنن : هر کانکتور یو‌اس‌بی 4 تا پایه داره پایه…
به این میگن DigiSpark
ی بُرد کوچولو موچولوعه که چون از تراشه Attiny85 استفاده میکنه ، خیلی راحت میتونید باهاش HID attack رو پیاده سازی کنید و ی Bad USB بسازید که به هر سیستمی متصل بشه کدای شمارو روش اجرا کنه :)
——————————————————————————-
ɪɴ ᴍʏ ʜᴇᴀᴅ
دوتا از خطرناک ترین آسیب پذیری های دنیا! حمله Meltdown و Spectre 👻
حمله Meltdown

چیکار میکنه؟
باعث میشه که ی برنامه معمولی ( User Mode ) بتونه به اطلاعات حافظه کرنل ( Kernel Memory ) دسترسی پیدا کنه!

یعنی به داده هایی که اصولاً باید برای همیشه قفل باشن مثل پسورد ها ، کلیدای خصوصی و....

خب حالا چطوری کار میکنه؟
همونطور که گفتم این نقص برمیگرده به CPU ، این حمله از ویژگی speculative execution پردازنده سو استفاده میکنه.

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

حمله Meltdown از این ویژگی حدس زدن CPU ها برای دسترسی به حافظه محافظت شده سو استفاده میکنه

فرض کنید برنامه دستوراتی میده که در حالت عادی مجاز به انجام اونها نیست ، طبق ویژگی speculative execution پردازنده بطور موقت این دستورات رو توی بک‌گراند اجرا میکنه ( قبل از اینکه بفهمه )
دیگه بعد از این مهم نیست که بهمون ارور بده یا جلوشو بگیره یا...🤷‍♂️
دستور ما اجرا شده :)
مقادیر توی کش باقی میمونن و منتظرن تا هکر بیاد و بگیرتشون😁
ɪɴ ᴍʏ ʜᴇᴀᴅ
حمله Meltdown چیکار میکنه؟ باعث میشه که ی برنامه معمولی ( User Mode ) بتونه به اطلاعات حافظه کرنل ( Kernel Memory ) دسترسی پیدا کنه! یعنی به داده هایی که اصولاً باید برای همیشه قفل باشن مثل پسورد ها ، کلیدای خصوصی و.... خب حالا چطوری کار میکنه؟ همونطور…
حمله Spectre

این حمله به مراتب از حمله قبلی خطرناک تره😁
حمله Spectre باعث میشه که ی برنامه بتونه حافظه سایر برنامه هارو ( نه فقط kernel ) بخونه

یعنی هر برنامه ای میتونه اطلاعات سایر برنامه های درحال اجرا رو بدزده!
این فوق العاده خطرناکه چون باعث میشه اطلاعات خیلی محرمانه تری از کاربر دزدیده بشه ( فرض کنید یهو ینفر بدون اینکه حتی روحتون هم خبردار بشه اومده رو حساب تلگرامتون چون auth key شمارو دزدیده ، حتی توی تنظیمات تلگرام هم مشخص نمیشه که کسی رو اکانتتونه )

این حمله هم مثل حمله قبلی از ویژگی speculative execution پردازنده سو استفاده میکنه ، اما این بار بجای دسترسی مستقیم کاری میکنه که CPU مسیر اجرای اشتباه رو حدس بزنه و به داده‌هایی که نباید دسترسی داشته باشه پیشبینی و دسترسی پیدا کنه :)

بعد هم مثل Meltdown از کش پردازنده برای خوندن اطلاعات استفاده میکنه

حمله Spectre خیلی وسیع تر از Meltdown هستش چونکه روی پردازنده های بیشتری تأثیر گذاشت ( Intel , AMD , ARM و... )

خاص بودن Meltdown & Spectre اینجاست که اینها مشکل در طراحی سخت افزار بودن نه فقط نرم افزار :)
یعنی فقط با آپدیت نرم افزار پچ نمیشدن ، باید سخت افزار جدید ساخته میشد😂

هر سیستمی که از CPU های مدرن استفاده میکرد در برابر این حملات آسیب پذیر بود...
——————————————————————————-
ɪɴ ᴍʏ ʜᴇᴀᴅ
آیا واقعا کانفیگای پابلیکی که استفاده میکنیم امن هستن؟ امکان اجرای 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
——————————————————————————-