Vì vậy khoá luận tập trung vào nghiên cứu các cách thay đổi bên trong và sử dụng các công cụ của Windows trong việc che giấu môi trường máy ảo của mô hình, thay vì sử dụng hooking dé qua
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN KHOA MANG MAY TINH VA TRUYEN THONG
PHAM XUAN AN
AN VAN HIEU
KHOA LUAN TOT NGHIEP
XÂY DUNG MOI TRUONG PHAN TÍCH DE VƯỢT QUA CÁC KĨ THUAT PHÁT HIEN MAY AO (ANTI-VM) CUA
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA MANG MAY TINH VA TRUYEN THONG
PHAM XUAN AN - 17520220
AN VĂN HIEU — 17520467
KHOA LUAN TOT NGHIEP
XÂY DUNG MOI TRUONG PHAN TÍCH DE VƯỢT QUA CÁC
KỸ THUAT PHÁT HIEN MAY AO (ANTI-VM) CUA MA DOC
BUILDING AN ANALYSIS ENVIRONMENT TO BYPASS
ANTI-VM TECHNIQUES OF MALWARE
KY SU NGANH AN TOAN THONG TIN
GIANG VIEN HUONG DAN
TS PHAM VAN HAU
TS NGUYEN TAN CAM
TP HO CHi MINH, 2021
Trang 3THONG TIN HOI DONG CHAM KHÓA LUẬN TOT NGHIỆP
Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số
Ti8ầy của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
Trang 4LỜI CẢM ƠN
Hoàn thành Khoá luận Tốt nghiệp đối với chúng em là một cột mốc đáng tự hào Đề
có được kết quả này không chỉ là sự nỗ lực của bản thân chúng em mà còn nhờ sự giúp đỡ của giảng viên hướng dẫn đề tài, bộ môn và nhà trường.
Trước hết, chúng em muốn gửi lời cảm ơn sâu sắc đối với thay Nguyễn Tan Cam và
thầy Phạm Văn Hậu Sự chỉ dạy và góp ý của các thầy là những kinh nghiệm quý giá đối với chúng em trong việc thực hiện Khoá luận tốt nghiệp và cả trong công
VIỆC sau này.
Chúng em chân thành cảm ơn Khoa Mạng máy tính và Truyền thông, trường Đại
học Công nghệ thông tin, Đại học Quốc gia Tp Hồ Chí Minh đã tạo điều kiện thuận
lợi cho chúng em trong 4 năm học tập tại trường và thực hiện khoá luận.
Chúng em xin chân thành cảm ơn quý Thầy Cô trong Khoa Mạng máy tính và
Truyền thông đã tận tình giảng dạy, trang bị cho chúng em những kiến thức quý báu
trong suốt quá trình học tập để có thể thực hiện được đề tài Chúng em cũng rất biết
ơn gia đình và bạn bè, những người đã giúp đỡ, cổ vũ chúng em rat nhiều trong lúc chúng em gặp khó khăn cũng như trong suốt quá trình thực hiện khoá luận.
Mặc dù đã có gắng hoàn thành Khoá luận trong phạm vi và khả năng cho phép
nhưng chắc chắn sẽ không tránh khỏi những thiếu sót, kính mong nhận được sự góp
ý và tận tình chỉ bảo của quý Thầy Cô.
Một lần nữa, chúng em xin chân thành cảm ơn và mong nhận được sự chỉ bảo của quý Thầy Cô để Khoá luận Tốt nghiệp được hoàn chỉnh hơn.
Tp Hồ Chí Minh, ngày 12 tháng 7 năm 2021
Nhóm sinh viên
Phạm Xuân An
An Văn Hiếu
Trang 5MỤC LỤC
Chương 1 MỞ ĐẦU 222222222222222211212221111227111 2221112111 ce 2
1.1 Lí do chọn đề tài 2222222cc222222 2222222211111 t1 re 2
1.2 Mc dich 3
1.3 Đối tượng và phạm vi nghiên COU ccccccscsssesssssssesssssseeesssssesessssecessssieeesesseess 3
Chuong 2 TONG QUAN
QA Các đề tài liên quan 2¿222+++222E+++222211212221112222111 22211 ccrrrvee 4 2.2 Những dé mục đề tài tập trung.
2.3 Một số tập tin liên quan và công nghệ được sử dụng .¿ 4 Chương3 | CAC KI THUAT ĐƯỢC NGHIÊN CỨU VA SỬ DUNG
3.1 Các kĩ thuật phát hiện máy ảo va cách thức vượt qua - 6
3.1.6 Kiểm tra tên User / Computer Name -:©cc222ssce+ 4
3.1.7 Kiểm tra tình trạng vật lí của thiết bị -.-¿-ccc+ccxscee 4
3.1.8 Kiểm tra thời gian hoạt động của máy - -: .cc:+c-scce+ 5 3.1.9 Kiểm tra tên và nhãn hiệu của 6 cứng -: ccz+ccssce+ 6 3.1.10 Kiểm tra địa chi MAC cccccccerrre 7 3.1.11 _ Kiểm tra các tiến trình đang chạy -.-¿¿c++2c+scrccrvscee 9 3.1.12 Kiểm tra Registry key 222ccc tt 9 3.1.13 Kiểm tra bằng đếm thời gian sử dụng rdtsc - 22
Trang 63.1.14 _ Kiểm tra bằng các lệnh WMI -: 22c++2ccvvcreccrvrrrrrrrrree 23 3.1.15 Kiém tra con trỏ chuột.
3.1.16 Kiểm tra trong bộ nhớ ¿++++2+++++22vv+rtetrrxrrrrrrrsvee 29 3.2 Các phương pháp phòng chống có liên quan
3.2.1 Các loại máy ảo khác - «kh 31
3.2.2 _ Sử dụng các phần mềm debugging
3.2.3 _ Sử dụng Nested Virtualization -cs-c<cecseeeeeeeeeeeeee 22
Chuong4 | KET QUA THU NGHIỆM
4.1 Cấu hình may ảoO 2¿-©2222++222E+++t222211122221112122111 22211122211 ccrrrke 34 4.2 Các bước thiết lập mô hình máy ảo ¿©z2222++z+2cvvvczerrrs+ 34 4.3 Thử nghiệm với mẫu thử : :¿+2©+++++22E++tttttrktrtrrrrttrirrrrrrrrrrker 4I 4.4 Thử nghiệm chỉ tiết với các mẫu thử malware -¿+cz+ccx++ 57 4.4.1 Mẫu thử Agent Tesla ccccssccssscessssessssessssesssscessecssseesessecesseceaseeseseece 58 4.4.2 Mau thử Zloader cc.cccccccesssssseesseesseessecsseesseessecssecssecaseesseesseesseesseesse 61 4.4.3 Mẫu thử Trickbot csccccrrrrrrrrrrrirrrrrr 66 4.5 Kết quả thử nghiệm với các mẫu malware .::- 2s: 69 Chương 5 KET LUẬN -22¿¿22252+e2cEvvcrtrrrvrerrrrrrcee 74 5.1 KẾtquả à 22 2222 HH HH 74 5.1.1 Lý thuyẾt 22222222 EEtEEEEtrEErrrrrrrrrrrrvee 74
Trang 7DANH MỤC HÌNH
Hình 3.1 Thông tin thêm về tap tin hệ thống vmmouse.sys - 12
Hình 3.2 Thông tin về nhãn hiệu 6 cứng mặc định trên máy ảo - 16
Hình 3.3 Thông tin nhãn hiệu 6 cứng sau khi đã chỉnh sửa - 17
Hình 3.4 Cấu hình thiết lập cho một trường được gọi bằng WMI 27
Hình 3.5 Thông báo chạy thành công lệnh mofcomp - - - ¿+ + + c+++s++ 27 Hình 3.6 Cấu hình thiết lập cho một trường được gọi bằng WMI - 28
Hình 3.7 Kết quả khi gọi lệnh WMI tương ứng -2¿222+2z2vczvzcrrrrrscee 28 Hình 4,1 Cấu hình của mẫu thử đã được thiết lập -2z++22z+zcrccrxscee 34 Hình 4.2 Phần mềm VMware Tools được cài đặt sẵn ¿ cccc©ccccccce 36 Hình 4.3 Một bản ghi của Win32_ Fan ¿-¿- + St 1 1x xen 38 Hình 4.4 Một số snapshot của mô hình 2 2+z+2++z++22++z++22vzzrzrrxscee 40 Hình 4.5 Một phần cấu trúc SMBIOS trong bộ nhớ của snaphot khi chưa chỉnh sửa 1 Hình 4.9 Kiêm tra trên công cụ FirmwareTableView của Nirsoft sau khi chỉnh sửa " 4I Hình 4.10 Chương trình pafish chạy trên máy ảo đã được dựng 43
Hình 4.11 Chương trình pafish chạy trên môi trường máy thật (phan ]) 44
Hình 4.12 Chương trình pafish chạy trên môi trường máy thật (phan 2) 44
Hình 4.13 Chương trình pafish chạy trên môi trường máy thật (phần 3) 45 Hình 4.14 Chương trình pafish chạy trên môi trường máy ảo thông thường (phan 1)
Trang 8Hình 4.16 Chương trình pafish chạy trên môi trường máy ảo thông thường (phan 3)
Hình 4.24 Các kiểm thử về Generic Sandbox với công cụ al-khaser trên môi trường
50
Hình 4.25 Các kiểm thử về Generic Sandbox với công cụ al-khaser trên môi trường máy ảo thông thường (phần 2)
máy ảo thông thường (phần 3) ¿2z "— 51
Hình 4.26 Các kiểm thử về Generic Sandbox với công cụ al-khaser trên môi trường máy ảo thông thường (phần 4) . -¿ ccccvccc+2 — 51 Hình 4.27 Các kiểm thử về Generic Sandbox với công cu al-khaser trên môi trường
máy ảo thông thường (phần 5) -22++£222EEEY++++rtttEEEEExvrrrrrrrrrrrrrrrree 52 Hình 4.28 Các kiểm thử về phát hiện VMware với công cy al-khaser trên máy ảo
bình thường (phần 1) 2¿-22+£2V++++22EE+++t2EEE+++EEEEEE+tEE2EE222211 tre 52
Hình 4.29 Các kiểm thử về phát hiện VMware với công cụ al-khaser trên máy ảo
bình thường (phần 2) -22-+++22E++22EEEE++E22E1112122111122121121227111 22211 re 53
Hình 4.30 Các kiểm thử về timing với công cụ al-khaser trên máy ảo bình thường 53
Hình 4.31 Thử nghiệm công cụ sems trên máy ảo được dựng - 55
Trang 9Hình 4.32 Thử nghiệm công cụ sems trên máy ảo thông thường 55
Hình 4.33 Các hoạt động của mã độc Agent Tesla thu được bằng Process Monitor58
Hình 4.34 Các hoạt động của malware Agent Tesla thu được bằng Wireshark 59
Hình 4.35 Dich vụ msiserver được khởi động - ¿-¿- 55+ csc++x+csceesr+ 59
Hình 4.36 Tiến trình msiexec.exe chạy ngầm được phát hiện bởi Process Explorer
Hình 4.37 Các hoạt động thu được bởi Process MOnitOr - - - + 5 +©+execse 60 Hình 4.38 Những hoạt động của malware Agent Tesla ghi lại bởi Wireshark trên
MAY AO thƯỜng - + + + E22 9 E23 1217121 112111111 1111121101111 ghi 61 Hình 4.39 Thư mục chứa các nhân ban malware Zloader trong máy ảo được dung 62
Hình 4.40 Một nhân bản của malware Zloader trong máy ảo được dựng 62
Hình 4.41 Chỉ tiết hai tiền trình thu được bởi Process Monitor 62
Hình 4.42 Các hành vi trên hệ thống của tiền trình zloader 603 Hình 4.43 Các hành vi trên hệ thống của tiền trình msiexec 63 Hình 4.44 Kết quả thu được bởi Wireshark với malware Zloader 63
Hình 4.45 Chỉ tiết hai tiến trình thu được bởi Process Explorer 64
Hình 4.46 Các hành vi trên máy ảo của tiến trình zloader 64
Hình 4.47 Malware Zloader nhân bản trong máy ảO - eee + 5++++x+c+se++ 65
Hình 4.48 Kết quả thu được trên wireshark của zloader trên máy ảo thường 65
Hình 4.49 Báo cáo của mau thử Trickbot trên Virustotal : ccc:cccssce+ 66
Hình 4.50 Malware Trickbot nhân bản chính minh và lưu lại - 66
Hình 4.51 Các hoạt động của malware Trickbot phát hiện bởi wireshark (phần 1).67
Hình 4.52 Các hoạt động của malware Trickbot phát hiện bởi wireshark (phần 2).67 Hình 4.53 Tiến trình tmp039.exe chạy ngầm được phát hiện - 67
Hình 4.54 Các hành vi của malware Trickbot đối với hệ thống được phát hiện 68
Hình 4.55 Tiến trình tmp039.exe được phát hiện bởi Process Explorer 68
Hình 4.56 Các hành vi của malware Trickbot được thu thập bởi Process Monitor 68
Hình 4.57 Malware Trickbot nhân bản trong máy ảo -‹-‹-5-<+s+5+ 69
Hình 4.58 Hành vi của Trickbot được wireshark phát hiện trên máy ảo thường 69
Trang 10DANH MỤC BANG
Bang 3.1 Bảng phân nhóm các kĩ thuật chống máy ảo -72cccccc-+2 6
Bảng 4.1 So sánh các thử nghiệm vượt qua giữa máy ảo được dựng của khoá luận
và máy ảo thông thường
Bảng 4.2 Chỉ tiết các mẫu tự viết
Bảng 4.3 Kết quả chạy mẫu giữa máy ảo mô hình và máy ảo bình thường 56 Bảng 4.4 Kết quả chỉ tiết thử nghiệm với mẫu thử malware thực tế 70
Trang 11DANH MỤC MÃ NGUÒN
Mẫu 3.1 Mã nguồn phát hiện máy ảo với CPUID
Mẫu 3.2 Mã nguồn phát hiện máy ảo thông qua giá trị bảng IDT
Mẫu 3.3 Mã nguồn phát hiện máy ảo thông qua giá trị bảng LDT 9
Mẫu 3.4 Mã nguồn phát hiện máy ảo thông qua giá trị bảng GDT - 0
Mẫu 3.5 Mã nguồn thực hiện kiểm tra các tập tin liên quan đến máy 40 VMware 11
Mẫu 3.6 Mã nguồn thực hiện kiểm tra các tập tin, đường dẫn liên quan đến sandbox — 3
Mẫu 3.7 Mã nguồn kiểm tra tên của user thường dùng trong các sandbox 4
Mẫu 3.8 Mã nguồn kiểm tra về số lượng lõi vi xử lý của hệ thống - 5
Mẫu 3.9 Mã nguồn thực hiện kiểm tra thời gian hoạt động của hệ thống "— 5 Mẫu 3.10 Mã nguồn so sánh địa chỉ MAC với các MAC header thường có trên 'VMware
Mẫu 3.11 Mã nguồn lấy thông tin địa chi MAC và kiểm tra - 8
Mẫu 3.12 Mã nguồn kiểm tra một số tiến trình thường có trên VMware 9
Mẫu 3.13 Mã nguồn kiểm tra các khoá, giá trị của một sé registry thường có trên máy ảo VMWare thông thường - ¿52 Street 20 Mẫu 3.14 Mã nguồn kiểm tra đếm thời gian bằng rdtsc -: -+ 2
Mẫu 3.15 Mẫu code thực hiện kiểm tra thông tin về Win32_VoltageProbe 24
Mẫu 3.16 Mã nguồn cụ thé cách WMI được truy van và so sánh - 25
Mẫu 3.17 Mã nguồn kiểm tra vị trí con trỏ chuột qua thời gian - 29
Mẫu 3.18 Mã nguồn kiểm tra chuỗi “VMware” có trong cấu trúc SMBIOS 30
Trang 12TÓM TẮT KHÓA LUẬN
Khóa luận tập trung vào việc nghiên cứu các kĩ thuật liên quan đến phát hiện
môi trường máy ảo và cách vượt qua các kĩ thuật này, đồng thời xây dựng mô hìnhmáy ảo có khả năng vượt qua các kĩ thuật phát hiện máy ảo Hướng tiếp cận của
khoá luận là tập trung vào các phương thức, kĩ thuật tự nhiên mà không cần sử dụng
các kĩ thuật hooking hay debugging Vì vậy khoá luận tập trung vào nghiên cứu các
cách thay đổi bên trong và sử dụng các công cụ của Windows trong việc che giấu
môi trường máy ảo của mô hình, thay vì sử dụng hooking dé qua mặt các loại
malware, kết hợp với các tinh năng mạnh mẽ, sẵn có trên nền tảng ảo hoá.
Một số kết quả đạt được: vượt qua được đa số các kĩ thuật phát hiện máy ảo
thông thường, thử nghiệm thành công các chương trình dùng dé phát hiện môi
trường máy ảo, bao gồm cả các mẫu và kĩ thuật tự viết Có thể chạy thành công một
số mẫu malware có sử dụng kĩ thuật phát hiện máy ảo (anti-vm), phát hiện ra các
hành vi khác biệt khi chạy với máy ảo thông thường.
Trang 13Chương 1 MỞ ĐẦU
1.1 Lí do chọn đề tài
Malware đã và đang là một mối nguy hại lớn cho ha tang và thông tin trong thờiđại kĩ thuật số hiện nay, và càng ngày càng phát triển phức tạp hơn Từ những đoạn
mã đơn giản ghi đè vào các chương trình thực thi, malware càng ngày càng phát
triển hơn, va phát triển các kĩ thuật tự giấu mình dé qua mắt các chương trình diệt
virus (antivirus) cũng như tránh dé ban thân bị phân tích trên các môi trường phân
tích Các kĩ thuật bao gồm ba nhóm chính: obfuscation (làm rối mã), anti-debugging(chống gỡ lỗi) và anti-vm (chống máy ảo) Xu hướng của các malware là sẽ áp dụng
các kĩ năng này, với mức độ càng ngày càng phức tạp hơn Do đó các mẫu malware
hiện đại sẽ ngày càng khó dé phân tích cũng như tìm ra các giải pháp Theo thống
kê dựa trên 36 họ malware dựa trên data của MITRE, từ năm 2010 đến giữa năm
2020, có đến 33% số malware thực hiện các loại kiém tra môi trường, 25% thi hànhcác WMI request, 19% kiểm tra các tiến trình đi kèm, 14% đọc các registry key [1].Với sự phát triển của malware, việc phân tích mã độc sẽ trở nên khó khăn và phức
tạp hơn đối với các người nghiên cứu, phân tích các mã độc Trong quá trình phântích mã độc, rất nhiều người nghiên cứu chọn máy ảo làm môi trường phân tích
Nhận thấy mối tương quan trên, nhóm nhận thấy việc xây dựng môi trường có khảnăng các vượt qua kĩ thuật chống máy ảo (anti-vm) phục vụ cho quá trình phân tích
mã độc là hợp lý và cần thiết
Thông qua quá trình tìm hiểu và được gợi ý đến từ thay Nguyễn Tan Cam, nhómquyết định tìm hiểu sâu hơn về các kĩ thuật anti-vm, qua đó xây dựng môi trường cóthé vượt qua kĩ thuật anti-vn trên môi trường máy áo
Trang 141.2 Mục đích
Mục tiêu của đề tài là tập trung nghiên cứu chỉ tiết về các kĩ thuật phát hiệnmáy ảo được sử dụng trên các malware, sau đó tìm hiểu cách thức có thé được sử
dụng dé vượt qua các kĩ thuật này, tập trung tận dụng các tính năng sẵn có trên các
hệ thống host-hypervisor (VMware, VirtualBox, ) để xây dựng một môi trường
chạy trên máy ảo có khả năng vượt qua các kĩ thuật anti-vm Hơn nữa, đề tài cũng
hướng tới tính tiện dụng, không cần cau hình nhiều dé có thé sử dụng môi trường
một cách dé dàng nhất
1.3 Đối tượng và phạm vi nghiên cứu
Đôi tượng nghiên cứu là môi trường máy ảo, cụ thê là máy ảo chạy hệ điêu hành
Windows 7 32bit trên nên tảng ảo hoá VMware Trong máy ảo sẽ sử dụng các
chương trình kiêm thử được viết san cũng như là những mau thử tự viết.
Phạm vi nghiên cứu sẽ tập trung vào các kĩ thuật nhăm vào máy ảo VMware,
cũng là mẫu thử của khoá luận này, đồng thời có một số mẫu thử malware có sử
dụng kĩ thuật anti-vm.
Trang 15Chuong 2 TONG QUAN
2.1 Các dé tài liên quan
Việc xây dựng các kĩ thuật phát hiện máy ảo đã diễn ra từ lúc máy ảo hoạt
động, và việc ngăn chặn các kĩ thuật này cũng bắt đầu từ đó
Đa số các đề tài về virtual machine hardening thường rất cá nhân và chỉ tậptrung vào một khía cạnh của máy ảo, với mục tiêu là để chạy một vài mẫumalware sử dụng các kĩ thuật nhất định
Các đề tài tương tự như Evasion của CheckPointSW [2], chứa tương đối đầy
đủ thông tin và được cập nhật thường xuyên, tuy nhiên cách dé qua mặt các kĩthuật lại phụ thuộc nhiều vào hooking dé né tránh các kĩ thuật anti-vm
2.2 Những đề mục đề tài tập trung
Qua các dé tài đã ké trên nên đề tài này sẽ tập trung theo hướng ngăn chặn tat
cả các kĩ thuật phát hiện máy ảo nếu có thể, và xây dựng môi trường khôngphụ thuộc vào hooking hay debugging dé chạy Xây dựng mô hình này cũng
sẽ gặp nhiều khó khăn khi những kĩ thuật có thé ngăn chặn đơn giản bằng việchook cái hàm của Windows để ngăn chặn đọc bộ nhớ, thì phải chuyên sangphương pháp tốn sức và thời gian hơn như chỉnh sửa vram Qua đây cũng cóthé nêu được những mặt lợi và hại của từng phương pháp khi dùng dé qua mặt
các kĩ thuật phát hiện máy ảo.
2.3 Một số tập tin liên quan và công nghệ được sử dụng
VMX là các tập tin thiết lập câu hình được dùng trong các phần mềm ảo hóa
của VMware như VMware Workstation va VMware Fusion Chúng lưu trữ
những thiết lập cho một máy ảo tao bởi New Virtual Machine Wizard Cácthiết lập đó liên quan đến bộ nhớ RAM, 6 đĩa cứng, CPU và rất nhiều các thuộctính khác Máy ảo khi hoạt động sẽ đọc thông tin về các cấu hình từ tập tin
Trang 16này, thông qua hệ thống ảo hoá và khởi động Các tập tin VMX được lưu dướidạng văn bản không định dạng và chứa một danh sách các thiết lập và có dạngthuộc tính = giá trị Ví dụ, nếu giới hạn bộ nhớ được thiết lập memsize="512"
có nghĩa là giới hạn bộ nhớ tối đa của máy ảo trên RAM là 512MB
Tính năng tạo ảnh nhanh (snapshot): Là một tính năng hữu ích trên các nêntang ảo hoá, trong đó có VMware, giúp duy trì trạng thái của máy ảo dé ngườidùng có thể quay lại trạng thái cũ nhiều lần Tính năng snapshot ghi lại toàn
bộ trạng thái của máy ảo tại thời điểm người dùng thực hiện snapshot Trạngthái được lưu lại bao gồm:
o Trạng thái của 6 đĩa của máy ảo
o Nội dung toàn bộ của bộ nhớ RAM trên máy ảo Với máy ảo VMware,
toàn bộ nội dung được lưu trên tập tin với định dạng vmem.
o Cai đặt máy ảo.
Khi khôi phục (revert) một snapshot, người dùng đưa tất cả các nội dung này
về trạng thái tại thời điểm thực hiện snapshot
Trang 17Chương 3 CÁC KĨ THUAT ĐƯỢC NGHIÊN CỨU VÀ SỬ DỤNG
3.1 Các kĩ thuật phát hiện máy ảo và cách thức vượt qua
- Cac kĩ thuật phát hiện máy ảo thông thường được tổng hợp gồm 16 kĩ thuật,
trong đó có thé chia ra thành 6 nhóm kĩ thuật chính :
o_ Kiểm tra các thuộc tính phần cứng (Hardware Fingerprinting): các ki
thuật kiểm tra môi trường của máy ảo cũng như các cấu hình phần
cứng của máy ảo.
o_ Kiểm tra Regsitry (Registry Check): kiểm tra các khóa và giá trị của
các registry dùng dé phát hiện môi trường máy ao
o_ Kiểm tra bộ nhớ (Memory Check): kiểm tra các chuỗi và vùng nhớ có
liên quan đến máy ảo, xác định thông qua bộ nhớ RAM Bao gồmkiểm tra trong bộ nhớ
o_ Kiểm tra các thuộc tính thời gian (Timing Check): các kiểm tra sử
dụng các module bộ đếm thời gian, có thé nham phát hiện sai lệch
giữa thời gian thực và thời gian đã ảo hóa.
o_ Kiểm tra các kênh giao tiếp của máy ảo (Communication Channel
Check): kiêm tra các backdoor được dùng đề giao tiếp giữa máy ảo và
máy thật.
o Kiểm tra tập tin và tiễn trình (File and Process Check): các kiểm tra
về các tệp tin cũng như tiên trình tôn tại trong máy ảo.
Chỉ tiết phân loại các kĩ thuật như sau:
Bang 3.1 Bảng phân nhóm các kĩ thuật chong máy ảoNhóm kĩ thuật Các kĩ thuật chống máy ảo
Kiểm tra CPUID, kiêm tra redpill, kiém
Kiêm tra các thuộc tinh phan cứng tra Username/Computer Name, kiểm
tra tình trạng vật lý, kiểm tra nhãn hiệu
Trang 186 cứng, kiểm tra MAC address, kiểmtra WMI, kiểm tra di chuyên chuột
Kiểm tra các thuộc tính thời gian Kiểm tra thời gian hoạt động của máy,
đếm thời gian sử dụng rdtsc
Kiém tra các kênh giao tiép của máy ảo Kiêm tra IN instruction
Kiém tra tap tin va tién trinh Kiểm tra tập tin, kiểm tra đường dan,
kiêm tra tiên trình
Mẫu 3.1 Mã nguồn phát hiện máy ảo với CPUID
- Kiến trúc phát hiện máy ảo cơ bản, gọi lệnh CPUID với các giá trị có định, giá
trị trả về sẽ xác định được môi trường đang chạy có phải là máy ảo hay không.Với EAX = 0x40000000, khi gọi CPUID sẽ trả về các chuỗi ở EBX, ECX,
EDX chứa tên của loại máy ảo đang sử dụng Với EAX = 0x1, Khi gọi CPUID
sẽ trả về giá trị bit 31 của ECX là 1 hay 0 tương ứng với việc môi trường có
chạy ở trên hypervisor hay không.
- _ Cách phòng chống: sửa cấu hình tập tin vmx ở trong đường dẫn của thư mục
máy ảo ở trên máy host với các giá trị cụ thê như sau:
Trang 19o Thay đổi giá trị ecx khi gọi CPUID với input là 1:
- VMware sử dung các công nhập xuất (I/O port) ảo cho mục dich giao tiếp giữa
máy ảo và hệ điều hành chủ đề hỗ trợ các chức năng như sao chép và đán (copyand paste) giữa hai hệ thống
- _ Kiến trúc này chỉ có tac dụng phát hiện máy ảo với các máy 40 VMware: sử
dụng lệnh IN với đầu vào EAX là 0x564D5868 ( VMXh), DX là 0x5658 (VX)
và ECX là đầu vào dé thực thi lệnh, và kết qua trả về tương ứng với đầu vàođược gọi từ ECX ( với ví dụ ECX = OxA sẽ trả về VMware version)
- _ Cách phòng chống: sửa tập tin cau hình vmx dé vô hiệu hoá port backdoor
monitor control.restrict backdoor = "TRUE"
Trang 20#if defined (ENV32BIT)
_asm sidt idtr
#endi£
idt_base = *((unsigned long *)&idtr[2]);
// get idt_base
if ((idt base >> 24) == Oxff)
return TRUE; //VMWare detected
return TRUE; // VMWare detected
Mẫu 3.3 Mã nguôn phát hiện máy do thông qua giá trị bang LDT
Trang 21Mẫu 3.4 Mã nguồn phát hiện máy ảo thông qua giá trị bảng GDT
- _ Chương trình sử dụng các bảng IDT/GDT/LDT và kiểm tra dia chi của các
bảng, ở máy ảo, địa chỉ các bảng này sẽ thấp hơn địa chỉ ở máy that dé tránhtrùng lặp Tuy nhiên, VMware đã thay đôi sự khác biệt này trong các phiên
bản mới hơn cho nên việc phòng chông là không còn cân thiệt.
3.1.4 Kiểm tra các tập tin
- Mẫu code:
10
Trang 22const TCHAR* szPaths[] = {
T("System32\\drivers\\vmnet.sys"),
T("System32\\drivers\\vmmouse.sys"),
_T(" System32\\drivers\\vmusb.sys"),
_T("System32\\drivers\\vm3dmp.sys"), _T("System32\\drivers\\vmci.sys"),
_T("System32\\drivers\\vmhgfs.sys"),
T("System32\\drivers\\vmmemctl.sys"),
_T("System32\\drivers\\vmusbmouse.sys"),
}; // system artifact related path
WORD dwlength = sizeof(szPaths) / sizeof(szPaths[0]);
TCHAR szWinDir [MAX PATH] = _T("");
TCHAR szPath[MAX PATH] = _T("");
PVOID OldValue = NULL;
GetWindowsDirectory(szWinDir, MAX PATH);
/* Check one by one */
for (int i = 0; i < dwlength; i++)
{
PathCombine(szPath, szWinDir, szPaths[i]);
// check file in blacklist is existed
if (is FileExists(szPath))
return true; // is vm
}
return false; // is not vm
Mẫu 3.5 Mã nguồn thực hiện kiểm tra các tập tin liên quan đến máy ảo VMware
- Một số các tập tin đặc biệt ton tại ở máy ảo khi cài đặt và sử dụng khi hệ thong
khởi động Tuy nhiên các tập tin này cũng có thể xuất hiện ở máy cài đặtVmware (ngoại trừ tập tin vmmouse.sys), vì vậy cách này có thé mang lai falsepositive Các virus có thé chỉ kiểm tra tập tin vmmouse.sys dé giảm tối danhằm lẫn
- _ Ví dụ về một số tập tin ghi nhận được ở trên máy ảo Windows 7:
C:\Windows\System32\driver\vmmouse.sys C:\Windows\System32\driver\vmnet.sys
C:\Windows\System32\driver\vmxnet.sys
C:\Windows\System32\driver\vmhgfs.sys C:\Windows\System32\driver\hgfs.sys
- _ Cách phòng chống: nếu không cần khởi động lại máy ảo thì có thé đồi tên tập
tin và snapshot máy ảo lại, sau đó chạy lại tập tin snapshot mỗi lần sử dụng
11
Trang 23Nếu cần thiết khởi động lại thì phải đổi tên lại trước khi khởi động lại (các tậptin này cần thiết khi khởi động).
VMMOUSE.SYS Information
This is a valid program that is required to run at startup.
This program is required to run on startup in order to benefit from its functionality or so that the
program will work The following information is a brief description of what is known about this file If you require further assistance for this file, feel free to ask about in the forums.
Name VMware Pointing Device
Filename vmmouse.sys
Command C:\WINDOWS\system32\DRIVERS\vmmouse.sys
Description Mouse driver for operating systems running under the Vmware virtualization software.
File Location C:\WINDOWS\system32\DRIVERS\vmmouse.sys
Startup Type This startup entry is installed as a Windows service.
Hình 3.1 Thông tin thêm về tập tin hệ thong vmmouse.sys3.1.5 Kiểm tra đường dẫn
- Mau code:
12
Trang 24CONST TCHAR* szFilenames[] = {
T("sample.exe"),
(
("sandbox.exe"),
("malware.exe"), T("test.exe"),
WORD dwlength = sizeof(szFilenames) / sizeof(szFilenames[0]);
for (int i = 0; i < dwlength; i++)
return false; // is not vm
Mẫu 3.6 Mã nguồn thực hiện kiểm tra các tập tin, đường dẫn liên quan đến sandbox
- _ Chương trình sẽ kiểm tra đường dẫn của tập tin thực thi, các tập tin trong cùng
thư mục thực thi, các thư mục trong tập tin root, các tập tin hay thư mục mang
các tên khả nghi như sandbox, sample, vmware, virus, malware, Nếu pháthiện, chương trình sẽ không thực thi Chương trình cũng có thé kiểm tra xem
có thư mục VMware ở thư mục Program Files, với nguyên lí tương tự.
- _ Cách phòng chống: thực hiện dọn đẹp các tập tin hay thư mục ở ô đĩa, các thư
mục người dùng, đồi tên chúng sang các tên cá nhân, đặt tên các thư mục haytập tin chứa các mẫu các tên không chứa các từ liên quan đến virus haymalware Xóa cài đặt VMware Tools và các đường dẫn liên quan đến phần
mêm này.
13
Trang 253.1.6 Kiểm tra tên User / Computer Name
- Mau code:
CONST TCHAR* szUsernames[] = {
T("CurrentUser"),
_T("Sandbox"), _T("sand box"), _T("malware"), _T("maltest"),
WORD dwlength = sizeof(szUsernames) / sizeof (szUsernames[0]);
BOOL matched = FALSE;
for (int i = 0; i < dwlength; itt) {
/* Do a case-insensitive search for all entries in szHostnames
*/
if (_tcsicmp(szUsernames[i], username) == 0) {
matched = TRUE;
} }
free (username) ;
return matched;
Mẫu 3.7 Mã nguồn kiểm tra tên của user thường dùng trong các sandbox
- _ Chương trình sẽ kiểm tra tên User hoặc tên máy tính của máy ảo, nếu tên User
liên quan đến Rootkit, vmware, sandbox, virus, malware, thì chương trình
sẽ không thực thi.
- _ Cách phòng chống: Tạo Username không liên quan đến các từ khóa ở trên, có
thể đồi tên Username hoặc tao mới và xóa Username cũ nếu đã tao username,đối tên máy tính
3.1.7 Kiểm tra tình trạng vật lí của thiết bi
- Mẫu code:
14
Trang 26#if defined (ENV64BIT)
PULONG ulNumberProcessors = (PULONG)
(| readgsqword(0x60) + OxB8);
#elif defined (ENV32BTT)
PULONG ulNumberProcessors = (PULONG)
return FALSE; // is not vm
Mẫu 3.8 Mã nguồn kiểm tra về số lượng lõi vi xu lý của hệ thống
Các chương trình sẽ kiểm tra các thông số vật lý của máy ảo, như RAM, độphân giải màn hình, kích thước 6 cứng, số lượng các processor đối với một
máy tính thông thường Tùy thuộc vào các chương trình hay malware ma sẽ
đặt các mốc khác nhau
Méc lí tưởng quan sát được: Tối thiểu 2GB Ram, kích thước nhỏ nhất của 6cứng là 120 GB, số lượng Processor nhỏ nhất là 2 ( chạy 1 luồng hoặc 2 luéng),
screen resolution thường là 1280x1080, 1440x1050, 1600x900.
Cách phòng chống: thay đổi thông số của máy ảo bang hoặc nhiều hơn mốc ở
Mẫu 3.9 Mã nguồn thực hiện kiểm tra thời gian hoạt động của hệ thong
Một số chương trình sẽ lấy thời gian hoạt động của máy bằng hàmgetTickCount(), với giả dụ rang, quá trình debug mẫu thường diễn ra trong
15
Trang 27khoảng 10 đến 15 phút, và thiết lập cho chương trình không hoạt động khichưa đến mốc thời gian đó.
- Một cách tương tự mà các malware hay sử dung là hoãn thực thi (delay
execution), malware sẽ tạm thời không thực thi trong khoảng từ 5 đến 10 phútrồi sau đó mới chạy dé qua mặt các trình antivirus cũng như các sandbox
- Cách phòng chống: có thê đợi đủ thời gian cho chương trình chạy, hoặc tạo
sẵn một bản snapshot đã có đủ thời gian hoạt động.
3.1.9 Kiểm tra tên và nhãn hiệu của 6 cứng
- Kiém tra tên, nhãn hiệu cua 6 cứng va CD-ROM Đôi với VMware mặc
định, 6 cứng và CD-ROM đêu có chứa chuỗi VMware, với nhãn hiệu của
VMware
4 Sa Disk drives)
Ca VMware, VMware Virtual S SCSI Disk Device
& Display adapters
4 43 DVD/CD-ROM drives
Hình 3.2 Thông tin về nhãn hiệu 6 cứng mặc định trên máy ảo
- _ Ta có thé sửa tên 6 cứng trong Registry, tuy nhiên đường dẫn của Registry đó
không thé thay đổi, và vẫn chứa tên gốc của Ô cứng và CD-Rom Hơn nữa cácđường dẫn này thường yêu cầu quyền truy cập là System đề có thể chỉnh sửa
- _ Cách phòng chống: chỉnh sửa một số thuộc tính sau trên tập tin cấu hình vmx
scsi0:0.productID = "512547-B21"
scsi0:0.vendorID = "HP"
scsi0:0.present = "TRUE"
16
Trang 28- Bằng cách này thì cùng với tên của 6 cứng và CD-Rom, đường dẫn của
registry cũng được thay đổi như tập tin cấu hình Sau đó hệ thống có thé sẽ
còn sót lại những registry cũ của 6 cứng, có thê tìm và xóa chúng di.
AC Disk drives
mesg HP 512547-B21 SCSI Disk Device
Hình 3.3 Thông tin nhãn hiệu 6 cứng sau khi đã chỉnh sửa3.1.10 Kiểm tra địa chỉ MAC
WORD dwLength = sizeof(szMac) / sizeof (szMac[0]);
/* Check one by one */
for (int i = 0; i < dwLength; i++)
{
1£ (check_mac_addr(szMac[i] [0]))
return true;//is vm
}
return false; // is not vm
Mẫu 3.10 Mã nguồn so sánh địa chi MAC với các MAC header thường có trên
VMware
17
Trang 29BOOL check mac addr (const TCHAR* szMac)
{
BOOL bResult = FALSE;
PIP_ADAPTER_INFO pAdapterInfo, pAdapterInfoPtr;
ULONG ulOutBufLen = sizeof (IP _ADAPTER_INFO);
pAdapterInfo = (PIP_ADAPTER_ INFO) MALLOC (sizeof (IP_ADAPTER_INFO) ) ;
DWORD dwResult = GetAdaptersInfo(pAdapterInfo, &ulOutBufLen) ;
// Make an initial call to GetAdaptersInfo to get the necessary
size into the ulOutBufLen variable
if (dwResult == ERROR_BUFFER_OVERFLOW) {
FREE (pAdapterTnfo) ; bAdapterTnfo = (PIP ADAPTER INFO) MALLOC (ulOutBufLen) ;
dwResult = GetAdaptersTnfo (pAdapterTnfo, &ulOutBufLen) ;
if (dwResult == ERROR SUCCESS)
{
CHAR szMacMultiBytes [4];
for (int i = 0; i < 4; itt) {
szMacMultiBytes[i] = (CHAR) szMac[il]l;
Trang 30- _ Các chương trình sẽ kiểm tra địa chi MAC address của máy ảo Các máy
ảo thường được tạo với một địa chỉ MAC với những số đầu cé định, như ởVMware, thường bắt đầu bằng: 00:05:69, 00:0C:29, 00: 1C:14, 00:50:56
- _ Cách phòng chống: thay đôi địa chi MAC trong phan cài đặt máy ảo, cũng
có thê sửa tập tin cau hình vmx.
3.1.11 Kiểm tra các tiến trình đang chạy
- Mau code:
const TCHAR *szProcesses[] = {
T("vmtoolsd.exe"), // VMware Tools T("vmware.exe"), // VMware
T("vm3dservice.exe"), // Vmware 3D
}z
WORD iLength = sizeof(szProcesses) /sizeof(szProcesses[0]) ;
for (int i = 0; i < iLength; i++)
Mẫu 3.12 Mã nguôn kiểm tra một số tiến trình thường có trên VMware
- Các chương trình sẽ kiểm tra các tiến trình có định của VMware như
vmware.exe, vmtoolsd.exe Các tién trinh nay thudc vé VMware Tools, vachạy khi hệ thống khởi động cùng với máy do
- _ Cách phòng chống: Gỡ cài đặt VMware Tools
3.1.12 Kiểm tra Registry key
- Mau code:
19
Trang 31const TCHAR *szEntries[][3] = {
_T("HARDWARE\\DEVICEMAP\\Scsi\\Scsi Port 1\\Scsi Bus 0\\Target Id
WORD dwLength = sizeof(szEntries) / sizeof(szEntries[0]);
for (int i = 0; i < dwLength; itt)
{
//check key and value existed in system
if (I1s RegKeyValueExists (HKEY LOCAL MACHINE, szEntries[i][0], szEntries[i][1], szEntries[i][2]))
return true; // is vm else
return false; //is not vm
}
Mẫu 3.13 Mã nguon kiểm tra các khoá, giá trị của một số registry thường có trên
máy ao VMWare thông thường
- _ Chương trình sẽ kiểm tra đường dẫn, khoá, giá trị của một hay nhiều các
registry dưới đây:
o_ Các registry của VMware Tools có thé vẫn còn sót lại khi đã gỡ cài
đặt Vmware Tools:
20
Trang 32HKCU\SOFTWARE\VMware, Inc.\VMware Tools
HKLM\SOFTWARE\VMware, Inc.\VMware Tools
o Các registry liên quan đến các tap tin hệ thống đã dé cập đến ở các
nội dung trước:
CdRomNECVMWar VMware SATA CD*
o Các registry liên quan dén 6 cứng:
HKLM\SYSTEM\CurrentControlSet\Enum\IDE\DiskVMware
_Virtual IDE Hard Drive*
HKLM\SYSTEM\CurrentControlSet\Enum\IDE\DiskVMware
_Virtual SATA Hard Drive*
Đối với 4 registry liên quan đến CD-Rom va 6 cứng, nội dung xử lý đã
được đề cập ở đề mục Kiểm tra 6 cứng va CD-Rom Các registry còn lại
sẽ có các khoá và giá trị giúp xác định được máy ảo, ké cả phần đường
dẫn cũng là dau hiệu dé phát hiện máy ảo
Cách phòng chống: Xóa hết các registry có liên quan và tạo một bản
snapshot, vì các registry này liên quan đến các thành phần thiết yếu và
được gọi trong lúc khởi động Những registry nào không xóa được vì cần
21
Trang 33quyên system của windows thì có thé sử dung công cụ psexec củaMicrosoft dé chạy regedit bằng quyền của System Nếu cần thì có thé ghilại các registry bằng cách sử dụng công cụ recovery của Windows.
3.1.13 Kiểm tra bằng đếm thời gian sử dụng rdtsc
return (avg < 1000 && avg > 0) ? FALSE: TRUE;
Mẫu 3.14 Mã nguồn kiểm tra đếm thời gian bằng rdtsc
- _ Cách này vốn là một cách dùng dé nhận biết xem chương trình có đang sử
dụng debugging hay không, nhưng sau khi thử nghiệm và nhận ra sự khác
biệt giữa kết quả chạy ở máy ảo và máy thật thì kĩ thuật này cũng được xem
là một cách kiểm tra môi trường máy ảo
- _ Các chương trình sẽ gọi instruction rdtsc 2 lần và tính thời gian giữa 2 lần
gỌI Nếu ở máy thật thì chương trình thực thi đo tốc độ giữa 2 lần sẽ rấtnhanh, chỉ vào khoảng < 100 Còn ở máy ảo, bộ đếm vật lý cũng được ảohóa, và tốc độ đếm chậm hơn so với máy thật, vì vậy giá tri đếm này vàokhoảng > 500 Đây được lấy làm mốc
- _ Vì việc bộ đếm này được ảo hóa nên chỉ có thay đổi về việc ảo hóa bộ đếm
mới có thé làm giảm thời gian đo được Nhưng việc tăng giá trị đếm này sẽ
tăng công việc xử lý của máy host.
22
Trang 34Cách phòng chống: Thay đổi cấu hình dưới đây tập tin cầu hình vmx, giúp
cho máy ảo vô hiệu hoá ảo hóa tick count và sử dụng tick count của máy
host thay thé
monitor control.virtual_rdtsc = “FALSE
3.1.14.
Tuy nhiên, có một kĩ thuật tương tự, chương trình sẽ chèn thêm một lệnh
CPUID vào giữa 2 lệnh RDTSC Việc này không ảnh hưởng lớn đến tốc độ
xử lý thường của máy, nhưng lại ảnh hưởng đến tốc độ xử lý của máy ảo,khi kết quả thời gian trả về ở máy ảo sẽ lớn hơn 1000
Trong trường hợp này lợi dụng việc lệnh gọi CPUID là một lệnh gọi
vmexit bắt buộc, nên thời gian khi đo được đã bao gồm thời gian vmexit,dẫn đến việc máy ảo hóa sẽ thực hiện lâu hơn so với máy thật Tuy nhiêncách này phụ thuộc rất nhiều vào cau hình hệ thống cũng như là tốc độ củamáy, cũng như tình trạng khi chạy Có thé một số máy cau hình yếu chạyđơn luồng hoặc luồng đang chạy bị khóa cũng sẽ dẫn đến kết quả đo đượclớn hơn, dẫn đến làm giảm tính lây nhiễm của malware Cho nên cách này
có tỉ lệ nhận biết không cao Cũng có một số đề tài nghiên cứu về việcgiảm thời gian vmexit, và nếu thành công thì các máy ảo cũng có thé cóthời gian đo được đạt vào ngưỡng cho phép, và có thể vượt qua kiểm tra
này.
Kiểm tra bằng các lệnh WMI
WMI hay Windows Management Instrumentation là các lệnh dùng dé truyvan thông tin của máy tính, các lệnh này có thé cho biết cũng như thay đổicác thông số của máy tính Các lệnh này chia ra làm 2 loại: 1 là kiểm tramột giá trị của record có sẵn, 2 là kiểm tra xem record có tồn tại hay không
Mẫu code:
23
Trang 35int count = wmi query count( T( "SELECT * FROM Win32 VoltageProbe") );
if (count == 0)
{
return true; // is vm
}
return false;// is not vm
Mẫu 3.15 Mẫu code thực hiện kiểm tra thông tin về Win32_VoltageProbe
24
Trang 36int wmi query count(const _TCHAR* query)
{
IWbemServices *pSvc = NULL;
IWbemLocator *pLoc = NULL;
TEnumWbemClassObject* pEnumerator = NULL;
BOOL bStatus = FALSE;
HRESULT hRes;
int count = 0;
// Tnit WMI bStatus = InitWMI(&pSvc, &pLoc, _T("ROOT\\CIMV2"));
if (bStatus)
{
// TẾ success, execute the desired query bStatus = ExecWMIQuery(&pSvc, &pLoc, &pEnumerator, query);
if (bStatus)
{
// Get the data from the query
IWbemClassObject *pclsObj = NULL;
else return -1;
return count;
Mẫu 3.16 Mã nguồn cụ thé cách WMI được truy vấn và so sánh
25
Trang 37- _ Cách phòng chống: bằng việc sử dụng công cụ mofcomp của windows dé
thay đôi hoặc ghi đè lên các giá trị WMI này Với loại 1 thì ta sẽ ghi đè lênclass đó bằng một class cùng tên và thêm record mới có chứa giá trị của
máy thật Còn về loại 2 thì có một số class loại CIM là class sốc, không có
giá trị key nên ta phải tạo các class con kế thừa từ các class gốc này, hoặc
là ghi đè lên các class con đã có và thêm các record cần thiết
- - Ví dụ l: Lay bios serial number, cu thé str dụng lệnh:
o Sử dụng lệnh:
wmic bios get serialnumber
o_ Ở máy ảo sẽ trả về dạng VMware-<bios number> Bios number nay
có thé được thấy ở trong tập tin cầu hình O các bản VMware cũ thi
có cách đê sửa bios serial này băng cách thêm vào tập tin câu hình.
SMBIOS.usel2CharSerialNumber = "TRUE"
"123456789098"
serialNumber
o Tuy nhiên cách này không hoạt động khi dùng trên máy ảo VMware
đời mới, và giá trị của uuid.bios và uuid.location cũng được tự động
khởi tạo như cũ khi xóa di hoặc thay đôi
o_ Mặc dù không thé thay đổi dữ liệu này nhưng vẫn có thé ghi đè lên
dữ liệu sử dụng công cụ mofcomp của Windows: override data hiển
thi của các hàm WMI: các data WMI được gọi ở trên lưu ở tập tin có
đường dẫn C:\Windows\System32\wbem\cimwin32.mof, và bằng
công cụ mofcomp ta sẽ ghi đẻ lên dữ liệu của class được gọi, ở đây
là Win32_BIOS:
26
Trang 38#pr agma namespace ("\\\\\.\\root\\CcIMv2")
Hình 3.4 Cau hình thiết lập cho một trường được gọi bang WMI
o Sau đó lưu tập tin cau hình và chạy bằng lệnh mofcomp
CzUsersñSUS2>mnfcomnp hideum.txt
Microsoft ¢R> MOF Compiler Version 6.1 268.1416385
Copyright ¢c> Microsoft Corp 1997-2666 All rights reserved.
Parsing MOF file: hideum.txt
MOF file has been successfully parsed
Storing data in the repository
Hình 3.5 Thông báo chạy thành công lệnh mofcomp
- _ Ví dụ 2: Lay thông tin ở computer system:
o Sử dụng lệnh sẽ trả về các chudi chứa vmware:
wmic path win32 computersystem get *
wmic path win32 computersystemproduct get *
o Sau khi ghi dé bang mofcomp và gọi lai lệnh:
27
Trang 39Class wi n32_Computer system
[key] string Name;
Manufacturer = "ASUSTeK COMPUTER INC";
Model= "ASUS 503e”;
Caption = "Computer System Product";
Description = “Computer System Product";
Hình 3.6 Cầu hình thiết lập cho một trường được gọi bằng WMI
Caption=Computer System Product
Description=Computer System Product
Hình 3.7 Kết quả khi gọi lệnh WMI tương ứng3.1.15 Kiểm tra con tré chuột
- Mau code:
28
Trang 40return false; // is not vm
Mẫu 3.17 Mã nguồn kiểm tra vị trí con trỏ chuột qua thời gian
- Chương trình sé kiểm tra vị trí của con trỏ chuột, nếu sau một khoảng thời
gian mà con trỏ chuột không di chuyên thì chương trình sẽ không chạy, giảđịnh với các sandbox không cần sử dụng con trỏ chuột
- _ Cách phòng chống: vì phương pháp này chủ yếu dé phát hiện sandbox nên
chỉ cần di chuyên chuột khi chương trình đang chạy, hoặc có thé sử dụng
chương trình auto-click dé tạo vi trí ngẫu nhiên cho con trỏ chuột khi thực
thi chương trình.
3.1.16 Kiểm tra trong bộ nhớ
- Mau code:
29