Skip to main content Skills Marketplace Descubre y explora habilidades de IA creadas por la comunidad.
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Copiar promptMostrar detalles del prompt Un comando directo omite el prompt de revisión. Revisa el origen antes de ejecutarlo.
npx skills add https://github.com/CyberStrikeus/CyberStrike --skill wstg-info-02El comando permanece en una sola línea. Desplázate horizontalmente para revisarlo antes de copiarlo.
¿Prefieres una copia local? Descarga los archivos que SkillsMP tiene disponibles ahora.
Descargar Zip Descargando... Ocupaciones relacionadas SOC
Basado en la clasificación ocupacional SOC
name wstg-info-02 description Fingerprint Web Server category information-gathering owasp_id WSTG-INFO-02 version 1.0.0 author cyberstrike-official tags ["recon","fingerprint","enumeration","wstg","info"] tech_stack [] cwe_ids ["CWE-200"] chains_with [] prerequisites [] severity_boost {}
wstg-info-02
Test ID
WSTG-INFO-02
Test Name
Fingerprint Web Server
High-Level Description
Web server fingerprinting is the process of identifying the type, version, and configuration of a web server. This information is critical for penetration testers as it helps identify known vulnerabilities associated with specific server versions. Attackers use this information to find and exploit unpatched vulnerabilities. Understanding what web server software is running allows testers to focus their efforts on relevant attack vectors.
What to Check
Information to Identify
How to Test
Step 1: HTTP Header Analysis
Examine HTTP response headers to identify server information.
Using curl
curl -I https://target.com
curl -v https://target.com 2>&1 | grep -i "server\|x-powered-by\|x-aspnet"
curl -ILk https://target.com
Using wget
wget --server-response --spider https://target.com 2>&1 | grep -i server
Key Headers to Examine
Header Information Revealed ServerWeb server software and version
X-Powered-ByBackend technology (PHP, ASP.NET)
X-AspNet-VersionASP.NET version
X-AspNetMvc-VersionASP.NET MVC version
X-GeneratorCMS or framework information
X-Drupal-CacheDrupal CMS indicator
X-VarnishVarnish cache presence
ViaProxy server information
X-CacheCDN/Cache information
CF-RayCloudflare indicator
X-Amz-Cf-IdAWS CloudFront indicator
Step 2: Banner Grabbing
Using Telnet (HTTP)
telnet target.com 80
HEAD / HTTP/1.1
Host: target.com
Using OpenSSL (HTTPS)
openssl s_client -connect target.com:443 -quiet
HEAD / HTTP/1.1
Host: target.com
Using Netcat
echo -e "HEAD / HTTP/1.1\r\nHost: target.com\r\n\r\n" | nc target.com 80
echo -e "HEAD / HTTP/1.1\r\nHost: target.com\r\n\r\n" | nc -w 5 target.com 80
Step 3: HTTP Header Order Analysis Different web servers return headers in characteristic orders:
Apache Header Order Date
Server
Last-Modified
ETag
Accept-Ranges
Content-Length
Connection
Content-Type
nginx Header Order Server
Date
Content-Type
Content-Length
Connection
Last-Modified
ETag
Accept-Ranges
IIS Header Order Content-Length
Content-Type
ETag
Last-Modified
Accept-Ranges
Server
X-Powered-By
Date
Step 4: Malformed Request Testing Send invalid HTTP requests to trigger error pages that may reveal server information.
echo -e "GET / INVALIDVERSION/1.1\r\nHost: target.com\r\n\r\n" | nc target.com 80
echo -e "INVALID / HTTP/1.1\r\nHost: target.com\r\n\r\n" | nc target.com 80
python3 -c "print('GET /' + 'A'*5000 + ' HTTP/1.1\r\nHost: target.com\r\n\r\n')" | nc target.com 80
Error Page Signatures Server Error Page Characteristics Apache DOCTYPE HTML 2.0, "Apache" in footer nginx Simple HTML, "nginx" in title/body IIS Detailed error with "Microsoft-IIS" LiteSpeed "LiteSpeed" branding lighttpd XHTML format
Step 5: Default Page and File Analysis
curl -s https://target.com/server-status
curl -s https://target.com/nginx_status
curl -s https://target.com/server-info
curl -s https://target.com/phpinfo.php
curl -s https://target.com/web.config
curl -s https://target.com/.htaccess
curl -s https://target.com/favicon.ico | md5sum
Step 6: SSL/TLS Certificate Analysis
openssl s_client -connect target.com:443 2>/dev/null | openssl x509 -noout -text
echo | openssl s_client -connect target.com:443 2>/dev/null | openssl x509 -noout -issuer -subject
openssl s_client -connect target.com:443 2>/dev/null | openssl x509 -noout -text | grep -i "organization\|CN="
Step 7: Response Behavior Analysis
for method in GET POST PUT DELETE OPTIONS TRACE PATCH; do
echo "=== $method ==="
curl -X $method -I https://target.com 2>/dev/null | head -5
done
curl -X OPTIONS -I https://target.com
Tools
Command-Line Tools Tool Description Usage Nmap Network scanner with version detection nmap -sV target.comNikto Web server scanner nikto -h target.comWhatWeb Web technology identifier whatweb target.comWappalyzer CLI Technology profiler wappalyzer https://target.comhttprint Web server fingerprinting httprint -h target.com -s signatures.txtcurl HTTP client curl -I target.comhttpx Fast HTTP toolkit echo target.com | httpx -title -tech-detect
Online Services Service URL Purpose Netcraft netcraft.com Server identification BuiltWith builtwith.com Technology profiler Wappalyzer wappalyzer.com Browser extension Shodan shodan.io Banner information Censys censys.io Certificate and banner data SecurityHeaders securityheaders.com Header analysis
Browser Extensions
Wappalyzer
BuiltWith Technology Profiler
Retire.js (for JavaScript libraries)
Example Commands/Payloads
Nmap Commands
nmap -sV -p 80,443 target.com
nmap -sV --version-intensity 5 -p 80,443 target.com
nmap -sV --script=http-server-header -p 80,443 target.com
nmap --script=http-headers -p 80,443 target.com
nmap --script=http-enum -p 80,443 target.com
nmap -sV --script="http-*" -p 80,443 target.com
Nikto Commands
nikto -h https://target.com
nikto -h target.com -p 443 -ssl
nikto -h https://target.com -o report.html -Format html
nikto -h https://target.com -id admin:password
nikto -h https://target.com -Tuning 1234
WhatWeb Commands
whatweb target.com
whatweb -a 3 target.com
whatweb -v target.com
whatweb --log-json=output.json target.com
whatweb -i targets.txt
httpx Commands
echo "target.com" | httpx -tech-detect
echo "target.com" | httpx -title -tech-detect -status-code -web-server
cat targets.txt | httpx -tech-detect -o results.txt
Custom Scripts
Python Banner Grabber
import socket
import ssl
def grab_banner (host, port=80 , use_ssl=False ):
request = f"HEAD / HTTP/1.1\r\nHost: {host} \r\n\r\n"
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(10 )
if use_ssl:
context = ssl.create_default_context()
sock = context.wrap_socket(sock, server_hostname=host)
sock.connect((host, port))
sock.send(request.encode())
response = sock.recv(4096 ).decode()
sock.close()
return response
print (grab_banner("target.com" , 443 , use_ssl=True ))
Bash One-Liner for Multiple Targets
while read target; do
echo "=== $target ==="
curl -sI "https://$target " 2>/dev/null | grep -i "^server:"
done < targets.txt
Remediation Guide
1. Suppress Server Headers
Apache # In httpd.conf or apache2.conf
ServerTokens Prod
ServerSignature Off
# Using mod_headers
<IfModule mod_headers.c>
Header unset Server
Header always unset X-Powered-By
</IfModule>
nginx # In nginx.conf
server_tokens off;
# Using headers-more module
more_clear_headers Server;
IIS
<system.webServer >
<httpProtocol >
<customHeaders >
<remove name ="X-Powered-By" />
<remove name ="Server" />
</customHeaders >
</httpProtocol >
<security >
<requestFiltering removeServerHeader ="true" />
</security >
</system.webServer >
2. Custom Error Pages Configure custom error pages that don't reveal server information:
Apache ErrorDocument 400 /errors/400.html
ErrorDocument 401 /errors/401.html
ErrorDocument 403 /errors/403.html
ErrorDocument 404 /errors/404.html
ErrorDocument 500 /errors/500.html
nginx error_page 400 401 403 404 500 502 503 504 /error.html;
location = /error.html {
internal;
}
3. Use Reverse Proxy Deploy a hardened reverse proxy (nginx, HAProxy) in front of application servers to mask backend server information.
4. Keep Software Updated
Regularly apply security patches
Subscribe to vendor security advisories
Use automated patch management
5. Remove Default Pages
Delete default welcome pages
Remove server info pages (phpinfo, server-status)
Disable directory listing
Risk Assessment
CVSS Score CVSS Vector : CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Metric Value Description Attack Vector Network Accessible via internet Attack Complexity Low Simple techniques required Privileges Required None No authentication needed User Interaction None No user interaction required Scope Unchanged Impact scope unchanged Confidentiality Low Server version disclosure Integrity None No integrity impact Availability None No availability impact
Note : While fingerprinting itself is low severity, it enables further attacks. If an outdated vulnerable version is detected, the combined risk increases significantly.
Severity Levels Finding Severity Description Server header visible Info General information Exact version disclosed Low Version number exposed Outdated version detected Medium Known vulnerabilities may exist Critically vulnerable version High Active exploits available Default pages exposed Medium Sensitive configuration visible
CWE Categories CWE ID Title Description CWE-200 Exposure of Sensitive Information to an Unauthorized Actor Server version disclosure CWE-16 Configuration Improper server configuration CWE-693 Protection Mechanism Failure Missing security hardening
References
OWASP References
Tools Documentation
Additional Resources
Checklist [ ] HTTP response headers analyzed (curl/wget)
[ ] Banner grabbing performed (telnet/openssl/netcat)
[ ] Server header order analyzed
[ ] Malformed request testing completed
[ ] Default pages checked
[ ] Error pages analyzed
[ ] SSL/TLS certificate examined
[ ] Nmap version detection performed
[ ] Nikto scan completed
[ ] WhatWeb/Wappalyzer analysis done
[ ] Online services checked (Netcraft, BuiltWith)
[ ] CDN/WAF presence identified
[ ] Findings documented
[ ] Risk assessment completed