Skip to content

Repository files navigation

F-Security — NetHunter Edition

On-device penetration testing suite for Android / Kali NetHunter
50 modules · automated pipeline engine · KARMA rogue-AP suite · 8 chain data flows · real PTY terminal


Platform: Android (rooted Kali NetHunter)
Stack: Flutter · Dart · flutter_pty · xterm · SQLite
Author:InnerFireZ

F-Security is a mobile penetration testing orchestration layer. All 50 modules run inside a real PTY terminal against the device's Kali NetHunter chroot — no SSH, no ADB bridge, everything on-device. Scripts are bundled inside the APK and deployed to the chroot on first launch.

This project does not reinvent any tool. It wraps nmap, nuclei, Metasploit, Hydra, CrackMapExec, Responder, Impacket, bettercap, aircrack-ng, tshark, wifite2, Ingram, fscan, AutoRecon, certipy, Evil-WinRM, chisel, john, hashcat, hostapd, dnsmasq, scapy, and more. F-Security automates repetitive setup, chains results between tools, and puts all of them behind a single tap — or a single automated pipeline run.



Pipeline Engine

The centerpiece of F-Security. Define a multi-module sequence once; the engine runs them in order, automatically passing results from each module to the next.

How it works

Pipeline UI
└─ TARGET (CIDR / IP) ─── injected as $TARGET env var
└─ DOMAIN (AD domain) ─── pre-seeded to chain_domain.txt
Module 1 (e.g. Nmap) runs:
└─ discovers hosts → writes alive_hosts.txt
└─ discovers open ports → writes chain_ports.txt
Module 2 (e.g. Nuclei) runs:
└─ reads chain_ports.txt → only scans known open ports (no rescan)
└─ discovers CVEs → marks done, next module starts
Module 3 (e.g. Brute) runs:
└─ reads chain_ports.txt → targets only services it can brute
└─ cracks creds → writes chain_creds.txt
... and so on until the chain is complete

No prompts. No interaction. No SSH. The phone does the pentest.

KARMA pipeline integration

Enable KARMA MODE in the pipeline builder to use the rogue AP as the pipeline entry point. Configure encryption (WPA / OPN / Corporate) and an optional fixed SSID — blank means auto-mirror every probed network.

At runtime KARMA starts in the background as a dedicated PTY (visible in the sidebar). When a client connects, the pipeline steps execute against that client's IP. After the steps finish the AP keeps running, ready for the next victim. Stop kills both the AP and any in-progress steps.

Env varValuesEffect
KARMA_MODEwpa / opn / eapAP encryption type passed to karma.sh
KARMA_SSIDname or emptyForce a specific SSID; empty = auto-mirror probed networks

Chain files

Eight shared state files flow data between modules within a pipeline session:

FileProducerConsumer
alive_hosts.txtNmap, Fscan, Masscan, Bettercap, IoT, RTSP, VNC, NTLM Relay, PRETAll targeted modules
chain_ports.txtNmap, Fscan, Masscan, DNS/AD, VNC, SNMP, PRETNuclei, Brute, SSL, SSH Audit, WPScan, VNC, RTSP, SQLMap
chain_creds.txtBrute, Crackmap, VNC, Wifite, LinPEAS, PRET, NetSniffCrackmap, Impacket, EvilWinRM, LDAP Dump
chain_hashes.txtResponder, NTLM Relay, MITM6, Kerberos, CrackmapHash Cracker
chain_users.txtEnum4linux, LDAP Dump, CrackmapKerberos, Brute
chain_dc.txtDNS/AD (auto-discovered) + Pipeline UIKerberos, LDAP Dump, MITM6, EvilWinRM, Certipy
chain_domain.txtDNS/AD + Pipeline UI pre-seedMITM6, LDAP Dump, Kerberos, Certipy
chain_web_urls.txttheHarvester, WebNuclei, WPScan, SQLMap

Interface auto-detection

Every module that needs a network interface calls resolve_iface from lib.sh. It:

  1. Reads the IFACE env var if already set
  2. Reads /tmp/.fsec_iface (set by the previous module in the chain)
  3. Calls auto_iface([wifi|any]) — picks the first live non-Android interface
  4. Writes the result to /tmp/.fsec_iface so the next module inherits it

Built-in pipeline templates

TemplateModulesPurpose
External RecontheHarvester → DNS/AD → Web → Nuclei → SSL → BruteOSINT + external attack surface
Internal LAN SweepMasscan → Nmap → Nuclei → Brute → Crackmap → Exploit → ImpacketFull internal LAN pentest
Active Directory ChainNmap → DNS/AD → Crackmap → Enum4linux → LDAP Dump → Kerberos → Responder → NTLM Relay → MITM6 → Hash Cracker → Impacket → EvilWinRM → LinPEASFull AD kill chain
SMB / Windows AttackNmap → Crackmap → Enum4linux → Brute → NTLM Relay → Impacket → Hash CrackerWindows credential harvesting
Web Application PentestWeb → WPScan → SQLMap → Nuclei → BruteWeb app attack chain
WiFi AssaultWifite → Bettercap → RTSP-Brute → VNC Brute → PRETWiFi + post-association
IoT / OT DiscoveryIngram → SNMP Sweep → PRET → IoT → BLE Recon → Air-BTIoT/OT full coverage
Post-ExploitationLinPEAS → Impacket → Tunnel/Pivot → Hash Cracker → ADCS → EvilWinRMPost-access escalation
Full APT Kill Chain12-module chain covering OSINT → recon → exploitation → lateral movement → persistenceEnd-to-end simulation

Modules

50 modules across 8 categories. All pipeline-capable modules run fully unattended when launched from a pipeline (no prompts, auto-detect interfaces, auto-source chain files).

Scan

#ModuleTagDescription
02FscanSCANFast internal network scanner — host discovery + port/service scan
03NmapSCANFull SYN/UDP/version/script scan with root privileges
06NucleiVULNCVE template vulnerability scan — LAN / IoT / web
11SSLTLSTLS/SSL certificate audit — expiry, weak ciphers, CVEs
32SSH AuditSSHSSH algorithm, cipher, key-exchange audit — multi-host parallel
49MasscanSCANUltra-fast port sweep — million packets/sec — large /8–/16 ranges

Recon

#ModuleTagDescription
01CrackmapSMBSMB/RDP/WinRM null-session enum · shares · users · RID brute
07AutoreconRECONPing sweep + AutoRecon multi-tool recon per host
12DNS / ADDNSDNS zone transfer + Active Directory / LDAP enum + DC discovery
17ResponderRESPLLMNR/NBT-NS/MDNS poisoning · NTLMv2 hash capture
20Deauth WatcherWIFIPassive deauth/disassoc detector with attacker MAC tracking
25BettercapMITMARP MITM · net.recon · net.sniff · http.proxy
27WifiteWIFIAuto WiFi audit — WPA handshake · WPS PIN · PMKID attack
28NetSniffSNIFFPassive tshark capture · live credential harvester (FTP/HTTP/Telnet/SMTP)
36SNMP SweepSNMP30-string community brute · MIB walk · sysinfo/interfaces/routes/processes
42Enum4linuxSMBSMB/NetBIOS/LDAP/RPC — full Windows/Samba enumeration
43theHarvesterOSINTOSINT — emails · subdomains · IPs · employee names (Google/Bing/Shodan/...)
48LDAP DumpLDAPldapdomaindump — AD users · groups · computers · SPNs · GPOs

Exploit

#ModuleTagDescription
14PostPOSTPost-discovery action hub — per-host exploit menus
15C2C213 reverse shell payload types + background nc/socat listener
16ExploitEXPCVE port-match quick-strike → MSF launcher — 30+ CVE entries
22MAC BypassMACWired LAN MAC filter bypass — sniff → spoof → DHCP
26NTLM RelayNTLMResponder + ntlmrelayx — LLMNR capture → SMB/LDAP relay
34MITM6MITMv6IPv6 DHCPv6 poison → NTLM relay · 4 modes: SMB/LDAP/delegate/ADCS ESC8
35ADCSADCSCertipy — ESC1-8 template enum · auto-exploit ESC1 → PKINIT → NT hash
39ImpacketIMPsecretsdump · psexec · wmiexec · Pass-the-Hash · samrdump
44Evil-WinRMWRMWinRM interactive shell · PTH · certificate auth · file upload/download
45Tunnel/PivotPIVOTchisel SOCKS5 · sshuttle · socat port relay · socat SSL wrap
46LinPEASPEPEASS-ng privilege escalation — local · remote SSH · credential hunting

Brute

#ModuleTagDescription
05RTSP-BruteRTSPRTSP stream brute-force · credential discovery for IP cameras
10BruteBRUTESSH/FTP/HTTP/Telnet/SMB/RDP brute-force via Hydra
24Vivacom KeygenWIFIA1/Vivacom default WiFi password generation from BSSID
31VNC BruteVNCVNC subnet scan · RFB auth brute · no-auth detection · desktop screenshots
33KerberosKRBKerbrute user enum (10M wordlist) → ASREPRoast → Kerberoast
41Hash CrackerHASHjohn + hashcat · NTLMv2 · NTLM · Kerberos TGS/AS-REP · auto-source chain

Web

#ModuleTagDescription
08WebWEBwhatweb / gobuster / feroxbuster — multi-tool web recon
40SQLMapSQLSQL injection — detect · extract · os-shell · full automation
47WPScanWPWordPress scanner — plugins · themes · users · CVEs

IoT

#ModuleTagDescription
04IngramCAMWebcam auto-exploitation via Ingram framework
09IoTIoTIoT/SCADA/camera discovery + exploit menus
21Flipper DetectorBTBluetooth scan — detects Flipper Zero by OUI 80:E1:26
23Probe SnifferWIFIWiFi probe request capture · burst detection · GPS logging · wardriving map
30PRETPRTPrinter discovery · PJL/PS/PCL audit + PRET exploit framework
37Air-BTBLEBLE scanner · GATT enum · 65 CVE matches · attack PoCs · bluebinder auto-init
38BLE ReconBLEbettercap ble.recon · live scanner · http-ui dashboard over WiFi

WiFi / Rogue AP

#ModuleTagDescription
50KARMAROGUERogue AP / evil-twin — WPA · OPN · EAP(WPE) · probe-mirror · auto client attack chain · Responder NTLM · tcpdump · pipeline-aware

Fire

#ModuleTagDescription
18WiFi Deauth AllWIFIMonitor mode scan → deauth every detected AP simultaneously
19WiFi Deauth TargetWIFISelect AP → continuous targeted deauth
29NetKillARPARP-poison the gateway → drops internet for all LAN clients

Projects & Reports

Project mode

Assign any module run to a project. The app automatically:

  • Attaches the session folder to the project
  • Parses nmap.txt, fscan.txt, masscan.txt → imports hosts + open ports
  • Parses brute.txt, chain_creds.txt, crackmap.txt → imports credentials
  • Parses cracked.txt (john/hashcat --show output) → imports cracked hashes

All imported data is stored in a local SQLite database (fsecurity_projects.db).

Project tabs

TabContents
SessionsAll module runs linked to this project — tap to browse result files
HostsDiscovered hosts with port lists (tap host to expand)
CredsCaptured credentials (live brute-force results) + cracked hashes
NotesFree-text notes per project
ImagesScreenshots captured during VNC Brute or IoT modules

HTML reports

One tap generates a self-contained HTML report including:

  • Executive summary with CVSS-style risk metrics
  • Vulnerability findings from nuclei.txt (filtered to medium+)
  • Credential table (brute-force + cracked hashes + chain_creds.txt)
  • SMB/network share findings
  • DNS/Active Directory enumeration results
  • IoT device findings
  • Raw session file viewer

Reports are generated locally on-device — no cloud, no upload.


Push Notifications

The app fires heads-up notifications for live detections without any extra setup.

ModuleTriggerNotification
Flipper DetectorFlipper Zero BLE device foundDevice name + MAC address
Deauth WatcherReal deauth attack detectedAttacker MAC · SSID · burst count

Attack vs. legitimate disconnect heuristics:

  • Burst ≥ 5 frames from the same source MAC within 5 s → always an attack
  • Broadcast deauth + non-legitimate reason code + ≥ 2 frames → attack

Each alert fires once per attacker+SSID pair per session (deduplicated).


Requirements

  • Android 5.0+ with root (Magisk)
  • Kali NetHunter full chroot at /data/local/nhsystem/kali-arm64 (or variant)
  • Tools installed inside chroot (install as needed per module):
# Core
apt install nmap masscan nuclei hydra crackmapexec enum4linux-ng
# AD / Windows
apt install impacket-scripts evil-winrm certipy-ad bloodhound ldapdomaindump
# Password cracking
apt install john hashcat
# Network / MITM
apt install responder mitm6 bettercap tshark
# Web
apt install gobuster feroxbuster sqlmap wpscan
# WiFi
apt install aircrack-ng wifite2
# KARMA — rogue AP (requires secondary WiFi adapter on wlan1)
apt install hostapd dnsmasq inotify-tools
pip3 install scapy mac-vendor-lookup netaddr colorama getkey
# Pivot
apt install chisel sshuttle socat

GPS — Probe Sniffer map

The Probe Sniffer module logs GPS coordinates alongside captured probe requests. GPS requires a companion Android app that relays NMEA sentences over TCP to 127.0.0.1:10110.

Install any app named "gpsdRelay" or "GPS NMEA relay" from the Play Store. Without GPS the sniffer still captures probes — coordinates and map are simply omitted.


Install

From release:

adb install F-Security.apk

From source (requires Flutter SDK + Android SDK + Java 21):

git clone https://github.com/InnerFireZ/F-Security-APP.git
cd F-Security-APP
flutter pub get
bash build.sh
adb install app-release.apk

Java 25 EA is not supported by Gradle — use Java 21:

export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64

On first launch the app detects root, locates the chroot, and deploys all bundled scripts automatically. Use Settings → Redeploy to force a re-deploy if needed.


Architecture

Execution model

Every module runs inside a flutter_pty pseudoterminal:

su -c "echo $$ > /data/local/tmp/fsec_<ts>.pid; \
chroot <chroot> /usr/bin/env -i \
HOME=/root TERM=xterm-256color PATH=<linux-path> \
SESSION_DIR=<pipeline-dir> TARGET=<ip> DOMAIN=<domain> \
/bin/bash /root/f-security/<script>"

The echo $$ saves the shell PID so the stop button can send kill -INT -<pgid> to the entire process group — identical to Ctrl+C in a real terminal. Scripts with trap '_cleanup' EXIT run cleanup on stop.

Script deployment

Scripts ship as Flutter assets bundled in the APK. On first launch (or when the deploy version is bumped) the deployer extracts them to a staging directory, copies them into the chroot at /root/f-security/, and sets executable permissions. The deploy version is an integer in ScriptDeployer._currentVersion — bump it on any script change.

Results storage

Scripts write output to /root/f-security/results/<project_slug>/<timestamp>/ (created by make_outdir() in lib.sh). The Results screen lists these sessions and lets you browse files, view reports, and delete sessions.

Results discovery uses find -maxdepth 3 -mindepth 2 from the results root — all result files must be at depth ≤ 3 to be visible. KARMA writes all output flat into the session root (not a subdirectory) to ensure every file is discoverable.

Pipeline session directory

When a pipeline is running, all modules share a single SESSION_DIR path passed as an environment variable. Chain files (alive_hosts.txt, chain_ports.txt, etc.) are written to and read from this shared directory — not to individual module output directories.

Signal / cleanup

The stop button reads /data/local/tmp/fsec_<ts>.pid and sends SIGINT to the process group (kill -INT -<pid>). This propagates to bash AND any foreground child (bettercap, ntlmrelayx, etc.), triggering their EXIT traps. Scripts use trap '_cleanup' EXIT.

lib.sh helpers

FunctionDescription
banner "TITLE" "subtitle"ctOS header box
section "NAME"Section separator
require_tool <bin> <hint>Exit with install hint if binary missing
check_tool <bin>Non-fatal tool check — returns 0/1
make_outdirCreates results/<slug>/<timestamp>/ and prints absolute path
auto_iface [wifi|any]Auto-selects best live interface (skips Android rmnet/bond/dummy)
resolve_iface [mode]Checks $IFACE env → /tmp/.fsec_iface → auto_iface → saves result
get_ip [iface]Returns IPv4 for an interface
mark_done <path>Writes .done marker; pipeline runner uses this to advance to next module
run_fg <cmd> [args...]Runs cmd in foreground; saves PID to /tmp/.fsec_tool.pid for soft Ctrl+C
start_spin "msg" / stop_spinSpinner for slow operations
pick_nmap_fileOffers to reuse existing nmap.txt instead of re-scanning
$RED $GREEN $YELLOW $CYAN $BOLD $DIM $RESETANSI color variables

Adding a New Module

Step 1 — Write the bash script

Copy assets/fsec/template/script-template.sh to assets/fsec/scripts/your_tool.sh.

Every script must follow these conventions:

#!/usr/bin/env bashsource"$(dirname "$0")/../lib.sh"set -uo pipefail
banner "TOOL NAME""short description"
require_tool mytool "apt install mytool"
outdir="$(make_outdir)"
outfile="$outdir/mytool.log":>"$outfile"_cleanup() {
kill"$_bg_pid"2>/dev/null ||true
}
trap'_cleanup' EXIT
# ── Pipeline auto-mode ─────────────────────────────────────────────────────────# If SESSION_DIR is set, run non-interactively and publish results to chain filesif [[ -n"${SESSION_DIR:-}" ]];then
TARGET="${TARGET:-}"
[[ -z"$TARGET" ]] && [[ -s"${SESSION_DIR}/alive_hosts.txt" ]] && \
TARGET=$(head -1 "${SESSION_DIR}/alive_hosts.txt")# ... run tool, write results ...# Publish to chain files
grep -oE '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+'"$outfile"| sort -u \
>>"${SESSION_DIR}/alive_hosts.txt"2>/dev/null ||true
mark_done "$outfile"exit 0
fi# ── Interactive mode ───────────────────────────────────────────────────────────# ... prompts, user interaction ...
mark_done "$outfile"printf'\n %s[SYS]%s Log : %s%s%s\n\n'"${CYAN}""${RESET}""${DIM}""$outfile""${RESET}"

Step 2 — Register the asset

Add your script to lib/services/script_deployer.dart and bump _currentVersion:

staticconst _currentVersion ='174'; // ← increment by 1staticconst _assetFiles = [
// ... existing files ...'assets/fsec/scripts/your_tool.sh',
];

Step 3 — Register the module in Dart

Add a Module entry to lib/data/modules.dart:

Module(
id:51, // next unused integer
name:'Your Tool',
description:'what it does in one line',
script:'scripts/your_tool.sh',
icon:Icons.manage_search,
category:ModuleCategory.recon,
tag:'TAG',
chainInput:ChainInput.target, // reads TARGET from pipeline
chainOutput:ChainOutput.sessionDir, // publishes to SESSION_DIR
),

Categories:network · recon · exploit · brute · web · iot · fire · util

Step 4 — Build and install

bash build.sh
adb install -r app-release.apk

Checklist

  1. assets/fsec/scripts/your_tool.sh — script (SESSION_DIR auto-mode required for pipeline)
  2. lib/services/script_deployer.dart — add to _assetFiles, bump _currentVersion
  3. lib/data/modules.dart — add Module(...) entry
  4. lib/data/pipelines.dart — optionally add to a template moduleIds list
  5. Build + install

Dependencies

PackageVersionPurpose
xterm^4.0.0ANSI terminal widget
flutter_pty^0.4.0PTY process spawning
webview_flutter^4.10.0HTML report viewer
share_plus^10.0.0Android share sheet
shared_preferences^2.3.2Persistent settings
path_provider^2.1.4App cache directory
sqflite^2.3.0Local SQLite — projects, credentials, hosts
flutter_local_notifications^18.0.1Push alerts (Flipper / Deauth)
flutter_foreground_tasklatestForeground service — keeps scans alive when backgrounded

Legal

F-Security is provided strictly for authorized penetration testing, security research, and educational purposes.

By downloading, installing, or using this software you agree to the following:

  • You will only use F-Security against systems, networks, and devices you own or for which you have explicit written authorization from the owner.
  • Unauthorized use against systems you do not own or have permission to test is illegal under applicable computer crime laws (CFAA, Computer Misuse Act, EU Directive 2013/40/EU, and equivalents).
  • The KARMA rogue-AP suite, deauth modules, NTLM relay, and credential-brute modules are offensive tools — deploying them on networks without consent is a criminal offence in most jurisdictions.
  • The author assumes zero liability for damage, data loss, legal consequences, or any harm resulting from misuse or misapplication of this software.
  • This software is distributed as-is, with no warranty of any kind, express or implied.

If you are unsure whether your intended use is lawful, do not use this software. Always obtain written scope-of-engagement authorization before any test.

About

F-Security Nethunter rooted APP for automate pentesting on phone devices.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages