identYwaf: una herramienta para identificar WAFs (firewalls de aplicaciones web)

identYwaf es una herramienta de código abierto para identificar firewalls de aplicaciones web (en adelante WAFs) escrita por el mismísimo Miroslav Stampar, creador de sqlmap.

Esta herramienta es capaz de reconocer más de 70 tipos de WAFs basándose en inferencias ciegas. ¿Qué significa ésto? Bueno, pues que identYwaf tiene un conjunto de payloads predefinidos y no destructivos que provocarán una respuesta del WAF que se está probando. Esta respuesta luego se compara con las "firmas" individuales de estos firewalls que se pueden encontrar en el archivo data.json del proyecto. Estas firmas no son más que simples cadenas conocidas como "1 AND 1 = 1" con las que reaccionan estos firewalls de aplicaciones web.

¿Qué firewalls puede identificar? Pues de momento tenemos la siguiente (e impresionante) lista:
  1. 360 Web Application Firewall (360)
  2. aeSecure
  3. Airlock (Phion/Ergon)
  4. Alibaba Cloud Security Server Guard (Server Security)
  5. Anquanbao Web Application Firewall (Anquanbao)
  6. Approach Web Application Firewall (Approach)
  7. Armor Protection (Armor Defense)
  8. F5 Networks (Application Security Manager)
  9. Amazon (AWS WAF)
  10. Barracuda Networks WAF
  11. BitNinja
  12. Bluedon Web Application Firewall
  13. CdnNs/WdidcNet (CdnNsWAF)
  14. WP Cerber Security
  15. Check Point Next Generation Firewall
  16. Yunaq (Chuangyu shield)
  17. Cloudbric
  18. CloudFlare
  19. Comodo WAF
  20. CrawlProtect (Jean-Denis Brun)
  21. Distil Guard
  22. dotDefender (Applicure Technologies)
  23. ExpressionEngine (EllisLab)
  24. FortiWeb (FortiNet)
  25. GoDaddy Website Security
  26. Grey Wizard Shield
  27. Imunify360 WebShield
  28. Incapsula/Imperva
  29. Microsoft ISA Server
  30. Janusec Application Gateway
  31. Jiasule WAF
  32. Knownsec WAF
  33. Akamai Technologies Kona Site Defender
  34. MalCare (Inactiv)
  35. ModSecurity (Trustwave)
  36. NAXSI
  37. Citrix NetScaler AppFirewall
  38. Newdefend
  39. NinjaFirewall (NinTechNet)
  40. onMessage Shield (Blackbaud)
  41. Palo Alto
  42. PerimeterX Defender
  43. Radware AppWall
  44. Reblaze
  45. Microsoft ASP.NET Request Validation
  46. RSFirewall (RSJoomla!)
  47. Safe3 Web Firewall
  48. Safedog WAF
  49. Secure Entry Server (United Security Providers)
  50. SecureIIS Web Server Security (BeyondTrust)
  51. Shield Security (One Dollar Plugin)
  52. Imperva SecureSphere
  53. SiteGround
  54. SiteGuard (JP-Secure)
  55. TrueShield (SiteLock)
  56. Dell SonicWALL
  57. Sophos UTM Web Protection
  58. Squarespace WAF
  59. StackPath
  60. Sucuri
  61. Tencent Cloud
  62. Microsoft Forefront Threat Management Gateway
  63. Microsoft URLScan
  64. Url Master SecurityCheck (iFinity/DotNetNuke)
  65. OWASP Varnish Firewall
  66. Virusdie WAF
  67. Varnish Security Firewall
  68. Wallarm WAF
  69. WatchGuard Firewall
  70. AQTRONIX WebKnight Application Firewall
  71. Wordfence
  72. YUNDUN Cloud WAF
  73. Yunsuo Web Application Firewall
  74. Zenedge
Y si no es suficiente, podemos customizar el json data.json para actualizar y/o añadir nuevos WAFs.
Aquí tenemos un ejemplo de la salida de la herramienta:
  ____ ___   ___ ____  ______ | T T __  __  ____ _____ 
 l  j|  \  / _]|  \ |   T| | || T__T T /  T|  __| 
  | T |  \ / [_ | _ Yl_j l_j| ~ || | | |Y o || l_ 
  | | | D YY  _]| | | | | |___ || | | ||   ||  _| 
  j l |   ||  [_ | | | | | |   ! \   / | | || ] 
 |____jl_____jl_____jl__j__j l__j l____/  \_/\_/ l__j__jl__j (1.0.64)  

 [o] loading data... 
 [o] initializing handlers... 
 [i] checking hostname 'testing.com'... 
 [i] running basic heuristic test... 
 [i] rejected summary: 200 
 [-] non-blind match: - 
 [!] multiple (reactive) rejection HTTP codes detected (200, 302) 
 [!] multiple (reactive) rejection HTML responses detected 
 [i] running payload tests... (45/45) 

 [=] results: '....................xx..x.......x......xx.xx.' 

 [=] hardness: easy (17%) 
 [=] signature: 'xxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' 
 [+] blind match: 'CloudFlare' (100%) 

Instalación:

La herramienta ha tenido actualizaciones frecuentes desde que se publicó hace poco más de una semana y funciona en *NIX y Windows:

git clone --depth 1 https://github.com/stamparm/identYwaf.git
cd identYwaf/
python identYwaf https://yourtargethere.com

Fuente: http://pentestit.com/identywaf-identify-web-application-firewalls/
Repositorio: https://github.com/stamparm/identYwaf

Comentarios