คลัง
playbooks

รัน CTF บน macOS (Kali ↔ Mac)

ทำ CTF บน MacBook ได้จริง แต่ต้องเข้าใจ 3 อย่าง: (1) เครื่องมือส่วนใหญ่ลงผ่าน Homebrew/pipx แล้วคำสั่ง 'เหมือน Kali เป๊ะ' (2) คำสั่ง terminal พื้นฐานบางตัวต่างกันเพราะ macOS ใช้ BSD ไม่ใช่ GNU (sed, grep -P, base64, md5, timeout, date) (3) เครื่องมือ Linux-only บางตัว (aircrack monitor mode, linpeas เวอร์ชันรัน local, บาง exploit) ต้องรันผ่าน Docker หรือ Kali VM บทนี้คือคู่มือแปลง Kali → Mac ให้ครบ

BeginnerIntermediate#macos#mac#homebrew#brew#kali#bsd#gnu#coreutils

1. รัน CTF บน Mac ได้แค่ไหน? (native / Docker / VM)

หัวใจ: เมื่อติดตั้งเครื่องมือแล้ว คำสั่งเหมือน Kali ทุกอย่างnmap, ffuf, sqlmap, hashcat, python3 exploit.py พิมพ์เหมือนกันเป๊ะ สิ่งที่ต่างคือวิธีติดตั้งและเครื่องมือบางตัวที่ macOS รันไม่ได้ ตารางนี้บอกว่าตัวไหนอยู่กลุ่มไหน

กลุ่มเครื่องมือรันบน Mac ยังไง
✅ Native (brew)nmap, ffuf, gobuster, sqlmap, nikto, hydra, john, hashcat, binwalk, exiftool, radare2, wireshark, masscan, jqbrew install แล้วใช้ได้เลย คำสั่งเหมือน Kali
✅ Native (pipx)impacket, pwntools, volatility3, netexec (nxc), certipy, bloodhound-python, arjun, name-that-hash, wafw00fpipx install แล้วใช้ได้เลย
✅ Native (cask/GUI)Ghidra, Burp Suite, Wireshark GUI, BloodHoundbrew install --cask — เป็น Java/Electron รันได้ทั้ง Intel/Apple Silicon
⚠️ ใช้ได้แต่มีลูกเล่นgdb+pwndbg (ต้อง codesign), metasploit, aircrack-ngรันได้แต่ยุ่งยาก — หลายคนเลือก Docker/VM แทน
❌ ต้อง Docker/Kali VMaircrack monitor mode (Wi-Fi built-in ทำไม่ได้), บาง kernel exploit, tool ที่ผูกกับ glibc/Linuxรันใน Kali container/VM (ดูหัวข้อ 4)
ℹ️ ไม่เกี่ยงว่า Mac/Kalilinpeas/winpeas, kernel exploit บน targetรันบน 'เป้าหมาย' ไม่ใช่เครื่องเรา — OS เราไม่สำคัญ
แนวทางที่ลงตัวที่สุดสำหรับสาย Mac: ลง toolkit หลักผ่าน brew/pipx ไว้ใช้เร็วๆ (recon/web/crypto/rev/forensics) + มี Kali ใน Docker ไว้พร้อมสำหรับ tool ที่ต้อง Linux แท้ๆ (wireless, บาง exploit) = ได้ทั้งความเร็วและความครบ

2. ติดตั้ง toolkit บน Mac (Homebrew + pipx)

  1. 1ติดตั้ง Homebrew (package manager ของ Mac เทียบเท่า apt): รันคำสั่งจาก brew.sh
  2. 2ติดตั้งเครื่องมือหลักผ่าน brew ทีเดียว (ดู code ด้านล่าง)
  3. 3ติดตั้ง pipx สำหรับ tool ที่เป็น Python (impacket, pwntools ฯลฯ) — แยก env ไม่ชนกัน
  4. 4ติดตั้ง GNU coreutils เพื่อให้คำสั่ง terminal เหมือน Linux (แก้กับดัก BSD — ดูหัวข้อ 3)
  5. 5ติดตั้ง Docker Desktop ไว้สำหรับรัน Kali/Linux-only tools
ติดตั้ง HomebrewmacOS
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Apple Silicon (M1/M2/M3): เพิ่ม brew เข้า PATH
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
source ~/.zprofile
brew = apt ของ Mac. ค้นหา: brew search <ชื่อ> · ติดตั้ง: brew install <ชื่อ> · GUI app: brew install --cask <ชื่อ>
ติดตั้งเครื่องมือ CTF หลักทีเดียวmacOS
# recon / web / network
brew install nmap masscan ffuf gobuster feroxbuster sqlmap nikto hydra wfuzz jq ripgrep

# crypto / rev / forensics / stego
brew install hashcat john binwalk exiftool radare2 foremost tesseract
brew install --cask ghidra wireshark burp-suite

# GNU userland (สำคัญ — ดูหัวข้อ 3)
brew install coreutils gnu-sed grep gawk findutils wget

# Python tools แบบแยก env
brew install pipx && pipx ensurepath
pipx install impacket
pipx install pwntools
pipx install volatility3
pipx install netexec        # crackmapexec ตัวใหม่ (nxc)
pipx install name-that-hash
pipx install arjun
hashcat บน Apple Silicon ใช้ Metal GPU ได้ (ช้ากว่า NVIDIA แต่ใช้งานได้) · pwntools ทำงานบน Mac ได้ดี · gdb บน Mac ยุ่ง — ถ้าเจอโจทย์ pwn หนักๆ ใช้ Docker

3. กับดัก BSD vs GNU — คำสั่งที่ต่างจาก Kali จริง

macOS ใช้เครื่องมือสาย BSD ส่วน Kali/Linux ใช้ GNU — หน้าตาชื่อคำสั่งเหมือนกันแต่ flag ต่างกัน คัดลอกคำสั่งจาก writeup (ที่เขียนบน Linux) มาวางบน Mac แล้ว error บ่อยเพราะเรื่องนี้ ตารางนี้คือจุดที่พังบ่อยสุด

งานKali/Linux (GNU)macOS (BSD) — ที่ถูก
แก้ไฟล์ in-placesed -i 's/a/b/' fsed -i '' 's/a/b/' f (ต้องมี '' หลัง -i)
regex PCREgrep -P 'x' fgrep ไม่มี -P → ใช้ ggrep -P หรือ grep -E
ถอด base64base64 -dbase64 -D หรือ base64 --decode
hash md5/sha256md5sum / sha256summd5 / shasum -a 256
ตั้ง timeouttimeout 10 cmdไม่มี timeout → gtimeout 10 cmd
reverse บรรทัดtacไม่มี tac → tail -r หรือ gtac
readlink -freadlink -f pathไม่มี -f → greadlink -f
date จาก epochdate -d @1700000000date -r 1700000000
date คำนวณdate -d '+1 day'date -v +1d
stat ขนาดไฟล์stat -c %s fstat -f %z f
netcat listenernc -lvnp 4444nc -lvn 4444 (BSD nc ไม่มี -p ตรงนี้/ไม่มี -e)
ทางลัด: หลังลง coreutils gnu-sed grep gawk findutils แล้ว เพิ่ม gnubin เข้า PATH → คำสั่งจะเป็น GNU เหมือน Kali ทันที (sed, grep -P, timeout, tac ใช้ได้เลย) วางคำสั่งจาก writeup Linux ได้ตรงๆ
ทำให้ Mac terminal เป็น GNU เหมือน KalimacOS
# เพิ่มลง ~/.zshrc — ให้ GNU tools มาก่อน BSD ใน PATH
cat >> ~/.zshrc <<'EOF'
export PATH="/opt/homebrew/opt/coreutils/libexec/gnubin:$PATH"
export PATH="/opt/homebrew/opt/gnu-sed/libexec/gnubin:$PATH"
export PATH="/opt/homebrew/opt/grep/libexec/gnubin:$PATH"
export PATH="/opt/homebrew/opt/gawk/libexec/gnubin:$PATH"
export PATH="/opt/homebrew/opt/findutils/libexec/gnubin:$PATH"
EOF
source ~/.zshrc

# ทดสอบ: ตอนนี้เป็น GNU แล้ว
sed --version | head -1     # ควรขึ้น (GNU sed)
timeout 1 sleep 5           # ใช้ได้แล้ว (ไม่ต้อง gtimeout)
Intel Mac ใช้ /usr/local/opt/... แทน /opt/homebrew/opt/... (Apple Silicon)
macOS ตั้งแต่ Catalina ใช้ zsh เป็น shell เริ่มต้น (ไม่ใช่ bash) — config อยู่ที่ ~/.zshrc ไม่ใช่ ~/.bashrc ส่วนใหญ่ syntax เหมือนกัน แต่ถ้า script ต้องการ bash แท้ๆ ให้ขึ้นต้นด้วย #!/usr/bin/env bash

4. รัน Kali / Linux-only tools ด้วย Docker & VM

สำหรับ tool ที่รันบน Mac ไม่ได้ (wireless monitor mode, บาง exploit ที่ผูก Linux, หรืออยากได้ environment เหมือน writeup เป๊ะ) วิธีเร็วสุดคือ Kali ใน Docker — เปิดใน 1 คำสั่ง ส่วนงานที่ต้องแตะ hardware (USB Wi-Fi adapter) ต้องใช้ VM (UTM)

Kali ใน Docker (เร็วสุด)macOS
# ติดตั้ง Docker Desktop ก่อน: brew install --cask docker (แล้วเปิดแอป)

# ดึง Kali แล้วเข้า shell (mount โฟลเดอร์ปัจจุบันไว้แชร์ไฟล์)
docker run -it --rm -v "$PWD":/work -w /work kalilinux/kali-rolling

# ในคอนเทนเนอร์: ลงชุดเครื่องมือ
apt update && apt install -y kali-linux-headless   # ชุดใหญ่
# หรือลงเฉพาะที่ต้องใช้: apt install -y seclists impacket-scripts
Apple Silicon: image เป็น arm64 อยู่แล้ว · ถ้า tool มีแต่ x86 ให้เพิ่ม --platform linux/amd64 (รันผ่าน emulation ช้าลงนิดหน่อย)
Kali VM เต็ม (UTM) — สำหรับงานที่ต้องแตะ hardwaremacOS
# UTM = virtualization ฟรีสำหรับ Mac (Apple Silicon เร็วมาก)
brew install --cask utm
# โหลด Kali ARM64 pre-built image จาก kali.org/get-kali (เลือก 'Apple Silicon (UTM)')

# ใช้ VM เมื่อ: ต้องต่อ USB Wi-Fi adapter ทำ monitor mode / packet injection
#            หรือรัน GUI tool ของ Kali / ต้องการ kernel Linux แท้
Wi-Fi ในตัว MacBook ทำ monitor mode/injection ไม่ได้ — ต้องใช้ USB adapter (เช่น Alfa AWUS036) ต่อผ่าน VM เท่านั้น ดูหัวข้อ Aircrack-ng / Handshake Analysis ประกอบ
จะรันเครื่องมือนี้บน Mac ยังไง?
brew search <tool> / pipx เจอไหม?
ลองหาใน Homebrew / PyPI ก่อน
✅ เจอ→ brew/pipx install แล้วใช้เหมือน Kali
❌ ไม่เจอ→ ไปเช็คว่าเป็น Linux-only ไหม
ต้องแตะ hardware (USB Wi-Fi/SDR) ไหม?
✅ ต้อง→ Kali VM (UTM) + USB adapter
❌ ไม่ต้อง→ Kali ใน Docker พอ
คำสั่ง terminal error เรื่อง flag (sed/grep/base64)?
= กับดัก BSD → ลง GNU userland (หัวข้อ 3)
ได้ environment ครบ → ทำโจทย์ต่อได้เหมือน Kali

5. Quick Reference — apt→brew & กับดักที่ต้องจำ

บน Kaliบน Macหมายเหตุ
apt install Xbrew install XGUI app: brew install --cask X
apt search Xbrew search Xหาแพ็กเกจ
pip install Xpipx install Xแยก env ต่อ tool
~/.bashrc~/.zshrczsh เป็น default
sed -ised -i '' (BSD) / sed -i (ถ้าลง gnu-sed)in-place edit
base64 -dbase64 -D / --decodeถอด base64
md5sum / sha256summd5 / shasum -a 256แฮชไฟล์
timeoutgtimeout (จาก coreutils)ตั้งเวลา
nc -e (bind shell)ไม่มี -e บน BSD ncใช้ Docker/Kali หรือ nc.traditional
  • ลง GNU userland ก่อนเลย (coreutils gnu-sed grep gawk findutils) + ใส่ gnubin ใน PATH → วางคำสั่งจาก writeup Linux ได้ตรงๆ ไม่ต้องแปลง
  • hashcat บน Apple Silicon ใช้ Metal GPU ได้ (hashcat -I ดู device) — ช้ากว่าการ์ด NVIDIA แต่พอไหวสำหรับ CTF ทั่วไป
  • pwn/gdb ถ้าเจอโจทย์ binary exploitation หนักๆ ใช้ Docker (ubuntu/kali) จะตรงกับ libc ของโจทย์มากกว่า — pwntools บน Mac ใช้ต่อ remote ได้ปกติ
  • wireless เกือบทั้งหมดต้อง Kali VM + USB Wi-Fi adapter — Wi-Fi ในตัว Mac ทำ monitor mode ไม่ได้
  • เครื่องมือที่ 'รันบน target' (linpeas, kernel exploit) ไม่เกี่ยงว่าเครื่องเราเป็น Mac หรือ Kali
ใช้เครื่องมือเหล่านี้เฉพาะกับระบบที่ได้รับอนุญาต/โจทย์ CTF ของคุณเองเท่านั้น — ไม่ว่าจะรันจาก Mac, Kali, Docker หรือ VM ก็อยู่ภายใต้ขอบเขตที่ได้รับอนุญาตเสมอ

โน้ตของฉัน

ยังไม่มีโน้ตสำหรับหัวข้อนี้