All Projects → hvmi → Hvmi

hvmi / Hvmi

Licence: apache-2.0
Hypervisor Memory Introspection Core Library

Programming Languages

c
50402 projects - #5 most used programming language
introspection
24 projects

Projects that are alternatives of or similar to Hvmi

Shadow Box For X86
Shadow-Box: Lightweight and Practical Kernel Protector for x86 (Presented at BlackHat Asia 2017/2018, beVX 2018 and HITBSecConf 2017)
Stars: ✭ 178 (-59.36%)
Mutual labels:  rootkit, hypervisor
prl guest to host
Guest to host VM escape exploit for Parallels Desktop
Stars: ✭ 26 (-94.06%)
Mutual labels:  exploit, hypervisor
Napoca
Lightweight type-1 hypervisor offering a foundation for building advanced security-focused functionality.
Stars: ✭ 135 (-69.18%)
Mutual labels:  protection, hypervisor
Nginx Lua Anti Ddos
A Anti-DDoS script to protect Nginx web servers using Lua with a HTML Javascript based authentication puzzle inspired by Cloudflare I am under attack mode an Anti-DDoS authentication page protect yourself from every attack type All Layer 7 Attacks Mitigating Historic Attacks DoS DoS Implications DDoS All Brute Force Attacks Zero day exploits Social Engineering Rainbow Tables Password Cracking Tools Password Lists Dictionary Attacks Time Delay Any Hosting Provider Any CMS or Custom Website Unlimited Attempt Frequency Search Attacks HTTP Basic Authentication HTTP Digest Authentication HTML Form Based Authentication Mask Attacks Rule-Based Search Attacks Combinator Attacks Botnet Attacks Unauthorized IPs IP Whitelisting Bruter THC Hydra John the Ripper Brutus Ophcrack unauthorized logins Injection Broken Authentication and Session Management Sensitive Data Exposure XML External Entities (XXE) Broken Access Control Security Misconfiguration Cross-Site Scripting (XSS) Insecure Deserialization Using Components with Known Vulnerabilities Insufficient Logging & Monitoring Drupal WordPress Joomla Flash Magento PHP Plone WHMCS Atlassian Products malicious traffic Adult video script avs KVS Kernel Video Sharing Clip Bucket Tube sites Content Management Systems Social networks scripts backends proxy proxies PHP Python Porn sites xxx adult gaming networks servers sites forums vbulletin phpbb mybb smf simple machines forum xenforo web hosting video streaming buffering ldap upstream downstream download upload rtmp vod video over dl hls dash hds mss livestream drm mp4 mp3 swf css js html php python sex m3u zip rar archive compressed mitigation code source sourcecode chan 4chan 4chan.org 8chan.net 8ch 8ch.net infinite chan 8kun 8kun.net anonymous anon tor services .onion torproject.org nginx.org nginx.com openresty.org darknet dark net deepweb deep web darkweb dark web mirror vpn reddit reddit.com adobe flash hackthissite.org dreamhack hack hacked hacking hacker hackers hackerz hackz hacks code coding script scripting scripter source leaks leaked leaking cve vulnerability great firewall china america japan russia .gov government http1 http2 http3 quic q3 litespeedtech litespeed apache torrents torrent torrenting webtorrent bittorrent bitorrent bit-torrent cyberlocker cyberlockers cyber locker cyberbunker warez keygen key generator free irc internet relay chat peer-to-peer p2p cryptocurrency crypto bitcoin miner browser xmr monero coinhive coin hive coin-hive litecoin ethereum cpu cycles popads pop-ads advert advertisement networks banner ads protect ovh blazingfast.io amazon steampowered valve store.steampowered.com steamcommunity thepiratebay lulzsec antisec xhamster pornhub porn.com pornhub.com xhamster.com xvideos xvdideos.com xnxx xnxx.com popads popcash cpm ppc
Stars: ✭ 295 (-32.65%)
Mutual labels:  exploit, protection
Scripting
PS / Bash / Python / Other scripts For FUN!
Stars: ✭ 47 (-89.27%)
Mutual labels:  memory, exploit
S6 pcie microblaze
PCI Express DIY hacking toolkit for Xilinx SP605
Stars: ✭ 301 (-31.28%)
Mutual labels:  rootkit, hypervisor
.net Obfuscator
Lists of .NET Obfuscator (Free, Trial, Paid and Open Source )
Stars: ✭ 392 (-10.5%)
Mutual labels:  protection
Cloak
Cloak can backdoor any python script with some tricks.
Stars: ✭ 411 (-6.16%)
Mutual labels:  exploit
Php imap open exploit
Bypassing disabled exec functions in PHP (c) CRLF
Stars: ✭ 392 (-10.5%)
Mutual labels:  exploit
Hyperpwn
A hyper plugin to provide a flexible GDB GUI with the help of GEF, pwndbg or peda
Stars: ✭ 387 (-11.64%)
Mutual labels:  exploit
Cve 2017 0785
Blueborne CVE-2017-0785 Android information leak vulnerability
Stars: ✭ 428 (-2.28%)
Mutual labels:  exploit
Hatcloud
discontinued
Stars: ✭ 418 (-4.57%)
Mutual labels:  protection
Firmware slap
Discovering vulnerabilities in firmware through concolic analysis and function clustering.
Stars: ✭ 407 (-7.08%)
Mutual labels:  exploit
Kernel Exploits
Various kernel exploits
Stars: ✭ 397 (-9.36%)
Mutual labels:  exploit
Memory.dll
C# Hacking library for making PC game trainers.
Stars: ✭ 411 (-6.16%)
Mutual labels:  memory
Kindle 5.6.5 Jailbreak
Kindle 5.6.5 exploitation tools.
Stars: ✭ 393 (-10.27%)
Mutual labels:  exploit
Emp3r0r
linux post-exploitation framework made by linux user
Stars: ✭ 419 (-4.34%)
Mutual labels:  rootkit
Struts Pwn
An exploit for Apache Struts CVE-2017-5638
Stars: ✭ 391 (-10.73%)
Mutual labels:  exploit
Pyconcrete
Protect your python script, encrypt it as .pye and decrypt when import it
Stars: ✭ 405 (-7.53%)
Mutual labels:  protection
Nxloader
My first Android app: Launch Fusée Gelée payloads from stock Android (CVE-2018-6242)
Stars: ✭ 417 (-4.79%)
Mutual labels:  exploit

Hypervisor Memory Introspection

logo

HVI stands for Hypervisor Introspection. The term is used interchangeably with HVMI, which is a bit more specific, and stands for Hypervisor Memory Introspection.

Virtual Machine Introspection is defined as the technique of analyzing the state and behavior of a guest virtual machine from outside of it. In addition, Introspection can also leverage virtualization extensions to provide security.

The main purpose of this project is to provide unmatched security from outside the virtual machine, by leveraging the hardware isolation provided by Intel VT-x. The main categories of attacks HVI prevents are:

  • Binary exploits inside protected processes
  • Code and data injection techniques inside protected processes
  • Function hooks inside protected processes, on designated system DLLs
  • Rootkits (various techniques are blocked, such as inline hooks inside the kernel or other drivers, SSDT hooks, Driver-object hooks, system register modifications, etc.)
  • Kernel exploits
  • Privilege escalation
  • Credentials theft
  • Deep process introspection (prevents process creation if the parent process has been compromised)
  • Fileless malware (powershell command line scanning)

For more details check out the HVMI specification and the HVMI blog.

Supported hypervisors

HVMI can work on any hypervisor, as long the proper API is provided (which is documented here). Currently, it has been integrated and tested with the following hypervisors:

  • Napoca Hypervisor - Bitdefender's bare-metal hypervisor for Intel CPUs
  • Xen - the famous open source hypervisor
  • KVM - the Linux Kernel Virtual Machine

Repository structure

  • introcore - the introcore source code and header files
  • include - the public header files and headers shared between multiple projects
  • cami - the Guest support mechanism files
  • exceptions - the Exception files
  • agents - the Windows special agents project files
  • docs - the documentation
  • build_disasm - the files used to build the bddisasm dependency
  • deserialize - the deserializer scripts, used to extract useful information from serialized alerts
  • Doxygen - the Doxygen settings
  • windows_build - the scripts used during the Windows build
  • daemon - an integration example for Xen and KVM

Quick start guide

Checkout

Get Introcore and all the dependencies by running:

git clone --recurse-submodules https://github.com/hvmi/hvmi.git

This will clone the HVMI repository and the bddisasm submodule.

Build

Introcore can be built both as a Windows DLL, and as a Linux library. Only the 64-bit configuration is supported.

Linux build

To build the project on Linux you need:

  • gcc >= 7.0
  • cmake >= 3.13
  • make

To integrate the library (libintrocore.so) you can use the pkg-config file (introcore.pc) that is generated by cmake.

Building Introcore is done by running cmake from the root of the repository:

# generate configuration
cmake -H. -G<generator> -B<build directory> -DCMAKE_BUILD_TYPE=<build type> -DCMAKE_INSTALL_PREFIX=<install prefix directory> -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=<binary output directory> -DCMAKE_TOOLCHAIN_FILE=<toolchain>

The default value of CMAKE_INSTALL_PREFIX is /usr/local/. The default value of CMAKE_LIBRARY_OUTPUT_DIRECTORY is $project_dir/bin.

Build for Debug

cmake -B_build -DCMAKE_BUILD_TYPE=Debug
cd _build
make

Build for Release

cmake -B_build -DCMAKE_BUILD_TYPE=Release
cd _build
make

Install

# install the introcore library (debug)
cd _build
make install

This builds the bddisasm dependency and then libintrocore, the exception and the guest support mechanism files. Use make introcore to build just libintrocore. The resulting binaries will be in bin/x64/Debug or bin/x64/Release.

Generate an SDK

Generating an SDK that will contain libintrocore Debug and Release versions, and the public header files is done with:

mkdir _build
cd _build

cmake .. -B. -DCMAKE_BUILD_TYPE=Debug
make

cmake .. -B. -DCMAKE_BUILD_TYPE=Release
make

make package

This creates a ZIP file in the root of the repo that contains the latest libintrocore you’ve built, together with the header files from the include/public directory.

Windows build

To build the project on Windows you need:

When you first open the hvmi.sln file, Visual Studio should prompt you to install any missing components. Building the introcore can be done directly from Visual Studio or with the build.cmd script:

# build for Debug
build.cmd Debug

# build for Release
build.cmd Release

This will create introcore.dll and introcore.pdb in bin/x64/Debug or bin/x64/Release.

CMake is not supported for Windows builds.

Documentation

Introcore comes with Doxygen code documentation, and a specification built with Sphinx.

Doxygen

For generating the Doxygen documentation on Linux, use:

cmake -B_build
cd _build
make doxy

For Windows, use:

make_doxy.cmd

Or invoke Doxygen directly:

doxygen Doxygen/Doxyfile

This assumes that you have Doxygen installed and in your path.

The Doxygen documentation will then be found in docs/_static/Doxygen/html.

Specification

To build the specification you need:

To generate the HTML version of the documentation:

cd docs
make html

This will also build the Doxygen documentation. The result will be in docs/_build/html.

Exceptions

Introcore has an exception mechanism, which is used to whitelist legitimate accesses to protected structures.

Sample exception files that should work for out-of-box installations of Windows 7 (SP1 and SP2) and Windows 10 1809 (RS5) are included in the exceptions directory.

To generate the exceptions binary, use:

cmake -B_build
cd _build
make exceptions

For more information see exceptions.

Guest support mechanism

Introcore needs to know certain information in order to properly hook and protect an operating system (for example, the layout of certain kernel structures, patterns for finding functions inside the guest memory, etc). These information are included in a CAMI data base file. Sample files that offer support for Windows 7 (SP1 and SP2), Windows 10 1809 (RS5), Ubuntu 18.04, and CentOS 8 can be found in the cami directory.

To generating the cami binary, use:

cmake -B_build
cd _build
make cami

For more information see CAMI.

Contacting us

There are several ways to contact us:

  • The public HVMI Slack - join here the public Slack to discuss ideas publicly, or privately, with both Bitdefender developers and other members of the community
  • Bitdefender HVMI OSS team contact - [email protected] - contact Bitdefender folks directly regarding any issue that is not well suited for public Slack discussions
  • HVMI security - [email protected] - report security issues and vulnerabilities; we kindly ask that you follow the guideline described here
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].