Add files via upload
This commit is contained in:
parent
7ce118086c
commit
b9a07d29fb
|
|
@ -0,0 +1,422 @@
|
|||
#!/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
|
||||
Loading…
Reference in New Issue