| name | squid-pentest |
| description | Pentest Squid HTTP proxy on port 3128. Use this skill whenever you discover a Squid proxy service, need to enumerate proxy capabilities, pivot through a proxy to scan internal networks, or configure proxychains for HTTP interaction. Trigger on mentions of Squid, HTTP proxy, port 3128, proxy pivoting, or internal network scanning through proxies. |
Squid Proxy Pentesting
A skill for testing and exploiting Squid HTTP proxy services (default port 3128) during penetration testing engagements.
What this skill does
This skill helps you:
- Enumerate Squid proxy capabilities and configuration
- Test proxy authentication and access controls
- Pivot through Squid to scan internal networks
- Configure proxychains for transparent HTTP interaction
- Chain browser/Burp tools through Squid for interception
When to use this skill
Use this skill when:
- You discover a Squid proxy service (port 3128/tcp, http-proxy)
- You need to test proxy authentication or access controls
- You want to scan internal networks through a discovered proxy
- You need to configure proxychains for HTTP proxy interaction
- You're pivoting through a proxy to reach internal services
Quick Start
1. Basic Proxy Enumeration
Test if the proxy is accessible and check for authentication:
curl --proxy http://TARGET_IP:3128 http://TARGET_IP
curl -v --proxy http://TARGET_IP:3128 http://example.com 2>&1 | head -20
If authentication is required, you'll see a 407 Proxy Authentication Required response.
2. Scan Internal Networks Through Proxy
Use the bundled SPOSE scanner to enumerate ports reachable from the proxy:
./scripts/squid-pivot-scan.sh TARGET_IP
uv run spose.py --proxy http://TARGET_IP:3128 --target localhost --allports
3. Configure Proxychains
Set up proxychains for transparent HTTP interaction:
./scripts/configure-proxychains.sh TARGET_IP 3128
proxychains curl http://127.0.0.1:9191 -v
proxychains nmap -sT -n -p- localhost
4. Chain Browser/Burp Through Squid
Configure Burp Suite to route through Squid:
- Open Burp → Proxy → Settings → Network → Connections → Upstream proxy servers
- Add:
http://TARGET_IP:3128
- Requests will flow: Browser → Burp → Squid → Internal Target
This enables interception of services bound to 127.0.0.1 or internal networks.
Detailed Techniques
Proxy Authentication Testing
If the proxy requires authentication:
curl --proxy http://user:pass@TARGET_IP:3128 http://TARGET_IP
for user in admin root guest; do
for pass in admin password 123456; do
curl -s --proxy http://$user:$pass@TARGET_IP:3128 http://TARGET_IP | grep -q "200" && echo "Found: $user:$pass"
done
done
Nmap Through Proxy
Scan internal networks using proxychains:
proxychains nmap -sT -n -p- 127.0.0.1
proxychains nmap -sT -n -p- 10.0.0.0/24
SPOSE Scanner
SPOSE (Squid Pivoting Open Port Scanner) is optimized for proxy pivoting:
python spose.py --proxy http://TARGET_IP:3128 --target TARGET_IP
python spose.py --proxy http://TARGET_IP:3128 --target localhost --allports
uv add --script spose.py -r requirements.txt
uv run spose.py --proxy http://TARGET_IP:3128 --target localhost --allports
Common Squid Configurations
Open Proxy (No Auth)
curl --proxy http://TARGET_IP:3128 http://example.com
Authenticated Proxy
curl -v --proxy http://TARGET_IP:3128 http://example.com
ACL-Restricted Proxy
May allow only specific destinations or methods. Test with:
curl -X CONNECT --proxy http://TARGET_IP:3128 example.com:443
curl -X GET --proxy http://TARGET_IP:3128 http://example.com
Security Considerations
- Authorization: Only test proxies you have permission to assess
- Rate limiting: Be mindful of scan rates to avoid triggering alerts
- Logging: Proxy access is typically logged; document your testing
- Legal: Ensure you have written authorization before pivoting through proxies
References
Bundled Scripts
scripts/squid-enumerate.sh - Basic proxy enumeration and testing
scripts/squid-pivot-scan.sh - SPOSE-based internal network scanning
scripts/configure-proxychains.sh - Proxychains configuration helper