diff --git a/profile.d/fun.sh b/profile.d/fun.sh index eaa33fc..235c1b9 100644 --- a/profile.d/fun.sh +++ b/profile.d/fun.sh @@ -223,37 +223,45 @@ fake_compile() python) files=("${python_files[@]}"); ext=".py" ;; esac - total=${#files[@]} - i=0 - for f in "${files[@]}"; do - i=$(( i + 1 )) - warn_count=$(( RANDOM % 3 )) - printf "[ %2d/%2d ] Compiling %s%s ...\n" "$i" "$total" "$f" "$ext" - sleep "$delay_s" - w=0 - while [[ $w -lt $warn_count ]]; do - wline="${warnings[$((RANDOM % ${#warnings[@]}))]}" - printf " %s%s:%d:%d: %s\n" \ - "$f" "$ext" "$(( RANDOM % 200 + 1 ))" "$(( RANDOM % 80 + 1 ))" "$wline" + while true; do + total=${#files[@]} + i=0 + for f in "${files[@]}"; do + i=$(( i + 1 )) + warn_count=$(( RANDOM % 3 )) + printf "[ %2d/%2d ] Compiling %s%s ...\n" "$i" "$total" "$f" "$ext" sleep "$delay_s" - w=$(( w + 1 )) + w=0 + while [[ $w -lt $warn_count ]]; do + wline="${warnings[$((RANDOM % ${#warnings[@]}))]}" + printf " %s%s:%d:%d: %s\n" \ + "$f" "$ext" "$(( RANDOM % 200 + 1 ))" "$(( RANDOM % 80 + 1 ))" "$wline" + sleep "$delay_s" + w=$(( w + 1 )) + done done - done - if [[ $with_errors -eq 1 ]]; then - for eline in "${errors[@]}"; do - ef="${files[$((RANDOM % ${#files[@]}))]}" - printf " %s%s:%d:%d: %s\n" \ - "$ef" "$ext" "$(( RANDOM % 200 + 1 ))" "$(( RANDOM % 80 + 1 ))" "$eline" - sleep "$delay_s" - done - printf "\nBuild FAILED: %d error(s), %d warning(s)\n" \ - "${#errors[@]}" "$(( RANDOM % 20 + 5 ))" - else - printf "\nBuild SUCCEEDED: 0 error(s), %d warning(s)\n" \ - "$(( RANDOM % 15 + 2 ))" - fi - ) + if [[ $with_errors -eq 1 ]]; then + for eline in "${errors[@]}"; do + ef="${files[$((RANDOM % ${#files[@]}))]}" + printf " %s%s:%d:%d: %s\n" \ + "$ef" "$ext" "$(( RANDOM % 200 + 1 ))" "$(( RANDOM % 80 + 1 ))" "$eline" + sleep "$delay_s" + done + printf "\nBuild FAILED: %d error(s), %d warning(s)\n" \ + "${#errors[@]}" "$(( RANDOM % 20 + 5 ))" + else + printf "\nBuild SUCCEEDED: 0 error(s), %d warning(s)\n" \ + "$(( RANDOM % 15 + 2 ))" + fi + printf "\n" + done + ) & local sub_pid=$! + + IFS= read -r -n 1 -s _ /dev/null || kill "$sub_pid" 2>/dev/null + wait "$sub_pid" 2>/dev/null + return 0 } export -f fake_compile # ------------------------------------------------------------------------------ @@ -328,89 +336,98 @@ hack() $RANDOM $RANDOM $RANDOM $RANDOM \ $RANDOM $RANDOM $RANDOM $RANDOM; } - [[ -z "$target" ]] && target="$(rand_ip)" - ports=( 22 80 443 3306 5432 6379 8080 8443 27017 ) services=( "ssh" "http" "https" "mysql" "postgresql" "redis" "http-alt" "https-alt" "mongodb" ) cve_ids=( "CVE-2024-3094" "CVE-2023-44487" "CVE-2024-6387" "CVE-2021-44228" "CVE-2022-0847" ) os_list=( "Linux 5.15.x" "Linux 6.1.x" "Ubuntu 22.04 LTS" "Debian 12" "CentOS Stream 9" ) users=( "root" "admin" "www-data" "postgres" "redis" "deploy" ) passwords=( "password123" "admin2024" "letmein!" "Sup3rS3cr3t" "qwerty" "123456" ) + fixed_target="$target" - printf "[*] Initializing attack sequence against %s\n" "$target" - sleep "$delay_s" + while true; do + [[ -z "$fixed_target" ]] && target="$(rand_ip)" || target="$fixed_target" - # Phase 1 — port scan - printf "[*] Starting port scan...\n" - sleep "$delay_s" - open_ports=() - for idx in "${!ports[@]}"; do - if (( RANDOM % 3 != 0 )); then - printf " %-6s open %s\n" "${ports[$idx]}/tcp" "${services[$idx]}" - open_ports+=( "${ports[$idx]}/${services[$idx]}" ) + printf "[*] Initializing attack sequence against %s\n" "$target" + sleep "$delay_s" + + # Phase 1 — port scan + printf "[*] Starting port scan...\n" + sleep "$delay_s" + open_ports=() + for idx in "${!ports[@]}"; do + if (( RANDOM % 3 != 0 )); then + printf " %-6s open %s\n" "${ports[$idx]}/tcp" "${services[$idx]}" + open_ports+=( "${ports[$idx]}/${services[$idx]}" ) + sleep "$delay_s" + fi + done + printf "[+] %d open port(s) found.\n" "${#open_ports[@]}" + sleep "$delay_s" + + # Phase 2 — OS fingerprinting + printf "[*] OS fingerprinting...\n" + sleep "$delay_s" + printf "[+] Target OS: %s (MAC: %s)\n" \ + "${os_list[$((RANDOM % ${#os_list[@]}))]}" "$(rand_mac)" + sleep "$delay_s" + + # Phase 3 — CVE check + printf "[*] Checking known vulnerabilities...\n" + sleep "$delay_s" + vuln_count=$(( RANDOM % 3 + 1 )) + v=0 + while [[ $v -lt $vuln_count ]]; do + printf "[!] Potential vulnerability: %s\n" "${cve_ids[$((RANDOM % ${#cve_ids[@]}))]}" sleep "$delay_s" - fi - done - printf "[+] %d open port(s) found.\n" "${#open_ports[@]}" - sleep "$delay_s" + v=$(( v + 1 )) + done - # Phase 2 — OS fingerprinting - printf "[*] OS fingerprinting...\n" - sleep "$delay_s" - printf "[+] Target OS: %s (MAC: %s)\n" \ - "${os_list[$((RANDOM % ${#os_list[@]}))]}" "$(rand_mac)" - sleep "$delay_s" - - # Phase 3 — CVE check - printf "[*] Checking known vulnerabilities...\n" - sleep "$delay_s" - vuln_count=$(( RANDOM % 3 + 1 )) - v=0 - while [[ $v -lt $vuln_count ]]; do - printf "[!] Potential vulnerability: %s\n" "${cve_ids[$((RANDOM % ${#cve_ids[@]}))]}" + # Phase 4 — exploit + printf "[*] Loading exploit module...\n"; sleep "$delay_s" + printf "[*] Bypassing firewall rules...\n"; sleep "$delay_s" + printf "[*] Injecting payload" + dots=0 + while [[ $dots -lt 6 ]]; do + printf "." + sleep "$(awk "BEGIN{ printf \"%.3f\", $delay_ms * 1.5 / 1000 }")" + dots=$(( dots + 1 )) + done + printf "\n" + printf "[+] Shell obtained on %s\n" "$target" sleep "$delay_s" - v=$(( v + 1 )) - done - # Phase 4 — exploit - printf "[*] Loading exploit module...\n"; sleep "$delay_s" - printf "[*] Bypassing firewall rules...\n"; sleep "$delay_s" - printf "[*] Injecting payload" - dots=0 - while [[ $dots -lt 6 ]]; do - printf "." - sleep "$(awk "BEGIN{ printf \"%.3f\", $delay_ms * 1.5 / 1000 }")" - dots=$(( dots + 1 )) - done - printf "\n" - printf "[+] Shell obtained on %s\n" "$target" - sleep "$delay_s" - - # Phase 5 — hash dumping - printf "[*] Dumping password hashes...\n" - sleep "$delay_s" - for u in "${users[@]}"; do - printf " %-12s : \$6\$%s\n" "$u" "$(rand_hash)" + # Phase 5 — hash dumping + printf "[*] Dumping password hashes...\n" sleep "$delay_s" - done + for u in "${users[@]}"; do + printf " %-12s : \$6\$%s\n" "$u" "$(rand_hash)" + sleep "$delay_s" + done - # Phase 6 — cracking - printf "[*] Cracking hashes (wordlist: rockyou.txt)...\n" - sleep "$delay_s" - cracked=$(( RANDOM % ${#users[@]} + 1 )) - c=0 - while [[ $c -lt $cracked ]]; do - printf "[+] Cracked: %-12s -> %s\n" \ - "${users[$c]}" "${passwords[$((RANDOM % ${#passwords[@]}))]}" + # Phase 6 — cracking + printf "[*] Cracking hashes (wordlist: rockyou.txt)...\n" sleep "$delay_s" - c=$(( c + 1 )) - done + cracked=$(( RANDOM % ${#users[@]} + 1 )) + c=0 + while [[ $c -lt $cracked ]]; do + printf "[+] Cracked: %-12s -> %s\n" \ + "${users[$c]}" "${passwords[$((RANDOM % ${#passwords[@]}))]}" + sleep "$delay_s" + c=$(( c + 1 )) + done - printf "\n[+] -------- ACCESS GRANTED -------- [+]\n" - printf "[*] Cleaning logs on %s...\n" "$target" - sleep "$delay_s" - printf "[+] Done. Have a nice day.\n" - ) + printf "\n[+] -------- ACCESS GRANTED -------- [+]\n" + printf "[*] Cleaning logs on %s...\n" "$target" + sleep "$delay_s" + printf "[+] Done. Have a nice day.\n" + printf "\n" + done + ) & local sub_pid=$! + + IFS= read -r -n 1 -s _ /dev/null || kill "$sub_pid" 2>/dev/null + wait "$sub_pid" 2>/dev/null + return 0 } export -f hack # ------------------------------------------------------------------------------