Skip to content

AroPix/http-driver

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

http-driver

Linux driver for process/region/memory inspection & manipulation via HTTP.

Warnings

This driver provides memory access for all running processes over HTTP.

(1) This should not be used on public networks

This driver utilizes Basic access authentication to verify users. The Username and Password are passed in clear-text over the network, which is generally regarded as being insecure. While this may be fine on networks you have control over, running this driver on public networks should be avoided.

(2) Change the default Username / Password

Please change the default Username & Password from "guest" to something else. It is your last line of defense to prevent malicious users from modifying/reading your system memory.

(3) Be wary when using 3rd party tools

This driver is not locked to any single process. Assume that websites utilizing this driver contain malicious code. The only "trusted" tool utilizing this driver is http-game-apex.

Installation

This guide is written for Ubuntu and Arch Linux. For other Linux flavors, adapt commands where needed.

(1) Allow Root Login

We'll ensure that the root user can login.

  1. Configure your root user password:
sudo passwd

See this page for more information on the root user.

(2) Enable Process Isolation

We'll ensure that non-root users are unable to see the http-driver service.

  1. Install dependencies:
sudo apt install -y vim  # Ubuntu based distros
or
sudo pacman -S vim # Arch based distros
  1. Hide root processes for non-root users:

Some components might not work when hiding /proc, like mounting a drive via as example Dolphin. This can be bypassed by mounting /proc only when necessary (Method 1), other than always hiding /proc on boot via fstab (Method2).

Method 1 (Has to be done again after a reboot):

sudo mount -o remount,rw,nosuid,nodev,noexec,relatime,hidepid=2 /proc

Reboot your system to see root processes again.

Method 2 (Will always hide processes at boot, might break things):

Open /etc/fstab with vim:

sudo vim /etc/fstab

Add this below in the text file:

proc /proc proc defaults,nosuid,nodev,noexec,relatime,hidepid=2 0 0

Reboot your system:

reboot
  1. Check that your non-root user cannot see root processes:
ps aux

See this page for more information on process isolation.

(3) Disable Process Tracing

We'll ensure that non-root users cannot use ptrace capabilities.

Method 1 (Has to be done again after a reboot):

  1. Change the kernel.yama.ptrace_scope value to 2:
echo 2 | sudo tee /proc/sys/kernel/yama/ptrace_scope
  1. Check that the ptrace_scope is set to 2:
sysctl kernel.yama.ptrace_scope

Set ptrace_scope to 1 if you want to return to the default value:

echo 1 | sudo tee /proc/sys/kernel/yama/ptrace_scope

Method 2 (Will always disable ptrace on boot, may break things [i.e. League Of Legends])

See this page for more information on process tracing.

  1. Open /etc/sysctl.d/10-ptrace.conf with vim:
sudo vim /etc/sysctl.d/10-ptrace.conf
  1. Change the kernel.yama.ptrace_scope value to 2:
kernel.yama.ptrace_scope = 2
  1. Reboot your system:
reboot
  1. Check that the ptrace_scope is set to 2:
sysctl kernel.yama.ptrace_scope

(4) Install .NET

We'll ensure that http-driver can be compiled with .NET.

  1. Add the Microsoft package repositories:
  1. Install .NET 6.0:
sudo apt update && apt install -y dotnet-sdk-6.0  # Ubuntu based distros
or
sudo pacman -S dotnet-sdk-6.0  # Arch based distros

(5) Install Service

We'll install http-driver and register it as a service:

  1. Install dependencies:
sudo apt install -y git  # Ubuntu based distros
or
sudo pacman -S git  # Arch based distros
  1. Switch to root user:
su
  1. Open the /root directory:
cd ~
  1. Clone this repository:
git clone https://github.com/XRadius/http-driver
  1. Open the http-driver directory:
cd ~/http-driver
  1. Change username and password in appsettings.json:
vim src/appsettings.json
  1. Enable execution of the installation script:
chmod +x service-install.sh
  1. Run the installation script and follow the instructions:
./service-install.sh
  1. Optional (If Method 1 is used):

You should disable the service when using Method 1, as the processes will not be hidden automatically on boot, and just when using the mount command. Disable the automatic starting of the service with the command below. Else this might get you banned.

sudo systemctl disable <system name you specified before>

and

sudo systemctl start <system name you specified before> 

Use this every time you want to use the driver again !!! DON'T USE WHEN ROOT PROCESSES AREN'T HIDDEN IN "ps aux" !!!

Once you've followed these instructions, http-driver is ready for use!

Updating

We'll update http-driver and register it as a service:

  1. Switch to root user:
su
  1. Open the http-driver directory:
cd ~/http-driver
  1. Enable execution of the uninstallation script:
chmod +x service-uninstall.sh
  1. Run the uninstallation script and follow the instructions:
./service-uninstall.sh
  1. Remove your changes:
git reset --hard
  1. Update this repository:
git pull
  1. Change username and password in appsettings.json:
vim src/appsettings.json
  1. Run the installation script and follow the instructions:
./service-install.sh

Once you've followed these instructions, http-driver is ready for use again!

Usage

Navigate to http://0.0.0.0:8080/. Replace 0.0.0.0 for your network-resolvable IP.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 92.4%
  • Shell 4.6%
  • HTML 1.2%
  • Other 1.8%