Báo Cáo Đề Tài Áp Dụng kỹ thuật reverse engineering trên cer5port để khai thác lỗ hổng bảo mật phần mềm thi chứng chỉ quốc tế MOS của MicrosoL
Báo cáo viên: Ths. Phạm Đình Thắng
MOS certification
� Phiên bản 2013, 2010, 2007 bao gồm: � MOS: Microsoft Office Word � MOS: Microsoft Office Excel � MOS: Microsoft Office PowerPoint � MOS: Microsoft Office Outlook � MOS: Microsoft Office Access � MOS: Microsoft SharePoint � MOS: Microsoft Office OneNote
Certiport
� Phần mềm ôn luyện và thi chứng chỉ MOS.
� Tổng hợp các bài ôn luyện và bộ đề thi chứng chỉ MOS.
� Thương mại hoá bản learning
� Thi chứng chỉ quốc tế MOS
Certiport
LICENSE:
http://shop.certiport.com/category-s/1897.htm
- Đối với cá nhân: khoảng 7.5 $
- Đối với tổ chức: call
Mô tả hoạt động Certiport
CERTIPREP_GROUP
COMPETITION
REHEARSAL
CERTIPREP_SINGLE
Run
Certiprep Học - luyện
tập
iQsystemAdmin Giám thị
iQsystemTest.exe
CandLogin.dll Module đăng nhập
SelectExam.dll Module bài k.tra
Exam.dll Quản lý điểm
ResultHandler.dll Xuất điểm
ResultUpload.dll gửi điểm lên server
……….
4 modes
� COMPETITION
khởi đông thi MOS chính thức,cần đăng nhập tài khoản thí sinh do certiport cấp khi thi.
� CERTIPREP_SINGLE khởi đông chế độ luyên tập dành cho cá nhân
� CERTIPREP_GROUP khởi đông đông chế độ luyên tập dành cho tổ chức,trường học…
� REHEARSAL Kiểm tra ( là chế độ kiểm tra máy, phần mềm ổn định trước khi thi ) giống như thi chính thức COMPETITION. Nhưng chỉ giới hạn 1 bài tập ,thời gian 10 giây và không có chấm điểm
Sử dụng công cụ ILSPY
Lấy đề thi MOS chính thức
- Dựa vào chế độ REHEARSAL để lấy đề thi chính thức.
- Khi dịch ngược iQsystemTest.exe sẽ thấy dòng lệnh của chế độ REHEARSAL là /REHEARSAL
Mở iQsystemTest.exe bằng command port
Mở khoá đề thi
� Mở Khóa giới hạn bài tập và thời gian
� ExamExec.dll
� Trong ExamExec này có 2 hàm: � PrepareRehearsalExam (thi thử) � PrepareExam (chuẩn bị thi)
� PrepareExam : lấy thông tin từ tài khoản người thi và đặt registry key Rehearsal là 0 (tắt chế độ Rehearsal)
� PrepareRehearsalExam : tự đặt thông tin user và đặt registry key Rehearsal là 1 (bật Rehearsal)
Thi chính thức Thi Thử
Các khoá ghi vào Registry
Cheat Score
Table result
Upload thông tin lên server
Upload điểm lên server
Thông qua giao thức truyền tải SOAP https://portal.certiport.com/ws/frameworkapi.asmx
Registrykey.SetValue(“Rehearsal”,1);
Sửa giá trị
� Opcode 0x17 là đặt giá tri 1, để set giá tri 0 thì Opcode là 0x16
Sửa giá trị
Kết quả
Cheat Score
� Sau Khi File ExamExec.dll kết thúc bài tập và lấy điểm thi sẽ chuyển điểm sang RessultHandler.dll để show bảng kết quả điểm. Sau đó, Kết quả này sẽ chuyển đến RessultUpload.dll để gửi điểm về server.
� Sửa điểm có thể chỉnh ở file ExamExec.dll hoặc ResultHandler.dll đều được
Cách tính điểm
� Mỗi câu đều điểm tối đa khác nhau tùy câu khó hay dễ.
� Tổng điểm các câu hỏi là 1000 điểm gồm 5 kỹ năng.
Sửa giá trị
num5 += int.Parse(dataRow4["WeightedScore"].ToString());
cộng điểm tất cả kết quả người thi
num6 += int.Parse(dataRow4["WeightedMaxScore"].ToString());
cộng điểm tối đa của tất cả câu hỏi
num7 += decimal.Parse(dataRow4["TimeInvolvedInSeconds"].ToString());
cộng thời gian làm các câu hỏi
� Chỉ cần sửa WeightedScore thành Weighted MaxScore thì ta có ngay điểm tối đa dù làm đúng hoặc sai.
dịch ngược ra mã MSIL
72 E1 01 00 70 ldstr "WeightedScore“ 72 FD 01 00 70 ldstr "WeightedMaxScore"
Kết quả
Kết quả
Kiểm chứng
https://www.certiport.com/portal/SSL/Login.aspx
Kết thúc
Chân thành cám ơn !