Home STDiO 2023: Forensics Writeup
Post
Cancel

STDiO 2023: Forensics Writeup

ສະບາຍດີ ທຸກຄົນ! ມື້ນີ້ຂະພະເຈົ້າ ຈະມາສະເຫຼີຍໂຈດ Capture The Flag (CTF) ໃນໝວດ Forensics ຈາກທາງເພື່ອນບ້ານທີ່ຊື່ວ່າ STDiO CTF ເຊິ່ງຈັດຂຶ້ນໂດຍ 2600 Thailand ເຊິ່ງຂ້າພະເຈົ້າຮູ້ສຶກວ່າມີຄວາມທ້າທາຍ ແລະ ໄດ້ຮຽນຮູ້ຫຼາຍຢ່າງ ຜ່ານການເເກ້ໂຈດໃນງານນີ້.

ໃນການສະເຫຼີຍຄັ້ງນີ້ ເເມ່ນມີບາງໂຈດທີ່ຂ້າພະເຈົ້າບໍສາມາດແກ້ໄດ້ທັນເວລາການເເຂ່ງຂັນ ແຕ່ສາມາດແກ້ໄດ້ຫຼັງຈາກງານເເຂ່ງຂັນສິ້ນສຸດລົງ. ດັ່ງນັ້ນ, ຂ້າພະເຈົ້າຈິ່ງໄດ້ເອົາມາເເບ່ງເປັນເພື່ອໃຫ້ເປັນແນວທາງສຳລັບລຸ້ນນ້ອງ, ໝູ່ເພື່ອນ ຫຼື ອ້າຍ/ເອື້ອຍ ທຸກໆຄົນທີ່ມີຄວາມສົນໃຈ ແລະ ກຽມພ້ອມເພື່ອເເຂ່ງຂັນ CTF ໃນອະນາຄົດໄດ້ສຶກສາໄປພ້ອມໆກັນ. ເນື່ອງຈາກວ່າ ໃນສາດຂອງການແກ້ CTF ແລະ ການເຮັດວຽກ/ການເສັງ Certification ແມ່ນເປັນໜັງຄົນລະມ້ວນເລີຍ. ການແກ້ CTF ຈະມີໃນເລື່ອງຂອງການທົດສອບທັກສະການແກ້ໄຂບັນຫາ ແລະ ໄຫວພິບທີ່ທ້າທາຍກວ່າ ເມື່ອທຽບກັບການເສັງ Cert ທີ່ຈະເປັນການທົດສອບທັກສະເພື່ອເນັ້ນໃຫ້ເຮົາພ້ອມແກ່ການເຮັດວຽກຕົວຈິງເປັນສ່ວນໃຫຍ່.

ເພື່ອບໍ່ໃຫ້ເປັນການເສຍເວລາ ເຮົາມາເບິ່ງນຳກັນເລີຍ!!

Encrypt Traffic

ໃນໂຈດໄດ້ໃຫ້ໄຟລ໌ບີບອັດທີ່ມີຊື່ວ່າ for2_Encrypted_Traffic_traffic.pcap.zip ເຊິ່ງພາຍໃນໄຟລ໌ດັ່ງກ່າວຈະປະກອບມີ ໄຟລ໌ທີ່ໜ້າສົນໃຈຢູ່ 2 ໄຟລ໌ຄື ໄຟລ໌ Network Traffic .pcap ແລະ ໄຟລ໌ key.

ເມື່ອພວກເຮົາທົດສອບເປີດໄຟລ໌ .pcap ດ້ວຍເຄື່ອງມື Wireshark ເຮົາຈະບໍ່ສາມາດອ່ານ Traffic ໄດ້ເພາະຕົວຂໍ້ມູນການໄຫລຂອງເນັກເວີກໄດ້ມີການເຂົ້າລະຫັດ (Encrypt) ໄວ້ເພື່ອປ້ອງກັນການອ່ານເຫັນ Traffic ແບບ Plaintext. ເນື່ອງຈາກວ່າຕົວໂຈດໄດ້ໃຫ້ໄຟລ໌ key ໃຫ້ກັບເຮົາ ຈິ່ງເຮັດໃຫ້ສາມາດຖອດລະຫັດ (Decrypt) ຂໍ້ມູນການໄຫລຂອງເນັດເວີກນີ້ໄດ້. ແຕ່ ເຮົາຈະຮູ້ວິທີຖອດລະຫັດໄດ້ແນວໃດ?

ກ່ອນອື່ນໝົດ, ເຮົາມາກວດສອບເບິ່ງເນື້ອຫາພາຍໃນຂອງໄຟລ໌ key ນີ້ກັນກ່ອນ. ໂດຍເນື້ອຫາບ່າງສ່ວນໄດ້ສະແດງດັ່ງລຸ່ມນີ້:

1
2
3
4
SERVER_HANDSHAKE_TRAFFIC_SECRET 89f95292cf3b33c625361114bda6f3d2a99516ac9edc951658d53afad6a22202 8d515f43ab94aab1f9e430ddc077c6c4026e1658207e638d8bacee51d649c98e2e3e290ea0f8754f13d8e814d4623bcf
EXPORTER_SECRET 89f95292cf3b33c625361114bda6f3d2a99516ac9edc951658d53afad6a22202 056add79b69ebe7c7f77e332b9a46a26f65951ed20f8bfe741c997030aef054692f45a494017d715af4d5662e27be6b9
SERVER_TRAFFIC_SECRET_0 89f95292cf3b33c625361114bda6f3d2a99516ac9edc951658d53afad6a22202 cdae9488f2322cdef20dad8e9240de442064b6c73633a2dad80b8e338d051225ab5415732e219783c91664176b40fb09
<-- snip --->

ຈາກຕົວຢ່າງຂ້າງຕົ້ນ ເຮົາສັງເກດເຫັນວ່າ ໄຟລ໌ Key ດັ່ງກ່າວເປັນ Pre-Master-Secret.

ໃນການຖອດລະຫັດ ໃນໜ້າ Wireshark ເຮົາສາມາດເຂົ້າໄປທີ່ Edit > Preferences > Protocols > TLS ຈາກນັ້ນເຮົາສາມາດຖອດລະຫັດດ້ວຍການ import ເຂົ້າໄປໃນສ່ວນ (Pre)-Master-Secret key log filename. ເມື່ອສຳເລັດການ import ເຮົາກໍຈະເຫັນຄຳຕອບທັນທີ.

Wireshark Decrypted Traffic Figure 1.1 — Wireshark Decrypted Traffic Sample

ຄຳຕອບ: STDIO23_14{bddbe90b56bbb69e10c1807a2eddbd13}

Isolated Server

ໃນໂຈດຂໍ້ນີ້ຈະເປັນການວິເຄາະໄຟລ໌ .ldb ເຊິ່ງເປັນໄຟລ໌ບັນທຶກການເປີດ ຫຼື ເຂົ້າເຖິງຖານຂໍ້ມູນຂອງ Microsoft (Microsoft Access Lock Information). ໃນການວິເຄາະໄຟລ໌ນີ້ເຮົາສາມາດນຳໃຊ້ເຄື່ອງມື tdbdump ເພື່ອດຶງເອົາຂໍ້ມູນຈາກໄຟລ໌ດັ່ງກ່າວ. ໃນບາງ Linux distro ຈະບໍ່ມີຕົວໂປຣແກຣມນີ້ມານຳ ແຕ່ເຮົາກໍສາມາດຕິດຕັ້ງໄດ້ໂດຍໃຊ້ຄຳສັ່ງ sudo apt install tdb-tools.

ເພື່ອດຶງເອົາຂໍ້ມູນຕ່າງໆອອກຈາກໄຟລ໌ .ldb ເຮົາສາມາດໃຊ້ຄຳສັ່ງຕໍ່ໄປນີ້:

1
tdbdump for3_Isolated_Server_cache_sdhbank.local.ldb > dump.txt

ຫາກເຮົາສາມາດດຶງຂໍ້ມູນອອກຈາກໄຟລ໌ໄດ້ ຜົນລັບຂອງເຮົາຈະຄ້າຍຄືກັບທີ່ສະແດງຂ້າງລຸ່ມນີ້:

1
2
3
4
5
6
7
8
9
10
11
12
13
{
key(21) = "DN=@INDEX:CN:CERTMAP\00"
data(81) = "g\19\01&\02\00\00\00@INDEX:CN:CERTMAP\00@IDXVERSION\00\01\00\00\00\01\00\00\002\00@IDX\00\01\00\00\00\13\00\00\00cn=certmap,cn=sysdb\00"
}
{
key(91) = "DN=@INDEX:MEMBER:NAME=Domain [email protected],CN=GROUPS,CN=SDHBANK.LOCAL,CN=SYSDB\00"
data(225) = "g\19\01&\02\00\00\00@INDEX:MEMBER:NAME=Domain [email protected],CN=GROUPS,CN=SDHBANK.LOCAL,CN=SYSDB\00@IDXVERSION\00\01\00\00\00\01\00\00\002\00@IDX\00\01\00\00\00]\00\00\00name=Denied RODC Password Replication [email protected],cn=groups,cn=sdhbank.local,cn=sysdb\00"
}
{
key(72) = "DN=@INDEX:OBJECTSIDSTRING:S-1-5-21-1310303666-1233753094-3832251473-520\00"
data(195) = "g\19\01&\02\00\00\00@INDEX:OBJECTSIDSTRING:S-1-5-21-1310303666-1233753094-3832251473-520\00@IDXVERSION\00\01\00\00\00\01\00\00\002\00@IDX\00\01\00\00\00R\00\00\00name=Group Policy Creator [email protected],cn=groups,cn=sdhbank.local,cn=sysdb\00"
}
<-- snip -->

ຫຼັງຈາກອ່ານຂໍ້ມູນທີ່ດຶງອອກມາຈາກໄຟລ໌ .ldb ດັ່ງກ່າວ, ເຮົາຈະພົບກັບ hash ຂອງຜູ້ໃຊ້ admin. ຫຼັງຈາກນັ້ນ, ຂ້າພະເຈົ້າໄດ້ດຳເນີນການ crack ເພື່ອທົດສອບວ່າເຮົາສາມາດກູ້ລະຫັດຈາກ wordlist ໄດ້ຫຼືບໍ່.

1
2
3
4
# Write the hash to file
echo -n '$6$kLD6uZK9nK8VuQ65$Bs13zM0B3nGcCqMdfNPMbwrON0DpoJSn/c9ry/CEatJJY8Jtvfvss7k6o.dxZfbfxKm5SdlApx2jR8PTwtF7B0' > hash
# Using John to crack the file in dictionary mode with rockyou.txt dictionary
john --wordlist=/usr/share/wordlists/rockyou.txt hash

ຫຼັງຈາກທີ່ໃຊ້ເວລາປະມານໜຶ່ງ, ເຮົາສາມາດ crack ລະຫັດດັ່ງກ່າວດ້ວຍ wordlist ທີ່ຊື່ວ່າ rockyou.txt

1
2
3
4
5
6
7
8
9
Using default input encoding: UTF-8
Loaded 1 password hash (sha512crypt, crypt(3) $6$ [SHA512 128/128 AVX 2x])
Cost 1 (iteration count) is 5000 for all loaded hashes
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
Michael1         (?)     
1g 0:00:00:03 DONE (2023-12-03 23:10) 0.2849g/s 2844p/s 2844c/s 2844C/s 12345b..stevens
Use the "--show" option to display all of the cracked passwords reliably
Session completed.

ຫຼັງຈາກນັ້ນ, ເຮົາສາມາດນຳໃຊ້ຄຳສັ່ງ md5sum ເພື່ອຄິດໄລ່ຄ່າ hash ໃຫ້ກັບລະຫັດທີ່ເຮົາ crack ໄດ້ເພື່ອເປັນຄຳຕອບສຳລັບຂໍ້ນີ້.

1
echo "STDIO23_15{`echo -n 'Michael1' | md5sum - | cut -c 1-32`}"

ຄຳຕອບ: STDIO23_15{b2b3ac0899ba5d01a530ca6f4525248a}

Broken Document

ພາຍໃນໂຈດໄດ້ໃຫ້ໄຟລ໌ .bin ເຊິ່ງພາຍຫລັງນຳໃຊ້ຄຳສັ່ງ file for4_BrokenDocument.bin ເພື່ອກວດສອບຊະນິດຂອງໄຟລ໌. ສັງເກດເຫັນວ່າໄຟລ໌ດັ່ງກ່າວ ແມ່ນ Linux filesystem.

ເພື່ອດຳເນີນການວິເຄາະໄຟລ໌ດັ່ງກ່າວ ເຮົາສາມາດ mount ເຂົ້າກັບເຄື່ອງ linux ຂອງເຮົາໂດຍນຳໃຊ້ຄຳສັ່ງ ດັ່ງຕໍ່ໄປນີ້:

1
2
3
4
# Create a new directory for mounting
sudo mkdir /mnt/brokenDocument/
# Mount a filesystem to our machine
sudo mount ./for4_BrokenDocument.bin /mnt/brokenDocument

ເມື່ອເຮົາດຳເນີນການ mount ສຳເລັດ, ພາຍໃນ filesystem ດັ່ງກ່າວຈະພົບ directory ທີ່ມີຊື່ແປກໆເປັນຈຳນວນຫຼາຍ. ດ້ວຍເຫດນັ້ນ, ເຮົາທົດສອບຄົ້ນຫາໄຟລ໌ທີ່ອາດຈະຢູ່ໃນ filesystem ນີ້ດ້ວຍການນຳໃຊ້ຄຳສັ່ງຕໍ່ໄປນີ້:

1
find /mnt/brokenDocument/ -type f 2> /dev/null

ຫາກທຸກຄົນນຳໃຊ້ຄຳສັ່ງແບບດຽວກັນກັບທີ່ກ່າວມາ, ຜົນລັບຂອງຄຳສັ່ງຈະຄ້າຍຄືກັບທີ່ສະແດງຂ້າງລຸ່ມນີ້:

1
2
3
4
5
6
7
8
9
10
/mnt/brokenDocument/75x9guqw/5IZnQugB/free_excel.ods
/mnt/brokenDocument/75x9guqw/Qhc3N9Ob/.git/objects/25/619ecff9d4c3259f3b1793ced95e455948f289
/mnt/brokenDocument/75x9guqw/Qhc3N9Ob/.git/objects/5e/211d7af9ad2798589769655a6aa457afc764fb
/mnt/brokenDocument/75x9guqw/Qhc3N9Ob/.git/objects/d2/f3c321e3587175e84c1baceac717da0584a80e
/mnt/brokenDocument/75x9guqw/Qhc3N9Ob/.git/objects/4f/7cf3318d699bcf4e5415e77d2806efb1dc84f1
/mnt/brokenDocument/75x9guqw/Qhc3N9Ob/.git/objects/7d/4e5c813e71e1961e6ab9483a4ec389554b1274
/mnt/brokenDocument/75x9guqw/Qhc3N9Ob/.git/objects/b2/2a76bbd31fa3f09cec3cc7d2a021fbe467b7df
/mnt/brokenDocument/75x9guqw/Qhc3N9Ob/.git/objects/79/a139ca2be29e2531630b3bf4775eb0514e6df6
/mnt/brokenDocument/75x9guqw/Qhc3N9Ob/.git/objects/dd/6ed23b16b2085361f501b9616af3db09c9aaf7
<-- snip -->

ຈາກຜົນລັບຂອງຄຳສັ່ງ find, ເຮົາປະກົດເຫັນໄຟລ໌ທີ່ໜ້າສົງໃສຢູ່ສອງໄຟລ໌ຄື: free_excel.ods ແລະ .git. ດ້ວຍເຫດນັ້ນ, ເຮົາດຳເນີນການຄັດລອກໄປວາງໄວ້ໃນ home directory ຂອງເຮົາເພື່ອກວດສອບໃນຂັ້ນຕໍ່ໄປ.

1
2
cp /mnt/brokenDocument/75x9guqw/5IZnQugB/free_excel.ods ~/stdio2023_ctf/forensics/brokenDocument/
cp /mnt/brokenDocument/75x9guqw/Qhc3N9Ob/.git/ ~/stdio2023_ctf/forensics/brokenDocument/

ໃນຂັ້ນທຳອິດ, ເຮົາດຳເນີນການກວດສອບໄຟລ໌ OpenDocument Spreadsheet (.ods), ຂ້າພະເຈົ້າສັງເກດເຫັນວ່າ magic number ຂອງ header ໄຟລ໌ດັ່ງກ່າວແມ່ນບໍ່ຖືກ ເຊິ່ງເຮັດໃຫ້ເມື່ອເປີດອ່ານໄຟລ໌ ໂປຣແກຣມທີ່ໃຊ້ອ່ານຈິ່ງແຈ້ງວ່າໄຟລ໌ນັ້ນໆເສຍຫາຍ. ເພື່ອແກ້ໄຂໃນພາກສ່ວນດັ່ງກ່າວ, ເຮົາສາມາດນຳໃຊ້ hexeditor ແກ້ໄຂ header ໃນ offset ທີ 0x00 ແລະ 0x01 ຈາກ 4B 50 ໄປເປັນ 50 4B.

ເຖິງແມ່ນວ່າເຮົາຈະແກ້ໄຂຂໍ້ຜິດພາດດັ່ງກ່າວໄປແລ້ວ ເຮົາກໍຍັງບໍ່ສາມາດເປີດອ່ານໄຟລ໌ດັ່ງກ່າວໄດ້ ເນື່ອງຈາກເຮົາບໍ່ຮູ້ລະຫັດຜ່ານຂອງໄຟລ໌ນີ້. ດັວຍເຫດນັ້ນ, ຂ້າພະເຈົ້າໄດ້ດຳເນີນການກວດສອບໂຟເດີ .git ກ່ອນເພື່ອຈະໄດ້ຂໍ້ມູນຫຍັງທີ່ໜ້າສົນໃຈ. ໂຟເດີ .git ເປັນ repository ຂອງ Git ທີ່ໃຊ້ໃນການບັນທຶກກິດຈະກຳຂອງໂປຣເຈັກຕ່າງໆ ແລະ ມີການເກັບປະຫວັດຕ່າງໆໃຫ້ເຮົາສາມາດ review ໄດ້ອີກດ້ວຍ. ດ້ວບເຫດນີ້, ການກວດສອບໂຟເດີດັ່ງກ່າວ ຈິ່ງເປັນ foothold ທີ່ດີໃນການພະຍາຍາມກູ້ຄືນຂໍ້ມູນທີ່ອາດຈະເກັບ ລະຫັດຂອງໄຟລ໌ spreadsheet ທີ່ກ່າວມາຂ້າງຕົ້ນນັ້ນ.

ເພື່ອກວດສອບປະຫວັດການ commit ທີ່ຜ່ານມາເຮົາສາມາດນຳໃຊ້ຄຳສັ່ງ git log ເຊິ່ງຜົນລັບຂອງຄຳສັ່ງຈະຄ້າຍຄືກັບຂ້າງລຸ່ມນີ້:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
commit dd6ed23b16b2085361f501b9616af3db09c9aaf7 (HEAD -> master)
Author: root <[email protected]>
Date:   Wed Nov 29 03:48:34 2023 +0700

    clean up

commit 15173896c55d6620d74e2d6ef02ccf9e81c37f53
Author: root <[email protected]>
Date:   Wed Nov 29 03:48:13 2023 +0700

    note for my excel

commit 9e330ec43c248855b47251eff287444d49f98fb8
Author: root <[email protected]>
Date:   Wed Nov 29 03:45:21 2023 +0700

    gone forever

commit 79a139ca2be29e2531630b3bf4775eb0514e6df6
Author: root <[email protected]>
Date:   Wed Nov 29 03:44:55 2023 +0700
<-- snip -->

ຈາກຜົນລັບຂ້າງຕົ້ນ, ຂ້າພະເຈົ້າໄດ້ທົດສອບກູ້ໄຟລ໌ທີ່ສ້າງໃນການ commit ທີ່ comment ໄວ້ວ່າ “note for my excel”. ແຕ່ລະຫັດດັ່ງກ່າວບໍ່ຖືກຕ້ອງ, Rabbit Hole ເຕັມໆ! ຫຼັງຈາກນັ້ນ, ຂ້າພະເຈົ້າກໍໃຊ້ເວລາດົນພໍສົມຄວນໃນການຊອກຫາວິທີອື່ນ.

ພາຍຫຼັງທີ່ການແຂ່ງຂັນສິ້ນສຸດລົງ. ຂ້າພະເຈົ້າໄດ້ຮຽນຮູ້ອີກວິທີການໜຶ່ງທີ່ສາມາດໃຊ້ຢັ້ງຢືນຄວາມເປັນເຈົ້າຂອງໄຟລ໌ດ້ວຍການເຂົ້າລະຫັດໄຟລ໌ spreadsheet ດັ່ງກ່າວດ້ວຍ private key ທີ່ສ້າງໂດຍໃຊ້ເຄື່ອງມືເຊັ່ນ: gpg ດ້ວຍເຫດນັ້ນ, ຄຳຕອບທີ່ກ່າວມາຈຶ່ງໄປຕອບຄຳຖາມທີ່ຢູ່ໃນຫົວຂອງຂ້າພະເຈົ້າໃນລະຫວ່າງທີ່ອ່ານປະຫວັດຂອງ .git ທີ່ກ່າວມາກ່ອນໜ້ານີ້ວ່າ ເປັນຫຍັງຕ້ອງມີໄຟລ໌ .asc ໃນປະຫວັດການ commit. ດັ່ງນັ້ນ, ຂ້າພະເຈົ້າໄດ້ໃຊ້ຄຳສັ່ງ git checkout ເພື່ອກູ້ໄຟລ໌ໃນ commit ນັ້ນໆ.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Jump to the version that contains key.asc
git checkout 79a139ca2be29e2531630b3bf4775eb0514e6df6

# Crack the key with John The Ripper
gpg2john key.asc > key.hash
john --format=gpg --wordlist=/usr/share/wordlists/rockyou.txt key.hash

# The password result be 1234

# import key
# The prompt will ask to enter the password (Which we've cracked before)
gpg --import key.asc

# modify a key trust level to level 5 (ultimately trust) and (y)es to confirm our changed
# using gpg option --command-fd 0 to receive input from prompt --expert to fully fine control over the encryption process, then use --edit-keys to tell the command that we are going to edit this key
echo -n "5\ny\n" | gpg --command-fd 0 --expert --edit-keys 50B9439A179EEFFAEDE6BD8C14B31C1CD673DF25 trust

ພາຍຫລັງປະຕິບັດຕາມຂັ້ນຕອນທີ່ສະແດງຂ້າງເທິງ. ເຮົາສາມາດເປີດໄຟລ໌ ແລະ ນຳໃຊ້ລະຫັດຜ່ານທີ່ເຮົາ crack ມາ ເພື່ອເປີດອ່ານໄຟລ໌ໄດ້ທັນທີ.

ຄຳຕອບ: STDIO23_16{476c3f289c409ada45e303e08f5ab76d}

Check Mem

ໂຈດໄດ້ໃຫ້ໄຟລ໌ memory dump. ໃນໂຈດຂໍ້ນີ້ໄດ້ມີຄຳໃບ້ທີ່ຊັດເຈນກັບເຮົາໃນຄຳອະທິບາຍຂອງໂຈດ ເຊິ່ງໄດ້ກ່າວໄວ້ວ່າ: “somewhere that every-windows have it”. ດັ່ງນັ້ນ, ສິ່ງທຳອິດທີ່ຂ້ພະເຈົ້ານຶກເຖິງກໍຄື Windows environment variable ເຊິ່ງເປັນສິ່ງທີ່ໜ້າຈະແມ່ນທີ່ສຸດແລ້ວ.

ແຕ່ເຮົາຈະສາມາດອ່ານໄຟລ໌ດັ່ງກ່າວໄດ້ແນວໃດ? ຄຳຕອບຄື Volatility, ເຊິ່ງເປັນເຄື່ອງມືການເຮັດ Memory forensics ທີ່ຊົງພະລັງ, ຟຣີ ແລະ ດີຕົວໜຶ່ງໃນຕະລາດ. ເຊິ່ງຂ້າພະເຈົ້າຈະນຳໃຊ້ Volatility 3 ໃນການສາທິດນີ້:

1
2
# Using volatility3 to dump a Windows environment variables
python3 vol.py -f STDiO_memdump Windows.envars.Envars

ເມື່ອນຳໃຊ້ຄຳສັ່ງທີ່ກ່າວມາຂ້າງຕົ້ນ, ເຮົາຈະໄດ້ຜົນລັບຄ້າຍຄືດັ່ງຕໍ່ໄປນີ້:

1
2
3
4
5
6
7
8
9
10
11
<-- snip -->
2372    RuntimeBroker.  0x21a71e03430   DriverData      C:\Windows\System32\Drivers\DriverData
2372    RuntimeBroker.  0x21a71e03430   F.1.a.G is d616ad7365a1b99bc7257091356d9514
2372    RuntimeBroker.  0x21a71e03430   HOMEDRIVE       C:
2372    RuntimeBroker.  0x21a71e03430   HOMEPATH        \Users\Mirth
2372    RuntimeBroker.  0x21a71e03430   LOCALAPPDATA    C:\Users\Mirth\AppData\Local
2372    RuntimeBroker.  0x21a71e03430   LOGONSERVER     \\DESKTOP-QPU6OJ5
2372    RuntimeBroker.  0x21a71e03430   NUMBER_OF_PROCESSORS    1
2372    RuntimeBroker.  0x21a71e03430   OneDrive        C:\Users\Mirth\OneDrive
2372    RuntimeBroker.  0x21a71e03430   OneDriveConsumer        C:\Users\Mirth\OneDrive
<-- snip -->

ຈາກຜົນລັບ ເຮົາສັງເກດເຫັນວ່າມີຄ່າ variable ທີ່ຊື່ວ່າ F.1.a.G ເຊິ່ງເປັນຄຳຕອບທີ່ເຮົາຕ້ອງການ.

ຄຳຕອບ: STDIO23_25{d616ad7365a1b99bc7257091356d9514}

Check Mem 2

ໃນໂຈດຂໍ້ນີ້ແມ່ນນຳໃຊ້ໄຟລ໌ດຽວກັນກັບໂຈດ Check Mem ເຊິ່ງໃນໂຈດຂໍ້ນີ້ເຮົາຕ້ອງໄດ້ດຳເນີນການວິເຄາະ process ຕ່າງໆຈາກ memory dump ນີ້.

ໃນຂັ້ນຕອນທຳອິດໃຫ້ເຮົາດຳເນີນການດຶງ process ອອກມາ ໂດຍໃຊ້ຄຳສັ່ງດັ່ງຕໍ່ໄປນີ້:

1
python3 ./volatility3-2.5.0/vol.py -f ./STDiO_memdump windows.pstree.PsTree

ເມື່ອໃຊ້ຄຳສັ່ງດັ່ງກ່າວຜົນລັບທີ່ໄດ້ ຈະຄ້າຍຄືກັບທີ່ສະແດງຂ້າງລຸ່ມນີ້:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Volatility 3 Framework 2.5.0

PID     PPID    ImageFileName   Offset(V)       Threads Handles SessionId       Wow64   CreateTime      ExitTime

4       0       System  0x8a059be83040  166     -       N/A     False   2023-11-13 07:07:06.000000      N/A
* 72    4       Registry        0x8a059bf35080  4       -       N/A     False   2023-11-13 07:07:01.000000      N/A
* 528   4       smss.exe        0x8a059cea3040  2       -       N/A     False   2023-11-13 07:07:06.000000      N/A
* 1780  4       MemCompression  0x8a059beee040  42      -       N/A     False   2023-11-13 07:07:10.000000      N/A
632     624     csrss.exe       0x8a059ce19140  10      -       0       False   2023-11-13 07:07:07.000000      N/A
704     696     csrss.exe       0x8a059f160140  12      -       1       False   2023-11-13 07:07:08.000000      N/A
712     624     wininit.exe     0x8a059f168080  1       -       0       False   2023-11-13 07:07:08.000000      N/A
* 824   712     services.exe    0x8a059f196080  8       -       0       False   2023-11-13 07:07:08.000000      N/A
** 1540 824     svchost.exe     0x8a05a0630300  13      -       0       False   2023-11-13 07:07:10.000000      N/A
** 1924 824     svchost.exe     0x8a059bf86080  8       -       0       False   2023-11-13 07:07:11.000000      N/A
** 908  824     svchost.exe     0x8a05a03c92c0  17      -       0       False   2023-11-13 07:07:09.000000      N/A
** 1548 824     svchost.exe     0x8a05a0632240  3       -       0       False   2023-11-13 07:07:10.000000      N/A
** 2064 824     svchost.exe     0x8a05a08412c0  8       -       0       False   2023-11-13 07:07:12.000000      N/A
** 1148 824     svchost.exe     0x8a05a05052c0  18      -       0       False   2023-11-13 07:07:09.000000      N/A
** 2452 824     vm3dservice.ex  0x8a05a0aee240  5       -       0       False   2023-11-13 07:07:13.000000      N/A
*** 2564        2452    vm3dservice.ex  0x8a05a0b5f200  5       -       1       False   2023-11-13 07:07:13.000000      N/A
** 2328 824     svchost.exe     0x8a05a0a97240  13      -       0       False   2023-11-13 07:07:13.000000      N/A
** 6552 824     svchost.exe     0x8a05a22f9080  14      -       0       False   2023-11-13 07:09:39.000000      N/A
** 2080 824     svchost.exe     0x8a05a08892c0  15      -       0       False   2023-11-13 07:07:12.000000      N/A
** 2464 824     vmtoolsd.exe    0x8a05a0af0280  11      -       0       False   2023-11-13 07:07:13.000000      N/A
** 1188 824     svchost.exe     0x8a05a050f2c0  14      -       0       False   2023-11-13 07:07:09.000000      N/A
** 2852 824     dllhost.exe     0x8a05a09af280  18      -       0       False   2023-11-13 07:07:14.000000      N/A
** 4004 824     svchost.exe     0x8a05a10e10c0  21      -       1       False   2023-11-13 07:08:35.000000      N/A
** 6948 824     svchost.exe     0x8a05a26e3080  12      -       0       False   2023-11-13 07:09:13.000000      N/A
** 556  824     spoolsv.exe     0x8a059bf44080  10      -       0       False   2023-11-13 07:07:11.000000      N/A
** 2476 824     MsMpEng.exe     0x8a05a0af2340  29      -       0       False   2023-11-13 07:07:13.000000      N/A
** 1204 824     svchost.exe     0x8a05a0527280  37      -       0       False   2023-11-13 07:07:09.000000      N/A
*** 2904        1204    ctfmon.exe      0x8a05a15d5300  11      -       1       False   2023-11-13 07:08:36.000000      N/A

ພາຍຫຼັງທີ່ໃຊ້ເວລາກວດສອບ process ຕ່າງໆສັງເກດເຫັນວ່າ ທຸກໆ process ກໍເບິ່ງປົກກະຕິດີ ເຊິ່ງເຮັດໃຫ້ຂ້າພະເຈົ້າ ພົບກັບ Rabbit Hole ອີກຄັ້ງ ວ່າເຮົາຕ້ອງໄປຫາ flag ຢູ່ໃນສ່ວນໃດ ແລະ ເຮົາໄດ້ລືມກວດສອບພາກສ່ວນໃດໄປ ຫຼື ບໍ່?

ຫຼັງຈາກນັ້ນ, ເຮັດໃຫ້ຂ້າພະເຈົ້າເລີ່ມຄິດຄືນວ່າ ແລ້ວພາຍໃນ msedge, ຜູ້ໃຊ້ເປີດໄປເຮັດຫຍັງ? ແລະ ໃນທີ່ສຸດຄຳຕອບກໍຄື flag ບໍ່ໄດ້ຢູ່ທີ່ຄວາມຜິດປົກກະຕິຂອງ process ແຕ່ມັນຢູ່ທີ່ url ທີ່ຜູ້ໃຊ້ເຂົ້າເຖິງ.

ດ້ວຍເຫດນັ້ນ, ຂ້າພະເຈົ້າໄດ້ດຳເນີນການ dump ໄຟລ໌ ທີ່ກ່ຽວຂ້ອງກັບ process msedge.exe ອອກມາໂດຍໃຊ້ຄຳສັ່ງ:

1
python3 ./volatility3-2.5.0/vol.py -f ./STDiO_memdump windows.dumpfiles --pid 5928

ຈາກນັ້ນ, ກໍໄດ້ທົດສອບຄົ້ນຫາ url ທີ່ user ເຂົ້າໃຊ້ທັງໝົດດ້ວຍວິທີ ປະຖົມມະຖານ ດັ່ງນີ້:

1
strings * | grep "https://"

ພາຍຫລັງນຳໃຊ້ຄຳສັ່ງດັ່ງກ່າວ, ປະກົດວ່າ ຂ້າພະເຈົ້າໄດ້ພົບກັບ url ຂອງ canva ທີ່ຄ້າຍຄືກັບລິ້ງແຊຣ໌ https://www.canva.com/design/DAE9sYVcpW0/ASjUf8Fyi5rQvvXASJytvQ/view?utm_content=DAE9sYVcpW0&utm_campaign=designshare&utm_medium=link&utm_source=publishsharelink.

ຕາມຄາດ, ລິ້ງດັ່ງກ່າວມີ flag ຢູ່ຂ້າງໃນ 5555

Canva link contains flag

ຄຳຕອບ: STDIO23_26{4250CC2AF06CE224E8BCE618456796DB}

This post is licensed under CC BY 4.0 by the author.