it-swarm-es.com

Automatización de prueba de penetración de código abierto

¿En qué orden operan las pruebas típicas de penetración de código abierto? ¿Qué herramientas se ejecutan primero, segundo, tercero y cómo se controlan?

¿Uno simplemente usa los archivos Metasploit RC? ¿Un escáner de vulnerabilidades de red de una manera especial? ¿Un escáner de seguridad de aplicaciones web de línea de comandos, personalizado o sin cabeza?

¿Alguna otra forma (o incluso ideas) para acelerar las pruebas de penetración que estaría dispuesto a compartir?

¿Hay proyectos de código abierto para ayudar con este proceso (además de los archivos Metasploit RC o el comando 'guardar' en la consola MSF)?

48
atdre

Metasploit Framework es mi herramienta de referencia para la automatización de pentest hasta el día de hoy, sin embargo, me gusta lo que he visto de CORE INSIGHT y Immunity Security SWARM. Hay algunas herramientas como Loki (o la herramienta Yersinia más antigua), intrace, Chiron , mana-toolkit, mitmf, bettercap y Responder.py que deben ejecutarse fuera del marco de Metasploit, pero en estos días se pueden hacer muchas cosas dentro de msfconsole (me viene a la mente 'cargar kiwi'). Si desea ver algunos recursos increíbles, consulte este documento que cubre la realización del PTES completo utilizando Metasploit.

Metasploit se está poniendo al día un poco aquí (¡para casi todas las herramientas y técnicas existentes!), Como los módulos auxiliares/servidor (y captura). Sin embargo, quedan muchas preguntas, como las comparaciones de rendimiento entre auxiliar/spoof/arp/arp_poisoning, arpspoof, macof, arp-sk, némesis y ettercap. ¿Auxiliar/sniffer/psnuffle funciona de manera diferente a dsniff? ¿Cuál es la diferencia entre Squirtle , auxiliar/servidor/http_ntlmrelay y auxiliar/servidor/captura/http_ntlm? ¿Cómo se compara http_javascript_keylogger con BeEF ? ¿Cómo se comparan auxiliares/spoof/llmnr, auxiliares/spoof/nbs, auxiliares/server/wpad y auxiliares/server/capture/smb con Responder.py? Claramente, otros son simplemente superiores, pero me gustaría recodificarlos (o ver a alguien hacer esto) para ser parte de MSF. Por ejemplo, ¿no deberían existir características dns2proxy (from sslstrip2 del autor) en auxiliar/servidor/fakedns?

Gran parte del trabajo inicial en las pruebas de penetración de red se realiza con nmap o unicornscan, aunque pbscan , zmap y masscan han ganado mucho terreno en los últimos años. En particular, dnmap es un enfoque elegante. Incluso hay una interfaz web para dnmap llamada Minions .

Aquí hay algunas banderas que disfruto con respecto a nmap:

Escaneo lento (pero no demasiado lento), evade IDS y da la razón por la cual los paquetes no llegaron a su destino. Se realiza mejor un puerto a la vez con longitud de datos o cadena configurada cuando nmap no conoce el protocolo o puerto de destino. Use robtex y csrecon para verificar sus prefijos IP de destino. Intente identificar uno o dos puertos que pueda aprovechar que no sean servidores web, pero que históricamente hayan sido vulnerables a la explotación remota de código (N.B., es posible que deba correlacionar estos datos con cvedetails.com o exploitsearch.net). Notará que he elegido TCP puerto 623 (IPMI RMCP, un servicio que ya es lento para responder que se beneficia de estos escaneos lentos) en el ejemplo, pero podría cambiar esto fácilmente (aunque yo no recomiende los obvios, como SSH o RDP, al menos revise el Shodan HoneyScore antes de desafiarlos).

-T1 --max-retries 0 --randomize-hosts --reason -n -Pn -sT -p 623

Los objetivos HTTP o TLS generalmente ejecutarán los puertos predeterminados, por lo que me gusta SYN escanearlos primero antes de escanear otros objetivos HTTP/TLS en puertos no predeterminados. El segundo comando será muy lento, pero probablemente pasará desapercibido (especialmente si usa este parche tomado de esta publicación de blog ), lo que permite un giro completo a la web capa no detectada. Si encuentra que los puertos relacionados con la web están abiertos pero el script http-title falla, entonces algo está mal: potencial advertencia de honeypot ! Busque la correlación entre un puerto abierto y una etiqueta de elemento de título HTML correspondiente que coincida con el nombre y el propósito del servicio. Si una IP en particular siempre responde a algún puerto, use nmap's --exclude <ip> directiva o --excludefile <filename> si tiene una lista de IP (similar al indicador -iL de nmap).

-T1 --max-retries 0 --randomize-hosts --script http-title --reason -n -Pn -r -p 80,443

-T1 --max-retries 0 --randomize-hosts --script + http-title --open -n -Pn -p 81,457,902,995,1100,1128,1241,1581,1883,1944,2301,2375,2381,3010 , 3037,3128,3780,3790,3872,4000-4002,4100,4567,4848,5000,5250,5800-5802,5814,5986,6060,6405,7000-7002,7080,7181,7272,7443,7510 , 7770,7778,8000-8001,8008,8014,8028,8040,8081,8085,8088-8091,8095,8140,8161,8180,8200,8222,8300,8400,8443,8500,8776,8834,8880 , 8883,8888,8980,8999-9000,9002,9060,9080,9084,9090,9191,9292,9389,9443,9495,9990,9999,30821,50000

Si todo está en orden, cambie a escaneos más rápidos y verifique si hay IDS/IPS. Sabrás que algo salió mal cuando todos tus escaneos se detengan, pero puedes ser un poco más eficiente al usar el indicador de traceroute de nmap (o combinarlo con el script de Firewalk), intrace, lft , ttl-mon.py , u osstmm-afd para intentar mapear estos sistemas. Por lo general, los firewalls que incluyen la funcionalidad IPS/IDP, los dispositivos IPS/IDP basados ​​en red, UTM, NGFW y puertas de enlace de red similares solo muestrearán el tráfico a analizar cada 8-11 segundos. Los retrasos más largos entre los escaneos de puertos (p. Ej., El valor predeterminado de 15 segundos en el escaneo nmap T1, o al establecer un retraso específico de 12 segundos en los escaneos T2) y la falta de paralelización son, por lo general, lo que hace que estos escaneos más lentos escapen por detección de intrusos de todo tipo . El tráfico repetido, como el que se dirige a un solo puerto, también puede hacer que suenen las campanas de detección de intrusos, identificando el tráfico como un ataque o rechazándolo automáticamente. Durante el período de muestreo, la detección de intrusos también puede buscar puertos secuenciales. Hay una variedad de factores para tratar de identificar o jugar. Por lo tanto, los siguientes indicadores nmap que se ven a continuación deben modificarse para probar esta serie de estrategias de identificación IDS. Si el primer caso de prueba (exploración T2 con retraso de 12 segundos, sin reintentos y sin puertos secuenciales) pasa pero el segundo no, entonces querrá averiguar por qué. Las capacidades de rastreo de paquetes y traceroute de Nmap son muy recomendables, pero otras herramientas como hping3 o nping pueden ser útiles para respaldar este esfuerzo.

Si encuentra que su tráfico está bloqueado (por ejemplo, las respuestas se detienen por completo), es posible que deba cambiar la fuente IP pública (o IP LAN) de la que proviene, por lo que le sugiero que ejecute la mayoría de estos en Starbucks o fuera de su servidor primario , ubicación habitual (es probable que dnmap también ayude aquí). Intente no golpear ninguna red trampa (p. Ej., Fortinet FortiGate, TrapX DeceptionGrid, etc.), o al menos identifíquelas para poder excluirlas en futuros escaneos. La mejor manera de evitar estas trampas es aprovechar los datos de scans.io y SHODAN (y el conocimiento sobre el entorno de destino, los tipos de tecnologías en uso, más útiles al realizar escaneos de red internos), obtener una gran cantidad de puertos (nmap o dnmap a velocidades crecientes, cada una con 20 o más puertos únicos), y evite los servicios demasiado brillantes que son potenciales honeypots, es decir, 21-23, 25, 53, 110, 135-139, 445, 1337, 1433, 1723, 3306, 3389, 5060-5061, 5800, 5900, 8080, 10000, 31337 y 44443 (¡NOTA, NO escanee estos números de puerto todavía!).

-T2 --scan-delay 12s --max-retries 0 --randomize-hosts --open -n -Pn -p26,66,79,113,389,407,465

-T2 --scan-delay 9s --max-retries 1 --randomize-hosts --open -n -Pn -p512-514,523-524

-T2 --max-retries 3 --randomize-hosts --open -n -Pn -p548,554,587,593,873,993,1026,1050,1080,1099,1158,1344,1352,1521,1604,1720,2202,2302,2383

--max-rate 20 --max-parallelism 2 --max-retries 3 --randomize-hosts --open -n -Pn -p2628,2869,2947,3000,3031,3260,3478,3500,3632,3689 , 4369,5019,5040,5222,5353,5357,5432,5560,5631-5632

--max-rate 40 --max-parallelism 4 --max-retries 3 --randomize-hosts --open -n -Pn -p5666,5672,5679,5850,5920,5984-5985,6000-6005,6379 , 6481,6666,7019,7210,7634

--max-rate 80 --max-parallelism 8 --max-retries 3 --randomize-hosts --open -n -Pn -p8000,8009-8010,8834,9160,9999,11211,12000,17185,13722 , 19150,27017,30718,35871,49152,50030,50060,50070,50075,50090,52822,52869,60010,60030,64623

A continuación se encuentra el siguiente nivel de exploración de nmap (velocidad predeterminada, sin aleatorización debido a las comprobaciones de latencia de qscan), que le brinda muchos detalles y potencial de movimiento. Use principalmente números de puertos que sepa que están abiertos, aunque seleccione un puerto que posiblemente no esté abierto (especialmente los que en el pasado tuvieron resultados ambiguos). Evite usar dnmap u otras ineficiencias que rompan el script qscan. Los puertos TCP (típicamente HTTP o SSL/TLS) podrían estar detrás de servidores proxy de almacenamiento en caché inverso, equilibradores de carga, redirigidos a nivel de red o similares. El script qscan debería ayudar a identificar estas situaciones, aunque usted probablemente querrá complementarlos con otras herramientas como alabarda (o secuencias de comandos NSE adicionales como http-affiliate-id y http-favicon). En esta fase, puede usar prefijos IP, nombres de host, o una combinación. Sugiero usar una herramienta fuerte aquí, como blacksheepwall. Tenga cuidado cuando apunte a nombres de host porque los sensores DNS pasivos revelarán su ubicación y/o intenciones mucho más fácilmente de lo que piensa, lo que conducirá a bloques similares a IPS o WAF (y en este punto tendrá que poder distinguir entre esos tres, así como otras contramedidas defensivas). Siga probando todos los puertos de la manera directamente anterior hasta que haya agotado lo que ya conozca las redes y dominios de destino. Si tiene un puerto SSL/TLS de destino, el d La secuencia de comandos de uplicates lo ayudará a comprender cuándo un único Host está hablando en múltiples IP o redes (generalmente de múltiples hogares).

--script qscan --max-retries 7 - razón -Pn --version-intensidad 0 -sV -p80, (otros puertos TCP encontrados) --script qscan, duplicados, ssl-cert --max-retries 7 - v --reason -Pn -sV --version-all -p80,443, (otros encontrados anteriormente)

Siga esta línea de pensamiento con algunas comprobaciones de puerto único utilizando una suma de comprobación incorrecta TCP. Utilice su conocimiento del pasado y construya sobre él. Antes de continuar, asegúrese de tener una buena idea sobre la red rutas y componentes internos de cada paquete que envíe, y prediga las respuestas a partir de este momento. Si desea desarrollar un poco de conocimiento adicional en esta etapa, es posible que desee utilizar diferentes herramientas, como pbscan, portbunny, masscan, zmap, o unicornscan (el indicador -w file.pcap podría reutilizarse aquí para permitir el análisis de captura de paquetes de manera muy similar al pcap_log de MSF, pero no sugiero necesariamente ningún enfoque tan genial como suena inicialmente). Si tiene una manera (preferiblemente un sistema separado en línea para que la E/S del disco, la CPU y el uso de la memoria no afecten sus escaneos) para realizar la captura de paquetes, por lo general, necesitará una herramienta como netsniff-ng para guardar pcaps (o una herramienta diferente si requiere pcapng) y luego procese los resultados con p0f y/o PRADS. se vuelven complejos, y hay algunas herramientas además de nmap que probablemente querrás aprovechar en esta etapa. Dirigirse a versiones específicas del puerto aún no es necesario, aunque se puede lograr aquí. Sugiero que se haga un uso intensivo de las huellas digitales a nivel del sistema operativo con una identificación de servicio "suficiente" para correlacionar. Existen técnicas antiguas (como una bifurcación de nmap llamada cron-os ) que deberían ser portadas a una herramienta más nueva con una actualización de la base de datos de fp a plataformas modernas (razón por la cual sugerí p0f y PRADS antes) - tienden a mantenerse al día con el cambio constante de tecnologías). Rapid7 tiene un proyecto de big data para huellas digitales de servicio, recog . El control de versiones de servicio de Nmap es solo promedio en comparación con herramientas como amap, y hay muchas herramientas de solución de puntos como fpdns, ntp-fingerprint.pl, info2cpe, et al. Los escáneres de Vuln como Nessus incorporan hmap (una huella digital HTTP), pero también hay muchas herramientas en ese espacio (httprint, httprecon). Es molesto que las huellas digitales del sistema operativo y las versiones del servicio sean muy problemáticas. Le sugiero que haga lo mejor que pueda con los métodos y herramientas que describí.

--script qscan --max-retries 7 --badsum -v -O --osscan-guess --max-os-tries 1 --razón --send-ip --version-intensidad 0 -sV -p80, ( al menos un puerto cerrado)

Si, y cuando lo hace, se encuentra con cualquier obvio IPS u otros bloques, vea la sección más abajo que menciona sniffjoke y otras técnicas avanzadas de evasión (AET). Si realmente puede hacer una huella digital del sistema ( s) bloqueando su tráfico, entonces su mejor opción es ejecutar un par cliente/servidor sniffjoke en otro entorno similar donde ya tenga acceso al servidor (NB, esto podría ser de una prueba de lápiz anterior o de un laboratorio o entorno simulado). El truco de Badsum debería adelantarse a la mayoría de los sistemas IPS. Otras técnicas por las que hemos pasado también pueden haber descubierto estos sistemas de bloqueo. Si encuentra un buen AET, es probable que desee ejecutar todo su puerto anterior analiza de nuevo para ver si tiene resultados similares. Si siente que el tráfico SYN se está acelerando (una forma de verificar es usar nmap contra un grupo de puertos abiertos conocidos con conexiones completas TCP) y los mismos puertos con solo SYN estándar), consulte la sección a continuación sobre evasión de cookies SYN, así como los s aún más ection sobre el uso de tcptrace para detectar tales problemas.

Escanee algunos puertos UDP, pero verifique con algunas herramientas diferentes para estar seguro. Aprenda a importar Nmap datos a MSF para aprovechar hosts -R en módulos como empty_udp (pero modifique el script para eliminar 1-1024,2049,5060,5061). No estamos comprobando ningún puerto de rango bajo debido a honeypots, detección de intrusos, registro u otras inconsistencias en este momento. Si hay puertos UDP abiertos, este conocimiento debería complementar lo que ya sabemos acerca de los puertos en vivo TCP en esta red. Si, debido al conocimiento previo sobre los tipos de destino (desde el sistema operativo o la detección de versiones) o el entorno de destino, siente que podría obtener más conocimiento escaneando en busca de protocolos IP como SCTP, ICMP, IGMP o de otro modo, tenga cuidado, considere las consecuencias y envíe algunas sondas para verificar o aprovechar ese conocimiento.

--max-rate 100 --max-retries 0 --randomize-hosts --asonon -Pn -sUV --version-all -p500,523,623,1604,1645,1812,5353,5632,6481,6502,10080, 17185

unicornscan 10.0.0.0/24:500,523,1604,1701,1812,2000,3478,5353,5632,10080-10081 -Iv -mU

para i en ike db2 citrix net-support netop; do udp-proto-scanner.pl -p $ i 10.0.0.0/24; hecho

-T2 --scan-delay 1s --max-retries 0 --randomize-hosts --reason -n -Pn -sO -p132

--max-rate 400 --max-retries 0 --randomize-hosts --asonon -n -Pn -sY -p1167,1812,1813,2225,2427,2904,2905,2944,2945,3097,3565,3863 3864,3868,4739,4740,5090,5091,5672,5675,6704,6705,6706,7626,8471,9082,9084,9900,9901,9902,14001,20049,29118,29168,29169,36412,36422

-T2 --scan-delay 1s --max-retries 0 --randomize-hosts --reason -n -Pn -sO -p1

-T2 --scan-delay 1s --max-retries 0 --randomize-hosts --send-ip -n -PM -sn

-T2 --scan-delay 1s --max-retries 0 --randomize-hosts --reason -n -Pn -sO -p2

-T2 --scan-delay 1s --max-retries 0 --randomize-hosts --send-ip -n -PP -sn

-T2 --scan-delay 1s --max-retries 0 --randomize-hosts --asonon -n -Pn -sO -F --exclude-ports 1,2,6,17,132

-T2 --scan-delay 1s --max-retries 0 --randomize-hosts --asonon -n -Pn -sO --exclude-ports 1,2,6,17,132 --data-length 3

Para ser absolutamente pedante, ejecute lo siguiente en cada Host activo que respondió a cualquier cosa de escaneos pasados.

-T2 --max-scan-delay 90ms --max-retries 9 -v -O --osscan-guess -n --send-ip -PE (o -PP si tiene éxito y/o -PM si también tiene éxito) - sTUV -pT: (al menos un puerto cerrado pero también uno abierto si es posible), U: (como T :) --version-all

Después de esta ejecución más reciente, debe saber casi todo lo que pueda acerca de cada Host, cada puerto; debe ser obvio para usted si hay un honeypot o IDS/IPS/IDP/etc. Podrá agruparlos en categorías incluso si no está absolutamente seguro, por ejemplo, "probablemente Cisco", "sabor de Unix", "definitivamente teléfonos IP o softphones de algún tipo" o "hosts desconocidos, pero estos coinciden con un cierto perfil a pesar de que tienen diferentes puertos abiertos ". Se siente listo para comenzar el análisis de vulnerabilidad y la explotación contra estos hosts y sus puertos identificados y/o no identificados.

Deberá agregar los puertos encontrados previamente a la siguiente lista de puertos de nmap para obtener un archivo XML adecuado Nmap para importar a Metasploit o consultar con metasploitHelper . Asegúrese para agregar puertos TCP/SCTP a la sección "T:" y puertos UDP a la sección "U:".

--min-rate 100 --max-rate 400 --min-parallelism 16 --max-retries 9 --defeat-rst-ratelimit -sUS -n -Pn -pT: 0,1,19,42,49, 85,105,111,143,264,402,444,446,502,515,631,689,705,783,888,910,912,921,998,1000,1099,1211,1220,1533,1582,1617,1755,1811,1900,2000,2001,2067,2100,2103,2207,2362,2380,2525,2940,2947,2967,3050 3200,3217,3299,3460,3465,3628,3690,3817,4322,4444,4659,4672,4679,5038,5051,5093,5168,5227,5466,5498,5554,5555,6050,6070,6080, 6101,6106,6112,6503,6504,6542,6660,6661,6905,6988,7021,7071,7144,7414,7426,7579,7580,7777,7787,8020,8023,8030,8082,8087,8503, 8787,8812,8899,9100,9200,9256,9390,9391,9788,9855,10001,10008,10050,10051,10202,10203,10616,10628,11000,11234,12174,12203,12221,12345,12397, 12401,13364,13500,16102,18881,19810,20010,20031,20034,20101,20111,20171,20222,22222,23472,26000,26122,27000,27960,28784,30000,31001,32764,34205,34443, 38080,38292,40007,41025,41080,41523,41524,44334,44818,46823,46824,50001,50013,55553,57772,62514,65535, U: 19,42,49,69,111,161,631,1900,2049,2362, 777 7 -oX nmap_target1.xml

Si encuentra un buen objetivo, puede utilizar archivos personalizados de recursos de Metasploit (o "rc") que consisten en notas sobre módulos, sus configuraciones y cómo ejecutarlos. Puede encontrar archivos rc específicos de número de puerto aquí , que puede llevarlo por la ruta rápida a un Shell. Puede requerir un poco de solución de problemas, pero atacar la infraestructura tan pronto podría indicar la presencia o falta de IPS (red o host). También podría bloquear su dirección IP, así que proceda con precaución. También es posible que desee ejecutar algunos de estos scripts NSE específicos del puerto , algunos de los cuales tienen argumentos de script importantes y otros sintonizables. Si ya sabe con certeza que un puerto está abierto, o incluso confía en sistema operativo/servicio de destino, entonces también podría hacer algo para obtener más información sobre sus estados de tiempo de ejecución Su llamada, pero en esta etapa de la automatización de pruebas definitivamente necesitará aumentar la información disponible para obtener una ventaja en la decisión.

Otra posibilidad es pasar a la capa web, que generalmente implica ejecutar carbonador después de una pequeña acción de nmap y nikto (NB, querrá modificar su nikto.conf para modificar el agente de usuario a uno de navegador web normal y quizás comentar las dos líneas de mutación). También querrá descubrir más nombres de host y prefijos de IP en este momento (domaincrawler.com, fierce, knock, dnsmap y subbrute ayudarán con subdominios y dnsrecon debería encargarse del resto). Si tiene toneladas de objetivos, entonces puede usar webshot para soltar imágenes que puede ordenar y clasificar sus selecciones de objetivos. Si definitivamente sabe que hay un IPS o WAF en su lugar, entonces es posible que desee cambiar de táctica.

-Pn -p 80 --version-all -sV --script "http-waf *", http-devframework, http-enum, http-vhosts -oG nikto.pl -h - -Ajuste x04689c -D 1 -salida nikto.xml

-Pn -p 443 --version-all -sV --script "http-waf *", http-devframework, http-enum, http-vhosts -oG - | nikto.pl -h - -ssl -Tuning x04689c -D 1 -output niktotls.xml

Ahora es el momento de activar cualquier mecanismo anti-IDS (por ejemplo, sniffjoke, --- (fragroute y Evader ) o ejecutar cualquier último minuto SYN-cookie =, IDS, IPS y verificaciones de detección WAF. Finalmente, ¡adelante! No tiene sentido escanear un solo puerto o un pequeño conjunto de puertos en este momento.

--script banner-plus --min-rate 450 --min-parallelism 20 --max-retries 5 --defeat-rst-ratelimit -n -Pn -p-

unicornscan 10.0.0.0/24:a -D -L 20 -r 450 -Iv -mU

unicornscan 10.0.0.0/24:9,42,49,67,88,135,139,162,213,259,260,407,445,464,514,517-523,546,631,657,826,829,1069,1194,1558,1645-1646,1900,1967,2055,2362,2427,2727,2746,3001,3283,3401 4045,4500,4665,5060,5350,5351,5355,5405,5432,6481,6502,8905,8906,9999,17185,18233,26198,27444,32822-32823,34555,41250,47545,49152,49599 54321 -r 450 -Iv -mU

Las velocidades anteriores (--min-rate en nmap y -r en unicornscan) se miden en paquetes por segundo (pps) y se pueden modificar hasta 10000 cuando se encuentra en una red local u otras condiciones ideales. Hay parches para cambiar la velocidad de escaneo de nmap dinámicamente (interactivamente) aquí (sorprendente cuando se combina con tcptrace.org buscando retransmisiones y modificando la tasa mínima, la tasa máxima, los equivalentes interactivos, el paralelismo mínimo, min-hostgroup, o max-retries hasta que se alcance el ancho de banda máximo). Es difícil obtener nmap en el enfoque de mejor ajuste para el escaneo SYN o UDP masivo, incluso cuando se utilizan parámetros pedagógicos min-hostgroup, min-parallelism y min-rate. Es por eso que muchas personas recurren a unicornscan, zmap o masscan. Si sus redes y servicios objetivo tienen tiempos de ida y vuelta muy confiables y consistentes en sus respuestas del servidor (o si tiene el tiempo y la paciencia para descubrir las características de la red), nmap/dnmap puede ser su mejor opción para la coherencia de las herramientas, si nada más .

Es posible que necesite verificar nuevas IP, nombres de host o puertos que no haya visto en el pasado (como los puertos honeypot que evitamos anteriormente, incluidos los puertos SCTP 5060-5061 con -sY). Vuelva a la etapa donde ejecutó qscan y vuelva a intentar escenarios utilizando la nueva información. Continúe buscando honeypots utilizando técnicas adicionales como el módulo detect_kippo de Metasploit. Asegúrese de volver a ejecutar metasploitHelper si corresponde. Realice un seguimiento de toda su información, tal vez utilizando Dradis, MagicTree, Discover.sh Conversiones XML a CSV, Lunarline VSC, Prolific Solutions proVM Auditor, Cisco Kvasir o FishNet LAIR. Estas son mejores alternativas al Bloc de notas, etc. porque son conscientes de los datos de las pruebas de penetración. Al igual que antes, es posible que la secuencia de comandos duplicados ayude a identificar los hosts múltiples. Los escenarios comunes incluyen máquinas Windows con o sin SSL/TLS, o posiblemente una máquina que no sea Windows que ejecute SSH, SSL/TLS, o ambas (aunque es posible que un host de Windows pueda estar ejecutando SSH, pero ese es un caso de esquina muy extraño ).

--script qscan, duplicates, nbstat, ssl-cert --max-retries 7 -v -O --osscan-guess --max-os-tries 1 --reason -Pn -sSUV --version-all -pT: 135,139,443,445, U: 137

--script qscan, duplicates, nbstat --max-retries 7 -v -O --osscan-guess --max-os-tries 1 --razón -Pn -sSUV --version-all -pT: 135,139,445, U: 137

--script qscan, duplicados, ssh-hostkey --max-retries 7 -v -O --osscan-guess --max-os-tries 1 - razón -Pn -sV --version-all -p22

--script qscan, duplicados, ssh-hostkey, ssl-cert --max-retries 7 -v -O --osscan-guess --max-os-tries 1 --razón -Pn -sV --version-all - p22,443

Si encuentra algún puerto abierto con servicios (o aplicaciones de cualquier tipo) que requiera cualquier forma de autenticación, entonces querrá leer y configurar los scripts específicos del protocolo, pero genéricamente sus argumentos de línea de comando nmap/dnmap deberían verse así:

--min-rate 100 --max-retries 5 -n -Pn --script brute, creds-summary --script-args inseguro, brute.mode = pass, userdb = usernames.lst, passdb = passwords.lst, brute .firstOnly, brute.guesses = 2 --version-all -sV (-sUV o -sUSV, si corresponde)

Lo anterior se podría realizar con dnmap utilizando un archivo passwords.lst diferente en cada servidor para aumentar los intentos, realizar una búsqueda bruta desde diferentes direcciones IP o una variedad de otras opciones dependientes del escenario.

Finalmente, hablemos acerca de cómo nmap/dnmap realmente puede brillar: al reunir todo después de saber que el escaneo SYN funciona, tiene resueltas las sondas UDP (tenga en cuenta que faltan muchos de los siguientes en las cargas útiles de nmap, nmap- service-sondas, Unicornscan, etc/payloads.conf y udp-proto-scanner.conf, por lo que es posible que tenga que crearlos manualmente) y ese IDS/IPS no será una molestia para su automatización. Digamos que no solo está tomando un descanso para tomar café, no puede tomar "solo otra siesta" y su pareja exige algo de atención y una rutina de sueño normal de 8 horas. Bueno, inicie nmap/dnmap de esta manera y obtendrá excelentes resultados cuando regrese a la consola.

--min-rate 100 --max-retries 5 --fefeat-rst-ratelimit --randomize-hosts --open -Pn -v -O --osscan-guess --max-os-tries 1 -sUSV - version-all --script banner, duplicados, nbstat, ssh-hostkey, ssl-cert, vuln, vulscan, brute, creds-summary --script-args vulns.showall, inseguro, vulscanversiondetection = 0, brute.mode = pass, 10.01. 1099-1100,1128,1158,1167,1211,1220,1241,1337,1344,1352,1433,1521,1533,1581,1582,1604,1617,1720,1723,1755,1811-1813,1900,1944, 2000-2001,2067,2100,2103,2202,2207,2225,2301-2302,2362,2375,2380,2381,2383,2427,2525,2628,2869,2904,2905,2940,2944,2945,2947, 2967,3000,3010,3031,3037,3050,3057,3097,3128,3200,3217,3260,3299,3306,3389,3460,3465,3478,3500,3565,3628,3632,3689-3690,3780, 3790,3817,3863,3864,3868,3872,4000-4002,4100,4322,4369,44 44,4567,4659,4672,4679,4739,4740,4848,5000,5019,5038,5040,5051,5060-5061,5090-5091,5093,5168,5222,5227,5250,5353,5357,5432, 5466,5498,5554-5555,5560,5631,5632,5666,5672,5675,5679,5800-5802,5814,5850,5900,5920,5984,5985,5986,6000-6005,6050,6060,6070, 6080,6101,6106,6112,6346,6347,6379,6405,6481,6503,6504,6542,6660-6661,6666-6667,6704-6706,6905,6988,7000-7002,7019,7021,7071, 7080,7144,7181,7210,7272,7414,7426,7443,7510,7579,7580,7626,7634,7770,7777-7778,7787,8000-8001,8008-8010,8014,8020,8023,8028, 8030,8040,8080-8082,8085,8087-8091,8095,8140,8161,8180,8200,8222,8300,8400,8443,8471,8500,8503,8776,8787,8812,8834,8880,8888, 8899,8980,8999,9000,9002,9060,9080,9082,9084,9090,9100,9160,9191,9200,9256,9292,9390,9391,9443,9495,9788,9855,9900,9901-9902, 9990,9999,10000-10001,10008,10050-10051,10202,10203,10616,10628,11000,11211,11234,12000,12174,12203,12221,12345,12397,12401,13364,13500,13722,14001, 16102,17185,18881,19150,19810,20010,20031,20034,20049,20101,20111,20171,20222,22222,23472,26000,26122,27 000,27017,27960,28784,29118,29168,29169,30000,30718,30821,31001,31337,32764,34205,34443,35871,36412,36422,38080,38292,40007,41025,41080,41523-41524, 44334,44443,44818,46823,46824,49152,50000-50001,50013,50030,50060,50070,50075,50090,52822,52869,55553,57772,60010,60030,62514,64623,65535, U: 7, 9,11,13,17,19,36-37,42,49,53,67,69,88,111,123,135,137,139,161-162,177,213,259,260,407,445,464,500,514,517-521,523,546,555,623,631,657,826,829,921,1069,1194,1434,1558,1604,114512,1164,114516,1164,164512 1967,2000,2049,2055,2221,2302,2362,2427,2727,2746,3001,3283,3401,3478,3544,4045,4104,4500,4665,5060,5350,5351,5353,5355,5405, 5432,5555,5632,6481,6502,7001,7004,7777,7983,8905,8906,9999,10080-10081,17185,18233,26198,27444,27960,31337,32767-32774,32822-32823,34555, 41250,47545,49152,49599,54321

Solo un poco de esfuerzo con nmap puede ahorrarle mucho tiempo si se involucra con OpenVAS o Metasploit más adelante. Prefiero ejecutar nmap y OpenVAS desde la msfconsole para que todos esos datos lleguen a la base de datos MSF. También se pueden exportar datos de herramientas a XML consumible de Metasploit, o usar una herramienta como nmap2nessus. Una lección importante para aprender sobre los escáneres de vulnerabilidades es que se pierden muchas vulnerabilidades del mundo real. Al ejecutar nmap/dnmap durante la noche de la manera descrita anteriormente, podrá ver el potencial de cada ruta de vulnerabilidad. La mayoría ganó no funcione en el primer disparo: nmap/dnmap le dirá que fallaron (pero no el verdadero "por qué", incluso si cree que su razón es válida), por lo que depende de usted averiguar si la vulnerabilidad puede conducir a la explotación o no. Regrese a la discusión anterior sobre Metasploit específico de número de puerto y Nmap archivos NSE, ahora es aún más relevante. Conozca las partes internas de estos scripts y cómo solucionar cada uno de ellos línea de código en la que consisten: un pequeño desplazamiento, un pequeño parámetro o algunos ajustes combinatorios agarrará ese Shell que cualquier otro probador de penetración se hubiera perdido.

35
atdre

Tengo algunas anécdotas que me gustaría compartir sobre el “A network vulnerability scanner in a special way?” pregunta anterior.

Antes de saltar, me gustaría señalar que para la mayoría de las herramientas de escaneo, la velocidad es la antítesis de la precisión. Velocidad mata.

speed kills

Escaneo de puertos:

Ajuste nmap para la velocidad de salida de bolas (a la –min-hostgroup, --min-parallelism, and friends) es increíble para ver los contadores de paquetes en iptraf se vuelven borrosos, pero puede estar seguro de que la precisión se verá afectada.

Mi cobertura típica para ir rápido es ejecutar múltiples rondas de escaneos nmap: preferiblemente en diferentes días y en diferentes momentos. Esto ayuda a minimizar los peligros que matan la precisión, como las copias de seguridad programadas que saturan el ancho de banda.

Para escaneos realmente grandes, pruebe nicornscan . Ha pasado un tiempo, pero tomé nota de que la última vez que hice un escaneo de puertos basado en Internet respetablemente grande:

Para recapitular: Realizamos un barrido de más de 400,000 IP públicas en varios continentes configurando los escaneos para realizar un escaneo completo de puertos TCP de cada IP, sostenido ~ 55 Mbits/s usando entre 3 y 5 sistemas, y lo completó en cuestión de días.

Esto es bastante bueno teniendo en cuenta que al enviar dos sondas SYN por puerto, significaba enviar ~ 52.5 mil millones de paquetes y producir unos 3 terabytes de datos.

Análisis de vulnerabilidad:

Esto puede no ser cierto hoy en día, pero hace unos años se volvió popular comercialmente. los escáneres optimizarían sus escaneos fuera de la caja para mayor velocidad. El marketing y las ventas lo impulsaron porque los clientes vinculan la calidad con la rapidez con la que obtienen resultados de escaneo.

Entonces, como vendedor (divulgación: solía trabajar para uno), el juego era reducir el número de controles a favor de la velocidad. Completo TCP o escaneos UDP? De ninguna manera. ¿Comprobaciones de vulnerabilidad individuales que llevan tiempo? Enterrarlos.

Puede ver a dónde va esto: si desea precisión, dedique unos minutos y personalice sus escáneres de vulnerabilidad preferidos para obtener precisión (y cobertura). Si quiere velocidad, sepa que está sacrificando esas propiedades.

Combinando lo anterior:

Estoy aburrido de la frecuencia con la que los resultados de escaneo de puertos difieren de una herramienta a otra en los mismos compromisos. Odio cuando pago un análisis de vulnerabilidad por IP (por ejemplo, Qualys) y la herramienta pierde repetidamente los puertos abiertos que verifiqué que estaban abiertos. Me gusta tomar los resultados de mis escaneos de puertos (ver arriba) y personalizar cada herramienta de escaneo de vulnerabilidades que estoy usando para acceder solo a esos puertos que mis escaneos personalizados descubrieron que estaban abiertos. Esto puede ahorrar toneladas de tiempo.

Impulso de la nube:

Para los escaneos basados ​​en Internet, ahora uso casi exclusivamente máquinas virtuales en la nube. Mi favorito es linode.com.Linode’s AUP hasta ahora no prohíbe el escaneo de puertos (Amazon sí lo hace). Girar 30 máquinas virtuales para distribuir los esfuerzos de escaneo en centros de datos no regionales puede devolver la diversión al escaneo de puertos. También es más fácil ser agresivo con el ajuste dada la favorable latencia y las condiciones de ancho de banda. Mi punto aquí es que las máquinas virtuales en la nube son increíbles para aumentar la capacidad de escaneo.

19
Tate Hansen

Pruebe SET de Social-Engineer.org. Todo el sitio es un gran recurso.

10
Tim Troy

Algunos pensamientos que tuve al leer esta pregunta ...

Las pruebas de penetración dependen mucho de las circunstancias. Sí, hay herramientas automatizadas, pero incluso si ayudan, no pueden hacer todo. Según mi experiencia, la automatización se interpone a menos que se aplique a un paso específico en el proceso de prueba de pen/auditoría.

De hecho, acabo de interesarme en OpenVAS . Técnicamente no es una herramienta de prueba de penetración, pero es muy útil para el reconocimiento. Y si lo busca, tenga en cuenta que esta mañana se lanzó una nueva versión (3.2.3).

Esto no es de código abierto, pero otra herramienta para investigar es CoreInsight . Estoy en el proceso de tener la oportunidad de jugar con él y, aunque entiendo que no tendrá la capacidad de maniobra de Core Impact, debería ser una herramienta muy interesante y útil.

Aunque tengo mis dudas sobre la automatización en pen-test, estoy interesado en lo que otros tienen que decir ... (+1 a usted, señor)

4
Ormis

Si necesita aplicar fuerza bruta a un sitio web y actuar como un navegador real con JavaScript, puede escribir un par de líneas en http://zombie.labnotes.org/ . Lo usé para la enumeración de usuarios, la generación de listas de palabras a partir de información de usuario y la fuerza bruta al mismo tiempo.

var zombie = require("zombie"); var assert = require("assert");

// Load the page from localhost zombie.visit("http://localhost:3000/", function (err, browser, status) {

  // Fill email, password and submit form   browser.
    fill("email", "[email protected]").
    fill("password", "eat-the-living").
    pressButton("Sign Me Up!", function(err, browser, status) {

      // Form submitted, new page loaded.
      assert.equal(browser.text("title"), "Welcome To Brains Depot");

    })

});

Sin la función Javascript uso Ruby - mecanizar.

3
baj