Virutal Box는 vboxmanage.exe를 통해 다수의 값을 설정/조회/수정 가능하다.
또한 showvminfo를 통해 전체 설정 값을 확인할 수 있다.
VBoxManage showvminfo 'VM Image name"
Virutal Box는 vboxmanage.exe를 통해 다수의 값을 설정/조회/수정 가능하다.
또한 showvminfo를 통해 전체 설정 값을 확인할 수 있다.
VBoxManage showvminfo 'VM Image name"
디버깅 대상 프로세스에서 접근 위반이 발생하면 디버거가 그것을 처리해야 한다.
예외가 발생했을 때 디버거는 Stack Frame, Register, 예외를 발생시킨 명령 등 모든 정보를 추적할 수 있다.
이런 정보를 기반으로 취약점 공격 코드를 작성하거나 바이너리 패치를 만들어낼 수 있다.
- p.97 -
Reference
http://joe4security.blogspot.kr/2012/08/vm-and-sandbox-detections-become-more.html
http://ghostshell.tistory.com/293
https://gitlab.pluribusgames.com/mirrors/metasploit-framework/raw/ddb98715776e6d49443d26816cbc9db54b093e81/modules/post/windows/gather/checkvm.rb
http://thisissecurity.net/2014/08/20/win32atrax-a/
Registry Query
1. "HKLM\HARDWARE\Description\System\\SystemBiosVersion".
- vbox 문자열 확인
2. "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\\ProductID" and
"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\\ProductID".
- Product ID 확인 55274-640-2673064-23950 (JoeBox) 76487-644-3177037-23510 (CWSandBox) 76487-337-8429955-22614 (Anubis)
3. HKLM\HARDWARE\DEVICEMAP\Scsi\Scsi Port 0\Scsi Bus
0\Target Id 0\Logical Unit Id 0\\Identifier
- Identifier의 Value가 vmware, vbox 인지 확인
Registry Enum
1. HKLM\SOFTWARE\Microsoft
- Hyper-V, VirtualMachine 확인
2. HKLM\SYSTEM\ControlSet001\Services
- vmicheartbeat, vmicvss, vmicshutdown, vmicexchange, vmci, vmdebug, vmmouse, VMTools, VMMEMCTL, vmware, vmx86, vpcbus, vpc-s3, vpcuhub, msvmmouf, VBoxMouse, VBoxGuest, VBoxGuest, VBoxSF, xenevtchn, xennet, xennet6, xensvc, xenvdb,
3. "HKLM\HARDWARE\ACPI\DSDT"
"HKLM\HARDWARE\ACPI\FADT" "HKLM\HARDWARE\ACPI\RSDT"
- VBOX (VirtualBox)
- XEN
- PTLTD(VmWare)
- AMIBI (Virtual PC)
Process Snapshot
1. 아래의 프로세스 목록 확인
- vmware, vmount2, vmusrvc, vmsrvc, VBoxService, vboxtray, xenservice, joeboxserver, joeboxcontrol, wireshark, sniff_hit, sysAnalyzer, filemon, procexp, procmon, regmon, autoruns
Files Check
1. 아래의 파일 목록 확인
- hgfs.sys, vmhgfs.sys, prleth.sys, prlfs.sys, prlmouse.sys, prlvideo.sys, prl_pv32.sys, vpc-s3.sys, vmsrvc.sys, vmx86.sys, vmnet.sys
Modules Check
1. 아래의 모듈 목록 확인 (DLL)
- dbghelp, SbieDll, api_log, dir_watch, pstorec
Users Check
1. 아래의 사용자 이름 목록 확인
- currentuser, sandbox, honey, vmware, nepenthes, snort, andy, roo
Computer Name Check
1. 아래의 컴퓨터 이름 목록 확인
- TU-4NH09SMCG1HC
Retrieves the context of the specified thread.
A 64-bit application can retrieve the context of a WOW64 thread using the Wow64GetThreadContextfunction.
BOOL WINAPI GetThreadContext( _In_ HANDLE hThread, _Inout_ LPCONTEXT lpContext );
A handle to the thread whose context is to be retrieved. The handle must haveTHREAD_GET_CONTEXT access to the thread. For more information, see Thread Security and Access Rights.
WOW64: The handle must also have THREAD_QUERY_INFORMATION access.
A pointer to a CONTEXT structure that receives the appropriate context of the specified thread. The value of the ContextFlags member of this structure specifies which portions of a thread's context are retrieved. The CONTEXT structure is highly processor specific. Refer to the WinNT.h header file for processor-specific definitions of this structures and any alignment requirements.
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
https://msdn.microsoft.com/ko-kr/library/windows/desktop/ms679362(v=vs.85).aspx
WinAPI의 GetThreadContext는 Native API의 ZwGetContextThread로 연결된다.