
1 | KCSC - TTV challenge |
chall2 (Showdown)

Đầu tiên mình có 1 ảnh .png nên mình dùng zsteg và pngcheck thì không thấy có gì đáng nghi

Sau đó mình mở ảnh và thấy có ảnh gái anime ẩn đằng sau

Do đó nên mình sẽ dùng stegslove hoặc Aperi để tìm

Flag: KCSC{Th3_uNs3n_bL@de_1s_the_D34dL1357}
chall3 (Ping Flood)

Bài này mình có 1 file pcapng cần phân tích để tìm lưu lượng độc hại do bị tấn công DDoS
Đầu tiên mình nghĩ ra cần phải tìm ra ip của kẻ tấn công để từ đó tìm hiểu xem máy chủ bị gửi đến thông tin gì nhưng sau đó mình vô tình tìm được 2 dấu ==”=”== ở cuối nên mình cho rằng đây là thông tin bị mã hóa bằng base64
icmp.type == 8 (filter theo request)

Tiếp đến mình thêm cột ==code== vào để xem ký tự

Đây là ký tự trong bảng mã ASCII và mình cần làm ở đây là xuất cột code này ra và chuyển về bẳng mã ASCII

Mình dùng lệnh tshark để xuất ra sau đó chuyển sang mã ASCII
tshark -r traffic.pcap -Y "icmp.type == 8" -T fields -e icmp.code \ | awk '{if($1>=32 && $1<=126) printf "%c",$1; else printf "."} END{print ""}''

Sau đó giải mã nó bằng base64

Flag: KCSC{
(^..)=^..^=(._.^)}
chall4 (Aidoru)

Để tìm file đã bị xóa mình tìm trong các mục lưu trữ nhưng không thấy gì
Sau đó thì mình chú ý thấy có file ==NTUSER.DAT== đây là file lưu lại các hoạt đôgnj gần đâu của user nên mình thử phân tích file này
Mình dùng ==registryspy== duyệt đến
NTUSER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs

Tại đây mình thấy có các Value mình thử giải mã từng Value thì thấy tại Value 0 giải mã được windowsdefender—.lnk
Sau đó mình thử tìm xem đường dẫn này dẫn tới file nào
Users/admin/AppData/Roaming/Microsoft/Windows/Recent/

Nhưng trớ trêu thây chả có file .txt hay .exe hay bất cứ file nào cả
Vậy nên mình dùng biện pháp mạnh hơn là xem lịch sử web
sqlite3 "$DB"
1 | .headers on |
1 | SELECT |

Ấy chà thì ra là ==Chỉ Quạt== mình đoán đây không phải là lỡ tay xóa mà là xóa rồi sau đó muốn tìm lại để xem hehe:3
Flag: KCSC{Onlyfans_leak.zip}
Mình có Password của file zip là aHR0cHM6Ly95b3V0dS5iZS9qRVRIdlpQYUFBRQ== sau khi giả mã bằng base64 thì được https://youtu.be/jETHvZPaAAE (đây là video hoạt ảnh nộ của nhân vật 4 sao Barbara trong Genshin Impact)
chall5 (Suspicious)

Đầu tiên giải nén file zip thì mình có được file .ad1 với hint ==malware persistence== nên mình dùng công cụ FTK imager để mở file và phân tích

File .ad1 này chỉ chứa 1 phần của bộ nhớ như User và Windows
Tiếp đến mình kiểm tra các nơi có khả năng chứa malware
Đầu tiên là phần Users
C:\Users\admin\AppData\Roaming\Microsoft\Windows\Start Menu\Program\Startup

Trong temp có mục khả đắng nghi là ==Setupexe== nhưng trong temp bị reboot sẽ bị xóa hết nên không thể nằm trong này
C:\Users\admin\AppData\Local\Temp

Nhưng đều không tìm thấy malware
Tiếp theo mình thử tìm kiếm trong Windows
C:\Windows\System32\Tasks

Tại đây có điểm khả nghi đó là ==npcapwatchdog== nên mình export ra rồi xem XML

Mình thấy có dòng <Command>C:\Program Files\Npcap\CheckStatus.bat</Command> đây rất có thể là malware cần tìm vì khi máy khởi động sẽ gọi tới đường dẫn trên
Chuyển tên file sang Sha256

FLag: KCSC{flag_2fdd0e210a7617f021572ec5c057b4966fb0cec74d7daadb59cb5541cb9d721e}
chall6 (BabyStego)

Đầu tiên là kiểm tra file và nội dung
babystego
exiftool babystego

Có vẻ như header của file bị sai
Sau đó mình đọc header của file để xem sai ở đâu
xxd babystego | head

Và mình thấy header của file bị sai ở 8 byte đầu và hình như các chunk khác cũng có gì đó không đúng mình nhớ IHdR là viết hoa toàn bộ mà sao ở đây lại có chữ thường trông rất khả nghi
Trước tiên mình sửa 8 byte đầu bị sai cái đã rồi tính tiếp
hexedit babystego

Ok vậy là sữa xong header nhưng ảnh vẫn chưa hiện vậy là có lẽ có thể liên quan tới chunk hồi nãy bị viết thường

Mình định sữa thủ công chunk bị sai nhưng mình thấy mất thời gian với lỡ tay nhập lộn 1 ký tự cái là ancut luôn nên mình nhờ chat viết script cho an toàn
python3 as.py babystego flag.png
1 | import sys, zlib, struct |
Chạy xong mình sẽ được 1 ảnh PNG Xem ảnh để lấy flag

Flag: KCSC{Ch40
_M|_|n9_D3N’_V01’_77/_KCSC}`
chall7 (NiceJop from niceComp)

Vì đây là file dmp nên trước tiên mình kiểm tra xem đây là memory của windows hay linux Mình dùng file và exiftool nhưng không thấy gì

Nên mình đọc header thử xem có gì không

Vậy đây là là dmp của linux Kiểm tra phiên bản và kernel linux
1 | vol -f memory.dmp banners.Banners |

Tải symbol table phù hợp về và build (Doạn này nhờ chat chỉ miễn sao tải đúng bản mình kiểm tra và build chạy là được) Liêt kê danh sách các chương trình có trong memory
1 | vol -f memory.dmp --symbol-dirs=./symbols linux.pslist |

Phát hiện có SSH tại pid 2054 và GUI tại pid 1913 và có cả sftp-server Tiếp theo mình kiểm tra cây quan hệ
1 | vol -f memory.dmp --symbol-dirs=./symbols linux.pstree |

Thì phát hiện ra sftp-server được sinh ra từ sshd và có hành dộng gửi file Kiểm tra lịch sử nhập lệnh trên terminal
1 | vol -f memory.dmp --symbol-dirs ./symbols linux.bash.Bash |

Và mình thấy có lệnh rm -rf .bash_history (xóa lịch sử) và sudo ./avml memory.dmp (tạo bộ nhớ)
Kiểm tra xem có tiến trình nào đang mở tại các pid mà mình nghi ngờ
Pid 2047
1 | vol -f memory.dmp --symbol-dirs ./symbols linux.lsof.Lsof --pid 2047 |

Pid 1913
1 | vol -f memory.dmp --symbol-dirs ./symbols linux.lsof.Lsof --pid 1913 |

Pid 2054
1 | vol -f memory.dmp --symbol-dirs ./symbols linux.lsof.Lsof --pid 2054 |

Kiểm tra biến môi trường Pid 2047
1 | vol -f memory.dmp --symbol-dirs ./symbols linux.envars.Envars --pid 2047 |

Mình thấy được SSH_CONNECTION = 10.0.0.1 32259 10.0.0.27 22, LOGNAME = lucius, PWD = /home/lucius, SSH_CLIENT = 10.0.0.1 32259 22
Pid 1913
1 | vol -f memory.dmp --symbol-dirs ./symbols linux.envars.Envars --pid 1913 |

Pid 2054
1 | vol -f memory.dmp --symbol-dirs ./symbols linux.envars.Envars --pid 2054 |

Kiểm tra bản đồ bộ nhớ của 3 pid Pid 2047
1 | vol -f memory.dmp --symbol-dirs ./symbols linux.proc.Maps --pid 2047 |

Pid 1913
1 | vol -f memory.dmp --symbol-dirs ./symbols linux.proc.Maps --pid 1913 |

Pid 2054
1 | vol -f memory.dmp --symbol-dirs ./symbols linux.proc.Maps --pid 2054 |

Sau khi ttổng hợp lại thông tin mình tháya tại pid 2047 có đoạn

Đây chính là vị trí vùng stack Kiểm tra xem trong pid 2047 có tồn tại file zip không
1 | vol -f memory.dmp --symbol-dirs ./symbols \ linux.vmaregexscan.VmaRegExScan --pid 2047 --pattern 'PK\x03\x04' |

Mình tìm thấy header của file zip tron sftp-server tại địa chỉ 0x7ffe99e75f10 Nên mình sẽ dump toàn bộ VMA của pid 2047
1 | vol -f memory.dmp --symbol-dirs ./symbols \ |

Tính vị trí header 0x7ffe99e75f10 - 0x7ffe99e6a000 = 0xBF10 = 48912 Sau đó thì từ vị trí đó mình cắt và xuất ra thành file bin
1 | tail -c +$((48912+1)) vma_out/pid.2047.vma.0x7ffe99e6a000-0x7ffe99e8b000.dmp > zip_from_header.bin |

Mình kiểm tra xem header có đúng chuẩn là file zip chưa
1 | hexdump -C -n 64 zip_from_header.bin |

Ok vậy là chuẩn r Đã có đầu thì phải có đuôi nên mình sẽ tìm vị trí kết thúc của file zip
1 | LC_ALL=C grep -obaP "\x50\x4B\x05\x06" zip_from_header.bin | head -n1 |

Để cho chắc mình kiểm tra xem có comment length ở cuối không

Từ những dữ liệu mình tính nãy giờ thì mình có được như sau 7176 + 22 + 0 = 7198 byte Có đủ đầu đuôi rồi thì mình cắt lấy khúc giữa nữa thôi là xong
1 | dd if=zip_from_header.bin of=recovered.zip bs=1 count=7198 status=none |

Vậy là mình có được file zip chứa flag

Siêu cấp chú ý: kiểm tra xem file flag bên trong có đủ hay không

Như hình là ok chứ đừng như mình xuất ra mà file png rỗng làm mình tưởng đây là lừa nên quằn mất cả đống thời gian

Crack mật khẩu
1 | zip2john recovered.zip > zip.hash |

Giải nén file zip với pass infected
Đọc flag

Flag: KCSC{w3ll_d0n3_y0u_go7_my_secr3t_n0w}
chall8 (Malicious intern)
