CTF_Sherlock
Writeup: Sherlock
- Máy ảo mà mình cài Sherlock có IP là:
172.16.30.10 - Mục tiêu của CTF này là để mình làm theo, học thêm các công cụ cũng như kỹ năng về “truy vết”
Mục 1: 15 điểm
- Truy cập vào link:
http://172.16.30.10nhấn F12 (như hình 1), sẽ thấy nội dung:sherlock said to irene that there was an .mp4 file hidden somehwere.
- Tức là đường link này có ẩn file
.mp4, do đó mình sử dụng công cụ gobuster để kiểm tra:
gobuster dir -u http://172.16.30.10/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x mp4 -k -c -a "Mozilla/5.0"
- Như hình 2, vậy là mình đã kiếm được link:
http://172.16.30.10/irene.mp4
- Không có gì trong video này cả, ban đầu scan dùng nmap thấy có xuất hiện port 22
nmap -sV 172.16.30.10
- Thử ssh vào xem thế nào:
ssh 172.16.30.10
- Theo write-up thì password chính là mã morse. Truy cập trang translator morse:
- Nhập input vào:
-... .- ... -.- . .-. ...- .. .-.. .-.. .
- Mình thu được output là BASKERVILLE (như hình 3)
- Ban đầu mình cứ nghĩ
BASKERVILLEchính là password để ssh vào hệ thống, nhưng có vẻ sai rồi. - Chỗ này chưa rõ lý do tại sao tác giả write-up lại nghĩ đến giải mã video bằng password (chắc là do kinh nghiệm).
- Mình thử làm theo 1 hướng khác xem như thế nào.
Dùng kali để kiểm tra file
mkdir ctf_sherlock/
cd ctf_sherlock/
wget http://172.16.30.10/irene.mp4
- Check thông tin:
file irene.mp4
hexdump -C irene.mp4 |head -n 20
binwalk -e irene.mp4
strings irene.mp4 |head -n 20
- Nhưng không có thông tin gì hữu ích (như hình 4). Chuyển sang check
metadata, dùng công cụexiftool:
sudo apt update -y
sudo apt install -y libimage-exiftool-perl
exiftool irene.mp4
- Copy kết quả và tham khảo Gemini, thì các điểm bất thường gồm:
Warning : Unknown trailer with truncated '\x00\x80\x88\xc9' data at offset 0x101bf8
Media Data Size : 0
Media Data Offset : 1051515
- Như hình 5, kết quả nhận xét của Gemini là file MP4 đã bị can thiệp.
Dùng tool steganography
- Trang chính thức hình như đã dead rồi, nên mình phải tải lại tool trên trang khác.
- Tham khảo trang:
http://justsolve.archiveteam.org/wiki/Our_Secret
https://web.archive.org/web/20161203120534/http://www.securekit.net/OurSecret.exe
- Tải và cài tool cho windows, phần UNHIDE
Chọn file: irene.mp4
Điền pass: BASKERVILLE
- Mình thu được file
.txt(như hình 6) và kết quả như hình 7.
Mục 2: 10 điểm
- Ban đầu khi dùng nmap để scan ip, nó đã scan ra giao thức POP3:
Giao thức POP3 là giao thức được sử dụng để kết nối tới server email và tải email xuống máy tính cá nhân thông qua những ứng dụng phổ biến như Outlook, Thunderbird, Windows Mail, Mac Mail,…
- Và theo hướng đi của tác giả write-up, sẽ tiến hành dùng công cụ hydra để brute force thử
hydra -l harshit -P /usr/share/wordlists/rockyou.txt 172.16.30.10 pop3s
Tại sao username lại là
harshit, vì theo tiến truyện, đây là máy tính của nạn nhân (máy vẫn đang hoạt động), và chủ nhân của máy này chính làHarshit
- Kết quả sau khi “brute force” (như hình 8) là:
username: harshit
pass: superman
Truy cập mail
- Giao thức POP3 (Post Office Protocol version 3) chạy trên cổng 110 (chưa mã hóa) hoặc 995 (mã hóa SSL/TLS) là một giao thức dạng văn bản (text-based protocol) phục vụ truyền tải dữ liệu email, hoàn toàn không có giao diện web (GUI) để mở bằng trình duyệt như Chrome hay Firefox.
- Vậy là muốn truy cập mail bằng giao thức POP3, mình cần dùng command-line:
openssl s_client -crlf -connect 172.16.30.10:110 -starttls pop3
- Nhập thông tin theo command và đọc nội dung mail (như hình 9):
USER harshit
PASS superman
retr 1
- Đọc tiếp nội dung mail thứ 2 (như hình 10):
retr 2
- Đọc tiếp nội dung mail thứ 3 (như hình 11):
retr 3
- Chuyển đổi
May 27, 2020 11:02:09 AMsang unixtime, được kết quả là: 1590577329 - Nhập đường dẫn
http://172.16.30.10/1590577329/(như hình 12)
Cái mình thắc mắc là tại sao lại nghĩ đến việc convert thời gian này sang UnixTime, và làm sao nghĩ đến việc unixtime này lại là path cho URL này?
- Nhấn vào file
10_Points.txt(như hình 13) , thu được 10 điểm tiếp theo.
Mục 3: 10 điểm
- Phần này liên quan đến việc phân tích file dump của memory.
wget http://172.16.30.10/1590577329/john.mem
- Cần cài đặt Volatility 3 cho Kali. Lệnh cho Volatility 3 sẽ hơi khác so với Volatility 2 (tham khảo cheatsheet)
- Thực hiện lệnh:
cd ctf_sherlock/
volatility3 -f john.mem windows.info
volatility3 -f john.mem windows.cmdline
- Như hình 14, mình sẽ có 2 tiến trình
notepadlà 628 và 1804
- Nhưng với Vol 3 thì mình không thể đọc trực tiếp file, mà phải thực hiện gián tiếp:
volatility3 -f john.mem windows.memmap --pid 628 --dump
- Thu được file
pid.628.dmp(đây là ảnh bộ nhớ thô của processnotepad.exe). Nội dung text trong Notepad có thể nằm ở:- dạng UTF-16 Little Endian trên Windows
- bị xen giữa nhiều vùng nhớ khác
- không còn là chuỗi ASCII liên tục
- Nên để đọc đẩy đủ nội dung trong file pid.628.dmp sẽ cần:
strings -el pid.628.dmp | more
- Như hình 15, do mình biết trước kết quả, nên chỉ cần
greplà xong.
Nhưng cái mình thắc mắc là tại sao tác giả writeup lại thấy chữ
Thcgpuneđặc biệt và chuyển sang rot13
- ROT13: ROT13 là cách đổi mỗi chữ cái thành chữ cái đứng cách nó 13 vị trí trong bảng alphabet. (Wiki ROT13)
- Truy cập trang rot13.com, để chuyển đổi (như hình 16):
Thcgpune -> Guptchar
- Dùng công cụ WinSCP để truy cập FTP Server, nhập thông tin:
host: 172.16.30.10
port: 21
username: john
pass: Guptchar
- Thu được file
10_Points.txt(như hình 17)
Mục 4: 10 điểm
- Mặc dù công cụ autopsy có sẵn trên kali, nhưng chưa rõ lý do gì mà mình không thể truy cập link
http://192.168.100.118:9999/autopsy. - Nên mình sẽ cài đặt công cụ autopsy trên Windows (tham khảo cách dùng autopsy trên Windows)
- Thao tác như hình 18 -> hình 22, mình sẽ lấy được flag.
Mục 5: 15 điểm
- Lưu 2 file
hint.jpgvàmycroft.pngra máy tính. Dùng chức năng “Extract File(s)” - Sau đó mình chép lại vào FTP server của máy
172.16.30.10, rồi trên kali, tiến hành download lại (làm hơi rườm rà, nhưng thôi kệ):
cd ctf_sherlock/
wget ftp://john:Guptchar@172.16.30.10/files/mycroft.png
wget ftp://john:Guptchar@172.16.30.10/files/hint.jpg
- Mình đã xem file ảnh
hint.jpgvà dùng toolexiftoolđể check thử, chưa thấy có gì bất thường (như hình 23).
- Làm theo write-up, conver hex sang ASCII text (như hình 24)
HEX: 4b 68 75 66 69 79 61
ASCII text: Khufiya
- Tác giả đặt giả thuyết có thể
mycroft(là username)Khufiya(là password) cho dịch vụ SSH. - Tiến hành dùng Metasploit để khai thác lỗ hổng (nếu có):
msfconsole
use auxiliary/scanner/ssh/ssh_login
set rhosts 172.16.30.10
set username mycroft
set password Khufiya
exploit
- Kết quả như hình 25, tiếp tục thực hiện command:
sessions -u 1
sessions 2
- Quá trình xử lý quá lâu, nhưng mà điều mình biết là với user và pass cung cấp ban đầu, thì đã exploit thành công.
- Vậy thì mình tiến hành
sshtrực tiếp luôn:
ssh mycroft@172.16.30.10
- Nhập pass
Khufiya, truy cập thành công (như hình 26). Thực hiện tiếp:
ls
cat 15_Points.txt
October 14, 2026 ∙