Version 2.1
This commit is contained in:
parent
91048feb22
commit
63abebdc14
21
LICENSE
21
LICENSE
|
|
@ -1,21 +0,0 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2026 barni
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
|
@ -0,0 +1,149 @@
|
|||
#!/usr/bin/env bash
|
||||
# ===================================================================
|
||||
# 🛡️ Blue team / defensive + threat intel
|
||||
# Part of awesome-osint-arsenal v3.4
|
||||
# Auto-detects: Kali / Debian / Ubuntu / Parrot / Mint / Pop!_OS /
|
||||
# Arch / Manjaro / EndeavourOS /
|
||||
# Fedora / RHEL / CentOS / Rocky / Alma
|
||||
# Best support: Kali / Debian / Ubuntu (apt-based)
|
||||
# ===================================================================
|
||||
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"
|
||||
LOGFILE="${LOGFILE:-$HOME/osint-install-errors.log}"
|
||||
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"; }
|
||||
|
||||
require_root() {
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
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
|
||||
}
|
||||
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
|
||||
}
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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: 🛡️ 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
|
||||
|
|
@ -0,0 +1,132 @@
|
|||
#!/usr/bin/env bash
|
||||
# ===================================================================
|
||||
# 🔧 Misc / catch-all
|
||||
# Part of awesome-osint-arsenal v3.4
|
||||
# Auto-detects: Kali / Debian / Ubuntu / Parrot / Mint / Pop!_OS /
|
||||
# Arch / Manjaro / EndeavourOS /
|
||||
# Fedora / RHEL / CentOS / Rocky / Alma
|
||||
# Best support: Kali / Debian / Ubuntu (apt-based)
|
||||
# ===================================================================
|
||||
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"
|
||||
LOGFILE="${LOGFILE:-$HOME/osint-install-errors.log}"
|
||||
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"; }
|
||||
|
||||
require_root() {
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
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
|
||||
}
|
||||
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
|
||||
}
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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: 🔧 Miscellaneous / Niche Tools (3 tools)"
|
||||
install_git https://github.com/RedSiege/EyeWitness.git EyeWitness # EyeWitness
|
||||
install_pip opencv-python # OpenCV
|
||||
install_pip trufflehog # trufflehog
|
||||
|
||||
print_summary
|
||||
|
|
@ -0,0 +1,136 @@
|
|||
#!/usr/bin/env bash
|
||||
# ===================================================================
|
||||
# 🔬 Digital forensics & RE
|
||||
# Part of awesome-osint-arsenal v3.4
|
||||
# Auto-detects: Kali / Debian / Ubuntu / Parrot / Mint / Pop!_OS /
|
||||
# Arch / Manjaro / EndeavourOS /
|
||||
# Fedora / RHEL / CentOS / Rocky / Alma
|
||||
# Best support: Kali / Debian / Ubuntu (apt-based)
|
||||
# ===================================================================
|
||||
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"
|
||||
LOGFILE="${LOGFILE:-$HOME/osint-install-errors.log}"
|
||||
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"; }
|
||||
|
||||
require_root() {
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
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
|
||||
}
|
||||
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
|
||||
}
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
print_summary
|
||||
|
|
@ -0,0 +1,135 @@
|
|||
#!/usr/bin/env bash
|
||||
# ===================================================================
|
||||
# 🔌 Hardware hacking & SDR
|
||||
# Part of awesome-osint-arsenal v3.4
|
||||
# Auto-detects: Kali / Debian / Ubuntu / Parrot / Mint / Pop!_OS /
|
||||
# Arch / Manjaro / EndeavourOS /
|
||||
# Fedora / RHEL / CentOS / Rocky / Alma
|
||||
# Best support: Kali / Debian / Ubuntu (apt-based)
|
||||
# ===================================================================
|
||||
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"
|
||||
LOGFILE="${LOGFILE:-$HOME/osint-install-errors.log}"
|
||||
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"; }
|
||||
|
||||
require_root() {
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
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
|
||||
}
|
||||
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
|
||||
}
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
print_summary
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
#!/usr/bin/env bash
|
||||
# ===================================================================
|
||||
# Awesome OSINT Arsenal — install everything
|
||||
# Runs each category installer in order.
|
||||
# Best support: Kali / Debian / Ubuntu / Parrot.
|
||||
# Partial: Arch / Manjaro / Fedora / RHEL.
|
||||
# For Android, use: bash termux.sh
|
||||
# ===================================================================
|
||||
set -uo pipefail
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Run me as root: sudo bash install.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
INSTALLERS=(
|
||||
"osint.sh"
|
||||
"redteam.sh"
|
||||
"blueteam.sh"
|
||||
"forensics.sh"
|
||||
"hardware.sh"
|
||||
"labs.sh"
|
||||
"extras.sh"
|
||||
)
|
||||
|
||||
LOGFILE="$HOME/osint-install-errors.log"
|
||||
: > "$LOGFILE"
|
||||
|
||||
for inst in "${INSTALLERS[@]}"; do
|
||||
echo
|
||||
echo "==========================================="
|
||||
echo " Running: $inst"
|
||||
echo "==========================================="
|
||||
bash "$inst"
|
||||
done
|
||||
|
||||
echo
|
||||
echo "==========================================="
|
||||
echo " ALL DONE"
|
||||
echo " Failures (if any) logged to: $LOGFILE"
|
||||
echo "==========================================="
|
||||
|
|
@ -1,422 +0,0 @@
|
|||
#!/bin/bash
|
||||
# ============================================================
|
||||
# AWESOME OSINT ARSENAL - Kali Linux Full Installer
|
||||
# Source: github.com/rawfilejson/awesome-osint-arsenal
|
||||
# For authorized security research & OSINT only
|
||||
# ============================================================
|
||||
|
||||
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'
|
||||
CYAN='\033[0;36m'; NC='\033[0m'; BOLD='\033[1m'
|
||||
|
||||
ok() { echo -e "${GREEN}[✔]${NC} $1"; }
|
||||
warn() { echo -e "${YELLOW}[!]${NC} $1"; }
|
||||
info() { echo -e "${CYAN}[*]${NC} $1"; }
|
||||
fail() { echo -e "${RED}[✘]${NC} $1"; }
|
||||
|
||||
TOOLS_DIR="/opt/osint-arsenal"
|
||||
ERRORS=()
|
||||
LOG_FILE="/var/log/osint-arsenal-install.log"
|
||||
START_TIME=$(date +%s)
|
||||
|
||||
banner() {
|
||||
cat << 'EOF'
|
||||
___ ____ ___ _ _ _____ _ ____ ____ _____
|
||||
/ _ \/ ___|_ _| \ | |_ _| / \ | _ \/ ___|| ____|
|
||||
| | | \___ \| || \| | | | / _ \ | |_) \___ \| _|
|
||||
| |_| |___) | || |\ | | | / ___ \| _ < ___) | |___
|
||||
\___/|____/___|_| \_| |_| /_/ \_\_| \_\____/|_____|
|
||||
|
||||
Awesome OSINT Arsenal - Kali Linux Installer
|
||||
For authorized security research only.
|
||||
EOF
|
||||
}
|
||||
|
||||
check_root() {
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
warn "Not running as root. Some installs may fail. Re-run with: sudo bash $0"
|
||||
fi
|
||||
}
|
||||
|
||||
run() {
|
||||
# run "description" command...
|
||||
local desc="$1"; shift
|
||||
if "$@" &>/dev/null; then
|
||||
ok "$desc"
|
||||
else
|
||||
fail "$desc"
|
||||
ERRORS+=("$desc")
|
||||
fi
|
||||
}
|
||||
|
||||
# ── 1. SYSTEM UPDATE ──────────────────────────────────────
|
||||
step_apt() {
|
||||
info "── STEP 1: System update & apt packages ──"
|
||||
apt-get update -y &>/dev/null && apt-get upgrade -y &>/dev/null
|
||||
ok "System updated"
|
||||
|
||||
APT_TOOLS=(
|
||||
# Core utilities
|
||||
git curl wget python3 python3-pip golang-go ruby-full build-essential
|
||||
# Network / scanning
|
||||
nmap masscan wireshark tcpdump netcat-openbsd
|
||||
# Web recon
|
||||
nikto dirb gobuster whatweb wfuzz feroxbuster
|
||||
# Password & brute force
|
||||
hydra john hashcat medusa cewl crunch
|
||||
# Wireless
|
||||
aircrack-ng kismet wifite reaver hcxtools fern-wifi-cracker
|
||||
bettercap ettercap-common
|
||||
# OSINT pre-installed
|
||||
theharvester recon-ng maltego spiderfoot set
|
||||
# Web app
|
||||
sqlmap burpsuite
|
||||
# Vuln scanners
|
||||
openvas
|
||||
# Forensics
|
||||
binwalk foremost bulk-extractor scalpel
|
||||
# Misc
|
||||
macchanger libimage-exiftool-perl apktool jadx
|
||||
dnsrecon
|
||||
)
|
||||
|
||||
for pkg in "${APT_TOOLS[@]}"; do
|
||||
if apt-get install -y "$pkg" &>/dev/null; then
|
||||
ok "apt: $pkg"
|
||||
else
|
||||
warn "apt: $pkg (skipped/unavailable)"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# ── 2. PYTHON (pip) TOOLS ─────────────────────────────────
|
||||
step_pip() {
|
||||
info "── STEP 2: Python pip tools ──"
|
||||
pip3 install --upgrade --break-system-packages pip &>/dev/null
|
||||
|
||||
PIP_TOOLS=(
|
||||
# Username / social OSINT
|
||||
sherlock-project maigret blackbird-osint nexfil
|
||||
social-analyzer socid-extractor osrframework
|
||||
socialscan holehe gitrecon
|
||||
# Email OSINT
|
||||
h8mail theHarvester mailto-analyzer
|
||||
# Phone OSINT
|
||||
phoneinfoga ignorant
|
||||
# DNS / domain
|
||||
dnsrecon sublist3r
|
||||
# Social media scrapers
|
||||
instaloader snscrape twayback toutatis
|
||||
telepathy telethon
|
||||
# Forensics / metadata
|
||||
volatility3 metagoofil
|
||||
# AI / face
|
||||
deepface face_recognition opencv-python
|
||||
# Web / fuzzing
|
||||
wfuzz paramspider
|
||||
# Misc
|
||||
spiderfoot recon-ng
|
||||
# Mobile
|
||||
frida-tools objection
|
||||
)
|
||||
|
||||
for pkg in "${PIP_TOOLS[@]}"; do
|
||||
if pip3 install --break-system-packages "$pkg" &>/dev/null; then
|
||||
ok "pip: $pkg"
|
||||
else
|
||||
warn "pip: $pkg (skipped/failed)"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# ── 3. GO TOOLS ───────────────────────────────────────────
|
||||
step_go() {
|
||||
info "── STEP 3: Go-based tools ──"
|
||||
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin:/root/go/bin
|
||||
export GOPATH=$HOME/go
|
||||
|
||||
GO_TOOLS=(
|
||||
"github.com/owasp-amass/amass/v4/...@master"
|
||||
"github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest"
|
||||
"github.com/projectdiscovery/httpx/cmd/httpx@latest"
|
||||
"github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest"
|
||||
"github.com/projectdiscovery/katana/cmd/katana@latest"
|
||||
"github.com/OJ/gobuster/v3@latest"
|
||||
"github.com/s-rah/onionscan@latest"
|
||||
"github.com/kgretzky/evilginx2@latest"
|
||||
"github.com/drk1wi/Modlishka@latest"
|
||||
)
|
||||
|
||||
for pkg in "${GO_TOOLS[@]}"; do
|
||||
name=$(basename "${pkg%%@*}")
|
||||
if go install "$pkg" &>/dev/null; then
|
||||
ok "go: $name"
|
||||
else
|
||||
warn "go: $name (failed)"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# ── 4. RUBY GEMS ──────────────────────────────────────────
|
||||
step_gems() {
|
||||
info "── STEP 4: Ruby gems ──"
|
||||
run "gem: wpscan" gem install wpscan
|
||||
}
|
||||
|
||||
# ── 5. GIT CLONE TOOLS ────────────────────────────────────
|
||||
step_git() {
|
||||
info "── STEP 5: Git clone tools → $TOOLS_DIR ──"
|
||||
mkdir -p "$TOOLS_DIR"
|
||||
cd "$TOOLS_DIR" || exit 1
|
||||
|
||||
declare -A REPOS=(
|
||||
# Username / social
|
||||
["userrecon"]="https://github.com/wishihab/userrecon.git"
|
||||
# Email
|
||||
["EmailAnalyzer"]="https://github.com/keraattin/EmailAnalyzer.git"
|
||||
["MailHeaderDetective"]="https://github.com/akajhon/MailHeaderDetective.git"
|
||||
["WhatMail"]="https://github.com/z0m31en7/WhatMail.git"
|
||||
["Infoga"]="https://github.com/m4ll0k/Infoga.git"
|
||||
# Domain / IP
|
||||
["IPGeoLocation"]="https://github.com/maldevel/IPGeoLocation.git"
|
||||
# Image / forensics
|
||||
["Depix"]="https://github.com/beurtschipper/Depix.git"
|
||||
# Social media
|
||||
["Osintgram"]="https://github.com/Datalux/Osintgram.git"
|
||||
["TeleGram-OSINTer"]="https://github.com/Alb-310/TeleGram-OSINTer.git"
|
||||
# Credential / password
|
||||
["LaZagne"]="https://github.com/AlessandroZ/LaZagne.git"
|
||||
["Responder"]="https://github.com/lgandx/Responder.git"
|
||||
# Dark web
|
||||
["OSINT-SPY"]="https://github.com/SharadKumar97/OSINT-SPY.git"
|
||||
["pwndb"]="https://github.com/coj337/pwndb.git"
|
||||
# Privacy / anon
|
||||
["kali-anonsurf"]="https://github.com/Und3rf10w/kali-anonsurf.git"
|
||||
["Anon-SMS"]="https://github.com/HACK3RY2J/Anon-SMS.git"
|
||||
# Web app scanning
|
||||
["LinkFinder"]="https://github.com/GerbenJavado/LinkFinder.git"
|
||||
["Photon"]="https://github.com/s0md3v/Photon.git"
|
||||
["URLCADIZ"]="https://github.com/PerezMascato/URLCADIZ.git"
|
||||
["webhack"]="https://github.com/yan4ikyt/webhack.git"
|
||||
# Phishing / social engineering
|
||||
["zphisher"]="https://github.com/htr-tech/zphisher.git"
|
||||
["nexphisher"]="https://github.com/htr-tech/nexphisher.git"
|
||||
["Storm-Breaker"]="https://github.com/ultrasecurity/Storm-Breaker.git"
|
||||
["shorturl"]="https://github.com/htr-tech/shorturl.git"
|
||||
["SocialFish"]="https://github.com/UndeadSec/SocialFish.git"
|
||||
["AdvPhishing"]="https://github.com/Ignitetch/AdvPhishing.git"
|
||||
# Vuln / exploitation
|
||||
["commix"]="https://github.com/commixproject/commix.git"
|
||||
# Wireless
|
||||
["fluxion"]="https://github.com/FluxionNetwork/fluxion.git"
|
||||
["bluemaho"]="https://github.com/pysec/bluemaho.git"
|
||||
# Mobile
|
||||
["PhoneSploit"]="https://github.com/aerosol-can/PhoneSploit.git"
|
||||
["AhMyth-Android-RAT"]="https://github.com/AhMyth/AhMyth-Android-RAT.git"
|
||||
["msfpc"]="https://github.com/g0tmi1k/msfpc.git"
|
||||
# Financial OSINT
|
||||
["Orbit"]="https://github.com/s0md3v/Orbit.git"
|
||||
# All-in-one frameworks
|
||||
["fsociety"]="https://github.com/Manisso/fsociety.git"
|
||||
["hackingtool"]="https://github.com/Z4nzu/hackingtool.git"
|
||||
["lscript"]="https://github.com/arismelachroinos/lscript.git"
|
||||
# Wordlists
|
||||
["SecLists"]="https://github.com/danielmiessler/SecLists.git"
|
||||
["cupp"]="https://github.com/Mebus/cupp.git"
|
||||
# Google dorking
|
||||
["pagodo"]="https://github.com/opsdisk/pagodo.git"
|
||||
["GooFuzz"]="https://github.com/m3n0sd0n4ld/GooFuzz.git"
|
||||
["dorkScanner"]="https://github.com/madhavmehndiratta/dorkScanner.git"
|
||||
# ReconAIzer (Burp extension)
|
||||
["ReconAIzer"]="https://github.com/hisxo/ReconAIzer.git"
|
||||
)
|
||||
|
||||
for name in "${!REPOS[@]}"; do
|
||||
url="${REPOS[$name]}"
|
||||
if [[ -d "$name" ]]; then
|
||||
warn "git: $name already exists, pulling latest"
|
||||
git -C "$name" pull &>/dev/null && ok "git: $name (updated)" || warn "git: $name (pull failed)"
|
||||
else
|
||||
if git clone --depth=1 "$url" "$name" &>/dev/null; then
|
||||
ok "git: $name"
|
||||
else
|
||||
fail "git: $name"
|
||||
ERRORS+=("git clone $name")
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# Install pip requirements where available
|
||||
info "Installing per-repo pip requirements..."
|
||||
for dir in IPGeoLocation Photon LinkFinder Osintgram OSINT-SPY webhack commix; do
|
||||
if [[ -f "$TOOLS_DIR/$dir/requirements.txt" ]]; then
|
||||
pip3 install --break-system-packages -r "$TOOLS_DIR/$dir/requirements.txt" &>/dev/null \
|
||||
&& ok "requirements: $dir" || warn "requirements: $dir (partial)"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# ── 6. SPECIAL INSTALLS ───────────────────────────────────
|
||||
step_special() {
|
||||
info "── STEP 6: Special installs ──"
|
||||
|
||||
# Metasploit (if not present)
|
||||
if ! command -v msfconsole &>/dev/null; then
|
||||
info "Installing Metasploit Framework..."
|
||||
curl -s https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb \
|
||||
| sed 's/apt-get/apt-get -y/g' | bash &>/dev/null \
|
||||
&& ok "Metasploit installed" || warn "Metasploit (failed - install manually)"
|
||||
else
|
||||
ok "Metasploit already installed"
|
||||
fi
|
||||
|
||||
# PhoneInfoga binary
|
||||
if ! command -v phoneinfoga &>/dev/null; then
|
||||
info "Installing PhoneInfoga binary..."
|
||||
curl -sSL https://raw.githubusercontent.com/sundowndev/phoneinfoga/master/support/scripts/install \
|
||||
| bash &>/dev/null && ok "phoneinfoga binary" || warn "phoneinfoga binary (failed)"
|
||||
else
|
||||
ok "phoneinfoga already installed"
|
||||
fi
|
||||
|
||||
# AnonSurf
|
||||
if [[ -d "$TOOLS_DIR/kali-anonsurf" ]]; then
|
||||
cd "$TOOLS_DIR/kali-anonsurf" && bash installer.sh &>/dev/null \
|
||||
&& ok "anonsurf installed" || warn "anonsurf (manual install needed)"
|
||||
fi
|
||||
|
||||
# Nuclei templates
|
||||
if command -v nuclei &>/dev/null; then
|
||||
nuclei -update-templates &>/dev/null && ok "nuclei templates updated"
|
||||
fi
|
||||
}
|
||||
|
||||
# ── 7. ADDITIONAL TOOLS (suggested extras) ────────────────
|
||||
step_extras() {
|
||||
info "── STEP 7: Extra tools not in original list ──"
|
||||
|
||||
# These complement the OSINT arsenal nicely
|
||||
EXTRA_PIP=(
|
||||
trufflehog # Git secret scanning
|
||||
git-dumper # Dump exposed .git repos
|
||||
waybackpy # Wayback Machine API client
|
||||
dnstwist # Domain phishing detection
|
||||
shodan # Shodan CLI
|
||||
censys # Censys CLI
|
||||
xeuledoc # Google Docs OSINT
|
||||
redditsfinder # Find Reddit accounts by email
|
||||
linkedin2username # Generate username lists from LinkedIn
|
||||
)
|
||||
|
||||
EXTRA_APT=(
|
||||
tor # Tor daemon (for dark web tools)
|
||||
proxychains4 # Route traffic through proxies/tor
|
||||
steghide # Steganography analysis
|
||||
stegseek # Fast steghide cracker
|
||||
exiv2 # Alternative metadata tool
|
||||
jq # JSON parsing (useful for API tools)
|
||||
whois # WHOIS lookups
|
||||
dnsutils # dig, nslookup
|
||||
traceroute # Network path tracing
|
||||
beef-xss # Browser Exploitation Framework
|
||||
)
|
||||
|
||||
EXTRA_GIT=(
|
||||
"EyeWitness|https://github.com/RedSiege/EyeWitness.git" # Web screenshots
|
||||
"gitrob|https://github.com/michenriksen/gitrob.git" # GitHub secret scanner
|
||||
"GitLeaks|https://github.com/gitleaks/gitleaks.git" # Git secret leaks
|
||||
"theHarvester|https://github.com/laramies/theHarvester.git" # Email/domain (latest)
|
||||
"crosslinked|https://github.com/m8sec/CrossLinked.git" # LinkedIn name scraper
|
||||
"recon-ng|https://github.com/lanmaster53/recon-ng.git" # Latest recon-ng
|
||||
"spiderfoot|https://github.com/smicallef/spiderfoot.git" # Latest SpiderFoot
|
||||
"osmedeus|https://github.com/j3ssie/osmedeus.git" # Full recon workflow
|
||||
"finalrecon|https://github.com/thewhiteh4t/FinalRecon.git" # All-in-one web recon
|
||||
"URLextractor|https://github.com/eschultze/URLextractor.git" # URL extraction
|
||||
"phoneinfoga-web|https://github.com/sundowndev/phoneinfoga.git" # PhoneInfoga web UI
|
||||
)
|
||||
|
||||
for pkg in "${EXTRA_APT[@]%%#*}"; do
|
||||
pkg=$(echo "$pkg" | xargs)
|
||||
apt-get install -y "$pkg" &>/dev/null && ok "extra apt: $pkg" || warn "extra apt: $pkg"
|
||||
done
|
||||
|
||||
for pkg in "${EXTRA_PIP[@]%%#*}"; do
|
||||
pkg=$(echo "$pkg" | xargs)
|
||||
pip3 install --break-system-packages "$pkg" &>/dev/null && ok "extra pip: $pkg" || warn "extra pip: $pkg"
|
||||
done
|
||||
|
||||
cd "$TOOLS_DIR" || exit 1
|
||||
for entry in "${EXTRA_GIT[@]}"; do
|
||||
name="${entry%%|*}"
|
||||
url="${entry##*|}"
|
||||
if [[ ! -d "$name" ]]; then
|
||||
git clone --depth=1 "$url" "$name" &>/dev/null && ok "extra git: $name" || warn "extra git: $name"
|
||||
else
|
||||
ok "extra git: $name (already exists)"
|
||||
fi
|
||||
done
|
||||
|
||||
# Shodan CLI setup hint
|
||||
if command -v shodan &>/dev/null; then
|
||||
warn "Remember to init Shodan: shodan init YOUR_API_KEY"
|
||||
fi
|
||||
|
||||
# Tor config for dark web tools
|
||||
if command -v tor &>/dev/null; then
|
||||
systemctl enable tor &>/dev/null
|
||||
systemctl start tor &>/dev/null
|
||||
ok "Tor service enabled (SOCKS proxy on 127.0.0.1:9050)"
|
||||
fi
|
||||
}
|
||||
|
||||
# ── SUMMARY ───────────────────────────────────────────────
|
||||
summary() {
|
||||
local END_TIME=$(date +%s)
|
||||
local DURATION=$(( END_TIME - START_TIME ))
|
||||
local MINS=$(( DURATION / 60 ))
|
||||
local SECS=$(( DURATION % 60 ))
|
||||
echo ""
|
||||
echo -e "${BOLD}════════════════════════════════════════${NC}"
|
||||
echo -e "${GREEN} Install complete!${NC}"
|
||||
echo -e " Duration: ${CYAN}${MINS}m ${SECS}s${NC}"
|
||||
echo -e " Log file: ${CYAN}$LOG_FILE${NC}"
|
||||
echo -e " Tools directory: ${CYAN}$TOOLS_DIR${NC}"
|
||||
echo ""
|
||||
if [[ ${#ERRORS[@]} -gt 0 ]]; then
|
||||
echo -e "${YELLOW} Failed installs (${#ERRORS[@]}):${NC}"
|
||||
for e in "${ERRORS[@]}"; do echo " - $e"; done
|
||||
else
|
||||
echo -e "${GREEN} No errors!${NC}"
|
||||
fi
|
||||
echo ""
|
||||
echo -e "${YELLOW} Quick-start commands:${NC}"
|
||||
echo " sherlock USERNAME"
|
||||
echo " maigret USERNAME"
|
||||
echo " theHarvester -d domain.com -b all"
|
||||
echo " recon-ng"
|
||||
echo " spiderfoot -l 127.0.0.1:5001"
|
||||
echo " nuclei -u https://target.com"
|
||||
echo " subfinder -d domain.com"
|
||||
echo " amass enum -d domain.com"
|
||||
echo -e "${BOLD}════════════════════════════════════════${NC}"
|
||||
}
|
||||
|
||||
# ── MAIN ──────────────────────────────────────────────────
|
||||
banner
|
||||
exec > >(tee -a "$LOG_FILE") 2>&1
|
||||
check_root
|
||||
|
||||
echo ""
|
||||
echo -e "${BOLD}This will install 100+ OSINT & security tools.${NC}"
|
||||
echo -e "${YELLOW}Use only on systems you own or have authorization to test.${NC}"
|
||||
echo ""
|
||||
read -rp "Continue? [y/N]: " confirm
|
||||
[[ "$confirm" =~ ^[Yy]$ ]] || { echo "Aborted."; exit 0; }
|
||||
|
||||
step_apt
|
||||
step_pip
|
||||
step_go
|
||||
step_gems
|
||||
step_git
|
||||
step_special
|
||||
step_extras
|
||||
summary
|
||||
|
|
@ -0,0 +1,129 @@
|
|||
#!/usr/bin/env bash
|
||||
# ===================================================================
|
||||
# 🎓 Training / vulnerable apps
|
||||
# Part of awesome-osint-arsenal v3.4
|
||||
# Auto-detects: Kali / Debian / Ubuntu / Parrot / Mint / Pop!_OS /
|
||||
# Arch / Manjaro / EndeavourOS /
|
||||
# Fedora / RHEL / CentOS / Rocky / Alma
|
||||
# Best support: Kali / Debian / Ubuntu (apt-based)
|
||||
# ===================================================================
|
||||
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"
|
||||
LOGFILE="${LOGFILE:-$HOME/osint-install-errors.log}"
|
||||
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"; }
|
||||
|
||||
require_root() {
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
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
|
||||
}
|
||||
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
|
||||
}
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
print_summary
|
||||
|
|
@ -0,0 +1,360 @@
|
|||
#!/usr/bin/env bash
|
||||
# ===================================================================
|
||||
# 🔍 OSINT toolkit
|
||||
# Part of awesome-osint-arsenal v3.4
|
||||
# Auto-detects: Kali / Debian / Ubuntu / Parrot / Mint / Pop!_OS /
|
||||
# Arch / Manjaro / EndeavourOS /
|
||||
# Fedora / RHEL / CentOS / Rocky / Alma
|
||||
# Best support: Kali / Debian / Ubuntu (apt-based)
|
||||
# ===================================================================
|
||||
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"
|
||||
LOGFILE="${LOGFILE:-$HOME/osint-install-errors.log}"
|
||||
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"; }
|
||||
|
||||
require_root() {
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
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
|
||||
}
|
||||
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
|
||||
}
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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: 📧 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: 🖼️ 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)"
|
||||
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_git https://github.com/SharadKumar97/OSINT-SPY.git OSINT-SPY # OSINT-SPY
|
||||
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: 🏢 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: 🦠 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: 📄 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: 📡 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: 🔒 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
|
||||
|
|
@ -0,0 +1,156 @@
|
|||
#!/usr/bin/env bash
|
||||
# ===================================================================
|
||||
# ⚔️ Red team / offensive
|
||||
# Part of awesome-osint-arsenal v3.4
|
||||
# Auto-detects: Kali / Debian / Ubuntu / Parrot / Mint / Pop!_OS /
|
||||
# Arch / Manjaro / EndeavourOS /
|
||||
# Fedora / RHEL / CentOS / Rocky / Alma
|
||||
# Best support: Kali / Debian / Ubuntu (apt-based)
|
||||
# ===================================================================
|
||||
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"
|
||||
LOGFILE="${LOGFILE:-$HOME/osint-install-errors.log}"
|
||||
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"; }
|
||||
|
||||
require_root() {
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
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
|
||||
}
|
||||
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
|
||||
}
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
print_summary
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
#!/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
|
||||
# ===================================================================
|
||||
set -uo pipefail
|
||||
|
||||
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
|
||||
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"; }
|
||||
|
||||
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
|
||||
}
|
||||
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
|
||||
}
|
||||
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
|
||||
}
|
||||
|
||||
say "Updating Termux..."
|
||||
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
|
||||
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
|
||||
|
||||
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 "Tools cloned to: $HOME/osint-arsenal/"
|
||||
echo "For more tools, see the README.md — many require x86 Linux and won't run on Android."
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue