Skip to content

Commit bea23ef

Browse files
author
ng
committed
update docs
1 parent 0f75a3c commit bea23ef

File tree

2 files changed

+22
-6
lines changed

2 files changed

+22
-6
lines changed

README.MD

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,38 @@ Since it's operating within ramdisk, this tool can bypass most root checks, inte
1111
Unlike its predecessor, this rootkit can bypass SafetyNet, since it doesn't need to modify system partition. \
1212
However, it can't bypass hardware checks, such as hardware-backed SafetyNet on newer devices.
1313

14-
The daemon is a custom executor (sort of a service manager) for an arbitrary payload.
14+
The daemon launches arbitrary executable in loop, while providing cover and execution control.
1515
It runs silently and normally leaves no traces in _dmesg_, _logcat_, etc., unlike regular services run by _init_ in loop.
1616

1717
FURA uses SELinux to its own advantage: not only to bypass stock policy restrictions, but to hide itself from the rest of the system.
1818

1919
This tool, like its predecessor, is based on [Magisk](https://github.com/topjohnwu/Magisk) source code, but does not necessary require root or Magisk preinstalled on the device.
2020
It mostly uses a part of MagiskInit to patch SELinux policies.
2121

22+
#### Tested on:
23+
24+
OS | Android | Boot scheme
25+
---|---|---
26+
MIUI 11.0.2 | 7 | rootfs
27+
LineageOS 17.1 | 10 | 2SI
28+
LineageOS 19.0 | 12 | 2SI
29+
2230
## Features & Improvements
2331

2432
- Installs entirely into _/boot_, does not modify _/system_ in any way
2533
- Operates in ramdisk without touching storage
2634
- Employs a custom daemon to monitor payload execution
27-
- Leaves no init logs
2835
- Modifies SELinux policy to hide itself
2936
- Installation and backup no longer depend on _/data_
37+
- Installation takes much less time
3038
- Cut artifacts and unused code left from Magisk
3139

40+
## Limitations
41+
- Incompatible with Magisk, causing bootloop
42+
- Not hidden from root (files, mounts, etc.)
43+
- On some systems _logcat_ may log random service name on boot
44+
- Sockets (if any) are not hidden, though specific process using network is
45+
3246
## Prerequisites
3347

3448
- Python 3
@@ -120,7 +134,9 @@ After installation, backups will be saved automatically.
120134
`reinstall.sh` to reinstall quickly (if you have the backup).\
121135
`uninstall.sh` to restore original boot image from backup.
122136

123-
#### _Warning_: avoid double installation as it will cause bootloop!
137+
#### In case installation script crashes, make sure you pull backups manually when prompted!
138+
139+
#### _Warning_: avoid double installation as it will cause bootloop! Reinstall (uninstall and install again) instead.
124140

125141
## Test
126142

revshell/Payloads.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Payloads tested:
1212

1313
#### Logcat writer
1414

15-
The stock payload that simply writes stuff to logcat:
15+
Stock payload that simply writes stuff to logcat:
1616
```
1717
$ adb logcat | grep revshell
1818
03-18 00:34:46.884 3197 3197 D revshell: Start successfull!
@@ -39,10 +39,10 @@ However, even static build may have very limited functionality because of compat
3939

4040
#### Reverse SSH
4141

42-
This payload ([link]()) has better compatibility with Android and seems to work reliably, though it might be a bit tricky to use.
42+
This payload ([link](https://github.com/Fahrj/reverse-ssh)) has better compatibility with Android and seems to work reliably, though it might be a bit tricky to use.
4343
`upx_reverse-ssh-armv8-x64` version is recommended.
4444

45-
Set LHOST and LPORT in `config.prop`.
45+
For reverse shell, set LHOST and LPORT in `config.prop`. Otherwise it will act as bind shell (default port: 31337).
4646

4747
Launch _ReverseSSH_ listener on attacker machine:
4848
```

0 commit comments

Comments
 (0)