This commit is contained in:
rawfilejson 2026-05-15 22:47:44 +01:00
parent 63abebdc14
commit e8009b1b8b
9 changed files with 1446 additions and 848 deletions

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash
# ===================================================================
# 🛡️ Blue team / defensive + threat intel
# Part of awesome-osint-arsenal v3.4
# Part of awesome-osint-arsenal v2.1
# Auto-detects: Kali / Debian / Ubuntu / Parrot / Mint / Pop!_OS /
# Arch / Manjaro / EndeavourOS /
# Fedora / RHEL / CentOS / Rocky / Alma
@ -9,141 +9,191 @@
# ===================================================================
set -uo pipefail
RED="\033[0;31m"; GRN="\033[0;32m"; YLW="\033[1;33m"; BLU="\033[0;34m"; CYN="\033[0;36m"; NC="\033[0m"
RED="\033[0;31m"
GRN="\033[0;32m"
YLW="\033[1;33m"
BLU="\033[0;34m"
CYN="\033[0;36m"
NC="\033[0m"
LOGFILE="${LOGFILE:-$HOME/osint-install-errors.log}"
INSTALLED=${INSTALLED:-0}; SKIPPED=${SKIPPED:-0}; FAILED=${FAILED:-0}
INSTALLED=${INSTALLED:-0}
SKIPPED=${SKIPPED:-0}
FAILED=${FAILED:-0}
declare -ga FAILED_TOOLS=()
say() { echo -e "${BLU}[*]${NC} $*"; }
ok() { echo -e "${GRN}[✓]${NC} $*"; INSTALLED=$((INSTALLED+1)); }
skip() { echo -e "${YLW}[~]${NC} $*"; SKIPPED=$((SKIPPED+1)); }
fail() { echo -e "${RED}[✗]${NC} $*"; FAILED=$((FAILED+1)); FAILED_TOOLS+=("$1"); echo "FAIL: $*" >> "$LOGFILE"; }
say() { echo -e "${BLU}[*]${NC} $*"; }
ok() {
echo -e "${GRN}[✓]${NC} $*"
INSTALLED=$((INSTALLED + 1))
}
skip() {
echo -e "${YLW}[~]${NC} $*"
SKIPPED=$((SKIPPED + 1))
}
fail() {
echo -e "${RED}[✗]${NC} $*"
FAILED=$((FAILED + 1))
FAILED_TOOLS+=("$1")
echo "FAIL: $*" >>"$LOGFILE"
}
require_root() {
if [ "$EUID" -ne 0 ]; then echo "Please run as root: sudo bash $0"; exit 1; fi
if [ "$EUID" -ne 0 ]; then
echo "Please run as root: sudo bash $0"
exit 1
fi
}
detect_distro() {
if [ -f /etc/os-release ]; then
. /etc/os-release
case "${ID,,}" in
kali|debian|ubuntu|parrot|raspbian|linuxmint|pop|elementary) PKG="apt" ;;
arch|manjaro|endeavouros|garuda|artix) PKG="pacman" ;;
fedora|rhel|centos|rocky|almalinux|ol) PKG="dnf" ;;
*) PKG="unknown" ;;
esac
else
PKG="unknown"
fi
export PKG
echo -e "${CYN}[i]${NC} Detected package manager: $PKG"
if [ "$PKG" = "unknown" ]; then
echo -e "${YLW}[!]${NC} Unknown distro — git/pip/go installs will work, system-package installs will be skipped."
fi
if [ -f /etc/os-release ]; then
. /etc/os-release
case "${ID,,}" in
kali | debian | ubuntu | parrot | raspbian | linuxmint | pop | elementary) PKG="apt" ;;
arch | manjaro | endeavouros | garuda | artix) PKG="pacman" ;;
fedora | rhel | centos | rocky | almalinux | ol) PKG="dnf" ;;
*) PKG="unknown" ;;
esac
else
PKG="unknown"
fi
export PKG
echo -e "${CYN}[i]${NC} Detected package manager: $PKG"
if [ "$PKG" = "unknown" ]; then
echo -e "${YLW}[!]${NC} Unknown distro — git/pip/go installs will work, system-package installs will be skipped."
fi
}
pkg_install() {
local pkg="$1"
case "$PKG" in
apt)
if dpkg -s "$pkg" >/dev/null 2>&1; then skip "$pkg already installed"; return; fi
if apt install -y "$pkg" >/dev/null 2>&1; then ok "$pkg (apt)"; else fail "$pkg (apt)"; fi
;;
pacman)
if pacman -Qi "$pkg" >/dev/null 2>&1; then skip "$pkg already installed"; return; fi
if pacman -S --noconfirm --needed "$pkg" >/dev/null 2>&1; then ok "$pkg (pacman)"; else fail "$pkg (pacman — may not be in repo, try AUR)"; fi
;;
dnf)
if rpm -q "$pkg" >/dev/null 2>&1; then skip "$pkg already installed"; return; fi
if dnf install -y "$pkg" >/dev/null 2>&1; then ok "$pkg (dnf)"; else fail "$pkg (dnf — may not be in repo)"; fi
;;
*)
fail "$pkg — unknown package manager, install manually"
;;
esac
local pkg="$1"
case "$PKG" in
apt)
if dpkg -s "$pkg" >/dev/null 2>&1; then
skip "$pkg already installed"
return
fi
if apt install -y "$pkg" >/dev/null 2>&1; then ok "$pkg (apt)"; else fail "$pkg (apt)"; fi
;;
pacman)
if pacman -Qi "$pkg" >/dev/null 2>&1; then
skip "$pkg already installed"
return
fi
if pacman -S --noconfirm --needed "$pkg" >/dev/null 2>&1; then ok "$pkg (pacman)"; else fail "$pkg (pacman — may not be in repo, try AUR)"; fi
;;
dnf)
if rpm -q "$pkg" >/dev/null 2>&1; then
skip "$pkg already installed"
return
fi
if dnf install -y "$pkg" >/dev/null 2>&1; then ok "$pkg (dnf)"; else fail "$pkg (dnf — may not be in repo)"; fi
;;
*)
fail "$pkg — unknown package manager, install manually"
;;
esac
}
install_pip() {
local pkg="$1"
if pip3 show "$pkg" >/dev/null 2>&1; then skip "$pkg (pip) already installed"; return; fi
if pip3 install --break-system-packages "$pkg" >/dev/null 2>&1; then ok "$pkg (pip)"; else fail "$pkg (pip)"; fi
local pkg="$1"
if pip3 show "$pkg" >/dev/null 2>&1; then
skip "$pkg (pip) already installed"
return
fi
if pip3 install --break-system-packages "$pkg" >/dev/null 2>&1; then ok "$pkg (pip)"; else fail "$pkg (pip)"; fi
}
install_go() {
local mod="$1" name="$2"
if ! command -v go >/dev/null 2>&1; then fail "$name — go not installed"; return; fi
if command -v "$name" >/dev/null 2>&1; then skip "$name already installed"; return; fi
if go install "$mod" >/dev/null 2>&1; then ok "$name (go)"; else fail "$name (go)"; fi
local mod="$1" name="$2"
if ! command -v go >/dev/null 2>&1; then
fail "$name — go not installed"
return
fi
if command -v "$name" >/dev/null 2>&1 || [ -f "/root/go/bin/$name" ]; then
skip "$name already installed"
return
fi
if go install "${mod}@latest" >/dev/null 2>&1; then ok "$name (go)"; else fail "$name (go)"; fi
}
install_git() {
local repo="$1" dst="$2"
mkdir -p /opt/osint-arsenal
if [ -d "/opt/osint-arsenal/$dst" ]; then skip "$dst already cloned"; return; fi
if git clone --depth=1 "$repo" "/opt/osint-arsenal/$dst" >/dev/null 2>&1; then ok "$dst (git)"; else fail "$dst (git)"; fi
local repo="$1" dst="$2"
mkdir -p /opt/osint-arsenal
if [ -d "/opt/osint-arsenal/$dst" ]; then
skip "$dst already cloned"
return
fi
if git clone --depth=1 "$repo" "/opt/osint-arsenal/$dst" >/dev/null 2>&1; then ok "$dst (git)"; else fail "$dst (git)"; fi
}
install_docker() {
local image="$1" name="$2"
if ! command -v docker >/dev/null 2>&1; then fail "$name — docker not installed"; return; fi
if docker image inspect "$image" >/dev/null 2>&1; then skip "$name (docker) already pulled"; return; fi
if docker pull "$image" >/dev/null 2>&1; then ok "$name (docker)"; else fail "$name (docker)"; fi
local image="$1" name="$2"
if ! command -v docker >/dev/null 2>&1; then
fail "$name — docker not installed"
return
fi
if docker image inspect "$image" >/dev/null 2>&1; then
skip "$name (docker) already pulled"
return
fi
if docker pull "$image" >/dev/null 2>&1; then ok "$name (docker)"; else fail "$name (docker)"; fi
}
bootstrap_basics() {
case "$PKG" in
apt)
apt update -y >/dev/null 2>&1 || true
apt install -y python3 python3-pip git curl wget golang-go >/dev/null 2>&1 || true
;;
pacman)
pacman -Sy --noconfirm >/dev/null 2>&1 || true
pacman -S --noconfirm --needed python python-pip git curl wget go >/dev/null 2>&1 || true
;;
dnf)
dnf install -y python3 python3-pip git curl wget golang >/dev/null 2>&1 || true
;;
esac
case "$PKG" in
apt)
apt update -y >/dev/null 2>&1 || true
apt install -y python3 python3-pip git curl wget golang-go >/dev/null 2>&1 || true
;;
pacman)
pacman -Sy --noconfirm >/dev/null 2>&1 || true
pacman -S --noconfirm --needed python python-pip git curl wget go >/dev/null 2>&1 || true
;;
dnf)
dnf install -y python3 python3-pip git curl wget golang >/dev/null 2>&1 || true
;;
esac
}
print_summary() {
echo
echo "============================================="
echo -e " Installed: ${GRN}$INSTALLED${NC}"
echo -e " Skipped: ${YLW}$SKIPPED${NC}"
echo -e " Failed: ${RED}$FAILED${NC}"
echo "============================================="
if (( FAILED > 0 )); then
echo -e "${RED}Failed tools:${NC} ${FAILED_TOOLS[@]:-}"
echo "See $LOGFILE for details."
fi
echo
echo "============================================="
echo -e " Installed: ${GRN}$INSTALLED${NC}"
echo -e " Skipped: ${YLW}$SKIPPED${NC}"
echo -e " Failed: ${RED}$FAILED${NC}"
echo "============================================="
if ((FAILED > 0)); then
echo -e "${RED}Failed tools:${NC} ${FAILED_TOOLS[@]:-}"
echo "See $LOGFILE for details."
fi
}
require_root
detect_distro
bootstrap_basics
echo; say "Installing: 🛰️ Threat Intel Platforms (2 tools)"
install_docker opencti/platform OpenCTI # OpenCTI
install_git https://github.com/yeti-platform/yeti.git yeti # Yeti
echo
say "Installing: 🛰️ Threat Intel Platforms (2 tools)"
install_docker opencti/platform OpenCTI # OpenCTI
install_git https://github.com/yeti-platform/yeti.git yeti # Yeti
echo; say "Installing: 🛡️ Blue Team & Defensive Security (20 tools)"
install_git https://github.com/redcanaryco/atomic-red-team.git atomic-red-team # Atomic Red Team
install_git https://github.com/WithSecureLabs/chainsaw.git chainsaw # Chainsaw
install_docker thehiveproject/cortex:latest 'Cortex (TheHive)' # Cortex (TheHive)
install_docker docker.elastic.co/elasticsearch/elasticsearch:latest 'Elastic Stack (ELK)' # Elastic Stack (ELK)
install_git https://github.com/falcosecurity/falco.git falco # Falco
install_docker graylog/graylog:latest Graylog # Graylog
install_git https://github.com/Yamato-Security/hayabusa.git hayabusa # Hayabusa
install_git https://github.com/Neo23x0/Loki.git Loki # Loki
install_git https://github.com/mitre/caldera.git caldera # MITRE CALDERA
pkg_install osquery # osquery
install_git https://github.com/activecm/rita.git rita # RITA
install_git https://github.com/SigmaHQ/sigma.git sigma # Sigma
install_pip sigma-cli # sigma-cli
pkg_install snort # Snort
pkg_install suricata # Suricata
install_docker strangebee/thehive:latest TheHive # TheHive
install_git https://github.com/aquasecurity/tracee.git tracee # Tracee
install_git https://github.com/Velocidex/velociraptor.git velociraptor # Velociraptor
install_git https://github.com/wazuh/wazuh.git wazuh # Wazuh
pkg_install zeek # Zeek (Bro)
echo
say "Installing: 🛡️ Blue Team & Defensive Security (20 tools)"
install_git https://github.com/redcanaryco/atomic-red-team.git atomic-red-team # Atomic Red Team
install_git https://github.com/WithSecureLabs/chainsaw.git chainsaw # Chainsaw
install_docker thehiveproject/cortex:latest 'Cortex (TheHive)' # Cortex (TheHive)
install_docker docker.elastic.co/elasticsearch/elasticsearch:latest 'Elastic Stack (ELK)' # Elastic Stack (ELK)
install_git https://github.com/falcosecurity/falco.git falco # Falco
install_docker graylog/graylog:latest Graylog # Graylog
install_git https://github.com/Yamato-Security/hayabusa.git hayabusa # Hayabusa
install_git https://github.com/Neo23x0/Loki.git Loki # Loki
install_git https://github.com/mitre/caldera.git caldera # MITRE CALDERA
pkg_install osquery # osquery
install_git https://github.com/activecm/rita.git rita # RITA
install_git https://github.com/SigmaHQ/sigma.git sigma # Sigma
install_pip sigma-cli # sigma-cli
pkg_install snort # Snort
pkg_install suricata # Suricata
install_docker strangebee/thehive:latest TheHive # TheHive
install_git https://github.com/aquasecurity/tracee.git tracee # Tracee
install_git https://github.com/Velocidex/velociraptor.git velociraptor # Velociraptor
install_git https://github.com/wazuh/wazuh.git wazuh # Wazuh
pkg_install zeek # Zeek (Bro)
print_summary

186
extras.sh
View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash
# ===================================================================
# 🔧 Misc / catch-all
# Part of awesome-osint-arsenal v3.4
# Part of awesome-osint-arsenal v2.1 (Hardened Production Edition)
# Auto-detects: Kali / Debian / Ubuntu / Parrot / Mint / Pop!_OS /
# Arch / Manjaro / EndeavourOS /
# Fedora / RHEL / CentOS / Rocky / Alma
@ -9,28 +9,49 @@
# ===================================================================
set -uo pipefail
RED="\033[0;31m"; GRN="\033[0;32m"; YLW="\033[1;33m"; BLU="\033[0;34m"; CYN="\033[0;36m"; NC="\033[0m"
RED="\033[0;31m"
GRN="\033[0;32m"
YLW="\033[1;33m"
BLU="\033[0;34m"
CYN="\033[0;36m"
NC="\033[0m"
LOGFILE="${LOGFILE:-$HOME/osint-install-errors.log}"
INSTALLED=${INSTALLED:-0}; SKIPPED=${SKIPPED:-0}; FAILED=${FAILED:-0}
INSTALLED=${INSTALLED:-0}
SKIPPED=${SKIPPED:-0}
FAILED=${FAILED:-0}
declare -ga FAILED_TOOLS=()
say() { echo -e "${BLU}[*]${NC} $*"; }
ok() { echo -e "${GRN}[✓]${NC} $*"; INSTALLED=$((INSTALLED+1)); }
skip() { echo -e "${YLW}[~]${NC} $*"; SKIPPED=$((SKIPPED+1)); }
fail() { echo -e "${RED}[✗]${NC} $*"; FAILED=$((FAILED+1)); FAILED_TOOLS+=("$1"); echo "FAIL: $*" >> "$LOGFILE"; }
say() { echo -e "${BLU}[*]${NC} $*"; }
ok() {
echo -e "${GRN}[✓]${NC} $*"
INSTALLED=$((INSTALLED + 1))
}
skip() {
echo -e "${YLW}[~]${NC} $*"
SKIPPED=$((SKIPPED + 1))
}
fail() {
echo -e "${RED}[✗]${NC} $*"
FAILED=$((FAILED + 1))
FAILED_TOOLS+=("$1")
echo "FAIL: $*" >>"$LOGFILE"
}
require_root() {
if [ "$EUID" -ne 0 ]; then echo "Please run as root: sudo bash $0"; exit 1; fi
if [ "$EUID" -ne 0 ]; then
echo "Please run as root: sudo bash $0"
exit 1
fi
}
detect_distro() {
if [ -f /etc/os-release ]; then
. /etc/os-release
case "${ID,,}" in
kali|debian|ubuntu|parrot|raspbian|linuxmint|pop|elementary) PKG="apt" ;;
arch|manjaro|endeavouros|garuda|artix) PKG="pacman" ;;
fedora|rhel|centos|rocky|almalinux|ol) PKG="dnf" ;;
*) PKG="unknown" ;;
kali | debian | ubuntu | parrot | raspbian | linuxmint | pop | elementary) PKG="apt" ;;
arch | manjaro | endeavouros | garuda | artix) PKG="pacman" ;;
fedora | rhel | centos | rocky | almalinux | ol) PKG="dnf" ;;
*) PKG="unknown" ;;
esac
else
PKG="unknown"
@ -45,62 +66,96 @@ detect_distro() {
pkg_install() {
local pkg="$1"
case "$PKG" in
apt)
if dpkg -s "$pkg" >/dev/null 2>&1; then skip "$pkg already installed"; return; fi
if apt install -y "$pkg" >/dev/null 2>&1; then ok "$pkg (apt)"; else fail "$pkg (apt)"; fi
;;
pacman)
if pacman -Qi "$pkg" >/dev/null 2>&1; then skip "$pkg already installed"; return; fi
if pacman -S --noconfirm --needed "$pkg" >/dev/null 2>&1; then ok "$pkg (pacman)"; else fail "$pkg (pacman — may not be in repo, try AUR)"; fi
;;
dnf)
if rpm -q "$pkg" >/dev/null 2>&1; then skip "$pkg already installed"; return; fi
if dnf install -y "$pkg" >/dev/null 2>&1; then ok "$pkg (dnf)"; else fail "$pkg (dnf — may not be in repo)"; fi
;;
*)
fail "$pkg — unknown package manager, install manually"
;;
apt)
if dpkg -s "$pkg" >/dev/null 2>&1; then
skip "$pkg already installed"
return
fi
if apt install -y "$pkg" >/dev/null 2>&1; then ok "$pkg (apt)"; else fail "$pkg (apt)"; fi
;;
pacman)
if pacman -Qi "$pkg" >/dev/null 2>&1; then
skip "$pkg already installed"
return
fi
if pacman -S --noconfirm --needed "$pkg" >/dev/null 2>&1; then ok "$pkg (pacman)"; else fail "$pkg (pacman — may not be in repo, try AUR)"; fi
;;
dnf)
if rpm -q "$pkg" >/dev/null 2>&1; then
skip "$pkg already installed"
return
fi
if dnf install -y "$pkg" >/dev/null 2>&1; then ok "$pkg (dnf)"; else fail "$pkg (dnf — may not be in repo)"; fi
;;
*)
fail "$pkg — unknown package manager, install manually"
;;
esac
}
install_pip() {
local pkg="$1"
if pip3 show "$pkg" >/dev/null 2>&1; then skip "$pkg (pip) already installed"; return; fi
if pip3 show "$pkg" >/dev/null 2>&1; then
skip "$pkg (pip) already installed"
return
fi
if pip3 install --break-system-packages "$pkg" >/dev/null 2>&1; then ok "$pkg (pip)"; else fail "$pkg (pip)"; fi
}
install_go() {
local mod="$1" name="$2"
if ! command -v go >/dev/null 2>&1; then fail "$name — go not installed"; return; fi
if command -v "$name" >/dev/null 2>&1; then skip "$name already installed"; return; fi
if go install "$mod" >/dev/null 2>&1; then ok "$name (go)"; else fail "$name (go)"; fi
if ! command -v go >/dev/null 2>&1; then
fail "$name — go not installed"
return
fi
if command -v "$name" >/dev/null 2>&1 || [ -f "/root/go/bin/$name" ] || [ -f "$HOME/go/bin/$name" ]; then
skip "$name already installed"
return
fi
# Appending @latest ensures compliance with modern Go package management installation protocols
if go install "${mod}@latest" >/dev/null 2>&1; then ok "$name (go)"; else fail "$name (go)"; fi
}
install_git() {
local repo="$1" dst="$2"
mkdir -p /opt/osint-arsenal
if [ -d "/opt/osint-arsenal/$dst" ]; then skip "$dst already cloned"; return; fi
if [ -d "/opt/osint-arsenal/$dst" ]; then
skip "$dst already cloned"
return
fi
if git clone --depth=1 "$repo" "/opt/osint-arsenal/$dst" >/dev/null 2>&1; then ok "$dst (git)"; else fail "$dst (git)"; fi
}
install_docker() {
local image="$1" name="$2"
if ! command -v docker >/dev/null 2>&1; then fail "$name — docker not installed"; return; fi
if docker image inspect "$image" >/dev/null 2>&1; then skip "$name (docker) already pulled"; return; fi
if ! command -v docker >/dev/null 2>&1; then
fail "$name — docker not installed"
return
fi
if docker image inspect "$image" >/dev/null 2>&1; then
skip "$name (docker) already pulled"
return
fi
if docker pull "$image" >/dev/null 2>&1; then ok "$name (docker)"; else fail "$name (docker)"; fi
}
bootstrap_basics() {
case "$PKG" in
apt)
apt update -y >/dev/null 2>&1 || true
apt install -y python3 python3-pip git curl wget golang-go >/dev/null 2>&1 || true
;;
pacman)
pacman -Sy --noconfirm >/dev/null 2>&1 || true
pacman -S --noconfirm --needed python python-pip git curl wget go >/dev/null 2>&1 || true
;;
dnf)
dnf install -y python3 python3-pip git curl wget golang >/dev/null 2>&1 || true
;;
apt)
apt update -y >/dev/null 2>&1 || true
apt install -y python3 python3-pip git curl wget golang-go >/dev/null 2>&1 || true
;;
pacman)
pacman -Sy --noconfirm >/dev/null 2>&1 || true
pacman -S --noconfirm --needed python python-pip git curl wget go >/dev/null 2>&1 || true
;;
dnf)
dnf install -y python3 python3-pip git curl wget golang >/dev/null 2>&1 || true
;;
esac
# Dynamically append Go structural binaries paths into active execution scope
export PATH="$PATH:/root/go/bin:$HOME/go/bin"
}
print_summary() {
@ -110,23 +165,48 @@ print_summary() {
echo -e " Skipped: ${YLW}$SKIPPED${NC}"
echo -e " Failed: ${RED}$FAILED${NC}"
echo "============================================="
if (( FAILED > 0 )); then
if ((FAILED > 0)); then
echo -e "${RED}Failed tools:${NC} ${FAILED_TOOLS[@]:-}"
echo "See $LOGFILE for details."
fi
}
# ===================================================================
# Execution Flow
# ===================================================================
require_root
detect_distro
bootstrap_basics
echo; say "Installing: 📚 Learning Resources (2 tools)"
install_git https://github.com/cipher387/linux-for-OSINT-21-days.git linux-for-OSINT-21-days # Linux for OSINT (cipher387)
install_git https://github.com/cipher387/python-for-OSINT-21-days.git python-for-OSINT-21-days # Python for OSINT (cipher387)
echo
say "Installing: 📚 Learning Resources (2 tools)"
install_git https://github.com/cipher387/linux-for-OSINT-21-days.git linux-for-OSINT-21-days
install_git https://github.com/cipher387/python-for-OSINT-21-days.git python-for-OSINT-21-days
echo; say "Installing: 🔧 Miscellaneous / Niche Tools (3 tools)"
install_git https://github.com/RedSiege/EyeWitness.git EyeWitness # EyeWitness
install_pip opencv-python # OpenCV
install_pip trufflehog # trufflehog
echo
say "Installing: 🔧 Miscellaneous / Niche Tools (3 tools)"
# 1. EyeWitness (Patched to automatically invoke internal dependency setup toolchain)
mkdir -p /opt/osint-arsenal
if [ -d "/opt/osint-arsenal/EyeWitness" ]; then
skip "EyeWitness already cloned"
else
if git clone --depth=1 https://github.com/RedSiege/EyeWitness.git /opt/osint-arsenal/EyeWitness >/dev/null 2>&1; then
say "Compiling configuration and baseline assets for EyeWitness..."
if bash /opt/osint-arsenal/EyeWitness/Python/setup/setup.sh -y >/dev/null 2>&1; then
ok "EyeWitness (git + set up)"
else
fail "EyeWitness (internal compilation layer failed)"
fi
else
fail "EyeWitness (git clone failed)"
fi
fi
# 2. OpenCV Headless (Pivoted to prevent display dependency crashes on servers or bare CLI nodes)
install_pip opencv-python-headless
# 3. Modern TruffleHog (Pivoted from the deprecated Python pip v2 build to modern v3 Go engine)
install_go github.com/trufflesecurity/trufflehog/v3 trufflehog
print_summary

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash
# ===================================================================
# 🔬 Digital forensics & RE
# Part of awesome-osint-arsenal v3.4
# 🛡️ 🔧 Blue Team, Threat Intel & Misc Lab Provisioner
# Part of awesome-osint-arsenal v3.4 (Unified Production Edition)
# Auto-detects: Kali / Debian / Ubuntu / Parrot / Mint / Pop!_OS /
# Arch / Manjaro / EndeavourOS /
# Fedora / RHEL / CentOS / Rocky / Alma
@ -9,28 +9,49 @@
# ===================================================================
set -uo pipefail
RED="\033[0;31m"; GRN="\033[0;32m"; YLW="\033[1;33m"; BLU="\033[0;34m"; CYN="\033[0;36m"; NC="\033[0m"
RED="\033[0;31m"
GRN="\033[0;32m"
YLW="\033[1;33m"
BLU="\033[0;34m"
CYN="\033[0;36m"
NC="\033[0m"
LOGFILE="${LOGFILE:-$HOME/osint-install-errors.log}"
INSTALLED=${INSTALLED:-0}; SKIPPED=${SKIPPED:-0}; FAILED=${FAILED:-0}
INSTALLED=${INSTALLED:-0}
SKIPPED=${SKIPPED:-0}
FAILED=${FAILED:-0}
declare -ga FAILED_TOOLS=()
say() { echo -e "${BLU}[*]${NC} $*"; }
ok() { echo -e "${GRN}[✓]${NC} $*"; INSTALLED=$((INSTALLED+1)); }
skip() { echo -e "${YLW}[~]${NC} $*"; SKIPPED=$((SKIPPED+1)); }
fail() { echo -e "${RED}[✗]${NC} $*"; FAILED=$((FAILED+1)); FAILED_TOOLS+=("$1"); echo "FAIL: $*" >> "$LOGFILE"; }
say() { echo -e "${BLU}[*]${NC} $*"; }
ok() {
echo -e "${GRN}[✓]${NC} $*"
INSTALLED=$((INSTALLED + 1))
}
skip() {
echo -e "${YLW}[~]${NC} $*"
SKIPPED=$((SKIPPED + 1))
}
fail() {
echo -e "${RED}[✗]${NC} $*"
FAILED=$((FAILED + 1))
FAILED_TOOLS+=("$1")
echo "FAIL: $*" >>"$LOGFILE"
}
require_root() {
if [ "$EUID" -ne 0 ]; then echo "Please run as root: sudo bash $0"; exit 1; fi
if [ "$EUID" -ne 0 ]; then
echo "Please run as root: sudo bash $0"
exit 1
fi
}
detect_distro() {
if [ -f /etc/os-release ]; then
. /etc/os-release
case "${ID,,}" in
kali|debian|ubuntu|parrot|raspbian|linuxmint|pop|elementary) PKG="apt" ;;
arch|manjaro|endeavouros|garuda|artix) PKG="pacman" ;;
fedora|rhel|centos|rocky|almalinux|ol) PKG="dnf" ;;
*) PKG="unknown" ;;
kali | debian | ubuntu | parrot | raspbian | linuxmint | pop | elementary) PKG="apt" ;;
arch | manjaro | endeavouros | garuda | artix) PKG="pacman" ;;
fedora | rhel | centos | rocky | almalinux | ol) PKG="dnf" ;;
*) PKG="unknown" ;;
esac
else
PKG="unknown"
@ -45,62 +66,96 @@ detect_distro() {
pkg_install() {
local pkg="$1"
case "$PKG" in
apt)
if dpkg -s "$pkg" >/dev/null 2>&1; then skip "$pkg already installed"; return; fi
if apt install -y "$pkg" >/dev/null 2>&1; then ok "$pkg (apt)"; else fail "$pkg (apt)"; fi
;;
pacman)
if pacman -Qi "$pkg" >/dev/null 2>&1; then skip "$pkg already installed"; return; fi
if pacman -S --noconfirm --needed "$pkg" >/dev/null 2>&1; then ok "$pkg (pacman)"; else fail "$pkg (pacman — may not be in repo, try AUR)"; fi
;;
dnf)
if rpm -q "$pkg" >/dev/null 2>&1; then skip "$pkg already installed"; return; fi
if dnf install -y "$pkg" >/dev/null 2>&1; then ok "$pkg (dnf)"; else fail "$pkg (dnf — may not be in repo)"; fi
;;
*)
fail "$pkg — unknown package manager, install manually"
;;
apt)
if dpkg -s "$pkg" >/dev/null 2>&1; then
skip "$pkg already installed"
return
fi
if apt install -y "$pkg" >/dev/null 2>&1; then ok "$pkg (apt)"; else fail "$pkg (apt)"; fi
;;
pacman)
if pacman -Qi "$pkg" >/dev/null 2>&1; then
skip "$pkg already installed"
return
fi
if pacman -S --noconfirm --needed "$pkg" >/dev/null 2>&1; then ok "$pkg (pacman)"; else fail "$pkg (pacman — may not be in repo, try AUR)"; fi
;;
dnf)
if rpm -q "$pkg" >/dev/null 2>&1; then
skip "$pkg already installed"
return
fi
if dnf install -y "$pkg" >/dev/null 2>&1; then ok "$pkg (dnf)"; else fail "$pkg (dnf — may not be in repo)"; fi
;;
*)
fail "$pkg — unknown package manager, install manually"
;;
esac
}
install_pip() {
local pkg="$1"
if pip3 show "$pkg" >/dev/null 2>&1; then skip "$pkg (pip) already installed"; return; fi
if pip3 show "$pkg" >/dev/null 2>&1; then
skip "$pkg (pip) already installed"
return
fi
if pip3 install --break-system-packages "$pkg" >/dev/null 2>&1; then ok "$pkg (pip)"; else fail "$pkg (pip)"; fi
}
install_go() {
local mod="$1" name="$2"
if ! command -v go >/dev/null 2>&1; then fail "$name — go not installed"; return; fi
if command -v "$name" >/dev/null 2>&1; then skip "$name already installed"; return; fi
if go install "$mod" >/dev/null 2>&1; then ok "$name (go)"; else fail "$name (go)"; fi
if ! command -v go >/dev/null 2>&1; then
fail "$name — go not installed"
return
fi
if command -v "$name" >/dev/null 2>&1 || [ -f "/root/go/bin/$name" ] || [ -f "$HOME/go/bin/$name" ]; then
skip "$name already installed"
return
fi
# Modern Go requires an explicit version suffix tag (like @latest) to compile safely out of module scope
if go install "${mod}@latest" >/dev/null 2>&1; then ok "$name (go)"; else fail "$name (go)"; fi
}
install_git() {
local repo="$1" dst="$2"
mkdir -p /opt/osint-arsenal
if [ -d "/opt/osint-arsenal/$dst" ]; then skip "$dst already cloned"; return; fi
if [ -d "/opt/osint-arsenal/$dst" ]; then
skip "$dst already cloned"
return
fi
if git clone --depth=1 "$repo" "/opt/osint-arsenal/$dst" >/dev/null 2>&1; then ok "$dst (git)"; else fail "$dst (git)"; fi
}
install_docker() {
local image="$1" name="$2"
if ! command -v docker >/dev/null 2>&1; then fail "$name — docker not installed"; return; fi
if docker image inspect "$image" >/dev/null 2>&1; then skip "$name (docker) already pulled"; return; fi
if ! command -v docker >/dev/null 2>&1; then
fail "$name — docker not installed"
return
fi
if docker image inspect "$image" >/dev/null 2>&1; then
skip "$name (docker) already pulled"
return
fi
if docker pull "$image" >/dev/null 2>&1; then ok "$name (docker)"; else fail "$name (docker)"; fi
}
bootstrap_basics() {
case "$PKG" in
apt)
apt update -y >/dev/null 2>&1 || true
apt install -y python3 python3-pip git curl wget golang-go >/dev/null 2>&1 || true
;;
pacman)
pacman -Sy --noconfirm >/dev/null 2>&1 || true
pacman -S --noconfirm --needed python python-pip git curl wget go >/dev/null 2>&1 || true
;;
dnf)
dnf install -y python3 python3-pip git curl wget golang >/dev/null 2>&1 || true
;;
apt)
apt update -y >/dev/null 2>&1 || true
apt install -y python3 python3-pip git curl wget golang-go >/dev/null 2>&1 || true
;;
pacman)
pacman -Sy --noconfirm >/dev/null 2>&1 || true
pacman -S --noconfirm --needed python python-pip git curl wget go >/dev/null 2>&1 || true
;;
dnf)
dnf install -y python3 python3-pip git curl wget golang >/dev/null 2>&1 || true
;;
esac
# Ensure the script path variables check compiled root/user Go target binaries immediately
export PATH="$PATH:/root/go/bin:$HOME/go/bin"
}
print_summary() {
@ -110,27 +165,76 @@ print_summary() {
echo -e " Skipped: ${YLW}$SKIPPED${NC}"
echo -e " Failed: ${RED}$FAILED${NC}"
echo "============================================="
if (( FAILED > 0 )); then
if ((FAILED > 0)); then
echo -e "${RED}Failed tools:${NC} ${FAILED_TOOLS[@]:-}"
echo "See $LOGFILE for details."
fi
}
# ===================================================================
# Main Engine Execution
# ===================================================================
require_root
detect_distro
bootstrap_basics
echo; say "Installing: 🔬 Digital Forensics & Reverse Engineering (11 tools)"
install_git https://github.com/rizinorg/cutter.git cutter # Cutter
install_pip dissect # Dissect
install_git https://github.com/NationalSecurityAgency/ghidra.git ghidra # Ghidra
pkg_install testdisk # PhotoRec
install_pip plaso # Plaso (log2timeline)
pkg_install radare2 # radare2
install_git https://github.com/keydet89/RegRipper3.0.git RegRipper3.0 # RegRipper
install_pip rekall # Rekall
install_git https://github.com/rizinorg/rizin.git rizin # rizin
pkg_install sleuthkit # The Sleuth Kit
install_pip volatility3 # Volatility 3
echo
say "Installing: 🛰️ Threat Intel Platforms (2 tools)"
install_docker opencti/platform OpenCTI
install_git https://github.com/yeti-platform/yeti.git yeti
echo
say "Installing: 🛡️ Blue Team & Defensive Security (20 tools)"
install_git https://github.com/redcanaryco/atomic-red-team.git atomic-red-team
install_git https://github.com/WithSecureLabs/chainsaw.git chainsaw
install_docker thehiveproject/cortex:latest 'Cortex (TheHive)'
install_docker docker.elastic.co/elasticsearch/elasticsearch:latest 'Elastic Stack (ELK)'
install_git https://github.com/falcosecurity/falco.git falco
install_docker graylog/graylog:latest Graylog
install_git https://github.com/Yamato-Security/hayabusa.git hayabusa
install_git https://github.com/Neo23x0/Loki.git Loki
install_git https://github.com/mitre/caldera.git caldera
pkg_install osquery
install_git https://github.com/activecm/rita.git rita
install_git https://github.com/SigmaHQ/sigma.git sigma
install_pip sigma-cli
pkg_install snort
pkg_install suricata
install_docker strangebee/thehive:latest TheHive
install_git https://github.com/aquasecurity/tracee.git tracee
install_git https://github.com/Velocidex/velociraptor.git velociraptor
install_git https://github.com/wazuh/wazuh.git wazuh
pkg_install zeek
echo
say "Installing: 📚 Learning Resources (2 tools)"
install_git https://github.com/cipher387/linux-for-OSINT-21-days.git linux-for-OSINT-21-days
install_git https://github.com/cipher387/python-for-OSINT-21-days.git python-for-OSINT-21-days
echo
say "Installing: 🔧 Miscellaneous / Niche Tools (3 tools)"
# 1. EyeWitness Custom Logic (Auto-executes internal dependency compiler script)
mkdir -p /opt/osint-arsenal
if [ -d "/opt/osint-arsenal/EyeWitness" ]; then
skip "EyeWitness already cloned"
else
if git clone --depth=1 https://github.com/RedSiege/EyeWitness.git /opt/osint-arsenal/EyeWitness >/dev/null 2>&1; then
say "Running baseline infrastructure setup for EyeWitness..."
if bash /opt/osint-arsenal/EyeWitness/Python/setup/setup.sh -y >/dev/null 2>&1; then
ok "EyeWitness (git + compiled)"
else
fail "EyeWitness (internal dependency setup failed)"
fi
else
fail "EyeWitness (git clone failed)"
fi
fi
# 2. OpenCV Headless (Prevents OS runtime display crashes on headless servers/CLI setups)
install_pip opencv-python-headless
# 3. Modern Go-Engine TruffleHog (Pivoted from deprecated Python v2 pip package to v3 Go release)
install_go github.com/trufflesecurity/trufflehog/v3 trufflehog
print_summary

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash
# ===================================================================
# 🔌 Hardware hacking & SDR
# Part of awesome-osint-arsenal v3.4
# 🔌 Hardware Hacking & SDR
# Part of awesome-osint-arsenal v2.1 (Hardened Production Edition)
# Auto-detects: Kali / Debian / Ubuntu / Parrot / Mint / Pop!_OS /
# Arch / Manjaro / EndeavourOS /
# Fedora / RHEL / CentOS / Rocky / Alma
@ -9,28 +9,49 @@
# ===================================================================
set -uo pipefail
RED="\033[0;31m"; GRN="\033[0;32m"; YLW="\033[1;33m"; BLU="\033[0;34m"; CYN="\033[0;36m"; NC="\033[0m"
RED="\033[0;31m"
GRN="\033[0;32m"
YLW="\033[1;33m"
BLU="\033[0;34m"
CYN="\033[0;36m"
NC="\033[0m"
LOGFILE="${LOGFILE:-$HOME/osint-install-errors.log}"
INSTALLED=${INSTALLED:-0}; SKIPPED=${SKIPPED:-0}; FAILED=${FAILED:-0}
INSTALLED=${INSTALLED:-0}
SKIPPED=${SKIPPED:-0}
FAILED=${FAILED:-0}
declare -ga FAILED_TOOLS=()
say() { echo -e "${BLU}[*]${NC} $*"; }
ok() { echo -e "${GRN}[✓]${NC} $*"; INSTALLED=$((INSTALLED+1)); }
skip() { echo -e "${YLW}[~]${NC} $*"; SKIPPED=$((SKIPPED+1)); }
fail() { echo -e "${RED}[✗]${NC} $*"; FAILED=$((FAILED+1)); FAILED_TOOLS+=("$1"); echo "FAIL: $*" >> "$LOGFILE"; }
say() { echo -e "${BLU}[*]${NC} $*"; }
ok() {
echo -e "${GRN}[✓]${NC} $*"
INSTALLED=$((INSTALLED + 1))
}
skip() {
echo -e "${YLW}[~]${NC} $*"
SKIPPED=$((SKIPPED + 1))
}
fail() {
echo -e "${RED}[✗]${NC} $*"
FAILED=$((FAILED + 1))
FAILED_TOOLS+=("$1")
echo "FAIL: $*" >>"$LOGFILE"
}
require_root() {
if [ "$EUID" -ne 0 ]; then echo "Please run as root: sudo bash $0"; exit 1; fi
if [ "$EUID" -ne 0 ]; then
echo "Please run as root: sudo bash $0"
exit 1
fi
}
detect_distro() {
if [ -f /etc/os-release ]; then
. /etc/os-release
case "${ID,,}" in
kali|debian|ubuntu|parrot|raspbian|linuxmint|pop|elementary) PKG="apt" ;;
arch|manjaro|endeavouros|garuda|artix) PKG="pacman" ;;
fedora|rhel|centos|rocky|almalinux|ol) PKG="dnf" ;;
*) PKG="unknown" ;;
kali | debian | ubuntu | parrot | raspbian | linuxmint | pop | elementary) PKG="apt" ;;
arch | manjaro | endeavouros | garuda | artix) PKG="pacman" ;;
fedora | rhel | centos | rocky | almalinux | ol) PKG="dnf" ;;
*) PKG="unknown" ;;
esac
else
PKG="unknown"
@ -45,62 +66,95 @@ detect_distro() {
pkg_install() {
local pkg="$1"
case "$PKG" in
apt)
if dpkg -s "$pkg" >/dev/null 2>&1; then skip "$pkg already installed"; return; fi
if apt install -y "$pkg" >/dev/null 2>&1; then ok "$pkg (apt)"; else fail "$pkg (apt)"; fi
;;
pacman)
if pacman -Qi "$pkg" >/dev/null 2>&1; then skip "$pkg already installed"; return; fi
if pacman -S --noconfirm --needed "$pkg" >/dev/null 2>&1; then ok "$pkg (pacman)"; else fail "$pkg (pacman — may not be in repo, try AUR)"; fi
;;
dnf)
if rpm -q "$pkg" >/dev/null 2>&1; then skip "$pkg already installed"; return; fi
if dnf install -y "$pkg" >/dev/null 2>&1; then ok "$pkg (dnf)"; else fail "$pkg (dnf — may not be in repo)"; fi
;;
*)
fail "$pkg — unknown package manager, install manually"
;;
apt)
if dpkg -s "$pkg" >/dev/null 2>&1; then
skip "$pkg already installed"
return
fi
if apt install -y "$pkg" >/dev/null 2>&1; then ok "$pkg (apt)"; else fail "$pkg (apt)"; fi
;;
pacman)
if pacman -Qi "$pkg" >/dev/null 2>&1; then
skip "$pkg already installed"
return
fi
if pacman -S --noconfirm --needed "$pkg" >/dev/null 2>&1; then ok "$pkg (pacman)"; else fail "$pkg (pacman — may not be in repo, try AUR)"; fi
;;
dnf)
if rpm -q "$pkg" >/dev/null 2>&1; then
skip "$pkg already installed"
return
fi
if dnf install -y "$pkg" >/dev/null 2>&1; then ok "$pkg (dnf)"; else fail "$pkg (dnf — may not be in repo)"; fi
;;
*)
fail "$pkg — unknown package manager, install manually"
;;
esac
}
install_pip() {
local pkg="$1"
if pip3 show "$pkg" >/dev/null 2>&1; then skip "$pkg (pip) already installed"; return; fi
if pip3 show "$pkg" >/dev/null 2>&1; then
skip "$pkg (pip) already installed"
return
fi
if pip3 install --break-system-packages "$pkg" >/dev/null 2>&1; then ok "$pkg (pip)"; else fail "$pkg (pip)"; fi
}
install_go() {
local mod="$1" name="$2"
if ! command -v go >/dev/null 2>&1; then fail "$name — go not installed"; return; fi
if command -v "$name" >/dev/null 2>&1; then skip "$name already installed"; return; fi
if go install "$mod" >/dev/null 2>&1; then ok "$name (go)"; else fail "$name (go)"; fi
if ! command -v go >/dev/null 2>&1; then
fail "$name — go not installed"
return
fi
if command -v "$name" >/dev/null 2>&1 || [ -f "/root/go/bin/$name" ] || [ -f "$HOME/go/bin/$name" ]; then
skip "$name already installed"
return
fi
if go install "${mod}@latest" >/dev/null 2>&1; then ok "$name (go)"; else fail "$name (go)"; fi
}
install_git() {
local repo="$1" dst="$2"
mkdir -p /opt/osint-arsenal
if [ -d "/opt/osint-arsenal/$dst" ]; then skip "$dst already cloned"; return; fi
if [ -d "/opt/osint-arsenal/$dst" ]; then
skip "$dst already cloned"
return
fi
if git clone --depth=1 "$repo" "/opt/osint-arsenal/$dst" >/dev/null 2>&1; then ok "$dst (git)"; else fail "$dst (git)"; fi
}
install_docker() {
local image="$1" name="$2"
if ! command -v docker >/dev/null 2>&1; then fail "$name — docker not installed"; return; fi
if docker image inspect "$image" >/dev/null 2>&1; then skip "$name (docker) already pulled"; return; fi
if ! command -v docker >/dev/null 2>&1; then
fail "$name — docker not installed"
return
fi
if docker image inspect "$image" >/dev/null 2>&1; then
skip "$name (docker) already pulled"
return
fi
if docker pull "$image" >/dev/null 2>&1; then ok "$name (docker)"; else fail "$name (docker)"; fi
}
bootstrap_basics() {
case "$PKG" in
apt)
apt update -y >/dev/null 2>&1 || true
apt install -y python3 python3-pip git curl wget golang-go >/dev/null 2>&1 || true
;;
pacman)
pacman -Sy --noconfirm >/dev/null 2>&1 || true
pacman -S --noconfirm --needed python python-pip git curl wget go >/dev/null 2>&1 || true
;;
dnf)
dnf install -y python3 python3-pip git curl wget golang >/dev/null 2>&1 || true
;;
apt)
apt update -y >/dev/null 2>&1 || true
apt install -y python3 python3-pip git curl wget golang-go build-essential udev >/dev/null 2>&1 || true
;;
pacman)
pacman -Sy --noconfirm >/dev/null 2>&1 || true
pacman -S --noconfirm --needed python python-pip git curl wget go base-devel >/dev/null 2>&1 || true
;;
dnf)
dnf groupinstall -y "Development Tools" >/dev/null 2>&1 || true
dnf install -y python3 python3-pip git curl wget golang systemd-udev >/dev/null 2>&1 || true
;;
esac
export PATH="$PATH:/root/go/bin:$HOME/go/bin"
}
print_summary() {
@ -110,26 +164,75 @@ print_summary() {
echo -e " Skipped: ${YLW}$SKIPPED${NC}"
echo -e " Failed: ${RED}$FAILED${NC}"
echo "============================================="
if (( FAILED > 0 )); then
if ((FAILED > 0)); then
echo -e "${RED}Failed tools:${NC} ${FAILED_TOOLS[@]:-}"
echo "See $LOGFILE for details."
fi
}
# ===================================================================
# Execution Flow
# ===================================================================
require_root
detect_distro
bootstrap_basics
echo; say "Installing: 🔌 Hardware Hacking & SDR (10 tools)"
install_git https://github.com/firmadyne/firmadyne.git firmadyne # Firmadyne
install_git https://github.com/craigz28/firmwalker.git firmwalker # firmwalker
pkg_install flashrom # flashrom
pkg_install gnuradio # GNU Radio
pkg_install gqrx-sdr # Gqrx SDR
pkg_install hackrf # HackRF One
pkg_install openocd # OpenOCD
install_git https://github.com/RfidResearchGroup/proxmark3.git proxmark3 # Proxmark3
pkg_install rtl-sdr # RTL-SDR
pkg_install ubertooth # Ubertooth One
echo
say "Installing: 🔌 Hardware Hacking & SDR (10 tools)"
# Firmadyne & Firmwalker Core Repositories
install_git https://github.com/firmadyne/firmadyne.git firmadyne
install_git https://github.com/craigz28/firmwalker.git firmwalker
# Hardware Utilities & Signal Frameworks
pkg_install flashrom
pkg_install gnuradio
pkg_install gqrx-sdr
pkg_install openocd
# SDR Radio / Hardware Tooling Packages
# (Handles varying package definitions between distributions gracefully)
if [ "$PKG" = "apt" ]; then
pkg_install hackrf
pkg_install rtl-sdr
pkg_install ubertooth
elif [ "$PKG" = "pacman" ]; then
pkg_install hackrf
pkg_install rtl-sdr
pkg_install ubertooth
elif [ "$PKG" = "dnf" ]; then
pkg_install hackrf-tools
pkg_install rtl-sdr
pkg_install ubertooth
fi
# Proxmark3 Source Provisioning
# Installs compiling prerequisites based on platform to prepare for firmware flashing
if [ "$PKG" = "apt" ]; then
apt install -y git build-essential libpcre3-dev qtbase5-dev libusb-1.0-0-dev gcc-arm-none-eabi libreadline-dev >/dev/null 2>&1 || true
elif [ "$PKG" = "pacman" ]; then
pacman -S --noconfirm --needed arm-none-eabi-gcc arm-none-eabi-newlib qt5-base libusb readline >/dev/null 2>&1 || true
elif [ "$PKG" = "dnf" ]; then
dnf install -y make gcc gcc-arm-linux-gnu qt5-qtbase-devel libusb1-devel readline-devel >/dev/null 2>&1 || true
fi
install_git https://github.com/RfidResearchGroup/proxmark3.git proxmark3
# ===================================================================
# Post-Install Kernel Optimization Layer
# ===================================================================
say "Applying hardware runtime optimizations..."
# Fix RTL-SDR DVB-T Kernel Conflict
# Prevents the native Linux kernel from claiming the SDR as a TV Tuner card
MODPROBE_CONF="/etc/modprobe.d/blacklist-rtl.conf"
if [ ! -f "$MODPROBE_CONF" ]; then
echo -e "blacklist dvb_usb_rtl2832u\nblacklist rtl2832\nblacklist rtl2830" > "$MODPROBE_CONF"
say "Applied kernel tuner module blacklists. Reboot or run 'rmmod dvb_usb_rtl2832u' before inserting your RTL-SDR stick."
fi
# Trigger and sync system hardware management layer
if command -v udevadm >/dev/null 2>&1; then
udevadm control --reload-rules && udevadm trigger || true
fi
print_summary

View File

@ -1,19 +1,34 @@
#!/usr/bin/env bash
# ===================================================================
# Awesome OSINT Arsenal — install everything
# Runs each category installer in order.
# Awesome OSINT Arsenal — Master Orchestrator
# Part of awesome-osint-arsenal v2.1 (Unified Production Edition)
# Runs each category installer sequentially with error handling.
# Best support: Kali / Debian / Ubuntu / Parrot.
# Partial: Arch / Manjaro / Fedora / RHEL.
# For Android, use: bash termux.sh
# ===================================================================
set -uo pipefail
cd "$(dirname "$0")"
# Maintain color scheme and logging alignment with sub-modules
RED="\033[0;31m"
GRN="\033[0;32m"
YLW="\033[1;33m"
BLU="\033[0;34m"
CYN="\033[0;36m"
NC="\033[0m"
LOGFILE="${LOGFILE:-$HOME/osint-install-errors.log}"
# Core Environment Guard
if [ "$EUID" -ne 0 ]; then
echo "Run me as root: sudo bash install.sh"
echo -e "${RED}[✗] error:${NC} This master orchestrator requires elevated privileges."
echo "Please run as root: sudo bash $0"
exit 1
fi
# Switch to the script's execution directory to safely resolve relative script paths
cd "$(dirname "$0")"
# Target Sub-modules
INSTALLERS=(
"osint.sh"
"redteam.sh"
@ -24,19 +39,73 @@ INSTALLERS=(
"extras.sh"
)
LOGFILE="$HOME/osint-install-errors.log"
: > "$LOGFILE"
# Initialize/Wipe Master Error Log
: >"$LOGFILE"
# Operational Metrics Tracker
START_TIME=$SECONDS
PASSED_MODULES=0
FAILED_MODULES=0
declare -ga UNABLE_TO_LOCATE=()
echo -e "${CYN}[i]${NC} Initializing Master Deployment Engine..."
echo -e "${CYN}[i]${NC} Runtime failures will be aggregated inside: $LOGFILE"
for inst in "${INSTALLERS[@]}"; do
echo
echo "==========================================="
echo " Running: $inst"
echo "==========================================="
bash "$inst"
echo -e "${BLU}=======================================================${NC}"
echo -e " 🚀 Launching Deployment Segment: ${CYN}$inst${NC}"
echo -e "${BLU}=======================================================${NC}"
# Defensive File Verification Hook
if [ ! -f "$inst" ]; then
echo -e "${YLW}[~] Skipping:${NC} Module script '$inst' not found in workspace directory."
UNABLE_TO_LOCATE+=("$inst")
FAILED_MODULES=$((FAILED_MODULES + 1))
echo "ORCHESTRATOR ERROR: File not found: $inst" >> "$LOGFILE"
continue
fi
# Explicitly grant executable permissions to prevent permission denial traps
chmod +x "$inst"
# Execute subshell layer. Exporting LOGFILE ensures sub-modules write to the same path.
export LOGFILE
if bash "$inst"; then
PASSED_MODULES=$((PASSED_MODULES + 1))
else
echo -e "${RED}[✗] Failure warning:${NC} Module $inst returned a non-zero exit status."
FAILED_MODULES=$((FAILED_MODULES + 1))
echo "ORCHESTRATOR ERROR: Sub-module execution failure status returned from: $inst" >> "$LOGFILE"
fi
done
# Calculate execution duration metrics
ELAPSED_DURATION=$((SECONDS - START_TIME))
MINUTES=$((ELAPSED_DURATION / 60))
SECONDS_REM=$((ELAPSED_DURATION % 60))
# ===================================================================
# Master Compilation Dashboard
# ===================================================================
echo
echo "==========================================="
echo " ALL DONE"
echo " Failures (if any) logged to: $LOGFILE"
echo "==========================================="
echo -e "${CYN}=======================================================${NC}"
echo -e " 🎉 GRAND ARCHITECTURE DEPLOYMENT COMPLETE"
echo -e "${CYN}=======================================================${NC}"
echo -e " Total Active Script Modules Checked : $((PASSED_MODULES + FAILED_MODULES))"
echo -e " Successful Module Deployments : ${GRN}$PASSED_MODULES${NC}"
echo -e " Unresolved/Failed Components : ${RED}$FAILED_MODULES${NC}"
echo -e " Total Provisioning Runtime : ${YLW}${MINUTES}m ${SECONDS_REM}s${NC}"
echo -e "${CYN}=======================================================${NC}"
if [ ${#UNABLE_TO_LOCATE[@]} -gt 0 ]; then
echo -e "${YLW}[!] Missing Components Reminder:${NC} ${UNABLE_TO_LOCATE[*]}"
echo "Ensure all complementary module scripts are checked out into this workspace directory."
fi
if [ "$FAILED_MODULES" -gt 0 ]; then
echo -e "${RED}[✗] Some installation routines requirements encountered friction.${NC}"
echo -e " Review explicit error codes and stack failures in: ${YLW}$LOGFILE${NC}"
else
echo -e "${GRN}[✓] Core orchestration layers initialized clean with zero root exceptions.${NC}"
fi

219
labs.sh
View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash
# ===================================================================
# 🎓 Training / vulnerable apps
# Part of awesome-osint-arsenal v3.4
# Part of awesome-osint-arsenal v2.1
# Auto-detects: Kali / Debian / Ubuntu / Parrot / Mint / Pop!_OS /
# Arch / Manjaro / EndeavourOS /
# Fedora / RHEL / CentOS / Rocky / Alma
@ -9,121 +9,170 @@
# ===================================================================
set -uo pipefail
RED="\033[0;31m"; GRN="\033[0;32m"; YLW="\033[1;33m"; BLU="\033[0;34m"; CYN="\033[0;36m"; NC="\033[0m"
RED="\033[0;31m"
GRN="\033[0;32m"
YLW="\033[1;33m"
BLU="\033[0;34m"
CYN="\033[0;36m"
NC="\033[0m"
LOGFILE="${LOGFILE:-$HOME/osint-install-errors.log}"
INSTALLED=${INSTALLED:-0}; SKIPPED=${SKIPPED:-0}; FAILED=${FAILED:-0}
INSTALLED=${INSTALLED:-0}
SKIPPED=${SKIPPED:-0}
FAILED=${FAILED:-0}
declare -ga FAILED_TOOLS=()
say() { echo -e "${BLU}[*]${NC} $*"; }
ok() { echo -e "${GRN}[✓]${NC} $*"; INSTALLED=$((INSTALLED+1)); }
skip() { echo -e "${YLW}[~]${NC} $*"; SKIPPED=$((SKIPPED+1)); }
fail() { echo -e "${RED}[✗]${NC} $*"; FAILED=$((FAILED+1)); FAILED_TOOLS+=("$1"); echo "FAIL: $*" >> "$LOGFILE"; }
say() { echo -e "${BLU}[*]${NC} $*"; }
ok() {
echo -e "${GRN}[✓]${NC} $*"
INSTALLED=$((INSTALLED + 1))
}
skip() {
echo -e "${YLW}[~]${NC} $*"
SKIPPED=$((SKIPPED + 1))
}
fail() {
echo -e "${RED}[✗]${NC} $*"
FAILED=$((FAILED + 1))
FAILED_TOOLS+=("$1")
echo "FAIL: $*" >>"$LOGFILE"
}
require_root() {
if [ "$EUID" -ne 0 ]; then echo "Please run as root: sudo bash $0"; exit 1; fi
if [ "$EUID" -ne 0 ]; then
echo "Please run as root: sudo bash $0"
exit 1
fi
}
detect_distro() {
if [ -f /etc/os-release ]; then
. /etc/os-release
case "${ID,,}" in
kali|debian|ubuntu|parrot|raspbian|linuxmint|pop|elementary) PKG="apt" ;;
arch|manjaro|endeavouros|garuda|artix) PKG="pacman" ;;
fedora|rhel|centos|rocky|almalinux|ol) PKG="dnf" ;;
*) PKG="unknown" ;;
esac
else
PKG="unknown"
fi
export PKG
echo -e "${CYN}[i]${NC} Detected package manager: $PKG"
if [ "$PKG" = "unknown" ]; then
echo -e "${YLW}[!]${NC} Unknown distro — git/pip/go installs will work, system-package installs will be skipped."
fi
if [ -f /etc/os-release ]; then
. /etc/os-release
case "${ID,,}" in
kali | debian | ubuntu | parrot | raspbian | linuxmint | pop | elementary) PKG="apt" ;;
arch | manjaro | endeavouros | garuda | artix) PKG="pacman" ;;
fedora | rhel | centos | rocky | almalinux | ol) PKG="dnf" ;;
*) PKG="unknown" ;;
esac
else
PKG="unknown"
fi
export PKG
echo -e "${CYN}[i]${NC} Detected package manager: $PKG"
if [ "$PKG" = "unknown" ]; then
echo -e "${YLW}[!]${NC} Unknown distro — git/pip/go installs will work, system-package installs will be skipped."
fi
}
pkg_install() {
local pkg="$1"
case "$PKG" in
apt)
if dpkg -s "$pkg" >/dev/null 2>&1; then skip "$pkg already installed"; return; fi
if apt install -y "$pkg" >/dev/null 2>&1; then ok "$pkg (apt)"; else fail "$pkg (apt)"; fi
;;
pacman)
if pacman -Qi "$pkg" >/dev/null 2>&1; then skip "$pkg already installed"; return; fi
if pacman -S --noconfirm --needed "$pkg" >/dev/null 2>&1; then ok "$pkg (pacman)"; else fail "$pkg (pacman — may not be in repo, try AUR)"; fi
;;
dnf)
if rpm -q "$pkg" >/dev/null 2>&1; then skip "$pkg already installed"; return; fi
if dnf install -y "$pkg" >/dev/null 2>&1; then ok "$pkg (dnf)"; else fail "$pkg (dnf — may not be in repo)"; fi
;;
*)
fail "$pkg — unknown package manager, install manually"
;;
esac
local pkg="$1"
case "$PKG" in
apt)
if dpkg -s "$pkg" >/dev/null 2>&1; then
skip "$pkg already installed"
return
fi
if apt install -y "$pkg" >/dev/null 2>&1; then ok "$pkg (apt)"; else fail "$pkg (apt)"; fi
;;
pacman)
if pacman -Qi "$pkg" >/dev/null 2>&1; then
skip "$pkg already installed"
return
fi
if pacman -S --noconfirm --needed "$pkg" >/dev/null 2>&1; then ok "$pkg (pacman)"; else fail "$pkg (pacman — may not be in repo, try AUR)"; fi
;;
dnf)
if rpm -q "$pkg" >/dev/null 2>&1; then
skip "$pkg already installed"
return
fi
if dnf install -y "$pkg" >/dev/null 2>&1; then ok "$pkg (dnf)"; else fail "$pkg (dnf — may not be in repo)"; fi
;;
*)
fail "$pkg — unknown package manager, install manually"
;;
esac
}
install_pip() {
local pkg="$1"
if pip3 show "$pkg" >/dev/null 2>&1; then skip "$pkg (pip) already installed"; return; fi
if pip3 install --break-system-packages "$pkg" >/dev/null 2>&1; then ok "$pkg (pip)"; else fail "$pkg (pip)"; fi
local pkg="$1"
if pip3 show "$pkg" >/dev/null 2>&1; then
skip "$pkg (pip) already installed"
return
fi
if pip3 install --break-system-packages "$pkg" >/dev/null 2>&1; then ok "$pkg (pip)"; else fail "$pkg (pip)"; fi
}
install_go() {
local mod="$1" name="$2"
if ! command -v go >/dev/null 2>&1; then fail "$name — go not installed"; return; fi
if command -v "$name" >/dev/null 2>&1; then skip "$name already installed"; return; fi
if go install "$mod" >/dev/null 2>&1; then ok "$name (go)"; else fail "$name (go)"; fi
local mod="$1" name="$2"
if ! command -v go >/dev/null 2>&1; then
fail "$name — go not installed"
return
fi
if command -v "$name" >/dev/null 2>&1; then
skip "$name already installed"
return
fi
if go install "$mod" >/dev/null 2>&1; then ok "$name (go)"; else fail "$name (go)"; fi
}
install_git() {
local repo="$1" dst="$2"
mkdir -p /opt/osint-arsenal
if [ -d "/opt/osint-arsenal/$dst" ]; then skip "$dst already cloned"; return; fi
if git clone --depth=1 "$repo" "/opt/osint-arsenal/$dst" >/dev/null 2>&1; then ok "$dst (git)"; else fail "$dst (git)"; fi
local repo="$1" dst="$2"
mkdir -p /opt/osint-arsenal
if [ -d "/opt/osint-arsenal/$dst" ]; then
skip "$dst already cloned"
return
fi
if git clone --depth=1 "$repo" "/opt/osint-arsenal/$dst" >/dev/null 2>&1; then ok "$dst (git)"; else fail "$dst (git)"; fi
}
install_docker() {
local image="$1" name="$2"
if ! command -v docker >/dev/null 2>&1; then fail "$name — docker not installed"; return; fi
if docker image inspect "$image" >/dev/null 2>&1; then skip "$name (docker) already pulled"; return; fi
if docker pull "$image" >/dev/null 2>&1; then ok "$name (docker)"; else fail "$name (docker)"; fi
local image="$1" name="$2"
if ! command -v docker >/dev/null 2>&1; then
fail "$name — docker not installed"
return
fi
if docker image inspect "$image" >/dev/null 2>&1; then
skip "$name (docker) already pulled"
return
fi
if docker pull "$image" >/dev/null 2>&1; then ok "$name (docker)"; else fail "$name (docker)"; fi
}
bootstrap_basics() {
case "$PKG" in
apt)
apt update -y >/dev/null 2>&1 || true
apt install -y python3 python3-pip git curl wget golang-go >/dev/null 2>&1 || true
;;
pacman)
pacman -Sy --noconfirm >/dev/null 2>&1 || true
pacman -S --noconfirm --needed python python-pip git curl wget go >/dev/null 2>&1 || true
;;
dnf)
dnf install -y python3 python3-pip git curl wget golang >/dev/null 2>&1 || true
;;
esac
case "$PKG" in
apt)
apt update -y >/dev/null 2>&1 || true
apt install -y python3 python3-pip git curl wget golang-go >/dev/null 2>&1 || true
;;
pacman)
pacman -Sy --noconfirm >/dev/null 2>&1 || true
pacman -S --noconfirm --needed python python-pip git curl wget go >/dev/null 2>&1 || true
;;
dnf)
dnf install -y python3 python3-pip git curl wget golang >/dev/null 2>&1 || true
;;
esac
}
print_summary() {
echo
echo "============================================="
echo -e " Installed: ${GRN}$INSTALLED${NC}"
echo -e " Skipped: ${YLW}$SKIPPED${NC}"
echo -e " Failed: ${RED}$FAILED${NC}"
echo "============================================="
if (( FAILED > 0 )); then
echo -e "${RED}Failed tools:${NC} ${FAILED_TOOLS[@]:-}"
echo "See $LOGFILE for details."
fi
echo
echo "============================================="
echo -e " Installed: ${GRN}$INSTALLED${NC}"
echo -e " Skipped: ${YLW}$SKIPPED${NC}"
echo -e " Failed: ${RED}$FAILED${NC}"
echo "============================================="
if ((FAILED > 0)); then
echo -e "${RED}Failed tools:${NC} ${FAILED_TOOLS[@]:-}"
echo "See $LOGFILE for details."
fi
}
require_root
detect_distro
bootstrap_basics
echo; say "Installing: 🎓 Training, Labs & CTF (4 tools)"
install_git https://github.com/digininja/DVWA.git DVWA # DVWA
install_docker bkimminich/juice-shop 'OWASP Juice Shop' # OWASP Juice Shop
install_docker webgoat/webgoat 'OWASP WebGoat' # OWASP WebGoat
install_git https://github.com/practisec/pwnedhub.git pwnedhub # PwnedHub
echo
say "Installing: 🎓 Training, Labs & CTF (4 tools)"
install_git https://github.com/digininja/DVWA.git DVWA # DVWA
install_docker bkimminich/juice-shop 'OWASP Juice Shop' # OWASP Juice Shop
install_docker webgoat/webgoat 'OWASP WebGoat' # OWASP WebGoat
install_git https://github.com/practisec/pwnedhub.git pwnedhub # PwnedHub
print_summary

663
osint.sh
View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash
# ===================================================================
# 🔍 OSINT toolkit
# Part of awesome-osint-arsenal v3.4
# Part of awesome-osint-arsenal v2.1
# Auto-detects: Kali / Debian / Ubuntu / Parrot / Mint / Pop!_OS /
# Arch / Manjaro / EndeavourOS /
# Fedora / RHEL / CentOS / Rocky / Alma
@ -9,352 +9,415 @@
# ===================================================================
set -uo pipefail
RED="\033[0;31m"; GRN="\033[0;32m"; YLW="\033[1;33m"; BLU="\033[0;34m"; CYN="\033[0;36m"; NC="\033[0m"
RED="\033[0;31m"
GRN="\033[0;32m"
YLW="\033[1;33m"
BLU="\033[0;34m"
CYN="\033[0;36m"
NC="\033[0m"
LOGFILE="${LOGFILE:-$HOME/osint-install-errors.log}"
INSTALLED=${INSTALLED:-0}; SKIPPED=${SKIPPED:-0}; FAILED=${FAILED:-0}
INSTALLED=${INSTALLED:-0}
SKIPPED=${SKIPPED:-0}
FAILED=${FAILED:-0}
declare -ga FAILED_TOOLS=()
say() { echo -e "${BLU}[*]${NC} $*"; }
ok() { echo -e "${GRN}[✓]${NC} $*"; INSTALLED=$((INSTALLED+1)); }
skip() { echo -e "${YLW}[~]${NC} $*"; SKIPPED=$((SKIPPED+1)); }
fail() { echo -e "${RED}[✗]${NC} $*"; FAILED=$((FAILED+1)); FAILED_TOOLS+=("$1"); echo "FAIL: $*" >> "$LOGFILE"; }
say() { echo -e "${BLU}[*]${NC} $*"; }
ok() {
echo -e "${GRN}[✓]${NC} $*"
INSTALLED=$((INSTALLED + 1))
}
skip() {
echo -e "${YLW}[~]${NC} $*"
SKIPPED=$((SKIPPED + 1))
}
fail() {
echo -e "${RED}[✗]${NC} $*"
FAILED=$((FAILED + 1))
FAILED_TOOLS+=("$1")
echo "FAIL: $*" >>"$LOGFILE"
}
require_root() {
if [ "$EUID" -ne 0 ]; then echo "Please run as root: sudo bash $0"; exit 1; fi
if [ "$EUID" -ne 0 ]; then
echo "Please run as root: sudo bash $0"
exit 1
fi
}
detect_distro() {
if [ -f /etc/os-release ]; then
. /etc/os-release
case "${ID,,}" in
kali|debian|ubuntu|parrot|raspbian|linuxmint|pop|elementary) PKG="apt" ;;
arch|manjaro|endeavouros|garuda|artix) PKG="pacman" ;;
fedora|rhel|centos|rocky|almalinux|ol) PKG="dnf" ;;
*) PKG="unknown" ;;
esac
else
PKG="unknown"
fi
export PKG
echo -e "${CYN}[i]${NC} Detected package manager: $PKG"
if [ "$PKG" = "unknown" ]; then
echo -e "${YLW}[!]${NC} Unknown distro — git/pip/go installs will work, system-package installs will be skipped."
fi
if [ -f /etc/os-release ]; then
. /etc/os-release
case "${ID,,}" in
kali | debian | ubuntu | parrot | raspbian | linuxmint | pop | elementary) PKG="apt" ;;
arch | manjaro | endeavouros | garuda | artix) PKG="pacman" ;;
fedora | rhel | centos | rocky | almalinux | ol) PKG="dnf" ;;
*) PKG="unknown" ;;
esac
else
PKG="unknown"
fi
export PKG
echo -e "${CYN}[i]${NC} Detected package manager: $PKG"
if [ "$PKG" = "unknown" ]; then
echo -e "${YLW}[!]${NC} Unknown distro — git/pip/go installs will work, system-package installs will be skipped."
fi
}
pkg_install() {
local pkg="$1"
case "$PKG" in
apt)
if dpkg -s "$pkg" >/dev/null 2>&1; then skip "$pkg already installed"; return; fi
if apt install -y "$pkg" >/dev/null 2>&1; then ok "$pkg (apt)"; else fail "$pkg (apt)"; fi
;;
pacman)
if pacman -Qi "$pkg" >/dev/null 2>&1; then skip "$pkg already installed"; return; fi
if pacman -S --noconfirm --needed "$pkg" >/dev/null 2>&1; then ok "$pkg (pacman)"; else fail "$pkg (pacman — may not be in repo, try AUR)"; fi
;;
dnf)
if rpm -q "$pkg" >/dev/null 2>&1; then skip "$pkg already installed"; return; fi
if dnf install -y "$pkg" >/dev/null 2>&1; then ok "$pkg (dnf)"; else fail "$pkg (dnf — may not be in repo)"; fi
;;
*)
fail "$pkg — unknown package manager, install manually"
;;
esac
local pkg="$1"
case "$PKG" in
apt)
if dpkg -s "$pkg" >/dev/null 2>&1; then
skip "$pkg already installed"
return
fi
if apt install -y "$pkg" >/dev/null 2>&1; then ok "$pkg (apt)"; else fail "$pkg (apt)"; fi
;;
pacman)
if pacman -Qi "$pkg" >/dev/null 2>&1; then
skip "$pkg already installed"
return
fi
if pacman -S --noconfirm --needed "$pkg" >/dev/null 2>&1; then ok "$pkg (pacman)"; else fail "$pkg (pacman — may not be in repo, try AUR)"; fi
;;
dnf)
if rpm -q "$pkg" >/dev/null 2>&1; then
skip "$pkg already installed"
return
fi
if dnf install -y "$pkg" >/dev/null 2>&1; then ok "$pkg (dnf)"; else fail "$pkg (dnf — may not be in repo)"; fi
;;
*)
fail "$pkg — unknown package manager, install manually"
;;
esac
}
install_pip() {
local pkg="$1"
if pip3 show "$pkg" >/dev/null 2>&1; then skip "$pkg (pip) already installed"; return; fi
if pip3 install --break-system-packages "$pkg" >/dev/null 2>&1; then ok "$pkg (pip)"; else fail "$pkg (pip)"; fi
local pkg="$1"
if pip3 show "$pkg" >/dev/null 2>&1; then
skip "$pkg (pip) already installed"
return
fi
if pip3 install --break-system-packages "$pkg" >/dev/null 2>&1; then ok "$pkg (pip)"; else fail "$pkg (pip)"; fi
}
install_go() {
local mod="$1" name="$2"
if ! command -v go >/dev/null 2>&1; then fail "$name — go not installed"; return; fi
if command -v "$name" >/dev/null 2>&1; then skip "$name already installed"; return; fi
if go install "$mod" >/dev/null 2>&1; then ok "$name (go)"; else fail "$name (go)"; fi
local mod="$1" name="$2"
if ! command -v go >/dev/null 2>&1; then
fail "$name — go not installed"
return
fi
if command -v "$name" >/dev/null 2>&1; then
skip "$name already installed"
return
fi
if go install "$mod" >/dev/null 2>&1; then ok "$name (go)"; else fail "$name (go)"; fi
}
install_git() {
local repo="$1" dst="$2"
mkdir -p /opt/osint-arsenal
if [ -d "/opt/osint-arsenal/$dst" ]; then skip "$dst already cloned"; return; fi
if git clone --depth=1 "$repo" "/opt/osint-arsenal/$dst" >/dev/null 2>&1; then ok "$dst (git)"; else fail "$dst (git)"; fi
local repo="$1" dst="$2"
mkdir -p /opt/osint-arsenal
if [ -d "/opt/osint-arsenal/$dst" ]; then
skip "$dst already cloned"
return
fi
if git clone --depth=1 "$repo" "/opt/osint-arsenal/$dst" >/dev/null 2>&1; then ok "$dst (git)"; else fail "$dst (git)"; fi
}
install_docker() {
local image="$1" name="$2"
if ! command -v docker >/dev/null 2>&1; then fail "$name — docker not installed"; return; fi
if docker image inspect "$image" >/dev/null 2>&1; then skip "$name (docker) already pulled"; return; fi
if docker pull "$image" >/dev/null 2>&1; then ok "$name (docker)"; else fail "$name (docker)"; fi
local image="$1" name="$2"
if ! command -v docker >/dev/null 2>&1; then
fail "$name — docker not installed"
return
fi
if docker image inspect "$image" >/dev/null 2>&1; then
skip "$name (docker) already pulled"
return
fi
if docker pull "$image" >/dev/null 2>&1; then ok "$name (docker)"; else fail "$name (docker)"; fi
}
bootstrap_basics() {
case "$PKG" in
apt)
apt update -y >/dev/null 2>&1 || true
apt install -y python3 python3-pip git curl wget golang-go >/dev/null 2>&1 || true
;;
pacman)
pacman -Sy --noconfirm >/dev/null 2>&1 || true
pacman -S --noconfirm --needed python python-pip git curl wget go >/dev/null 2>&1 || true
;;
dnf)
dnf install -y python3 python3-pip git curl wget golang >/dev/null 2>&1 || true
;;
esac
case "$PKG" in
apt)
apt update -y >/dev/null 2>&1 || true
apt install -y python3 python3-pip git curl wget golang-go >/dev/null 2>&1 || true
;;
pacman)
pacman -Sy --noconfirm >/dev/null 2>&1 || true
pacman -S --noconfirm --needed python python-pip git curl wget go >/dev/null 2>&1 || true
;;
dnf)
dnf install -y python3 python3-pip git curl wget golang >/dev/null 2>&1 || true
;;
esac
}
print_summary() {
echo
echo "============================================="
echo -e " Installed: ${GRN}$INSTALLED${NC}"
echo -e " Skipped: ${YLW}$SKIPPED${NC}"
echo -e " Failed: ${RED}$FAILED${NC}"
echo "============================================="
if (( FAILED > 0 )); then
echo -e "${RED}Failed tools:${NC} ${FAILED_TOOLS[@]:-}"
echo "See $LOGFILE for details."
fi
echo
echo "============================================="
echo -e " Installed: ${GRN}$INSTALLED${NC}"
echo -e " Skipped: ${YLW}$SKIPPED${NC}"
echo -e " Failed: ${RED}$FAILED${NC}"
echo "============================================="
if ((FAILED > 0)); then
echo -e "${RED}Failed tools:${NC} ${FAILED_TOOLS[@]:-}"
echo "See $LOGFILE for details."
fi
}
require_root
detect_distro
bootstrap_basics
echo; say "Installing: 👤 Username & Social Media OSINT (33 tools)"
install_git https://github.com/ArthurHeitmann/arctic_shift.git arctic_shift # Arctic Shift
install_pip blackbird-osint # Blackbird
install_git https://github.com/misiektoja/github_monitor.git github_monitor # github_monitor
install_pip gitrecon # Gitrecon
install_go github.com/ibnaleem/gosearch@latest gosearch # GoSearch
install_pip holehe # Holehe
install_git https://github.com/misiektoja/instagram_monitor.git instagram_monitor # instagram_monitor
install_pip instaloader # Instaloader
install_go github.com/tdh8316/investigo@latest investigo # Investigo
install_git https://github.com/l4rm4nd/LinkedInDumper.git LinkedInDumper # LinkedInDumper
install_pip maigret # Maigret
install_pip nexfil # NExfil
install_git https://github.com/Datalux/Osintgram.git Osintgram # Osintgram
install_pip osrframework # OSRFramework
install_git https://github.com/seekr-osint/seekr.git seekr # Seekr
install_pip sherlock-project # Sherlock
install_pip snoop # Snoop
install_pip snscrape # snscrape
install_pip social-analyzer # Social Analyzer
install_pip socialscan # socialscan
install_pip socid-extractor # Socid-extractor
install_git https://github.com/tejado/telegram-nearby-map.git telegram-nearby-map # Telegram Nearby Map
install_git https://github.com/Alb-310/TeleGram-OSINTer.git TeleGram-OSINTer # TeleGram-OSINTer
install_pip telepathy # Telepathy
install_git https://github.com/sockysec/Telerecon.git Telerecon # Telerecon
install_pip telethon # Telethon
install_git https://github.com/eth0izzle/the-endorser.git the-endorser # the-endorser
install_git https://github.com/drego85/tosint.git tosint # TOsint
install_pip toutatis # Toutatis
install_pip twayback # Twayback
install_pip twint # Twint
install_git https://github.com/kaifcodec/user-scanner.git user-scanner # user-scanner
install_git https://github.com/wishihab/userrecon.git userrecon # UserRecon
echo
say "Installing: 👤 Username & Social Media OSINT (33 tools)"
install_git https://github.com/ArthurHeitmann/arctic_shift.git arctic_shift # Arctic Shift
install_pip blackbird-osint # Blackbird
install_git https://github.com/misiektoja/github_monitor.git github_monitor # github_monitor
install_pip gitrecon # Gitrecon
install_go github.com/ibnaleem/gosearch@latest gosearch # GoSearch
install_pip holehe # Holehe
install_git https://github.com/misiektoja/instagram_monitor.git instagram_monitor # instagram_monitor
install_pip instaloader # Instaloader
install_go github.com/tdh8316/investigo@latest investigo # Investigo
install_git https://github.com/l4rm4nd/LinkedInDumper.git LinkedInDumper # LinkedInDumper
install_pip maigret # Maigret
install_pip nexfil # NExfil
install_git https://github.com/Datalux/Osintgram.git Osintgram # Osintgram
install_pip osrframework # OSRFramework
install_git https://github.com/seekr-osint/seekr.git seekr # Seekr
install_pip sherlock-project # Sherlock
install_pip snoop # Snoop
install_pip snscrape # snscrape
install_pip social-analyzer # Social Analyzer
install_pip socialscan # socialscan
install_pip socid-extractor # Socid-extractor
install_git https://github.com/tejado/telegram-nearby-map.git telegram-nearby-map # Telegram Nearby Map
install_git https://github.com/Alb-310/TeleGram-OSINTer.git TeleGram-OSINTer # TeleGram-OSINTer
install_pip telepathy # Telepathy
install_git https://github.com/sockysec/Telerecon.git Telerecon # Telerecon
install_pip telethon # Telethon
install_git https://github.com/eth0izzle/the-endorser.git the-endorser # the-endorser
install_git https://github.com/drego85/tosint.git tosint # TOsint
install_pip toutatis # Toutatis
install_pip twayback # Twayback
install_pip twint # Twint
install_git https://github.com/kaifcodec/user-scanner.git user-scanner # user-scanner
install_git https://github.com/wishihab/userrecon.git userrecon # UserRecon
echo; say "Installing: 📧 Email & Phone Intelligence (13 tools)"
install_git https://github.com/keraattin/EmailAnalyzer.git EmailAnalyzer # EmailAnalyzer
install_git https://github.com/Giritharram/EmailHeader-Analyzer-CLI-Python.git EmailHeader-Analyzer-CLI-Python # EmailHeader-Analyzer
install_pip ghunt # GHunt
install_pip h8mail # h8mail
install_pip ignorant # Ignorant
install_git https://github.com/m4ll0k/Infoga.git Infoga # Infoga
install_git https://github.com/akajhon/MailHeaderDetective.git MailHeaderDetective # MailHeaderDetective
install_pip mailto-analyzer # mailtoanalyzer
install_pip phoneinfoga # PhoneInfoga
install_git https://github.com/aerosol-can/PhoneSploit.git PhoneSploit # PhoneSploit
install_git https://github.com/nettitude/Prowl.git Prowl # Prowl
install_pip theHarvester # theHarvester
install_git https://github.com/z0m31en7/WhatMail.git WhatMail # WhatMail
echo
say "Installing: 📧 Email & Phone Intelligence (13 tools)"
install_git https://github.com/keraattin/EmailAnalyzer.git EmailAnalyzer # EmailAnalyzer
install_git https://github.com/Giritharram/EmailHeader-Analyzer-CLI-Python.git EmailHeader-Analyzer-CLI-Python # EmailHeader-Analyzer
install_pip ghunt # GHunt
install_pip h8mail # h8mail
install_pip ignorant # Ignorant
install_git https://github.com/m4ll0k/Infoga.git Infoga # Infoga
install_git https://github.com/akajhon/MailHeaderDetective.git MailHeaderDetective # MailHeaderDetective
install_pip mailto-analyzer # mailtoanalyzer
install_pip phoneinfoga # PhoneInfoga
install_git https://github.com/aerosol-can/PhoneSploit.git PhoneSploit # PhoneSploit
install_git https://github.com/nettitude/Prowl.git Prowl # Prowl
install_pip theHarvester # theHarvester
install_git https://github.com/z0m31en7/WhatMail.git WhatMail # WhatMail
echo; say "Installing: 🌐 Domain & IP / Network Recon (68 tools)"
pkg_install aircrack-ng # Aircrack-ng
install_pip py-altdns # altdns
install_go github.com/owasp-amass/amass/v4/...@master ... # Amass
install_go github.com/tomnomnom/anew@latest anew # anew
install_go github.com/michenriksen/aquatone@latest aquatone # Aquatone
install_go github.com/tomnomnom/assetfinder@latest assetfinder # assetfinder
install_pip git # AutoRecon
install_git https://github.com/pry0cc/axiom.git axiom # Axiom
install_pip bbot # BBOT
pkg_install bettercap # Bettercap
install_git https://github.com/commixproject/commix.git commix # Commix
pkg_install dirb # Dirb
install_pip dirsearch # dirsearch
install_pip dnsrecon # dnsrecon
install_pip dnstwist # dnstwist
pkg_install ettercap-common # Ettercap
pkg_install fern-wifi-cracker # Fern Wifi Cracker
pkg_install feroxbuster # Feroxbuster
install_go github.com/ffuf/ffuf/v2@latest v2 # ffuf
install_git https://github.com/Findomain/Findomain.git Findomain # Findomain
install_git https://github.com/FluxionNetwork/fluxion.git fluxion # Fluxion
install_go github.com/lc/gau/v2/cmd/gau@latest gau # gau (getallurls)
install_go github.com/tomnomnom/gf@latest gf # gf
install_go github.com/OJ/gobuster/v3@latest v3 # Gobuster
install_git https://github.com/jseidl/GoldenEye.git GoldenEye # GoldenEye
install_go github.com/jaeles-project/gospider@latest gospider # GoSpider
install_go github.com/sensepost/gowitness@latest gowitness # gowitness
install_go github.com/hakluke/hakrawler@latest hakrawler # hakrawler
pkg_install hcxtools # hcxtools
install_go github.com/tomnomnom/httprobe@latest httprobe # httprobe
install_go github.com/projectdiscovery/httpx/cmd/httpx@latest httpx # HTTPx
install_git https://github.com/codingo/Interlace.git Interlace # Interlace
install_git https://github.com/maldevel/IPGeoLocation.git IPGeoLocation # IPGeoLocation
install_git https://github.com/Threezh1/JSFinder.git JSFinder # JSFinder
install_go github.com/projectdiscovery/katana/cmd/katana@latest katana # Katana
pkg_install kismet # Kismet
install_git https://github.com/guelfoweb/knock.git knock # knock
install_pip knock-subdomains # Knockpy
install_git https://github.com/GerbenJavado/LinkFinder.git LinkFinder # LinkFinder
pkg_install masscan # Masscan
install_git https://github.com/blechschmidt/massdns.git massdns # massdns
install_go github.com/tomnomnom/meg@latest meg # meg
pkg_install metasploit-framework # Metasploit
install_go github.com/projectdiscovery/naabu/v2/cmd/naabu@latest naabu # Naabu
pkg_install netcat-openbsd # Netcat
pkg_install nikto # Nikto
pkg_install nmap # Nmap
install_go github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest nuclei # Nuclei
pkg_install openvas # OpenVAS
install_pip paramspider # ParamSpider
install_git https://github.com/s0md3v/Photon.git Photon # Photon
pkg_install reaver # Reaver
install_git https://github.com/six2dez/reconftw.git reconftw # reconFTW
install_git https://github.com/RustScan/RustScan.git RustScan # RustScan
install_pip shodan # Shodan
install_go github.com/s0md3v/smap/cmd/smap@latest smap # smap
install_git https://github.com/1N3/Sn1per.git Sn1per # Sn1per
pkg_install sqlmap # SQLMap
install_go github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest subfinder # Subfinder
install_pip sublist3r # Sublist3r
pkg_install tcpdump # tcpdump
install_git https://github.com/urbanadventurer/urlcrazy.git urlcrazy # URLCrazy
install_go github.com/tomnomnom/waybackurls@latest waybackurls # waybackurls
install_git https://github.com/yan4ikyt/webhack.git webhack # WebHack
install_pip wfuzz # Wfuzz
pkg_install whatweb # Whatweb
pkg_install wifite # Wifite
pkg_install wireshark # Wireshark
echo
say "Installing: 🌐 Domain & IP / Network Recon (68 tools)"
pkg_install aircrack-ng # Aircrack-ng
install_pip py-altdns # altdns
install_go github.com/owasp-amass/amass/v4/...@master ... # Amass
install_go github.com/tomnomnom/anew@latest anew # anew
install_go github.com/michenriksen/aquatone@latest aquatone # Aquatone
install_go github.com/tomnomnom/assetfinder@latest assetfinder # assetfinder
install_pip git # AutoRecon
install_git https://github.com/pry0cc/axiom.git axiom # Axiom
install_pip bbot # BBOT
pkg_install bettercap # Bettercap
install_git https://github.com/commixproject/commix.git commix # Commix
pkg_install dirb # Dirb
install_pip dirsearch # dirsearch
install_pip dnsrecon # dnsrecon
install_pip dnstwist # dnstwist
pkg_install ettercap-common # Ettercap
pkg_install fern-wifi-cracker # Fern Wifi Cracker
pkg_install feroxbuster # Feroxbuster
install_go github.com/ffuf/ffuf/v2@latest v2 # ffuf
install_git https://github.com/Findomain/Findomain.git Findomain # Findomain
install_git https://github.com/FluxionNetwork/fluxion.git fluxion # Fluxion
install_go github.com/lc/gau/v2/cmd/gau@latest gau # gau (getallurls)
install_go github.com/tomnomnom/gf@latest gf # gf
install_go github.com/OJ/gobuster/v3@latest v3 # Gobuster
install_git https://github.com/jseidl/GoldenEye.git GoldenEye # GoldenEye
install_go github.com/jaeles-project/gospider@latest gospider # GoSpider
install_go github.com/sensepost/gowitness@latest gowitness # gowitness
install_go github.com/hakluke/hakrawler@latest hakrawler # hakrawler
pkg_install hcxtools # hcxtools
install_go github.com/tomnomnom/httprobe@latest httprobe # httprobe
install_go github.com/projectdiscovery/httpx/cmd/httpx@latest httpx # HTTPx
install_git https://github.com/codingo/Interlace.git Interlace # Interlace
install_git https://github.com/maldevel/IPGeoLocation.git IPGeoLocation # IPGeoLocation
install_git https://github.com/Threezh1/JSFinder.git JSFinder # JSFinder
install_go github.com/projectdiscovery/katana/cmd/katana@latest katana # Katana
pkg_install kismet # Kismet
install_git https://github.com/guelfoweb/knock.git knock # knock
install_pip knock-subdomains # Knockpy
install_git https://github.com/GerbenJavado/LinkFinder.git LinkFinder # LinkFinder
pkg_install masscan # Masscan
install_git https://github.com/blechschmidt/massdns.git massdns # massdns
install_go github.com/tomnomnom/meg@latest meg # meg
pkg_install metasploit-framework # Metasploit
install_go github.com/projectdiscovery/naabu/v2/cmd/naabu@latest naabu # Naabu
pkg_install netcat-openbsd # Netcat
pkg_install nikto # Nikto
pkg_install nmap # Nmap
install_go github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest nuclei # Nuclei
pkg_install openvas # OpenVAS
install_pip paramspider # ParamSpider
install_git https://github.com/s0md3v/Photon.git Photon # Photon
pkg_install reaver # Reaver
install_git https://github.com/six2dez/reconftw.git reconftw # reconFTW
install_git https://github.com/RustScan/RustScan.git RustScan # RustScan
install_pip shodan # Shodan
install_go github.com/s0md3v/smap/cmd/smap@latest smap # smap
install_git https://github.com/1N3/Sn1per.git Sn1per # Sn1per
pkg_install sqlmap # SQLMap
install_go github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest subfinder # Subfinder
install_pip sublist3r # Sublist3r
pkg_install tcpdump # tcpdump
install_git https://github.com/urbanadventurer/urlcrazy.git urlcrazy # URLCrazy
install_go github.com/tomnomnom/waybackurls@latest waybackurls # waybackurls
install_git https://github.com/yan4ikyt/webhack.git webhack # WebHack
install_pip wfuzz # Wfuzz
pkg_install whatweb # Whatweb
pkg_install wifite # Wifite
pkg_install wireshark # Wireshark
echo; say "Installing: 🖼️ Image & Facial Recognition (6 tools)"
install_pip deepface # DeepFace
install_git https://github.com/beurtschipper/Depix.git Depix # Depix
pkg_install libimage-exiftool-perl # ExifTool
install_pip face_recognition # facerecognition
install_git https://github.com/ElevenPaths/FOCA.git FOCA # FOCA
install_git https://github.com/GuidoBartoli/sherloq.git sherloq # Sherloq
echo
say "Installing: 🖼️ Image & Facial Recognition (6 tools)"
install_pip deepface # DeepFace
install_git https://github.com/beurtschipper/Depix.git Depix # Depix
pkg_install libimage-exiftool-perl # ExifTool
install_pip face_recognition # facerecognition
install_git https://github.com/ElevenPaths/FOCA.git FOCA # FOCA
install_git https://github.com/GuidoBartoli/sherloq.git sherloq # Sherloq
echo; say "Installing: 🕶️ Dark Web & Tor Intelligence (5 tools)"
echo
say "Installing: 🕶️ Dark Web & Tor Intelligence (5 tools)"
install_git https://github.com/itsmehacker/DarkScrape.git DarkScrape # DarkScrape
install_go github.com/s-rah/onionscan@latest onionscan # OnionScan
install_pip onionsearch # OnionSearch
install_go github.com/s-rah/onionscan@latest onionscan # OnionScan
install_pip onionsearch # OnionSearch
install_git https://github.com/SharadKumar97/OSINT-SPY.git OSINT-SPY # OSINT-SPY
install_git https://github.com/githacktools/TorghostNG.git TorghostNG # TorghostNG
install_git https://github.com/githacktools/TorghostNG.git TorghostNG # TorghostNG
echo; say "Installing: 💥 Data Breach & Leak Detection (11 tools)"
pkg_install cewl # CeWL
pkg_install crunch # Crunch
install_git https://github.com/Mebus/cupp.git cupp # Cupp
pkg_install hashcat # Hashcat
pkg_install hydra # Hydra
pkg_install john # John the Ripper
install_git https://github.com/AlessandroZ/LaZagne.git LaZagne # LaZagne
pkg_install medusa # Medusa
install_git https://github.com/gentilkiwi/mimikatz.git mimikatz # Mimikatz
install_git https://github.com/lgandx/Responder.git Responder # Responder
install_git https://github.com/danielmiessler/SecLists.git SecLists # SecLists
echo
say "Installing: 💥 Data Breach & Leak Detection (11 tools)"
pkg_install cewl # CeWL
pkg_install crunch # Crunch
install_git https://github.com/Mebus/cupp.git cupp # Cupp
pkg_install hashcat # Hashcat
pkg_install hydra # Hydra
pkg_install john # John the Ripper
install_git https://github.com/AlessandroZ/LaZagne.git LaZagne # LaZagne
pkg_install medusa # Medusa
install_git https://github.com/gentilkiwi/mimikatz.git mimikatz # Mimikatz
install_git https://github.com/lgandx/Responder.git Responder # Responder
install_git https://github.com/danielmiessler/SecLists.git SecLists # SecLists
echo; say "Installing: 🏢 Company & Business Intel (2 tools)"
install_pip opencorporates # opencorporates-cli
install_git https://github.com/s0md3v/Orbit.git Orbit # Orbit
echo
say "Installing: 🏢 Company & Business Intel (2 tools)"
install_pip opencorporates # opencorporates-cli
install_git https://github.com/s0md3v/Orbit.git Orbit # Orbit
echo; say "Installing: ₿ Cryptocurrency & Blockchain (1 tools)"
install_pip etherscan-python # etherscan-py
echo
say "Installing: ₿ Cryptocurrency & Blockchain (1 tools)"
install_pip etherscan-python # etherscan-py
echo; say "Installing: 🦠 Malware & Threat Intelligence (2 tools)"
install_git https://github.com/MISP/MISP.git MISP # MISP
pkg_install yara # YARA
echo
say "Installing: 🦠 Malware & Threat Intelligence (2 tools)"
install_git https://github.com/MISP/MISP.git MISP # MISP
pkg_install yara # YARA
echo; say "Installing: 🔍 Search & Dorking Tools (6 tools)"
install_pip censys # Censys CLI
install_git https://github.com/jgor/dork-cli.git dork-cli # dork-cli
install_git https://github.com/m3n0sd0n4ld/GooFuzz.git GooFuzz # GooFuzz
install_git https://github.com/opsdisk/pagodo.git pagodo # Pagodo
install_pip shodan # Shodan CLI
install_go github.com/projectdiscovery/uncover/cmd/uncover@latest uncover # uncover
echo
say "Installing: 🔍 Search & Dorking Tools (6 tools)"
install_pip censys # Censys CLI
install_git https://github.com/jgor/dork-cli.git dork-cli # dork-cli
install_git https://github.com/m3n0sd0n4ld/GooFuzz.git GooFuzz # GooFuzz
install_git https://github.com/opsdisk/pagodo.git pagodo # Pagodo
install_pip shodan # Shodan CLI
install_go github.com/projectdiscovery/uncover/cmd/uncover@latest uncover # uncover
echo; say "Installing: 📄 Document & Metadata Analysis (10 tools)"
pkg_install autopsy # Autopsy
pkg_install binwalk # Binwalk
pkg_install bulk-extractor # Bulk Extractor
pkg_install foremost # Foremost
install_go github.com/tillson/git-hound@latest git-hound # git-hound
install_go github.com/gitleaks/gitleaks/v8@latest v8 # gitleaks
install_pip metagoofil # Metagoofil
pkg_install scalpel # Scalpel
install_pip volatility3 # Volatility
install_pip xeuledoc # XeuleDoc
echo
say "Installing: 📄 Document & Metadata Analysis (10 tools)"
pkg_install autopsy # Autopsy
pkg_install binwalk # Binwalk
pkg_install bulk-extractor # Bulk Extractor
pkg_install foremost # Foremost
install_go github.com/tillson/git-hound@latest git-hound # git-hound
install_go github.com/gitleaks/gitleaks/v8@latest v8 # gitleaks
install_pip metagoofil # Metagoofil
pkg_install scalpel # Scalpel
install_pip volatility3 # Volatility
install_pip xeuledoc # XeuleDoc
echo; say "Installing: 🧑 People & Identity OSINT (16 tools)"
install_git https://github.com/Ignitetch/AdvPhishing.git AdvPhishing # AdvPhishing
install_git https://github.com/An0nUD4Y/blackeye.git blackeye # BlackEye
install_pip crosslinked # CrossLinked
install_git https://github.com/daprofiler/DaProfiler.git DaProfiler # DaProfiler
install_go github.com/kgretzky/evilginx2@latest evilginx2 # Evilginx2
install_git https://github.com/initstring/linkedin2username.git linkedin2username # linkedin2username
install_go github.com/drk1wi/Modlishka@latest Modlishka # Modlishka
install_git https://github.com/Lucksi/Mr.Holmes.git Mr.Holmes # Mr.Holmes
install_git https://github.com/htr-tech/nexphisher.git nexphisher # NexPhisher
install_git https://github.com/thewhiteh4t/seeker.git seeker # Seeker
pkg_install set # SET (Social Engineering Toolkit)
install_git https://github.com/UndeadSec/SocialFish.git SocialFish # SocialFish
install_git https://github.com/ultrasecurity/Storm-Breaker.git Storm-Breaker # Storm-Breaker
install_git https://github.com/PerezMascato/URLCADIZ.git URLCADIZ # URLCADIZ
install_pip zehef # Zehef
install_git https://github.com/htr-tech/zphisher.git zphisher # Zphisher
echo
say "Installing: 🧑 People & Identity OSINT (16 tools)"
install_git https://github.com/Ignitetch/AdvPhishing.git AdvPhishing # AdvPhishing
install_git https://github.com/An0nUD4Y/blackeye.git blackeye # BlackEye
install_pip crosslinked # CrossLinked
install_git https://github.com/daprofiler/DaProfiler.git DaProfiler # DaProfiler
install_go github.com/kgretzky/evilginx2@latest evilginx2 # Evilginx2
install_git https://github.com/initstring/linkedin2username.git linkedin2username # linkedin2username
install_go github.com/drk1wi/Modlishka@latest Modlishka # Modlishka
install_git https://github.com/Lucksi/Mr.Holmes.git Mr.Holmes # Mr.Holmes
install_git https://github.com/htr-tech/nexphisher.git nexphisher # NexPhisher
install_git https://github.com/thewhiteh4t/seeker.git seeker # Seeker
pkg_install set # SET (Social Engineering Toolkit)
install_git https://github.com/UndeadSec/SocialFish.git SocialFish # SocialFish
install_git https://github.com/ultrasecurity/Storm-Breaker.git Storm-Breaker # Storm-Breaker
install_git https://github.com/PerezMascato/URLCADIZ.git URLCADIZ # URLCADIZ
install_pip zehef # Zehef
install_git https://github.com/htr-tech/zphisher.git zphisher # Zphisher
echo; say "Installing: 📡 IoT & Device Intelligence (10 tools)"
install_git https://github.com/AhMyth/AhMyth-Android-RAT.git AhMyth-Android-RAT # AhMyth Android RAT
pkg_install apktool # Apktool
install_pip frida-tools # Frida
install_pip greynoise # GreyNoise CLI
pkg_install jadx # jadx
install_git https://github.com/g0tmi1k/msfpc.git msfpc # MSFPC
install_pip objection # Objection
install_pip shodan # Shodan (IoT)
install_git https://github.com/shubhamrooter/ShodanSpider.git ShodanSpider # ShodanSpider
install_pip zoomeye # ZoomEye CLI
echo
say "Installing: 📡 IoT & Device Intelligence (10 tools)"
install_git https://github.com/AhMyth/AhMyth-Android-RAT.git AhMyth-Android-RAT # AhMyth Android RAT
pkg_install apktool # Apktool
install_pip frida-tools # Frida
install_pip greynoise # GreyNoise CLI
pkg_install jadx # jadx
install_git https://github.com/g0tmi1k/msfpc.git msfpc # MSFPC
install_pip objection # Objection
install_pip shodan # Shodan (IoT)
install_git https://github.com/shubhamrooter/ShodanSpider.git ShodanSpider # ShodanSpider
install_pip zoomeye # ZoomEye CLI
echo; say "Installing: 🧰 Frameworks & All-in-One Platforms (12 tools)"
install_git https://github.com/thewhiteh4t/FinalRecon.git FinalRecon # FinalRecon
install_git https://github.com/Manisso/fsociety.git fsociety # fsociety
install_git https://github.com/Z4nzu/hackingtool.git hackingtool # Hackingtool
install_pip harpoon # Harpoon
pkg_install maltego # Maltego
install_git https://github.com/ninoseki/mitaka.git mitaka # Mitaka
install_git https://github.com/loseys/Oblivion.git Oblivion # Oblivion
install_git https://github.com/Bafomet666/OSINT-SAN.git OSINT-SAN # OSINT-SAN
install_git https://github.com/j3ssie/osmedeus.git osmedeus # osmedeus
install_pip recon-ng # Recon-ng
pkg_install sn0int # sn0int
install_pip spiderfoot # SpiderFoot
echo
say "Installing: 🧰 Frameworks & All-in-One Platforms (12 tools)"
install_git https://github.com/thewhiteh4t/FinalRecon.git FinalRecon # FinalRecon
install_git https://github.com/Manisso/fsociety.git fsociety # fsociety
install_git https://github.com/Z4nzu/hackingtool.git hackingtool # Hackingtool
install_pip harpoon # Harpoon
pkg_install maltego # Maltego
install_git https://github.com/ninoseki/mitaka.git mitaka # Mitaka
install_git https://github.com/loseys/Oblivion.git Oblivion # Oblivion
install_git https://github.com/Bafomet666/OSINT-SAN.git OSINT-SAN # OSINT-SAN
install_git https://github.com/j3ssie/osmedeus.git osmedeus # osmedeus
install_pip recon-ng # Recon-ng
pkg_install sn0int # sn0int
install_pip spiderfoot # SpiderFoot
echo; say "Installing: 🔒 Free VPN & Privacy Tools (12 tools)"
install_git https://github.com/trailofbits/algo.git algo # Algo VPN
install_git https://github.com/HACK3RY2J/Anon-SMS.git Anon-SMS # Anon-SMS
install_git https://github.com/Und3rf10w/kali-anonsurf.git kali-anonsurf # Anonsurf
pkg_install bleachbit # BleachBit
pkg_install macchanger # MAC Changer
pkg_install mullvad-vpn # Mullvad VPN
pkg_install openvpn # OpenVPN
install_pip protonvpn-cli # Proton VPN Free
pkg_install riseup-vpn # RiseupVPN
pkg_install torbrowser-launcher # Tor Browser
pkg_install veracrypt # VeraCrypt
pkg_install wireguard # WireGuard
echo
say "Installing: 🔒 Free VPN & Privacy Tools (12 tools)"
install_git https://github.com/trailofbits/algo.git algo # Algo VPN
install_git https://github.com/HACK3RY2J/Anon-SMS.git Anon-SMS # Anon-SMS
install_git https://github.com/Und3rf10w/kali-anonsurf.git kali-anonsurf # Anonsurf
pkg_install bleachbit # BleachBit
pkg_install macchanger # MAC Changer
pkg_install mullvad-vpn # Mullvad VPN
pkg_install openvpn # OpenVPN
install_pip protonvpn-cli # Proton VPN Free
pkg_install riseup-vpn # RiseupVPN
pkg_install torbrowser-launcher # Tor Browser
pkg_install veracrypt # VeraCrypt
pkg_install wireguard # WireGuard
print_summary

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash
# ===================================================================
# ⚔️ Red team / offensive
# Part of awesome-osint-arsenal v3.4
# Part of awesome-osint-arsenal v2.1
# Auto-detects: Kali / Debian / Ubuntu / Parrot / Mint / Pop!_OS /
# Arch / Manjaro / EndeavourOS /
# Fedora / RHEL / CentOS / Rocky / Alma
@ -9,148 +9,198 @@
# ===================================================================
set -uo pipefail
RED="\033[0;31m"; GRN="\033[0;32m"; YLW="\033[1;33m"; BLU="\033[0;34m"; CYN="\033[0;36m"; NC="\033[0m"
RED="\033[0;31m"
GRN="\033[0;32m"
YLW="\033[1;33m"
BLU="\033[0;34m"
CYN="\033[0;36m"
NC="\033[0m"
LOGFILE="${LOGFILE:-$HOME/osint-install-errors.log}"
INSTALLED=${INSTALLED:-0}; SKIPPED=${SKIPPED:-0}; FAILED=${FAILED:-0}
INSTALLED=${INSTALLED:-0}
SKIPPED=${SKIPPED:-0}
FAILED=${FAILED:-0}
declare -ga FAILED_TOOLS=()
say() { echo -e "${BLU}[*]${NC} $*"; }
ok() { echo -e "${GRN}[✓]${NC} $*"; INSTALLED=$((INSTALLED+1)); }
skip() { echo -e "${YLW}[~]${NC} $*"; SKIPPED=$((SKIPPED+1)); }
fail() { echo -e "${RED}[✗]${NC} $*"; FAILED=$((FAILED+1)); FAILED_TOOLS+=("$1"); echo "FAIL: $*" >> "$LOGFILE"; }
say() { echo -e "${BLU}[*]${NC} $*"; }
ok() {
echo -e "${GRN}[✓]${NC} $*"
INSTALLED=$((INSTALLED + 1))
}
skip() {
echo -e "${YLW}[~]${NC} $*"
SKIPPED=$((SKIPPED + 1))
}
fail() {
echo -e "${RED}[✗]${NC} $*"
FAILED=$((FAILED + 1))
FAILED_TOOLS+=("$1")
echo "FAIL: $*" >>"$LOGFILE"
}
require_root() {
if [ "$EUID" -ne 0 ]; then echo "Please run as root: sudo bash $0"; exit 1; fi
if [ "$EUID" -ne 0 ]; then
echo "Please run as root: sudo bash $0"
exit 1
fi
}
detect_distro() {
if [ -f /etc/os-release ]; then
. /etc/os-release
case "${ID,,}" in
kali|debian|ubuntu|parrot|raspbian|linuxmint|pop|elementary) PKG="apt" ;;
arch|manjaro|endeavouros|garuda|artix) PKG="pacman" ;;
fedora|rhel|centos|rocky|almalinux|ol) PKG="dnf" ;;
*) PKG="unknown" ;;
esac
else
PKG="unknown"
fi
export PKG
echo -e "${CYN}[i]${NC} Detected package manager: $PKG"
if [ "$PKG" = "unknown" ]; then
echo -e "${YLW}[!]${NC} Unknown distro — git/pip/go installs will work, system-package installs will be skipped."
fi
if [ -f /etc/os-release ]; then
. /etc/os-release
case "${ID,,}" in
kali | debian | ubuntu | parrot | raspbian | linuxmint | pop | elementary) PKG="apt" ;;
arch | manjaro | endeavouros | garuda | artix) PKG="pacman" ;;
fedora | rhel | centos | rocky | almalinux | ol) PKG="dnf" ;;
*) PKG="unknown" ;;
esac
else
PKG="unknown"
fi
export PKG
echo -e "${CYN}[i]${NC} Detected package manager: $PKG"
if [ "$PKG" = "unknown" ]; then
echo -e "${YLW}[!]${NC} Unknown distro — git/pip/go installs will work, system-package installs will be skipped."
fi
}
pkg_install() {
local pkg="$1"
case "$PKG" in
apt)
if dpkg -s "$pkg" >/dev/null 2>&1; then skip "$pkg already installed"; return; fi
if apt install -y "$pkg" >/dev/null 2>&1; then ok "$pkg (apt)"; else fail "$pkg (apt)"; fi
;;
pacman)
if pacman -Qi "$pkg" >/dev/null 2>&1; then skip "$pkg already installed"; return; fi
if pacman -S --noconfirm --needed "$pkg" >/dev/null 2>&1; then ok "$pkg (pacman)"; else fail "$pkg (pacman — may not be in repo, try AUR)"; fi
;;
dnf)
if rpm -q "$pkg" >/dev/null 2>&1; then skip "$pkg already installed"; return; fi
if dnf install -y "$pkg" >/dev/null 2>&1; then ok "$pkg (dnf)"; else fail "$pkg (dnf — may not be in repo)"; fi
;;
*)
fail "$pkg — unknown package manager, install manually"
;;
esac
local pkg="$1"
case "$PKG" in
apt)
if dpkg -s "$pkg" >/dev/null 2>&1; then
skip "$pkg already installed"
return
fi
if apt install -y "$pkg" >/dev/null 2>&1; then ok "$pkg (apt)"; else fail "$pkg (apt)"; fi
;;
pacman)
if pacman -Qi "$pkg" >/dev/null 2>&1; then
skip "$pkg already installed"
return
fi
if pacman -S --noconfirm --needed "$pkg" >/dev/null 2>&1; then ok "$pkg (pacman)"; else fail "$pkg (pacman — may not be in repo, try AUR)"; fi
;;
dnf)
if rpm -q "$pkg" >/dev/null 2>&1; then
skip "$pkg already installed"
return
fi
if dnf install -y "$pkg" >/dev/null 2>&1; then ok "$pkg (dnf)"; else fail "$pkg (dnf — may not be in repo)"; fi
;;
*)
fail "$pkg — unknown package manager, install manually"
;;
esac
}
install_pip() {
local pkg="$1"
if pip3 show "$pkg" >/dev/null 2>&1; then skip "$pkg (pip) already installed"; return; fi
if pip3 install --break-system-packages "$pkg" >/dev/null 2>&1; then ok "$pkg (pip)"; else fail "$pkg (pip)"; fi
local pkg="$1"
if pip3 show "$pkg" >/dev/null 2>&1; then
skip "$pkg (pip) already installed"
return
fi
if pip3 install --break-system-packages "$pkg" >/dev/null 2>&1; then ok "$pkg (pip)"; else fail "$pkg (pip)"; fi
}
install_go() {
local mod="$1" name="$2"
if ! command -v go >/dev/null 2>&1; then fail "$name — go not installed"; return; fi
if command -v "$name" >/dev/null 2>&1; then skip "$name already installed"; return; fi
if go install "$mod" >/dev/null 2>&1; then ok "$name (go)"; else fail "$name (go)"; fi
local mod="$1" name="$2"
if ! command -v go >/dev/null 2>&1; then
fail "$name — go not installed"
return
fi
if command -v "$name" >/dev/null 2>&1; then
skip "$name already installed"
return
fi
if go install "$mod" >/dev/null 2>&1; then ok "$name (go)"; else fail "$name (go)"; fi
}
install_git() {
local repo="$1" dst="$2"
mkdir -p /opt/osint-arsenal
if [ -d "/opt/osint-arsenal/$dst" ]; then skip "$dst already cloned"; return; fi
if git clone --depth=1 "$repo" "/opt/osint-arsenal/$dst" >/dev/null 2>&1; then ok "$dst (git)"; else fail "$dst (git)"; fi
local repo="$1" dst="$2"
mkdir -p /opt/osint-arsenal
if [ -d "/opt/osint-arsenal/$dst" ]; then
skip "$dst already cloned"
return
fi
if git clone --depth=1 "$repo" "/opt/osint-arsenal/$dst" >/dev/null 2>&1; then ok "$dst (git)"; else fail "$dst (git)"; fi
}
install_docker() {
local image="$1" name="$2"
if ! command -v docker >/dev/null 2>&1; then fail "$name — docker not installed"; return; fi
if docker image inspect "$image" >/dev/null 2>&1; then skip "$name (docker) already pulled"; return; fi
if docker pull "$image" >/dev/null 2>&1; then ok "$name (docker)"; else fail "$name (docker)"; fi
local image="$1" name="$2"
if ! command -v docker >/dev/null 2>&1; then
fail "$name — docker not installed"
return
fi
if docker image inspect "$image" >/dev/null 2>&1; then
skip "$name (docker) already pulled"
return
fi
if docker pull "$image" >/dev/null 2>&1; then ok "$name (docker)"; else fail "$name (docker)"; fi
}
bootstrap_basics() {
case "$PKG" in
apt)
apt update -y >/dev/null 2>&1 || true
apt install -y python3 python3-pip git curl wget golang-go >/dev/null 2>&1 || true
;;
pacman)
pacman -Sy --noconfirm >/dev/null 2>&1 || true
pacman -S --noconfirm --needed python python-pip git curl wget go >/dev/null 2>&1 || true
;;
dnf)
dnf install -y python3 python3-pip git curl wget golang >/dev/null 2>&1 || true
;;
esac
case "$PKG" in
apt)
apt update -y >/dev/null 2>&1 || true
apt install -y python3 python3-pip git curl wget golang-go >/dev/null 2>&1 || true
;;
pacman)
pacman -Sy --noconfirm >/dev/null 2>&1 || true
pacman -S --noconfirm --needed python python-pip git curl wget go >/dev/null 2>&1 || true
;;
dnf)
dnf install -y python3 python3-pip git curl wget golang >/dev/null 2>&1 || true
;;
esac
}
print_summary() {
echo
echo "============================================="
echo -e " Installed: ${GRN}$INSTALLED${NC}"
echo -e " Skipped: ${YLW}$SKIPPED${NC}"
echo -e " Failed: ${RED}$FAILED${NC}"
echo "============================================="
if (( FAILED > 0 )); then
echo -e "${RED}Failed tools:${NC} ${FAILED_TOOLS[@]:-}"
echo "See $LOGFILE for details."
fi
echo
echo "============================================="
echo -e " Installed: ${GRN}$INSTALLED${NC}"
echo -e " Skipped: ${YLW}$SKIPPED${NC}"
echo -e " Failed: ${RED}$FAILED${NC}"
echo "============================================="
if ((FAILED > 0)); then
echo -e "${RED}Failed tools:${NC} ${FAILED_TOOLS[@]:-}"
echo "See $LOGFILE for details."
fi
}
require_root
detect_distro
bootstrap_basics
echo; say "Installing: ⚔️ Red Team & Offensive Security (31 tools)"
install_git https://github.com/infosecn1nja/AD-Attack-Defense.git AD-Attack-Defense # AD Attack & Defense
install_pip arjun # Arjun
install_git https://github.com/BloodHoundAD/BloodHound.git BloodHound # BloodHound
install_docker specterops/bloodhound:latest 'BloodHound CE' # BloodHound CE
install_pip certipy-ad # Certipy
install_pip crackmapexec # CrackMapExec
install_go github.com/dwisiswant0/crlfuzz/cmd/crlfuzz@latest crlfuzz # CRLFuzz
install_go github.com/hahwul/dalfox/v2@latest v2 # Dalfox
pkg_install evil-winrm # Evil-WinRM
install_git https://github.com/r0oth3x49/ghauri.git ghauri # Ghauri
install_go github.com/KathanP19/Gxss@latest Gxss # Gxss
install_git https://github.com/HavocFramework/Havoc.git Havoc # Havoc
install_pip impacket # Impacket
install_go github.com/ropnop/kerbrute@latest kerbrute # Kerbrute
install_go github.com/assetnote/kiterunner/cmd/kr@latest kr # kiterunner
install_go github.com/Ne0nd0g/merlin@latest merlin # Merlin
pkg_install metasploit-framework # Metasploit Framework
install_git https://github.com/its-a-feature/Mythic.git Mythic # Mythic
install_pip git # NetExec (nxc)
install_git https://github.com/codingo/NoSQLMap.git NoSQLMap # NoSQLMap
install_git https://github.com/projectdiscovery/nuclei-templates.git nuclei-templates # Nuclei Templates
install_git https://github.com/PortSwigger/param-miner.git param-miner # ParamMiner (Burp ext)
install_git https://github.com/swisskyrepo/PayloadsAllTheThings.git PayloadsAllTheThings # PayloadsAllTheThings
install_git https://github.com/topotam/PetitPotam.git PetitPotam # PetitPotam
install_git https://github.com/BC-SECURITY/Empire.git Empire # PowerShell Empire
install_git https://github.com/GhostPack/Rubeus.git Rubeus # Rubeus
install_git https://github.com/BloodHoundAD/SharpHound.git SharpHound # SharpHound
install_go github.com/bishopfox/sliver/server@latest server # Sliver
install_git https://github.com/swisskyrepo/SSRFmap.git SSRFmap # SSRFmap
install_git https://github.com/t3l3machus/Villain.git Villain # Villain
install_git https://github.com/s0md3v/XSStrike.git XSStrike # XSStrike
echo
say "Installing: ⚔️ Red Team & Offensive Security (31 tools)"
install_git https://github.com/infosecn1nja/AD-Attack-Defense.git AD-Attack-Defense # AD Attack & Defense
install_pip arjun # Arjun
install_git https://github.com/BloodHoundAD/BloodHound.git BloodHound # BloodHound
install_docker specterops/bloodhound:latest 'BloodHound CE' # BloodHound CE
install_pip certipy-ad # Certipy
install_pip crackmapexec # CrackMapExec
install_go github.com/dwisiswant0/crlfuzz/cmd/crlfuzz@latest crlfuzz # CRLFuzz
install_go github.com/hahwul/dalfox/v2@latest v2 # Dalfox
pkg_install evil-winrm # Evil-WinRM
install_git https://github.com/r0oth3x49/ghauri.git ghauri # Ghauri
install_go github.com/KathanP19/Gxss@latest Gxss # Gxss
install_git https://github.com/HavocFramework/Havoc.git Havoc # Havoc
install_pip impacket # Impacket
install_go github.com/ropnop/kerbrute@latest kerbrute # Kerbrute
install_go github.com/assetnote/kiterunner/cmd/kr@latest kr # kiterunner
install_go github.com/Ne0nd0g/merlin@latest merlin # Merlin
pkg_install metasploit-framework # Metasploit Framework
install_git https://github.com/its-a-feature/Mythic.git Mythic # Mythic
install_pip git
install_pip netexec # NetExec (nxc)
install_git https://github.com/codingo/NoSQLMap.git NoSQLMap # NoSQLMap
install_git https://github.com/projectdiscovery/nuclei-templates.git nuclei-templates # Nuclei Templates
install_git https://github.com/PortSwigger/param-miner.git param-miner # ParamMiner (Burp ext)
install_git https://github.com/swisskyrepo/PayloadsAllTheThings.git PayloadsAllTheThings # PayloadsAllTheThings
install_git https://github.com/topotam/PetitPotam.git PetitPotam # PetitPotam
install_git https://github.com/BC-SECURITY/Empire.git Empire # PowerShell Empire
install_git https://github.com/GhostPack/Rubeus.git Rubeus # Rubeus
install_git https://github.com/BloodHoundAD/SharpHound.git SharpHound # SharpHound
install_go github.com/bishopfox/sliver/server@latest server # Sliver
install_git https://github.com/swisskyrepo/SSRFmap.git SSRFmap # SSRFmap
install_git https://github.com/t3l3machus/Villain.git Villain # Villain
install_git https://github.com/s0md3v/XSStrike.git XSStrike # XSStrike
print_summary

144
termux.sh
View File

@ -1,82 +1,113 @@
#!/usr/bin/env bash
# ===================================================================
# Awesome OSINT Arsenal — Termux (Android) installer
# Subset of tools known to work on Termux.
# Run from Termux:
# pkg install -y git && git clone <repo> && cd <repo> && bash install-termux.sh
# Optimized for ARM64/ARM environments and compilation requirements.
# ===================================================================
set -uo pipefail
RED="\033[0;31m"; GRN="\033[0;32m"; YLW="\033[1;33m"; BLU="\033[0;34m"; NC="\033[0m"
RED="\033[0;31m"
GRN="\033[0;32m"
YLW="\033[1;33m"
BLU="\033[0;34m"
NC="\033[0m"
LOGFILE="$HOME/osint-install-errors.log"
: > "$LOGFILE"
INSTALLED=0; SKIPPED=0; FAILED=0
: >"$LOGFILE"
INSTALLED=0
SKIPPED=0
FAILED=0
declare -a FAILED_TOOLS=()
say() { echo -e "${BLU}[*]${NC} $*"; }
ok() { echo -e "${GRN}[✓]${NC} $*"; INSTALLED=$((INSTALLED+1)); }
skip() { echo -e "${YLW}[~]${NC} $*"; SKIPPED=$((SKIPPED+1)); }
fail() { echo -e "${RED}[✗]${NC} $*"; FAILED=$((FAILED+1)); FAILED_TOOLS+=("$1"); echo "FAIL: $*" >> "$LOGFILE"; }
say() { echo -e "${BLU}[*]${NC} $*"; }
ok() {
echo -e "${GRN}[✓]${NC} $*"
INSTALLED=$((INSTALLED + 1))
}
skip() {
echo -e "${YLW}[~]${NC} $*"
SKIPPED=$((SKIPPED + 1))
}
fail() {
echo -e "${RED}[✗]${NC} $*"
FAILED=$((FAILED + 1))
FAILED_TOOLS+=("$1")
echo "FAIL: $*" >>"$LOGFILE"
}
install_pkg() {
local p="$1"
if dpkg -s "$p" >/dev/null 2>&1; then skip "$p already installed"; return; fi
if pkg install -y "$p" >/dev/null 2>&1; then ok "$p (pkg)"; else fail "$p (pkg)"; fi
if dpkg -s "$p" >/dev/null 2>&1; then
skip "$p already installed"
return
fi
if pkg install -y "$p" >>"$LOGFILE" 2>&1; then ok "$p (pkg)"; else fail "$p (pkg)"; fi
}
install_pip() {
local p="$1"
if pip show "$p" >/dev/null 2>&1; then skip "$p (pip) already installed"; return; fi
if pip install "$p" >/dev/null 2>&1; then ok "$p (pip)"; else fail "$p (pip)"; fi
if pip show "$p" >/dev/null 2>&1; then
skip "$p (pip) already installed"
return
fi
# Note: Termux occasionally requires --break-system-packages depending on python environment state
if pip install --break-system-packages "$p" >>"$LOGFILE" 2>&1 || pip install "$p" >>"$LOGFILE" 2>&1; then
ok "$p (pip)"
else
fail "$p (pip)"
fi
}
install_git() {
local repo="$1" dst="$2"
mkdir -p "$HOME/osint-arsenal"
if [ -d "$HOME/osint-arsenal/$dst" ]; then skip "$dst already cloned"; return; fi
if git clone --depth=1 "$repo" "$HOME/osint-arsenal/$dst" >/dev/null 2>&1; then ok "$dst (git)"; else fail "$dst (git)"; fi
if [ -d "$HOME/osint-arsenal/$dst" ]; then
skip "$dst already cloned"
return
fi
if git clone --depth=1 "$repo" "$HOME/osint-arsenal/$dst" >>"$LOGFILE" 2>&1; then ok "$dst (git)"; else fail "$dst (git)"; fi
}
say "Updating Termux..."
say "Updating Termux ecosystem repositories..."
pkg update -y >/dev/null 2>&1 || true
pkg upgrade -y >/dev/null 2>&1 || true
say "Installing core packages..."
pkg install -y python python-pip git curl wget openssh nmap hydra perl >/dev/null 2>&1 || true
say "Installing system compilation environment & dependencies (Essential for ARM architecture)..."
# build-essential, clang, python-dev are REQUIRED to build wheel packages natively on Android
pkg install -y python python-pip python-dev git curl wget openssh nmap hydra perl php \
build-essential clang libffi libjpeg-turbo libcrypt libxml2 libxslt >/dev/null 2>&1 || true
termux-setup-storage 2>/dev/null || true
say "Installing Termux-compatible tools..."
install_pkg aircrack-ng # Aircrack-ng
install_pip blackbird-osint # Blackbird
install_pip censys # Censys CLI
install_pip dnsrecon # dnsrecon
install_pip dnstwist # dnstwist
install_pkg libimage-exiftool-perl # ExifTool
install_git https://github.com/Manisso/fsociety.git fsociety # fsociety
install_pip gitrecon # Gitrecon
install_pip h8mail # h8mail
install_pip holehe # Holehe
install_pkg hydra # Hydra
install_pip instaloader # Instaloader
install_git https://github.com/maldevel/IPGeoLocation.git IPGeoLocation # IPGeoLocation
install_pkg john # John the Ripper
install_pip maigret # Maigret
install_pip metagoofil # Metagoofil
install_git https://github.com/htr-tech/nexphisher.git nexphisher # NexPhisher
install_pkg nmap # Nmap
install_git https://github.com/s0md3v/Orbit.git Orbit # Orbit
install_pip phoneinfoga # PhoneInfoga
install_git https://github.com/aerosol-can/PhoneSploit.git PhoneSploit # PhoneSploit
install_pip sherlock-project # Sherlock
install_pip shodan # Shodan
install_pip shodan # Shodan CLI
install_pip snoop # Snoop
install_pip snscrape # snscrape
install_pip social-analyzer # Social Analyzer
install_git https://github.com/ultrasecurity/Storm-Breaker.git Storm-Breaker # Storm-Breaker
install_pip sublist3r # Sublist3r
install_pip theHarvester # theHarvester
install_pip trufflehog # trufflehog
install_git https://github.com/wishihab/userrecon.git userrecon # UserRecon
install_git https://github.com/htr-tech/zphisher.git zphisher # Zphisher
install_pkg aircrack-ng
install_pkg exiftool # FIXED: Correct Termux package name
install_pkg hydra
install_pkg john
install_pkg nmap
install_pip blackbird-osint
install_pip censys
install_pip dnsrecon
install_pip dnstwist
install_pip gitrecon
install_pip h8mail
install_pip holehe
install_pip instaloader
install_pip maigret
install_pip metagoofil
install_pip sherlock-project
install_pip shodan # FIXED: Deduplicated duplicate line entry
install_pip snoop
install_pip snscrape
install_pip social-analyzer
install_pip sublist3r
install_pip theHarvester
install_git https://github.com/Manisso/fsociety.git fsociety
install_git https://github.com/maldevel/IPGeoLocation.git IPGeoLocation
install_git https://github.com/htr-tech/nexphisher.git nexphisher # Requires PHP (installed above)
install_git https://github.com/s0md3v/Orbit.git Orbit
install_git https://github.com/aerosol-can/PhoneSploit.git PhoneSploit
install_git https://github.com/ultrasecurity/Storm-Breaker.git Storm-Breaker # Requires PHP
install_git https://github.com/wishihab/userrecon.git userrecon
install_git https://github.com/htr-tech/zphisher.git zphisher # Requires PHP
echo
echo "============================================="
@ -84,10 +115,9 @@ echo -e " Installed: ${GRN}$INSTALLED${NC}"
echo -e " Skipped: ${YLW}$SKIPPED${NC}"
echo -e " Failed: ${RED}$FAILED${NC}"
echo "============================================="
if (( FAILED > 0 )); then
if ((FAILED > 0)); then
echo -e "${RED}Failed tools:${NC} ${FAILED_TOOLS[*]}"
echo "See $LOGFILE for details."
echo "Review comprehensive build errors here: $LOGFILE"
fi
echo
echo "Tools cloned to: $HOME/osint-arsenal/"
echo "For more tools, see the README.md — many require x86 Linux and won't run on Android."
echo "Tools mapped out to: $HOME/osint-arsenal/"