[CTF] TryHackMe Biohazard Write-up

โดย admin

4 นาที
แชร์
Blog Thumbnail

[CTF] TryHackMe Biohazard Write-up


สวัสดีครับคุณผู้อ่านทุกท่าน วันนี้ผู้เขียนมี CTF จาก TryHackMe มาแนะนำให้ทุกท่านได้ลองเล่นกันครับ นั่นก็คือ Biohazard นั่นเอง ซึ่งทุกคนสามารถตามไปเล่นพร้อมๆ กันได้ที่ https://tryhackme.com/room/biohazard ครับ

และถ้าใครพอจะเคยเล่น Resident Evil มาบ้าง คงพอเข้าใจภาพรวมคร่าว ๆ ของ Labs นี้ แต่โดยส่วนตัว ทางผู้เขียนเองไม่เคยเล่นเกม Resident Evil มาก่อนเลย ก็คงจะทำได้แค่พูดถึงได้แค่ในส่วนที่เจอใน Labs นี้เท่านั้นนะครับ

ก่อนอื่นเลย ผู้เขียนจะใช้คำว่า Labs ในการเรียกแทนชื่อเครื่องที่ใช้ทดสอบนี้นะครับ และใน Labs นี้ ทางผู้เขียนจะแบ่งเป็น 5 parts นะครับตามโจทย์ในเว็บ TryHackMe เลย โดยผู้เขียนจะเรียกแต่ละ Part ว่า Task นะครับ เพื่อไม่ให้เป็นการเสียเวลา เรามาเริ่มตะลุยกันเลยครับผมมมมมม

TASK 1 : Introduction

ขั้นตอนแรกนะครับ ให้เราทำการกด Start Machine เพื่อเริ่มทำ Labs นี้กันก่อน และตอบคำถามดังนี้

#1. Deploy the machine and start the nightmare.

Ans: No answer needed

ต่อไปเราจะทำการ Enumerate ก่อนนะครับ เพื่อหาข้อมูลที่สำคัญที่ใช้ในการโจมตี Labs นี้ โดยผู้เขียนจะใช้ เครื่องมือ Nmap เพื่อสแกนหา port หรือ service ที่ Labs นี้เปิดอยู่ครับ

nmap -sC -sV

  • -sC : ใช้ Default Script ในการ สแกน
  • -sV : แสดง version ของ service port ที่ใช้งานอยู่

เราจะพบว่ามี ports หรือ services ที่เปิดใช้งานอยู่ 3 ports ด้วยกัน นั่นคือ

  • 21/ftp- vsftpd 3.0.3
  • 22/ssh- OpenSSH 7.6p1
  • 80/http- Apache httpd 2.4.29

นำผลลัพธ์ที่ได้ มาตอบคำถาม

#2. How many open ports?

Ans: x

ต่อไปเรามาดูบนหน้าเว็บกันครับ โดยใช้ ของ Labs

เราจะพบชื่อทีม พรัอมกับชื่อคนอื่นๆ ในทีม ที่ถูกโจมตีโดยซอมบี้ และทีมวิ่งไปทางคฤหาสน์

#3. What is the team name in operation

Ans: STARS alpha team

จากนั้น เราจะหาเบาะแสเพิ่มเติมนะครับ โดยการ คลิกขวา และ view page source

ไม่เจอเบาะแสอะไรนะครับ จากนั้นให้เราเข้าไปที่คฤหาสน์กันเลย โดยการคลิกที่ /mansionmain

TASK 2 : The Mansion

เมื่อเข้ามาแล้ว เราจะพบว่าคริสหายไป และก็มีเสียงปืนดังขึ้นจากห้องข้าง ๆ เวสเกอร์จึงให้จิลไปตามหาเสียงปืนว่ามาจากห้องไหน

จากนั้น เราจะ view page source เพื่อหาเบาะแสเพิ่มเติมจะพบว่า เสียงปืนดังมาจากห้อง /diningRoom นั่นเอง

จากนั้นเราจะไปดูที่ห้อง /diningRoom กันครับ

เมื่อมาถึงห้อง จิลและแบรี่ เริ่มทำการค้นหา และพบคราบเลือดใกล้กับเตาผิง หวังว่าจะไม่ใช่ของคริสนะ หลังจากใช้เวลาค้นหาสั้นๆ และพวกเขาพบว่า มี emblem จะเก็บไปหรือไม่ ?

จากนั้นเมื่อทำการคลิก YES

เราจะพบกับ emblem flag และข้อความว่า “ดูเหมือนว่าคุณจะสามารถนำไปใส่ช่องใส่ emblem flag, รีเฟรช /diningRoom” และตอบคำถาม

#1. What is the emblem flag

Ans: emblem{?????????????????????????????????????????}

จากนั้นให้เรากลับไปที่ห้อง /diningRoom และรีเฟรชหน้า จะพบว่าในห้อง /diningRoom มีช่องใส่ emblem flag

จะพบว่ามีช่องให้ใส่ emblem flag จึงนำ emblem flag ที่ได้ มากรอกใส่และกด submit

แต่กลับไม่พบอะไรเลย เราจึงกลับไปที่ห้อง /diningRoom และหาเบาะแสเพิ่มเติม โดยการ view page source

และพบข้อความเป็นข้อความถอดรหัสแบบ base64 จึงนำไปถอดรหัส โดยผู้อ่านสามารถใช้เครื่องมือใดก็ได้ในการถอดรหัสด้วยวิธีการ base64 ขึ้นอยู่กับความถนัดของผู้อ่านเลย

เมื่อถอดรหัสมาแล้ว พบข้อความ “ห้อง /teaRoom ล่ะ เป็นยังไง” ผู้เขียนจึงตามเบาะแสไปยังห้อง /teaRoom

พบศพที่ไม่มีหัวนอนกองอยู่กับพื้น หลังจากการสืบดูพบว่าศพนั้นเป็นของ Kenneth จากทีม STARS Bravo แบรี่ได้มอบ Lockpick ให้กับจิล พร้อมทั้งแนะนำให้จิล ไปที่ /artRoom/ จากนั้นเราจะเข้าไปยัง lockpick เพื่อเก็บ flag และตอบคำถามครับ

#2. What is the lock pick flag

Ans: lock_pick{???????????????????????????????????????}

ตรวจหาเบาะแสเพิ่มเติมจากห้อง /teaRoom โดยการ view page source

ไม่พบเบาะแส เช่น Comment หรือข้อความเข้ารหัสอยู่นะครับ จากนั้นเราจะตามเบาะแสที่แบรี่ได้ให้เอาไว้ คือไปที่ห้อง /artRoom

จิลพบภาพวาดและประติมากรรม และมีกระดาษติดอยู่ที่ผนัง จึงทำการสำรวจดูโดยการกด YES

กระดาษแผ่นนั้น คือแผนที่ภายในคฤหาสน์ และกลับมาตรวจสอบห้อง /artRoom เพื่อหาเบาะแส

ไม่มีเบาะแสใด ๆ เพิ่มเติมนะครับ จากนั้นเราจะใช้เบาะแสจากแผนที่ไปที่ห้อง /barRoom กันต่อนะครับ

เมื่อมาถึง พบว่าประตูล็อกอยู่ โดยใช้ lockpick ในการเปิดประตู ซึ่งเราได้รับ lockpick จากแบรี่ที่ห้อง /teaRoom แล้ว นำมันมาเปิดประตูได้ แต่ก่อนอื่นหาเบาะแสจากห้อง /barRoom กันก่อนครับ

ไม่พบเบาะแสเพิ่มเติม ใส่ lockpick แล้วเข้าไปในห้อง /barRoom กันเลย

เมื่อเข้ามาถึง พบเปียร์โนตัวหนึ่งในบาร์นี้ และเจอโน้ตเขียนว่า moonlight somata ซึ่งน่าจะเป็นชื่อเพลง จากนั้นจึงกด READ เพื่ออ่านโน้ตเพลง

พบข้อความเข้ารหัสเป็นชนิด base32 อยู่นะครับ จึงนำข้อความที่ได้ไปถอดรหัสด้วยวิธีการแบบ base32

จะได้รับ music_sheet flag และนำไปตอบคำถาม

#3. What is the music sheet flag

Ans: music_sheet{??????????????????????????????????}

จากนั้น กลับไปยัง /barRoomXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX และหาเบาะแสเพิ่มเติม

แต่ไม่พบเบาะแสอะไร จากนั้นเล่นเปียร์โนโดยทำการใส่ music_sheet flag ลงในช่อง input และกด submit

พบห้อง Secret Bar Room และมี gold emblem ติดอยู่ที่กำแพง จึงกด YES เพื่อเก็บ

จะได้รับ gold_emblem flag และตอบคำถาม

#4. What is the gold emblem flag

Ans: gold_emblem{??????????????????????????????????????????}

จากนั้นย้อนกลับไปที่ห้อง /barRoomXXXXXXXXXXXXXXXXXXXXXXX เพื่อหาเบาะแสเพิ่มเติม

แต่ยังไม่พบเบาะแสอะไรให้เรา เลยกลับไปที่ห้อง Secret BarRoom จะพบว่าห้องนี้สามารถใส่ emblem อันอื่นได้ (หากไม่พบ ให้ผู้อ่านทำการรีเฟรชหน้านี้อีกครั้ง)

จึงนำ emblem ที่เราพบในตอนแรกมาใส่

พบข้อความว่า “rebecca” ซึ่งยังไม่ทราบว่าใช้ทำอะไร หรือเป็นเบาะแสใด จึงไปต่อที่ห้องถัดไป นั่นคือ /diningRoom2F

จิลเห็น blue gem ส่องประกายอยู่บนรูปปั้น แต่เธอไม่สามารถเก็บมันได้ จากนั้นจึงทำการหาเบาะแสเพิ่มเติม

และพบกับ comment ที่ถูกเข้ารหัสแบบ ROT13 อยู่ จึงนำไปถอดรหัสด้วยวิธีการแบบ ROT13

พบข้อความว่า “คุณได้รับ blue gem ด้วยการดันรูปปั้นลงไปยังชั้นล่าง gem อยู่ที่ห้อง diningRoom ในชั้นที่หนึ่ง และให้ไปที่หน้า sapphire.html” และเมื่อเราตามเบาะแสไปยังห้อง /diningRoom และไปที่ sapphire.html

เราจะพบกับ blue jewel flag จึงนำไปตอบคำถามในข้อ 6 ของ TASK 2 (ข้อ 5 เรายังไม่พบคำตอบ)

#6: What is the blue gem flag

Ans: blue_jewel{???????????????????????????????}

จากนั้นกลับไปยังห้อง /diningRoom และลองใส่ gold emblem flag ลงไป (ในตอนแรกเราลองใส่ emblem flag แต่ไม่มีอะไรเกิดขึ้น)

เราจะพบข้อความเข้ารหัส

จึงนำข้อความดังกล่าวไปลองถอดรหัสดู โดยทางผู้เขียนได้ทดลองถอดอยู่หลายอัน แต่ก็พบว่าเป็นการเข้ารหัสแบบ Vigenere Cipher และต้องใช้ Key ในการถอดรหัส ทางผู้เขียนจึงใช้ rebecca ที่ได้จากห้องลับ barRoom

จะได้ข้อความว่า มี shield key ใน /diningRoom หน้า html เรียกว่า the_great_shield_key

จากนั้นเราจึงตามเบาะแสไปยัง the_great_shield_key.html ที่อยู่ในห้อง /diningRoom

พบกับ shield_key flag จึงนำไปตอบคำถามข้อที่ 5

#5. What is the shield key flag

Ans: shield_key{????????????????????????????????????}

ต่อไป เราจะตามแผนที่ ไปยังห้อง /tigerStatusRoom

เมื่อมาถึงห้อง /tigerStatusRoom จะพบว่าที่ตาของเสือมีช่องให้ใส่ gem จึงนำ blue gem flag มาใส่ และกด submit (ก่อนจะกด submit อย่าลืมหาเบาะแสด้วยการ view page source ด้วยนะครับ)

ไม่พบเบาะแสใดเลย (T_T) เมื่อเราใส่ blue gem ไปที่ตาของเสือแล้ว

เจอกล่องลำดับที่ 1 โดยด้านในประกอบไปด้วย 4 ส่วน คือ ข้อความเข้ารหัส, คำใบ้ 1, คำใบ้ 2 และส่วนที่โน้ตไว้ ซึ่งในกล่องนี้ มีคำใบ้ว่า กล่องที่ 1 ถูกเข้ารหัสสองครั้ง และมีทั้งหมด 14 ตัวอักษร

Note: คุณต้องเก็บให้ครบ 4 กล่องแล้วนำข้อความที่ถอดรหัสมารวมกัน โดยการรวมกัน จะมีรูปแบบคือ กล่องที่ 1 + กล่องที่ 2 + กล่องที่ 3 + กล่องที่ 4 (ให้ผู้อ่านบันทึกข้อมูลของแต่ละกล่องไว้ด้วยนะครับ)

เพื่อนำมาไขปริศนา เราจึงต้องตามหากล่องอื่นๆ จึงเดินทางต่อไปที่ /galleryRoom

เมื่อมาถึง จิลพบโน้ตบนผนัง จึงตรวจสอบด้วยการกดปุ่ม EXAMINE

พบกล่องที่ 2 และคำใบ้

  1. กล่องที่ 2 มีการเข้ารหัส 2 ครั้ง
  2. กล่องที่ 2 มีจำนวน 18 ตัวอักษร

จากนั้นกลับไปยัง /galleryRoom และตรวจดูเบาะแสเพิ่มเติม

ไม่พบเบาะแสอะไร จากนั้นจึงไปต่อที่ /studyRoom

ซึ่งประตูยังล็อกอยู่ และต้องใช้ helmet symbol ในการเปิดประตู แต่เรายังไม่มีจากนั้นจึงหาเบาะแสเพิ่มเติมด้วยการ view page source

แต่ยังไม่พบอะไรที่เป็นเบาะแสได้ จึงไปต่อที่ห้อง /armorRoom

ห้องนี้ พบประตูล็อกอยู่เช่นเดียวกัน และต้องใช้ shield symbol ซึ่งเราได้รับแล้วจึงนำ shield flag มาใส่ และกด submit เพื่อเปิดประตู แต่ก่อนจะเปิดประตูจะหาเบาะแสเพิ่มเติมจาก source ของหน้านี้

ไม่พบ comment หรือข้อความเข้ารหัสใด ๆ ถ้างั้นเราเข้าประตูไปกันเลย

เมื่อเข้ามาแล้ว จิลพบชุดเกราะ 8 ชุด จิลจึงตรวจสอบชุดเกราะแต่ละชุดและพบโน้ตในชุดเกราะ กด READ เพื่ออ่านโน้ตนั้น

พบกล่องที่ 3 และคำใบ้

  1. กล่องที่ 3 มีการเข้ารหัสสามครั้ง
  2. กล่องที่ 3 มีจำนวนตัวอักษรทั้งหมด 19 ตัว

ตอนนี้เราพบทั้งหมด 3 กล่องแล้ว ไปตามหากล่องสุดท้ายกันเลย ไปกันที่ห้อง /attic

พบกับประตูที่ถูกล็อกอยู่ ซึ่งต้องใช้ shield flag ในการเปิดประตู (เรามีแล้ว) จึงทำการตรวจสอบเบาะแสเพิ่มเติม

ไม่พบเบาะแส จึงทำการเปิดประตูด้วย shield flag

จิลพบกับศพบนพื้นซึ่งเป็นริชาร์ด สมาชิกกลุ่ม STARS bravo นอกจากนี้ยังมีโน้ตในกระเป๋า” กด READ เพื่ออ่านโน้ต

เมื่ออ่านโน้ต เราจะพบกับกล่องที่ 4 โดยในกล่องที่ 4 มีคำใบ้ว่า

  1. กล่องที่ 2 มีการเข้ารหัส 2 ครั้ง
  2. กล่องที่ 2 มีจำนวนตัวอักษรทั้งหมด 17 ตัวอักษร

(ทางผู้พัฒนาน่าจะเขียนผิด ต้องเป็นกล่องที่ 4 ครับ)

จากนั้น เราจึงนำข้อมูลทั้งหมดที่ได้รับ มาถอดรหัส ดังนี้

ผู้เขียนขอแนะนำเว็บที่ช่วยในการถอดรหัสครับ นั่นคือ https://gchq.github.io/CyberChef/

แชร์
กลับไปด้านบน

บทความที่เกี่ยวข้อง

อัปเดตข้อมูลด้านไซเบอร์ ทุกสัปดาห์
รับข่าวสารความรู้เชิงลึกเกี่ยวกับความปลอดภัยไซเบอร์จากดาต้าฟาร์มก่อนใคร

ฟีเจอร์นี้จะเปิดให้ใช้งานเร็ว ๆ นี้ โปรดติดตาม

ส่งสัปดาห์ละ 1 ครั้ง ไม่มีสแปม ยกเลิกการรับข่าวสารได้ทุกเมื่อ