1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp An toàn thông tin: Xây dựng môi trường phân tích để vượt qua các kỹ thuật phát hiện máy ảo (anti-VM) của mã độc

88 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng môi trường phân tích để vượt qua các kỹ thuật phát hiện máy ảo (anti-VM) của mã độc
Tác giả Phạm Xuân An, An Văn Hiếu
Người hướng dẫn TS. Phạm Văn Hậu, TS. Nguyễn Tấn Cẩm
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành An toàn thông tin
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2021
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 88
Dung lượng 44,38 MB

Nội dung

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 3

THONG 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 4

LỜ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 5

MỤ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 6

3.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 7

DANH 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 8

Hì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 9

Hì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 10

DANH 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 11

DANH 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 12

TÓ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 13

Chươ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 14

1.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 15

Chuong 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 16

nà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 17

Chươ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 18

6 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 19

o 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 21

Mẫ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 22

const 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 23

Nế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 24

CONST 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 25

3.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 27

khoả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 29

BOOL 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 31

const 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 32

HKCU\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 33

quyê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 34

Cá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 35

int 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 36

int 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 39

Class 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 40

return 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

Ngày đăng: 02/10/2024, 05:32

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w