ສະເຫຼີຍໂຈ້ດ EasyCTF ຈາກ TryHackMe! ໂດຍທີ່ມັນຈະເປັນໂຈ້ດການເຈາະຂັ້ນເລີ່ມຕົ້ນສຳຫຼັບການສຶກສາເລື່ອງເຮັດ Pentest, Privilege Escalation ແລະ Enumeration
ໂດຍໂຈ້ດຈາກເວັບ TryHackMe! ຈະມີຄຳຖາມໃຫ້ໄລ່ຕອບໄປນຳ ເຊິ່ງເຮົາຈະມາສະເຫຼີຍເປັນຂໍ້ໆໄປ --->
ເລີ່ມຈາກຂໍ້ທຳອິດ ເຮົາຈະຕ້ອງມາ scan port ທີ່ຢູ່ລະຫວ່າງ 1-1000 ເພື່ອຊອກເບິ່ງ service ທີ່ເປີດຢູ່ນັ້ນເອງ ໂດຍເຮົາຈະໃຊ້ຄຳສັ່ງ nmap ດັ່ງນີ້:
nmap -v -A -p1-1000 -oN [output_filename] [ip_address]
ຜົນຂອງການສະແກນ:
ຈະເຫັນວ່າມີ port HTTP[80] ແລະ FTP[21] ເປີດຢູ່ ເຮົາກໍລອງ submit ຄຳຕອບໄປເບິ່ງ:
ມາທີ່ຂໍ້ #2 ເຮົາຈະຕ້ອງມາສະແກນເບິ່ງ port ທີ່ຢູ່ສູງຂຶ້ນໄປອີກ. ສາມາດນຳໃຊ້ຄຳສັ່ງຕໍ່ໄປນີ້ເພື່ອຊອກຫາຄຳຕອບໄດ້ເລີຍ:
nmap -v -A -p1000-10000 -oN [output_filename] [ip_address]
ຜົນຂອງການສະແກນ:
ເຫັນວ່າ port ທີ່ເປີດຢູ່ຈະແມ່ນ SSH[2222] ນັ້ນເອງ, ທີ່ເຫຼືອກໍມີແຕ່ສົ່ງຄຳຕອບໄປ:
ຂໍ້ທີ #3 ບາດນີ້ເຮົາຈະຕ້ອງມາ ຫາ CVE ທີ່ສາມາດໃຊ້ກັບ application ທີ່ກຳລັງເປີດໃຊ້ງານຢູ່ ເພື່ອທີ່ເຮົາຈະສາມາດເຈາະເຂົ້າໄປ flag ໄດ້
ວິທີທີ່ຜູ້ຂຽນເຮັດຄື ເລີ່ມຈາກການສຳຫຼວດຂໍ້ມູນທີ່ໄດ້ໂດຍການຄົ້ນ Exploit Database ຂອງ service ຕ່າງໆທີ່ nmap ໄດ້ມາ ເຊິ່ງບໍ່ມີໂຕໃດໃຊ້ໄດ້ເລີຍ....
ເຮົາເລີຍລອງເຂົ້າເບິ່ງ service HTTP (port 80) ທີ່ເປີດຢູ່ເພື່ອຫາຂໍ້ມູນເພີ່ມ ຫຼື ກໍຄືເອົາ ip ໄປເປີດຢູ່ web browser ນັ້ນເອງ ເຊິ່ງກໍຈະເຈິຕາມນີ້:
ແລະ ກໍລອງໃຊ້ gobuster/dirb ເພື່ອສະແກນເບິ່ງ directories ຂອງ Web Application | ສາມາດໃຊ້ຄຳສັ່ງດັ່ງນີ້:
dirb http://[ip_address]/
gobuster dir -u http://[ip_address]/ -w [wordlist_path] (-t [time_running])
ຜົນອອກມາຕາມນີ້:
ຜົນຈາກການສະແກນສະແດງໃຫ້ເຫັນ path ທີ່ເຮົາສາມາດເຂົ້າໄດ້ ແລ້ວຫຼັງຈາກລອງສຳຫຼວດໄປກໍຄັດເຫຼືອ path ດຽວທີ່ເປັນປະໂຫຍດຕໍ່ເຮົາຄື:
ຈະເຫັນວ່າມີ CMS application ເຮັດວຽກຢູ່ ກໍເລີຍລອງເອົາຄຳວ່າ "CMS Made Simple" ໄປຄົ້ນ CVE Database ເບິ່ງ ແລ້ວກໍເຈິອັນໜຶ່ງທີ່ມີຊ່ອງໂຫວ່ SQLi ຢູ່ (ຈຸດນີ້ຜູ້ຂຽນເດົາເອົາຈົນຖືກ ເພາະມັນມີ hint ໃຫ້ຢູ່):
ຫຼັງຈາກນັ້ນກໍເອົາລະຫັດ CVE ໄປຕອບ ແລ້ວກໍໄດ້ຕາມນີ້:
ຂໍ້ທີ #4 ແມ່ນຕໍ່ຈາກຂໍ້ #3 ເລີຍ ເຊິ່ງມັນຈະມີຄຳໃບ້ໃຫ້ຕາມນີ້:
ເຊິ່ງຜູ້ຂຽນເດົາຄຳຕອບຂໍ້ນີ້ໄດ້ກ່່ອນຂໍ້ #3 ສັງເກດວ່າຄຳຕອບມັນຕັ້ງ format ແບບນີ້ **** ກໍຄິດວ່າຕ້ອງມີ 4 ໂຕ ແລະ ຕ້ອງເປັນຫຍັງນີ້ Common ກໍເລີຍລອງໃສ່ SQLi ໄປ ເຊິ່ງກໍຖືກກັນໄປ:
ແຕ່ຖ້າໄລ່ຕອບລຽງແຕ່ຂໍ້ #3 ແບບປົກກະຕິ ເຮົາກໍຈະສາມາດເບິ່ງໄດ້ຈາກຂໍ້ມູນໃນ Database ເຊັ່ນກັນ:
ຕໍ່ຂໍ້ #5 ຈາກ CVE ທີ່ໄດ້ມາ ເຮົາຈະໄດ້ Source Code ທີ່ຂຽນເປັນພາສາ Python ມາ ເຊິ່ງເຮົາຈະກັອບເອົາມາໃສ່ exploit.py (ຕັ້ງຈັ່ງໃດກໍໄດ້ ສຳຫຼັບຜູ້ຂຽນຄືຕັ້ງແບບນີ້) ແລ້ວລອງ run ເບິ່ງໂດຍເຮົາຈະໄດ້ໃສ່ URI ຂອງເປົ້າໝາຍ ແລະ Wordlist ທີ່ໃບ້ມາພ້ອມ:
python exploit.py -u http://[target_uri] -c -w "[wordlist_path]"
*ຖ້າວ່າ error ໃຫ້ລອງກວດເບິ່ງວ່າມີ module python ຄົບບໍ່ (ຖ້າບໍ່ມີ ກໍໃຫ້ pip install [module] ນັ້ນ)
** [target_uri] ແລະ [wordlist_path] ໃສ່ຖືກຕ້ອງຄົບບໍ່ (Wordlist ແມ່ນເອົາຂອງ SecList-best110.txt ທີ່ມາຈາກຄຳໃບ້ໄດ້ເລີຍ)
***ກວດສອບເບິ່ງ Connection ຂອງໂຕເອງ
ຖ້າທຸກຢ່າງປົກກະຕິ ເຮົາກໍຈະແກະ Credential ໄດ້ຕາມນີ້:
ແລະ ກໍຢ່າລືມເອົາ Salt ແລະ MD5 Password ໄປ decrypt ພ້ອມ ເພາະມັນຖືກເຂົ້າລະຫັດຢູ່:
[+] Salt for password found: 1dac0d92e9fa6bb2
[+] Username found: mitch
[+] Email found: admin@admin.com
[+] Password found: 0c01f4468bd75d7a84c7eb73846e8d96
[+] Password cracked: secret
ຂໍ້ທີ #6 ເຂົາຖາມວ່າເຮົາສາມາດ login ໄດ້ທາງໄດ້ ສະນັ້ນລອງຍ້ອນກັບໄປເບິ່ງຜົນສະແກນໂຕນີ້:
ຈະເຫັນ port 2222 ເປີດຢູ່ ສະແດງວ່າເຮົາສາມາດ ssh ເຂົ້າໄປໄດ້ ໂດຍຈະໃຊ້ username ແລະ password ທີ່ໄດ້ຈາກການ crack ກ່ອນໜ້ານີ້:
ssh mitch@[ip_address] -p 2222
ແລະ ໃຫ້ໃສ່ password ທີ່ແກະໄດ້ມາກໍເປັນອັນສຳເລັດ:
ຂໍທີ #7 ແມ່ນຈະໄດ້ຊອກຫາ flag ທຳອິດຂອງເຮົາ ໂດຍຈະເປັນ user's flag ເຊິ່ງເມື່ອເຮົາ login ເຂົ້າໄປກໍສາມາດ cat user.txt ເບິ່ງໄດ້ເລີຍ:
ແລະ ເຮົາກໍຈະໄດ້ flag ມາ!
ຂໍ້ທີ #8 ກໍຄືໃຫ້ຊອກຫາວ່ານອກຈາກ user ປະຈຸບັນທີ່ເຮົາເປັນຢູ່ (mitch) ແລ້ວຍັງມີ user ອື່ນອີກບໍ່? ວິທີຜູ້ຂຽນຄືລອງ list /home ອອກມາເບິ່ງ:
ls /home
ຄຳຕອບທີ່ໄດ້ກໍຄືນອກຈາກ user 'mitch' ແລ້ວ ຍັງມີ user 'sunbath' ພ້ອມນັ້ນເອງ:
ຂໍ້ທີ #9 ຄືຢາກໃຫ້ຫາວິທີ Privilege Escalation ຫຼື ປ່ຽນ user ເປັນ root ເຊິ່ງເຮົາສາມາດກວດສອບໄດ້ວ່າ user (mitch) ປະຈຸບັນສາມາດ run ຄຳສັ່ງໃດໃນສະຖານະ sudo ໄດ້ແນ່:
ຜົນທີ່ອອກມາແປວ່າເຮົາສາມາດ sudo vim ເພື່ອຍົກລະດັບເປັນ root ໄດ້, ເຊິ່ງວິທີແມ່ນສາມາດເຮັດໄດ້ຕາມນີ້:
sudo vim
ພາຍໃນ vim ໃຊ້ຄຳສັ່ງນີ້ :!sh
ເທົ່ານີ້ເຮົາກໍໄດ້ root ແລ້ວ:
ໝາຍເຫດ: ໃນການເຮັດການຍົກລະດັບຜູ້ໃຊ້ແມ່ນຈະມີຢູ່ຫຼາຍວິທີທີ່ເຮົາປັບໃຊ້ໄດ້ ຜູ່້ຂຽນແນະນຳໃຫ້ລອງສຶກສາຄົ້ນຄວ້າດ້ວຍຕົນເອງຕື່ມ ເພາະວິທີທີ່ຍົກມາແມ່ນວິທີທີ່ຜູ້ຂຽນໃຊ້ກັບໂຈ້ດນີ້ເທົ່ານັ້ນ
ຂໍ້ສຸດທ້າຍ #10 ແມ່ນຈະໃຫ້ເຮົາໄປຫາ root's flag ຫຼື ປຽບທຽບໄດ້ຄືຂໍ້ມູນທີ່ບໍ່ຄວນເຂົ້າເຖິງໄດ້ໂດຍບຸກຄົນພາຍນອກ ເຊິ່ງຕໍ່ຈາກຂໍ້ #9 ໃນເມື່ອເຮົາໄດ້ root ມາແລ້ວກໍມີແຕ່ຊອກຫາ flag.txt ເທົ່ານັ້ນ:
ເທົ່ານີ້ກໍຈະໄດ້ root's flag ມານັ້ນເອງ:
ນັ້ນກໍເປັນການຈົບໄປຂອງໂຈ້ດ EasyCTF ເຊິ່ງເຮົາຈະໄດ້ຮຽນຮູ້ການເຈາະລະບົບຂັ້ນພື້ນຖານໄປເລີຍ ເຊິ່ງຜູ້ຂຽນກໍຫວັງວ່າຄົນທີ່ເຂົ້າມາເບິ່ງຈະໄດ້ຮັບຄວາມຮູ້ບໍ່ຫຼາຍກໍໜ້ອຍ. ແລ້ວພົບກັນໃຫມ່ໃນສະເຫຼີຍຕໍ່ໄປ _