STDiO 2023 Capture The Flag: 15 - Isolated Server
ทางบริษัท ตรวจสอบเซิร์ฟเวอร์ ของใครก็ไม่รู้ เอามาติดตั้งไว้ในระบบเครือข่ายขององค์กร ทาง IT Security ได้อ่านไฟล์ออกมา ช่วยตรวจสอบหาข้อมูลหน่อย
Flag Format คือ STDIO23_15{ค่า MD5 ของรหัสผ่าน} เช่นสมมุติ ถ้าพบว่ารหัสผ่านคือคำว่า admin จะต้องตอบ Flag ว่า STDIO23_15{21232f297a57a5a743894a0e4a801fc3}
หมายเหตุ: เฉพาะข้อนี้ลองตอบได้ไม่เกิน 10 ครั้ง
Challenge File: http://stdio-2026-public.2600.in.th/for3_Isolated_Server_cache_sdhbank.local.ldb.zip
SHA-512 Checksum: b3b8de3fd1eadae4c55be20a1ed6b1eebff68c8d722589e264a0daf5405574d17986d49bb976b28ae8790e2d35ec6d5cc3635c7d69b46933d07c2deacc91b35f
author: longcat
เมื่อดาวน์โหลดไฟล์มาแล้วก็แตกไฟล์ออกมา
unzip for3_Isolated_Server_cache_sdhbank.local.ldb.zip
จะได้ไฟล์ for3_Isolated_Server_cache_sdhbank.local.ldb แล้วมันเป็นไฟล์อะไรล่ะตรวจสอบด้วย
file for3_Isolated_Server_cache_sdhbank.local.ldb
for3_Isolated_Server_cache_sdhbank.local.ldb: TDB database version 6, little-endian hash size 10000 bytes
TDB database ก็ต้องใช้ tdb-tools ติดตั้งซะ
sudo apt install tdb-tools
จากนั้นทำการ dump ข้อมูลออกมา
tdbdump for3_Isolated_Server_cache_sdhbank.local.ldb > dump.txt
ดูข้อมูลใน dump ไฟล์เห็น key ที่น่าสนใจ
...
{
key(56) = "DN=@INDEX:UNIQUEID:a0a87749-58d7-4912-adbc-0868b1b8ee8c\00"
data(180) = "g\19\01&\02\00\00\00@INDEX:UNIQUEID:a0a87749-58d7-4912-adbc-0868b1b8ee8c\00@IDXVERSION\00\01\00\00\00\01\00\00\002\00@IDX\00\01\00\00\00S\00\00\00name=Read-only Domain [email protected],cn=groups,cn=sdhbank.local,cn=sysdb\00"
}
{
key(72) = "[email protected],CN=USERS,CN=SDHBANK.LOCAL,CN=SYSDB\00"
data(2481) = "g\19\01&\1F\00\00\[email protected],cn=users,cn=sdhbank.local,cn=sysdb\00createTimestamp\00\01\00\00\00\0A\00\00\001701201379\00fullName\00\01\00\00\00\0E\00\00\00rockmeifyoucan\00gecos\00\01\00\00\00\0E\00\00\00rockmeifyoucan\00gidNumber\00\01\00\00\00\09\00\00\00379200513\00name\00\01\00\00\00\1C\00\00\[email protected]\00objectCategory\00\01\00\00\00\04\00\00\00user\00uidNumber\00\01\00\00\00\09\00\00\00379201115\00objectSIDString\00\01\00\00\00.\00\00\00S-1-5-21-1310303666-1233753094-3832251473-1115\00uniqueID\00\01\00\00\00$\00\00\00cf352eae-c752-4677-8622-52b4ca8096e3\00originalDN\00\01\00\00\00.\00\00\00CN=rockmeifyoucan,CN=Users,DC=sdhbank,DC=local\00originalMemberOf\00\01\00\00\00-\00\00\00CN=Domain Admins,CN=Users,DC=sdhbank,DC=local\00originalModifyTimestamp\00\01\00\00\00\11\00\00\0020231129025404.0Z\00entryUSN\00\01\00\00\00\05\00\00\0024804\00adAccountExpires\00\01\00\00\00\01\00\00\000\00adUserAccountControl\00\01\00\00\00\03\00\00\00544\00nameAlias\00\01\00\00\00\1C\00\00\[email protected]\00isPosix\00\01\00\00\00\04\00\00\00TRUE\00lastUpdate\00\01\00\00\00\0A\00\00\001701201379\00dataExpireTimestamp\00\01\00\00\00\0A\00\00\001701206779\00initgrExpireTimestamp\00\01\00\00\00\01\00\00\000\00memberof\00\03\00\00\00D\00\00\00name=Domain [email protected],cn=groups,cn=sdhbank.local,cn=sysdb\00C\00\00\00name=Domain [email protected],cn=groups,cn=sdhbank.local,cn=sysdb\00]\00\00\00name=Denied RODC Password Replication [email protected],cn=groups,cn=sdhbank.local,cn=sysdb\00pacBlob\00\01\00\00\00\88\03\00\00\07\00\00\00\00\00\00\00\01\00\00\00\F8\01\00\00x\00\00\00\00\00\00\00\06\00\00\00\10\00\00\00p\02\00\00\00\00\00\00\07\00\00\00\10\00\00\00\80\02\00\00\00\00\00\00\0A\00\00\00&\00\00\00\90\02\00\00\00\00\00\00\0C\00\00\00\B0\00\00\00\B8\02\00\00\00\00\00\00\10\00\00\00\10\00\00\00h\03\00\00\00\00\00\00\13\00\00\00\10\00\00\00x\03\00\00\00\00\00\00\01\10\08\00\CC\CC\CC\CC\E8\01\00\00\00\00\00\00\00\00\02\00\96\D4\9B\7Fo\22\DA\01\FF\FF\FF\FF\FF\FF\FF\7F\FF\FF\FF\FF\FF\FF\FF\7F9\E9})j\22\DA\019\A9\E7S3#\DA\019i\D7\1EkC\DA\01\1C\00\1C\00\04\00\02\00\00\00\00\00\08\00\02\00\00\00\00\00\0C\00\02\00\00\00\00\00\10\00\02\00\00\00\00\00\14\00\02\00\00\00\00\00\18\00\02\00\06\00\00\00[\04\00\00\01\02\00\00\02\00\00\00\1C\00\02\00 \02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0C\00\0E\00 \00\02\00\0E\00\10\00$\00\02\00(\00\02\00\00\00\00\00\00\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00,\00\02\004\00\02\00\01\00\00\008\00\02\00\0E\00\00\00\00\00\00\00\0E\00\00\00r\00o\00c\00k\00m\00e\00i\00f\00y\00o\00u\00c\00a\00n\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\01\02\00\00\07\00\00\00\00\02\00\00\07\00\00\00\07\00\00\00\00\00\00\00\06\00\00\00S\00D\00H\00-\00A\00D\00\08\00\00\00\00\00\00\00\07\00\00\00S\00D\00H\00B\00A\00N\00K\00\00\00\04\00\00\00\01\04\00\00\00\00\00\05\15\00\00\00\B2\A5\19N\06\94\89IQ\84k\E4\01\00\00\000\00\02\00\07\00\00\00\01\00\00\00\01\01\00\00\00\00\00\12\01\00\00\00\04\00\00\00\01\04\00\00\00\00\00\05\15\00\00\00\B2\A5\19N\06\94\89IQ\84k\E4\01\00\00\00<\02\00\00\07\00\00 \10\00\00\00\02\02\1E39\0F\1A\9D\9F\C3\B4N\10\00\00\00\85\E35%\AF\93\C5\ED\8E\DAl\F3\00\9E\87\D5o\22\DA\01\1C\00r\00o\00c\00k\00m\00e\00i\00f\00y\00o\00u\00c\00a\00n\00\00\008\00\18\00\1A\00P\00\03\00\00\00\1C\00p\00\1C\00\90\00\00\00\00\00r\00o\00c\00k\00m\00e\00i\00f\00y\00o\00u\00c\00a\00n\00@\00s\00d\00h\00b\00a\00n\00k\00.\00l\00o\00c\00a\00l\00S\00D\00H\00B\00A\00N\00K\00.\00L\00O\00C\00A\00L\00\00\00\00\00\00\00r\00o\00c\00k\00m\00e\00i\00f\00y\00o\00u\00c\00a\00n\00\00\00\00\00\01\05\00\00\00\00\00\05\15\00\00\00\B2\A5\19N\06\94\89IQ\84k\E4[\04\00\00\00\00\00\00\10\00\00\00\F0\0F\F5\C2RUJW\9C\FDZ}\10\00\00\00\BF\FF\EE\DF(\C6\C7\B6\13\89\C01\00pacBlobExpireTimestamp\00\01\00\00\00\0A\00\00\001701201784\00ccacheFile\00\01\00\00\00!\00\00\00FILE:/tmp/krb5cc_379201115_sI5zuL\00cachedPassword\00\01\00\00\00j\00\00\00$6$kLD6uZK9nK8VuQ65$Bs13zM0B3nGcCqMdfNPMbwrON0DpoJSn/c9ry/CEatJJY8Jtvfvss7k6o.dxZfbfxKm5SdlApx2jR8PTwtF7B0\00cachedPasswordType\00\01\00\00\00\01\00\00\001\00lastCachedPasswordChange\00\01\00\00\00\0A\00\00\001701201484\00failedLoginAttempts\00\01\00\00\00\01\00\00\000\00lastOnlineAuth\00\01\00\00\00\0A\00\00\001701201484\00lastOnlineAuthWithCurrentToken\00\01\00\00\00\0A\00\00\001701201484\00lastLogin\00\01\00\00\00\0A\00\00\001701201484\00"
}
{
key(23) = "DN=CN=CERTMAP,CN=SYSDB\00"
data(74) = "g\19\01&\02\00\00\00cn=certmap,cn=sysdb\00cn\00\01\00\00\00\07\00\00\00certmap\00userNameHint\00\01\00\00\00\05\00\00\00FALSE\00"
}
...
ข้อมูลใน key(72) เมื่อตรวจสอบดูจะเห็น password hash $6$kLD6uZK9nK8VuQ65$Bs13zM0B3nGcCqMdfNPMbwrON0DpoJSn/c9ry/CEatJJY8Jtvfvss7k6o.dxZfbfxKm5SdlApx2jR8PTwtF7B0\00cachedPasswordType เราก็ทำการสร้าง hash ไฟล์
echo "\$6\$kLD6uZK9nK8VuQ65\$Bs13zM0B3nGcCqMdfNPMbwrON0DpoJSn/c9ry/CEatJJY8Jtvfvss7k6o.dxZfbfxKm5SdlApx2jR8PTwtF7B0" > hash.txt
ลุย crack password กันเถอะ
hashcat hash.txt ~/Projects/pentesting/wordlists/passwords/rockyou.txt
$6$kLD6uZK9nK8VuQ65$Bs13zM0B3nGcCqMdfNPMbwrON0DpoJSn/c9ry/CEatJJY8Jtvfvss7k6o.dxZfbfxKm5SdlApx2jR8PTwtF7B0:Michael1
Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 1800 (sha512crypt $6$, SHA512 (Unix))
Hash.Target......: $6$kLD6uZK9nK8VuQ65$Bs13zM0B3nGcCqMdfNPMbwrON0DpoJS...wtF7B0
Time.Started.....: Sat Dec 2 12:06:04 2023 (9 secs)
Time.Estimated...: Sat Dec 2 12:06:13 2023 (0 secs)
Kernel.Feature...: Pure Kernel
Guess.Base.......: File (/home/naidherng/Projects/pentesting/wordlists/passwords/rockyou.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........: 1094 H/s (11.70ms) @ Accel:256 Loops:256 Thr:1 Vec:2
Recovered........: 1/1 (100.00%) Digests
Progress.........: 9984/14344384 (0.07%)
Rejected.........: 0/9984 (0.00%)
Restore.Point....: 9728/14344384 (0.07%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:4864-5000
Candidate.Engine.: Device Generator
Candidates.#1....: 12345678a -> sandara
Hardware.Mon.#1..: Temp: 76c Util: 98%
Started: Sat Dec 2 12:05:16 2023
Stopped: Sat Dec 2 12:06:14 2023
ก็จะพบว่า password คือ Michael1
โจทย์บอกว่า flag คือ md5 ของ password
echo -n Michael1 | md5sum | cut -d " " -f 1
b2b3ac0899ba5d01a530ca6f4525248a
ก็ทำการปรับให้เข้ากับ flag format
STDIO23_15{b2b3ac0899ba5d01a530ca6f4525248a}