คลัง

CTF Indicators

เจอค่าแปลกๆ แล้วไม่รู้ว่าคืออะไร? วางสิ่งที่เห็น (เช่น eyJ, MZ, U2FsdGVkX1, hash) แล้วระบบบอกว่ามันคืออะไร + ต้องทำอะไรต่อ

MZMagic Bytes
Windows PE executable (.exe/.dll)
reverse engineering — โหลดใน Ghidra/IDA; ดู PE header
\x7fELF / 7f 45 4c 46Magic Bytes
Linux ELF binary
reverse/pwn — checksec; strings; Ghidra
PK\x03\x04 / 50 4b 03 04Magic Bytes
ZIP archive (รวม .docx/.jar/.apk/.xlsx)
unzip; ถ้าเป็น stego → binwalk -e; APK → jadx
\x89PNG / 89 50 4e 47Magic Bytes
PNG image
stego — exiftool; zsteg -a; binwalk; Stegsolve
JFIF / FF D8 FFMagic Bytes
JPEG image
stego — exiftool; steghide; stegseek
GIF87a / GIF89aMagic Bytes
GIF image (ใช้เป็น magic ปลอม upload ได้)
stego — ดู frame; หรือใช้ปลอม Content-Type ตอน upload
%PDFMagic Bytes
PDF document
forensics — pdfinfo; pdf-parser; binwalk หา object ฝัง
Rar! / 52 61 72 21Magic Bytes
RAR archive
unrar; ถ้า password → john rar2john
7z / 37 7A BC AFMagic Bytes
7-Zip archive
7z x; ถ้า password → 7z2john
\x1f\x8b / 1f 8bMagic Bytes
GZIP compressed
gunzip / tar xzf
ELF + .so / Mach-O FE ED FAMagic Bytes
Shared lib (.so) หรือ Mac Mach-O
reverse — Ghidra; ดู exported functions
dex\n / 64 65 78Magic Bytes
Android DEX (ใน APK)
jadx-gui; dex2jar
eyJToken
JWT token (base64 ของ '{"')
ถอด base64 ดู header/payload; ลอง alg=none / brute secret
= หรือ == ท้าย, A-Za-z0-9+/Encoding
Base64
base64 -d; ดูผลว่าเป็นไฟล์/ข้อความ
- _ แทน + / (ไม่มี =)Encoding
Base64 URL-safe
แปลง -_ เป็น +/ แล้ว base64 -d
เลขฐาน A-Z2-7 ตัวพิมพ์ใหญ่ + =Encoding
Base32
base32 -d
% ตามด้วย hex (%20 %2f)Encoding
URL encoding
URL decode (CyberChef / urllib)
&#x หรือ &#NN;Encoding
HTML entity encoding
HTML decode
\u00NN / \xNN เยอะEncoding
Unicode/hex escape
decode escape; อาจซ้อนหลายชั้น
.- / -... (จุด-ขีด)Encoding
Morse code
ถอด Morse (CyberChef From Morse)
ตัวเลข 0-7 เป็นชุดEncoding
Octal (อาจเป็น ASCII octal)
แปลง octal → ASCII
01000001 (กลุ่ม 8 บิต)Encoding
Binary → ASCII
แปลง binary ทีละ byte เป็น ASCII
32 hex charsHash
MD5 (หรือ NTLM/MD4)
hashid; hashcat -m 0 (MD5) หรือ -m 1000 (NTLM)
40 hex charsHash
SHA-1
hashcat -m 100
64 hex charsHash
SHA-256
hashcat -m 1400
$2a$ / $2b$ / $2y$Hash
bcrypt
hashcat -m 3200 (ช้า — ใช้ wordlist ดีๆ)
$1$ / $5$ / $6$Hash
Unix crypt (MD5/SHA256/SHA512) — จาก /etc/shadow
hashcat -m 500/7400/1800
$krb5tgs$Hash
Kerberoast TGS hash
hashcat -m 13100
$krb5asrep$Hash
AS-REP Roast hash
hashcat -m 18200
aad3b435... (LM ว่าง):NThashHash
NTLM hash (pwdump format)
hashcat -m 1000 หรือ pass-the-hash เลย
U2FsdGVkX1Crypto
OpenSSL salted (base64 ของ 'Salted__')
openssl enc -d (ต้องรู้ cipher+password); brute password
-----BEGIN PUBLIC KEY / RSACrypto
PEM public key
ดู n,e; ค้น factordb; RsaCtfTool
-----BEGIN PRIVATE KEY / OPENSSHCrypto
Private key (อาจมี passphrase)
ใช้ decrypt; ถ้า SSH+passphrase → ssh2john + crack
ciphertext + n + eCrypto
RSA challenge
factordb; ดู e เล็ก (cube root); RsaCtfTool
block ซ้ำทุก 16 byteCrypto
AES-ECB (pattern leak)
ECB byte-at-a-time / cut-paste attack
flag{ / CTF{ / FLAG{Format
Flag format (เจอแล้วจบ!)
ส่ง flag; ถ้าเจอใน strings/memory = หาถูกทาง
data:image/...;base64Format
Data URI (base64 ฝังในหน้า)
ตัด header แล้ว base64 -d เป็นไฟล์
<?php / <% / #!/binFormat
Source code / script (webshell?)
อ่าน logic; ถ้า upload ได้ → RCE
system role / You are a helpfulAI / LLM
System prompt ของ LLM (รั่วออกมา)
อ่านกฎ/persona เพื่อหาทาง override; มักมี flag/secret ใน system prompt
ignore previous instructionsAI / LLM
Prompt injection payload (ฝังใน content หรือผู้ใช้อื่นใส่)
= มีคนพยายาม inject; ลองเองด้วย direct/indirect injection
function_call / tool_callsAI / LLM
LLM function calling / agent tool
= มี tool abuse surface; ดู tool ที่เรียกได้ แล้วลอง SSRF/RCE ผ่าน agent
INST / im_start / Instruction headerAI / LLM
Chat template marker (Llama/ChatML/Alpaca)
ลอง delimiter confusion ปิดเปิด context ปลอมด้วย token เหล่านี้
hsqs / sqshMagic Bytes
SquashFS filesystem (ใน firmware)
unsquashfs แตก filesystem; binwalk -e
UBI# / 0x55424923Magic Bytes
UBI/UBIFS filesystem (embedded flash)
ubireader_extract_files; binwalk
uImage / 0x27051956Magic Bytes
U-Boot uImage header (firmware/kernel)
binwalk แยก kernel; ดู load address
DH params / -----BEGIN DSACrypto
Embedded key/cert ใน firmware
extract key → ใช้ปลอม/decrypt firmware update
UPX! / UPX0 UPX1Reverse
UPX packed binary
upx -d ./bin แล้ว reverse ต่อ
PyInstaller / MEI\x0c\x0bReverse
PyInstaller-packed Python exe
pyinstxtractor → uncompyle6/decompyle3 ดู source
Go build ID / golangReverse
Go binary (static, ฟังก์ชันเยอะ)
ใช้ GoReSym/IDA Go plugin restore ชื่อฟังก์ชัน
rustc / cargo / panic::Reverse
Rust binary
ดู panic string + symbol; reverse logic
.NET / mscoree / #~ streamReverse
.NET managed assembly
dnSpy/ILSpy decompile ได้ source เกือบเต็ม
subdomain ยาว/สุ่มใน DNSNetwork
DNS tunneling / exfiltration
ต่อ subdomain → decode base64/hex; ดู tshark dns
beacon interval สม่ำเสมอNetwork
C2 beaconing (jitter น้อย)
ดู interval + ขนาด packet; หา C2 server
JA3 / TLS fingerprint แปลกNetwork
TLS client ผิดปกติ (มัลแวร์/tool)
ดู JA3 hash เทียบ known malware; SNI
EXIF GPS coordinatesOSINT
พิกัดในรูปภาพ (metadata)
exiftool ดู GPS → แผนที่; reverse image search
username reuse ข้ามแพลตฟอร์มOSINT
บัญชีเดียวกันหลายที่
sherlock/whatsmyname → pivot ไปข้อมูลอื่น
checksec: Canary foundFormat
Stack canary เปิด (overflow ทับ return ตรงไม่ได้)
leak canary ก่อน (format string/brute) แล้วค่อย overflow
checksec: No PIEFormat
No PIE = address คงที่ (ROP ง่าย)
ใช้ address คงที่ทำ ROP/ret2libc
Use After Free / double freeFormat
Heap bug
tcache/fastbin poisoning; ดู glibc version
SPN / servicePrincipalNameToken
Service account (Kerberoastable)
GetUserSPNs.py -request → hashcat -m 13100
GenericAll / WriteDacl (BloodHound)Token
ACL edge ที่ abuse ได้
reset password / shadow cred / RBCD ตาม edge
AKIA / ASIA (AWS key)Token
AWS access key
aws sts get-caller-identity → enumerate-iam → privesc
169.254.169.254Network
Cloud metadata endpoint (IMDS)
SSRF → ดึง IAM credential; IMDSv2 ต้อง PUT token
/var/run/docker.sockFormat
Docker socket exposed (escape ได้)
docker run -v /:/host → chroot = root บน host
/var/run/secrets/kubernetes.ioToken
K8s service account token
kubectl auth can-i --list → abuse ตามสิทธิ์
AndroidManifest.xml / classes.dexMagic Bytes
ภายใน APK (Android)
jadx-gui decompile; ดู permission + exported component
66 จาก 66 indicators