Summary
Lộ lọt các thông tin của hệ thống là một vấn đề không còn xa lạ với những anh DevOps, vận hành hoặc là những ai có tính tò mò trên không gian mạng. Case hôm nay mình chia sẻ có lẽ không lạ và cũng không mới. Và sơ qua kịch bản là lộ log hệ thống rồi sau đó khi ngồi nghiên cứu dữ liệu log đó, tôi phát hiện ra thông tin đăng nhập hệ thống tồn tại trong đống log đó.
Mở bài
Vào một hôm đẹp trời, tôi lượn lờ trên bugbounty platform rồi chọn nngẫu nhiên một program để làm. Scope của hệ thống cơ bản là domain như sau: *.redacted .com. Tôi thực hiện các bước recon và dorking cơ bản để tìm kiếm subdomain để bắt đầu tiến hành làm.
Thân bài
Recon:
Tôi sử dụng tool cơ bản với dòng lệnh như sau:
echo redacted.com | subfinder | httpx > scope.txt*
Câu lệnh chỉ thực hiện chạy tool để crawl và xác thực các subdomain khả thi.
Sau khi có được thông tin trong file scope, tôi thực hiện kiểm tra lại bằng tay các kết quả thu được. Nhìn vào tôi chợt tập trung đến subdomain xxx-api.redacted.com. Thường các subdomain này sẽ đảm nhiệm nhiều chức năng, mà theo kinh nghiệm thì càng nhiều chức năng thì càng nhiều khả năng xảy ra lỗi. Và tôi bắt tay vào domain này để tìm lỗ hổng trên hệ thống.
Tôi vẫn tiếp tục thu thập thêm thông tin của subdomain này với các path khả thi có thể truy cập bằng dirsearch:
dirsearch -u xxx-api.redacted.com --max-rate 5 -i 200,302 -o xxx_path.txt
Exploit:
Sau khi chạy xong, kết quả của dirsearch khả quan khi trả về một một path là /log. Hào hứng tôi truy cập ngay vào url này:
xxx-api.redacted.com/log
Vào thử một file log. Kết quả thu được là file log chứa các thông tin của PROD:
Tôi đã rất vui khi tìm được thông tin khá hữu ích này. Trong suy nghĩ lúc đó, tôi liền nghĩ, từ từ đã, log file thì chắc sẽ có thông tin nhạy cảm nào đó còn chứa trong đống log này. Việc đầu tiên khi thấy folder này là thực hiện crawl lại cả folder log này:
wget -m https://xxx-api.redacted.com/log
Chỉ tầm vài phút, cả folder log trên hệ thống được tải về đẩy đủ không thiếu một file nào. Sử dụng VSCode để thực hiện view các file log này cho dễ.
View các file này đa số tôi gặp tthông tin như thế này:
Khá là đau đầu và chưa biết nó là cái gì. Tiếp tục ngồi lướt thêm thì chú ý vào nhiều dòng có thông tin như sau:
Thông tin rõ ràng và rành mạch, Encoded Attachment data. Vâng, thông tin khá là quan trọng. Nhưng nó là encode nào. Tôi chưa gặp dữ liệu nào mà encode nó dài như này nên đâm ra tôi hơi lấn cấn và không có hướng để làm tiếp. Tôi chỉ ngồi tìm các thông tin email tồn tại trong log, nhưng check out of scope thì lại không chấp nhận lỗi này và định hướng là phải có cái gì đó đáng để tiếp tục nâng mức lỗi lên cao hơn chứ nhỉ!
Tôi quyết định đi cafe với ông anh cho thong thả đầu óc rồi về làm tiếp.
Đi mò
Khi về, tôi lại lao vào làm những gì mình đã tạm dừng. Tôi phát hiển ra, log có cả các file image được encode với các giá trị đầu mà ai để ý cũng biết là iVB... với các file đuôi .png. Oh! Tôi đã không để ý điều này, decode base64 là xong chứ có gì khó đâu, haizzz.
Tôi thực hiện kiểm tra các file image đầu tiên, cứ tìm dữ liệu base64 paste ra file rồi thực hiện decode cơ bản như sau:
cat data_encode.txt | base64 -d > xxx.yyy
Cứ thế tôi decode ra từng hình một. Tôi thấy đây là các ảnh trong quá trình làm việc được gửi qua nhau bằng email. Và khi này, tôi phát hiện các file đuôi .msg, mà viết tắt như này thì chắc liên quan đến liên lạc. Thử decode thử một file .msg để xem nó là gì. Sau khi decode, tôi thực hiện mở file, đúng như dự tính, file yêu cầu mở bằng Outlook, chính xác đây là file email. Đọc thử thông tin thì thấy là các thông tin về quá trình làm việc. nhưng log thì phải vào chục GB, tôi không thể nào ngồi làm tay từng file 1 thế này được. Tôi thực hiện viết script python để automate quá trình này.
Thu được 1 số lượng kha khá các file .msg. Lọc qua bằng tay và mắt, đập vào mắt tôi là một email khá là thú vị
Quá đỉnh!!!!
Biết ngay mà, mấy cái thông tin này thì thường mail nào cũng dính, công ty nào cũng dính cả!
Đến đây thì tôi đã đi gần hết quá trình mò mẫm của mình rồi.
Final
Cứ thế, tôi lấy thông tin mail và password mà đăng nhập thông. Như hay nói, tôi dính xương. Vâng xương thật. Hệ thống login bằng hệ thống của Microsoft, còn xương ở đầu thì nó như hình ấy:
Cái này thì chắc chắn là không có hướng nào xử lý kỹ thuật nữa rồi, qua được bước này thì bài sẽ dài hơn, hơi tiếc 😂
Kết bài
Tôi hoàn thiện quá trình report lỗi cho bên platform với các evident mà tôi có, tự đánh giá lỗi ở mức Medium. Vâng, sau vài ngày tôi nhận được kết quả xử lý của đơn vị kia là lỗi bị Duplicate các bạn ạ!
Bài học
Set quyền truy cập log đầy đủ và không cho phép truy cập trái phép vào folder nhạy cảm này!