# Write Up ASCIS 2024 (Forensics) ## 1. Easy Forensics ![image](https://hackmd.io/_uploads/BJnValJJJg.png) Bài gồm một file nén Memory.rar, chứa hai file: Gift.rar và Memory.raw. Mình mở file Gift.rar trước nhưng nó đã được đặt pass, thử crack với John nhưng không được, mình đã nghĩ đến việc có thể flag ở trong file này và pass ở trong file raw kia. ![image](https://hackmd.io/_uploads/HJasLuJJJl.png) Theo thói quen, mình mở file .raw bằng autospy, sau 1 hồi phân tích thì nó cho ra hơn 2000 file, mình thử search các từ khóa liên quan đến mật khẩu và đặt lại mật khẩu (password, set password,...) nhưng đều không có được gì: ![Screenshot 2024-10-06 001023](https://hackmd.io/_uploads/SyDrPd1kye.png) Vì không phát hiện thêm gì sau 1 lúc mò trong autospy, mình đọc kĩ lại đề, chú ý hơn vào cơ chế persistence: > Cơ chế Persistence > > Định nghĩa: Persistence là kỹ thuật mà mã độc hoặc phần mềm độc hại sử dụng để đảm bảo rằng nó sẽ tự động khởi động lại sau khi hệ thống bị tắt hoặc khởi động lại. Mục tiêu của kỹ thuật này là duy trì sự hiện diện trong hệ thống, ngay cả khi nạn nhân thực hiện các biện pháp ngăn chặn. > > Các phương pháp phổ biến: Mã độc có thể sử dụng nhiều phương pháp khác nhau để đạt được persistence, trong đó có các phương pháp sau: > > Khóa Registry: > > Mã độc có thể thêm các mục vào các khóa registry của Windows để tự động khởi động khi hệ thống khởi động. Hai khóa thường được sử dụng là: > **HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run**: Mọi mục trong khóa này sẽ được khởi động cho tất cả người dùng trên máy tính. > **HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run**: Mọi mục trong khóa này sẽ chỉ khởi động cho người dùng hiện tại. > > > Dịch vụ Windows: > > Mã độc có thể tạo hoặc thay đổi các dịch vụ Windows để tự động khởi động khi hệ thống khởi động. Dịch vụ này có thể chạy dưới các tài khoản người dùng khác nhau và có thể được cấu hình để khởi động tự động. > > Lập lịch tác vụ (Task Scheduler): > > Một phương pháp khác là sử dụng Task Scheduler của Windows để tạo ra các tác vụ sẽ tự động thực thi mã độc vào các thời điểm xác định. > > Thư mục Khởi động (Startup folder): > > Mã độc có thể sao chép chính nó vào thư mục khởi động của Windows. Bất kỳ ứng dụng nào nằm trong thư mục này sẽ tự động được khởi động khi người dùng đăng nhập. > > Các kỹ thuật khác: > > Một số mã độc có thể sử dụng các kỹ thuật khác như lập trình lại các tệp hệ thống, sửa đổi các tệp DLL hoặc chèn mã vào các ứng dụng hợp pháp. > > Dấu hiệu phát hiện: Các dấu hiệu cho thấy một ứng dụng có thể sử dụng kỹ thuật persistence bao gồm: > > Xuất hiện các mục lạ trong registry (chẳng hạn như trong Run). > Dịch vụ lạ hoặc không xác định đang chạy trên hệ thống. > Các tác vụ đã lập lịch bất thường trong Task Scheduler. > Sự xuất hiện của các tệp lạ trong thư mục khởi động. Sau 1 hồi tìm hiểu, mình đã sử dụng volatility để phân tích hiệu quả hơn. Nhằm tìm kiếm các khóa registry liên quan đến persistence: ```bash= python2 vol.py -f Memory.raw --profile=Win7SP1x64 printkey -K "Software\\Microsoft\\Windows\\CurrentVersion\\Run" ``` > -f Memory.raw: Chỉ định file bộ nhớ Memory.raw để phân tích > --profile=Win7SP1x64: Chỉ định profile hệ điều hành là Windows 7 SP1 x64. > > printkey -K: Plugin printkey được sử dụng để đọc các giá trị từ Registry. Ở đây chỉ định khóa registry: "**Software\\Microsoft\\Windows\\CurrentVersion\\Run**", một vị trí phổ biến mà các phần mềm (bao gồm cả mã độc) thêm mục vào để đảm bảo chúng tự khởi động khi hệ thống bắt đầu. May mắn là đã có kết quả: ![Screenshot 2024-10-06 010723](https://hackmd.io/_uploads/r12DFu1kye.png) > Khóa trong các tài khoản hệ thống: > > Registry: \??\C:\Windows\ServiceProfiles\LocalService\NTUSER.DAT > Key name: Run (S) > Last updated: 2009-07-14 04:45:48 UTC+0000 > Values: > REG_EXPAND_SZ Sidebar : (S) %ProgramFiles%\Windows Sidebar\Sidebar.exe /autoRun > > \??\C:\Windows\ServiceProfiles\LocalService\NTUSER.DAT: Đây là một file NTUSER.DAT (tệp lưu cấu hình của người dùng) của tài khoản LocalService. > Sidebar: Chương trình Windows Sidebar (widget), được cài đặt để tự động chạy khi khởi động máy, sử dụng khóa registry Run. > Khóa trong tài khoản người dùng (User Account): > > Registry: \??\C:\Users\vboxuser\ntuser.dat > Key name: Run (S) > Last updated: 2024-09-20 00:28:37 UTC+0000 > Values: > REG_SZ Unikey : (S) UGFzc3dvcmQgaXMge0ZpbGVsZXNzLU1hbHdhcmUtUGVyc2lzdGVuY2V9 > > \??\C:\Users\vboxuser\ntuser.dat: Đây là file NTUSER.DAT của người dùng vboxuser. File này chứa cấu hình của tài khoản người dùng này. > Unikey: Đây là một giá trị trong khóa Run của người dùng, nó là chuỗi Base64: UGFzc3dvcmQgaXMge0ZpbGVsZXNzLU1hbHdhcmUtUGVyc2lzdGVuY2V9. > Khóa trong NetworkService: > > Registry: \??\C:\Windows\ServiceProfiles\NetworkService\NTUSER.DAT > Key name: Run (S) > Last updated: 2009-07-14 04:45:47 UTC+0000 > Values: > REG_EXPAND_SZ Sidebar : (S) %ProgramFiles%\Windows Sidebar\Sidebar.exe /autoRun > > Tương tự như tài khoản LocalService, tài khoản NetworkService cũng có chương trình Sidebar được cấu hình để tự động khởi động. Mình phát hiện 1 đoạn base 64 khả nghi, đem đi decode thì nó ra được pass của file gift: ![image](https://hackmd.io/_uploads/S1FG5dyk1g.png) Dùng pass đó giải nén file, mình có được flag: > Flag: ASCIS{Gh4st1n_Th3_R2M}