تحذير من الوثوق بالتطبيقات
من شغلات جديد جاي تنتشر بأختراق حسابات فيسبوك هي عن طريق Access token
اغلب هاي اختراقات جاي تصير عشوائية من قبل الناس اجانب . الهدف هو الصفحات اذا بيها اعجابات ومتابعات من اجل الاعلانات .
زين هية العملية شلون تصير ؟
بكل بساطة اغلبنا اسجل دخول للالعاب عن طريق الحساب الفيسبوك او حتى بعض تطبيقات .
مشكلة انُ انت مامفكر ان هل تطبيق بي هل سوالف وان الشخص لمسوي ما شوف المعلومات الخاص بيك.
بس بالحقيقة اغلب الالعاب وخاصة الالعاب تعتمد نفس فكرة تشوفها بأشكال اخرى.
هي بالواقع هية هدفها الاختراق + الاعلانات.
من تسجيل دخول من لعبة عن طريق الفيسبوك , صاحب التطبيق راح يكدر ياخذ access_token من اجل ان مثلا اغير الايميل او بعض شغلات موجود في documeantation
الخاص في Graph API
تكدر تعرف ان شنو صلاحيات ممكن يكدر اسويها اذا حصل هل شيء. عن طريق الرابط التالي
https://developers.facebook.com/docs/graph-api
بهل حالة لازم تعرف ان هل لعبة موثوقة لولا حتى لو كانت لعبة مرفوعة على متجر .
تخطي SSL pinning في الاندرويد
نبدا بالتحية الطيبة للجميع
اليوم حل مشكلة SSL pinning on Android او مايعرف بحماية الامان المتقدمة للشهادات .
طبعا بالاون الاخير اغلب شركات واصحاب التطبيقات يعتمدون هل الحماية من اجل عدم سماح لمختبري الاختراق بفحص تطبيقاتهم .
بالبداية نحتاج بعض البرامج والادوات والتي هية :-
محاكي نظام اندرويد , مو مهمة هذا نظام اي نظام اخرى بي كافة الخصائص.
نحتاج مترجم لغة البايثون
https://www.python.org/downloads/
واخير نحتاج adb
https://androidstudio.io/downloads/tools/download-the-latest-version-of-adb.exe.html
انا راح اعتمد بشرح على محاكي nox بسبب انه مرفق ويا adb
واكيد اي برنامج لاعتراض طلبات واكيد راح نستخدم burpsuie واكيد انت تعرف ثبت شهادة لان ميحتاج اشرح الالية
لكن للملاحظة اسهل طريق لتثبت شهادة هو تنزيل تطبيق من متجر اسمة Root Certificate Manager
https://play.google.com/store/apps/details?id=net.jolivier.cert.Importer&hl=en
نبدأ على بركة الله
اولا
نفتح نروح لمسارة
D:\Program Files\Nox\bin
بعدها نفتح PowerShell
بعدها نفذ امر تثبت frida-tools
pip3 install frida-tools
بعد تثبيت frida
لازم تعرف ان الاصدار ثبته داخل النظام مالتك نفسة راح تحتاج بتنزل خادم frida في الاندرويد ونفس المعمارية
عن طريق الامر
adb shell getprop ro.product.cpu.abi
على سبيل مثال ناتج امر adb shell getprop ro.product.cpu.abi
في نظام المحاكي خاص بية هو
نروح هسة نحمل خادم frida عن طريق رابط التالي
https://github.com/frida/frida/releases
بعد تحميل ننقل الملف الى نظام المحاكي
صراحتة ماريد اشرح شلون تنقل ملفات الى محاكي لان شرح خطوة بخطوة لهيج امر ماراح خلي الشخص يتقدم ويتعلم
فراح اتخطى موضوع نقل ملفات من النظام الرئيسي الخاص بك الى المحاكي او مايعرف بالفيرجول مشين
ملاحظة مو مهم اي اسم تختار لل frida او اي مسار تريد تخلي في المحاكي
هسة نجي نحول على shell من اجل تنفيذ اوامر وعطاء صلاحية كامل للملفات التي تم رفعها .
هسة احنة كملنا جزء كبير من الخطوات
نجي انطلع identifier app
اكو طرق هواي اما تنزل تطبيق من متجر او حتى من مواقع سوق بلي (هنا تلك الاسم كامل )=https://play.google.com/store/apps/details?id او
تستخدم امر
frida-ps -Uai
بعد ماعرفنا كلشي هسة نفذ امر تشغيل خادم firda
.\adb.exe shell “/data/local/tmp/frida-server &”
بعدها نفذ امر من اجل تخطي الحماية وتجربتنا اليوم على تطبيق ثرد
frida -U -l threads.js -no-paus -f com.instagram.barcelona
frida -U -l (اسم ملف.js) -no-paus -f (اسم تطبيق)
وصورة للاعتراض طلب
ملفات javascript المستخدمة بشرح هية
هسة ممكن واحد يسأل شلون نستخدم مع تطبيقات ثانية تكدر تستخدم
هل ملف
https://codeshare.frida.re/@pcipolloni/universal-android-ssl-pinning-bypass-with-frida/
اسماء ادوات الفحص ثغرات الويب
اسماء الادوات مفيدة لفحص لكل انواع الثغرات الويب وحسب تصنيفات.
1. Injection Flaws:
A- SQL InjectionTools: SQLmap, Burp Suite
Techniques: Manipulating data inputs to exploit poorly secured values that are interpretable as SQL commands.
B- Command InjectionTools: Burp Suite, custom scripts
Techniques: Exploiting inputs that are used in the creation of OS commands, especially when they’re poorly sanitized.
C- XSS (Cross-Site Scripting)Tools: Burp Suite, OWASP ZAP, XSSer
Techniques: Exploiting inputs to inject malicious scripts, often targeting another user.
2. Authentication and Session Management Flaws:
Tools: Burp Suite, custom scripts
Techniques: Exploiting weak password policies, predictable session tokens, insecure account recovery methods, etc.
3. Insecure Direct Object References (IDOR):
Tools: Burp Suite, OWASP ZAP
Techniques: Manipulating references to internal implementation objects to gain unauthorized access.
4. Security Misconfigurations:
Tools: Nmap, Nikto, Nessus
Techniques: Exploiting default configurations, unnecessary services, unprotected files and directories, etc.
5. Sensitive Data Exposure:
Tools: Wireshark, Burp Suite
Techniques: Intercepting traffic to extract data, exploiting weak encryption, etc.
6. Missing Function Level Access Control:
Tools: Burp Suite, OWASP ZAP
Techniques: Accessing unauthorized functions by manipulating requests.
7. Cross-Site Request Forgery (CSRF):
Tools: Burp Suite, OWASP ZAP
Techniques: Forcing an end user to execute unwanted actions on a web application in which they’re authenticated.
8. Unvalidated Redirects and Forwards:
Tools: Burp Suite, OWASP ZAP
Techniques: Redirecting users to malicious websites or tricking users into performing actions they do not intend.
9. Server-side Request Forgery (SSRF):
Tools: Burp Suite, custom scripts
Techniques: Exploiting the ability to create requests from the vulnerable server to intra/extranet applications.
10. XML External Entity (XXE) Injection:
Tools: Burp Suite, custom scripts
Techniques: Exploiting poorly configured XML parsers to disclose internal files, execute remote requests, carry out DoS attacks, etc.
ليش يصير حقن قواعد البيانات
تحية طيبة
هو شلون صير الحقن ؟
. الحقن صير بسبب ادخال مدخلات تسمح للمهاجم بأن عدل على استعلام والة اشكال واساليب مختلفة
وخطورة هل شيء تختلف من تطبيق الى اخر. بس تبقى هل نوع خطر بكل الاحوال لكن تختلف نوع الخطور مابعد عملية الحقن
خل نشوف هذا مثال
$query = “SELECT * FROM users WHERE username=’$username‘ “;
المثال الفوك عبار عن كويري لتسجيل الدخول
اذا خلينا مثلا استعلام ( يعني من بدل ما نخلي اسم مستخدم الطبيعي نخلي بدالة )
‘admin’—‘
فاستعلام راح صير هكذا (الكويري رايح لقاعد البيانات)
SELECT * FROM users WHERE username=‘admin’–‘
ليش صار هيج ؟
علامة —
معناها ان مابعد الامر يعتبر تعليق او خل نكون هيج حشوى زايد فماراح يتنفذ الامر
الامر راح يتنفذ هو قبل العلامة
– ; # اكو علامات اخرى مثل
وغيرها حسب نوع قاعد البيانات
الالية عمل لثغرة xxe
تحية طيبة
قبل لا ندخل بشرح لازم نعرف شنو معنى xml :
هي اختصار لعبارة eXtensible Markup Language و التي تعني لغة الترميز القابلة للتمدّد , وتعتبر من لغات توصفية او ترميزية , شبيه (html ) ولا تعبرة من لغات ( Programming Languages ) من حيث عدم احتوائها على المتغيرات او الدوال وغيرها من الامور التي تتميز بيها لغة البرمجة .
وتكون بينتها على شكل اوسمة او مايعرف بالتاك (Tags) والتى تكتب تعليمات بين قوسيين .
xmlمثال عشوائي
<?xml version=”1.0″ encoding=”UTF-8″?><note> <to>John</to>
<from>Jane</from>
<heading>Reminder</heading>
<body>Don’t forget to pick up the milk!</body> </note>
هذا توضيح بسيط xml
نجي الى xxe شنو هية ؟
XXE هي اختصار لـ “XML External Entity” وهي ثغرة موجود في تطبيقات التى تستخدم XML لتخزين وتحليل البيانات. يتيح هذا نوع من الثغرات من إدخال مدخلات تحتوي على معالجات XML External Entity (أو خوادم خارجية للمستندات) في ملف XML ، مما يؤدي إلى استعراض البيانات الممهمة في التطبيق .
يعني خل اوضحلك اكثر اكو تطبيقات مامستخدم قواعد البيانات المعروفة , انما تستخدم هيج ملفات من اجل السرعة , وعلى الاغلب انشوف هيج تطبيقات بأجهزة راوتر وغيرها من الاجهزة صغيرة.
زين شلون يتم استغلال هاي ثغرات
ياطويل العمر و اكو شيء اسمة Entity
تكدر تبحث وتشوف شلون يشتغل.
هذا المهاجم شسوي اعدل على طلب رايح وخلي مثلا مسار ملف اريد يقراة
لو تشوف الصورة ان الطلب رايح اول مرة عبارة عن تاكات وبي رقم ايدي للمنتج
احنة شراح نسوي ؟
راح نعدل على الطلب ونخلي الانتري مع مسار الملف انريد نشوفة
هذا مثال بسط لهاي ثغرة
طبعا الثغرة بيها انواع
مثل OOB–XXE وهذا نوع ماتكدر تشوف طلب من نفس سيرفر الهدف انما على سيرفرك
طبعا ممكن تستفاد من هل ثغرة اذا جان مثلا عندك رجن معين في شبكة معين غير مسموح الك دخول الها تدخل عليها وتحويلها الى SSRF
نكدر نكول بعض الخواص ثغرة تشبه Local file inclusion
شلون تستفاد من ملف git
تحية طيبة ورمضان كريم
من شغلات الخطر ممكن يقع بيها مبرمج هو نسيان ملف git
هذا ملف يحتوي على سورس التطبيق احياناُ
هنا حنشرح يوم شلون نستفاد منة وشلون نستخدمة الادوات متوفرة.
اول شي نحتاج نحمل هاي الادوات
https://github.com/internetwache/GitTools/
طريق الاستخدام:-
1- خطوة هو استخدام gitdumper.sh
bash gitdumper.sh http://target.tld/.git/ dest-dir --git-dir=.git
dest-dir -A يعني مجلد لتريد ينسحب بي ملف git
B- رابط التطبيق http://target.tld/.git
C- مسار ملف git في موقع –git-dir=.git
مثال على سحب ملف من احد التطبيقات
تكدر تستغني عن الخيار الاول بستخدام الامر Wget لكن انا مافضل للاسباب ان اذا جان تصفح ملفات غير ظاهر
wget git –mirror -I .git https://target.iq/.git/
بعد ماحملنا ملف نروح نسوي عملية فك للملفات التي تم تحميلها .
2- نستخدم سكربت extractor.sh
bash extractor.sh /root/GitTools/Dumper/dest-dir /root/dd
توضيح الامر بشكل اسهل
A- مسار تريد ينفك بي الملف
B- مسار ملف تم تحميلة
بعد ماتم استخراج ملفات نروح للمسار لاختارنا وكما في صورة تبين عملية
شنو نستفاد من السورس السكربت او التطبيق ؟
بكل بساطة اغلب سكربتات تحتوي على معلومات اتصال بقواعد البيانات
ممكن نستفاد بفهم الالية عمل التطبيق ونحصل على ثغرات خطيرة
شلون نستفاد من ملفات التثبت
اليوم حنشرح فكرة ان نستفاد من ملفات التثبت باختبار الاختراق .
والفكرة هي كالتالي :-
1- تحتاج تشتري هوستك عادي او حتى استضافة مجانية تسمح للاتصال بقاعد البيانات عند بعد.
2-تكدر تستخدم vpn ينطيك ايبي مع فتح بورت, تثبت mysql او اي نوع من انواع قواعد البيانات في جهازك.
شرح شلون تفعل اتصال عن بعد من لوحة cpenal للاستضافة العادية
اذا تريد تسمح لكل الايبيات مجرد تخلي علامة % وبس
وهذا مثال بسيط على سكربت (OpenCart)
نكمل خطوات تثبت وندخل لوحة تحكم الادمن وهنا راح نكدر نرفع باك دور عن طريق رفع اضافة معينة محقونة مع باك دور او شل
مثال حي وتطبيق عملي هل فكرة اثناء كتابة البوست
هناك الالف من سكربتات التى لم يحذف مجلد التثبت او ملف التثبت تكدر تستفاد منة
شرح القادم هو شلون نتسفاد من ملفات git. التي يتركها بعض المبرمجيين الاغبياء
شنو نستفاد من ملفات متروكة ؟
تحية طيبة..
شنو نستفاد من الملفات المتروك على المواقع الالكترونية ؟
ملفات المتروكة على الموقع الالكتروني او حتى بعض التطبيقات الويب شنو نكدر نستفاد منها!
1- الفائد المهمة وتأتي بالنقطة الاساسية هو السورس الكود , من اجل فهم الالية عمل السكربت او التطبيق.
2- ملفات التي تحتوي على كلمات المرور او اعدادات اتصال بقواعد البيانات.
هاي اهم فائد ممكن نستفاد منها
احيانا راح تلك ملفات لنسخة احتياطية (backup) تحتوي على قواعد بيانات ممكن من خلالها تعرف كلمة المرور للدخول للوحة التحكم الخاصة بالتطبيق .
الامر الاخرى ممكن نستفاد منة هو ملفات installation او مايعرف بأسم ملفات تثبيت السكربت على الخادم , بوست قادم راح نشرح شلون نكدر نستفاد من ملفات التثبيت اذا ماعندنا اصلا معلومات قاعد بيانات!
كيف نستفاد من ملفات git وشلون نفك الضغط ,كل هل امور راح نفصلها بالتفاصيل .
هسة نجي شلون نكدر نطلع هل ملفات او نسوي تخمين عليهن .
عندنا بعض الادوات المهمة ممكن نستفاد منها وراح اخليها بالترتيب .
1- dirbuster
رابط تحميل
https://sourceforge.net/projects/dirbuster/
2- wfuzz
رابط التحميل
https://github.com/xmendez/wfuzz
3-ffuf – Fuzz Faster U Fool
رابط التحميل
اكو ادوات هواي ممكن تأدي نفس غرض.
للفائد اكثر وشرح ابسط ممكن تدخل على هل رابط ويشرح الك بعض الادوات
https://blog.sec-it.fr/en/2021/02/16/fuzz-dir-tools/
بوست القادم شلون نستفاد من ملفات تثبيت
طريقة اخرى لمنع التصفح الا عن طريق الدومين
مرحبا
الطريق الثانية لاصحاب استضافات او اي صلاحية لديك في الموقع .
تعتمد على تأكد من صحة الطلب اذا كان قادم من الناطق او من الاي بي
بأستخدام htaccess
RewriteEngine On
# تغير اسم دومين الى اسم الدومين خاص بك
RewriteCond %{HTTP_HOST} !^([a-zA-Z0-9-]+\.)*domain\.com$# Display a 403 Forbidden error if the requested host is not the main domain or its subdomains
RewriteRule .* – [F,L]
او عن طريق كود php
<?php
$requestedHost = $_SERVER[‘HTTP_HOST’];
// اسم ناطق
$mainDomain = “example.com”;// Check if the requested host ends with the main domain
if (substr($requestedHost, -strlen($mainDomain)) !== $mainDomain) {
// If it doesn’t match, display an error message and exit
header(‘HTTP/1.1 403 Forbidden’);
echo “Access denied. Please visit the site using the domain name or its subdomains.”;
exit;
}
?>
سكربت بسيطة لتخمين على اسماء الفرعية لمجموعة من الدومنات
السلام عليكم
هذا سكربت يساعدك على استخراج اسماء الفرعية لمجموعة من الدومنات الموجود لديك من اجل تسهيل مهمة جمع المعلومات لمجموع من الدومنات
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
import sys
import threading
from queue import Queue
import socket# Function to read the list of subdomains/domains from a text file
def read_list_from_file(filename):
with open(filename, “r”) as file:
return [line.strip() for line in file]# Read the subdomains and domains from text files
subdomain_names_file = sys.argv[1]
domain_names_file = sys.argv[2]
num_threads = int(sys.argv[3])subdomain_names = read_list_from_file(subdomain_names_file)
domain_names = read_list_from_file(domain_names_file)# Function to resolve the IP address of a domain
def resolve_ip(domain):
try:
ip = socket.gethostbyname(domain)
return ip
except socket.gaierror:
return None# Worker function to process items from the queue
def worker(queue, counter):
while not queue.empty():
subdomain_name = queue.get()found = False
for domain_name in domain_names:
domain = f”{subdomain_name}.{domain_name}”
ip = resolve_ip(domain)
if ip:
found = True
result_text = f”{domain} resolved to IP {ip}”
with open(“results.txt”, “a”) as file:
file.write(result_text + “\n”)
breakif not found:
result_text = f”{subdomain_name} is not a subdomain in the domain names list”
with open(“results.txt”, “a”) as file:
file.write(result_text + “\n”)with counter_lock:
counter[0] -= 1
print(f”Remaining subdomains to end: {counter[0]}”)queue.task_done()
# Create a queue and add items to it
queue = Queue()for subdomain_name in subdomain_names:
queue.put(subdomain_name)# Create and start worker threads
threads = []
counter_lock = threading.Lock()
counter = [len(subdomain_names)]for _ in range(num_threads):
thread = threading.Thread(target=worker, args=(queue, counter))
thread.start()
threads.append(thread)# Wait for all threads to finish
for thread in threads:
thread.join()print(“All subdomains checked.”)
ملاحظة امر تنفيذ بأستخدام الاصدار ثالث للبايثون
python script_name.py subdomain_names.txt domain_names.txt 4
النتائج تحفظ في ملف
results.txt