practicar pentesting y dudas generales

Iniciado por retr02332, 4 Agosto 2020, 00:33 AM

0 Miembros y 1 Visitante están viendo este tema.

retr02332

Hola a todos.

Pasa que ahora ando leyendo muchos libros, PDF's y haciendo cursos sobre hacking etico y pentesting.

Dado el caso se me plantearon unas cuantas dudas que espero me puedan ayudar a resolver aqui :D

ANTES DE LEER, POR FAVOR, NECESITO ESTAS RESPUESTAS PARA PROCEDER CON ESTE HERMOSO MUNDO, AYUDENME A SUPERAR ESTAS PREGUNTAS :'V

Las dudas son las siguientes:

1. "el orden es fundamental en todo pentester", escucho mucho esa frase... Y me pregunto sobre ¿que plataforma es mejor, o cual es la mas usada para administrar la informacion que vamos recolectando en las primeras dos fases del pentesting y como deberia organizarla?

2. Veo que en muchos cursos o libros primeramente nos guian en la primera fase (footprinting), y luego de repente se pasa a (fingerprinting -enumeracion activa) pero se me hace muy raro ya que... nmap por ejempĺo veo que lo usan en la red donde estoy (local) por lo que supongo que con la informacion que haya recolectado en footprinting ya debia haber evaluado y vulnerado la red victima para proceder con los escaneos de nmap u otros? o que se supone que deberia pasar despues de tener la informacion de manera pasiva y encontrar vulnerabilidades con por ejemplo... shodan.

en sintesis: ¿como es ese paso entre footprinting y fingerprinting o como se supone que deberia ser?

3. Me encuentro practicando C++, (ya manejo python) este lenguaje c++ es mas denso claramente por lo que requiere mucha entrega... pero pasa que en otdo lo que veo sobre practicar en internet ataques web consideran estudiar o saber lenguajes como php, sql, html, y demas... entonces, ¿sigo estudiando c++ o mejor por ahora me inclino por la web y luego retomo c++?

4. por ultimo, he buscado en internet paginas web para auditar, la cosa es que en lo corrido del curso, he aprendido a usar plataformas como ipv4info, robtex, whois, dnsdumpster, shodan, zoomeye, google hacking y bueno unas cuantas mas para tener informacion sobre la infraestructura como tambien posibles vulnerabilidades con shodan o recon-ng. La cosa es que las VM que me encuentro son para atacar un sistema pero no una web como yo quisiera, es decir. Para poder sacar los rangos de red y todo ese proceso como si fuera una auditoria web  real. no se si me entienden..

en sintesis: ¿Donde puedo practicar no solo hacking a sistemas como tal (vm vulnerables como metasploitable) sino que mas bien auditar paginas web. en el sentido de la palabra como les conte. lo mas realista posible para practicar.  COmo sacar lso rangos de red, ver si hay lekas en las cuentas de la empresa, analizar con google hacking la informacion de los empleados. si esto no es posible en un modo prueba (para practicar) al menos que no sea como metasploitable que es solo scanear con nmap (u otras) y demas (asi lo veo no se si estoy equivocado) me gustaria mas usar la fase de footprinting  y no saltarmela y empezar a enumerar como pasaria con vm's como metasploitbale. me entiendes mas ahora ?...

@XSStringManolo

Cita de: clay2332xd en  4 Agosto 2020, 00:33 AM
Hola a todos.

Pasa que ahora ando leyendo muchos libros, PDF's y haciendo cursos sobre hacking etico y pentesting.

Dado el caso se me plantearon unas cuantas dudas que espero me puedan ayudar a resolver aqui :D

ANTES DE LEER, POR FAVOR, NECESITO ESTAS RESPUESTAS PARA PROCEDER CON ESTE HERMOSO MUNDO, AYUDENME A SUPERAR ESTAS PREGUNTAS :'V

Las dudas son las siguientes:

1. "el orden es fundamental en todo pentester", escucho mucho esa frase... Y me pregunto sobre ¿que plataforma es mejor, o cual es la mas usada para administrar la informacion que vamos recolectando en las primeras dos fases del pentesting y como deberia organizarla?

2. Veo que en muchos cursos o libros primeramente nos guian en la primera fase (footprinting), y luego de repente se pasa a (fingerprinting -enumeracion activa) pero se me hace muy raro ya que... nmap por ejempĺo veo que lo usan en la red donde estoy (local) por lo que supongo que con la informacion que haya recolectado en footprinting ya debia haber evaluado y vulnerado la red victima para proceder con los escaneos de nmap u otros? o que se supone que deberia pasar despues de tener la informacion de manera pasiva y encontrar vulnerabilidades con por ejemplo... shodan.

en sintesis: ¿como es ese paso entre footprinting y fingerprinting o como se supone que deberia ser?

3. Me encuentro practicando C++, (ya manejo python) este lenguaje c++ es mas denso claramente por lo que requiere mucha entrega... pero pasa que en otdo lo que veo sobre practicar en internet ataques web consideran estudiar o saber lenguajes como php, sql, html, y demas... entonces, ¿sigo estudiando c++ o mejor por ahora me inclino por la web y luego retomo c++?

4. por ultimo, he buscado en internet paginas web para auditar, la cosa es que en lo corrido del curso, he aprendido a usar plataformas como ipv4info, robtex, whois, dnsdumpster, shodan, zoomeye, google hacking y bueno unas cuantas mas para tener informacion sobre la infraestructura como tambien posibles vulnerabilidades con shodan o recon-ng. La cosa es que las VM que me encuentro son para atacar un sistema pero no una web como yo quisiera, es decir. Para poder sacar los rangos de red y todo ese proceso como si fuera una auditoria web  real. no se si me entienden..

en sintesis: ¿Donde puedo practicar no solo hacking a sistemas como tal (vm vulnerables como metasploitable) sino que mas bien auditar paginas web. en el sentido de la palabra como les conte. lo mas realista posible para practicar.  COmo sacar lso rangos de red, ver si hay lekas en las cuentas de la empresa, analizar con google hacking la informacion de los empleados. si esto no es posible en un modo prueba (para practicar) al menos que no sea como metasploitable que es solo scanear con nmap (u otras) y demas (asi lo veo no se si estoy equivocado) me gustaria mas usar la fase de footprinting  y no saltarmela y empezar a enumerar como pasaria con vm's como metasploitbale. me entiendes mas ahora ?...

1. No hace falta saberse estas cosas. Es lógica pura. No puedes atacar un sistema si no tienes una ip, un dominio o un algo.
La primera fase es siempre la fase de info-gathering/recopilación de información.
Yo es la fase que considero más importante de todas. Info útil puede ser desde correos expuestos hace 15 años que encuentras en wayback machine hasta una ip privada en un documento que te sirve para verificar que estás en la red que buscabas. Realmente no hay información inutil.
Organízala por categorías tipo: Web, Servidor, Organización, Personal... A mi me gusta usar mucho el tree de Linux.

2 Footprinting es "seguir los pasos". No es lo mismo seguir a alguien que interrogarlo. Nmap entra en un edificio y va puerta a puerta haciendo preguntas. Footprinting es averiguar en que edificios hay evidencias. Por saber donde hay un edificio, no significa que sepas sus entradas.
Se suponge que con nmap aún estás en fase de info-gathering y no dispones de vulnerabilidades aún. A menos que lo tengas cargado de scripts.
Cuando encuentras vulnerabilidades, debes crear (o revisar para usar) un POC (Exploit que desmuestre la vulnerabilidad).
Depende de tus objetivos. No es lo mismo pentesting contra una web con programa de bughunting, la de tu amigo, el pc del fiscal de delitos informáticos o un grupo terrorista. En base a eso sabes si puedes tirar 30 scanneres a la vez o te interesa seguir en footprinting.

3 No puedes hacer todo a la vez? Nadie te puede decir que C++ es inutil para hacking web porque Apache está echo en C++, Chrome igual, Node.js igual... Lo que pasa es que requiere más tiempo para recoger frutos que otros. Muchísimo más.

4 La web de root-me y muchas otras por el estilo están para aprender y practicar. Por lo general vulnerabilidad que buscas, reto que encuentras.
Aprende a programar tus herramientas y exploits. La teoría son 5 minutos, aplicarla bastante más.
Tienes muchos proyectos de apps reales y ficticias vulnerables para instalar en donde quieras. Busca CTF y apps como DVWS, gruyere, HackMeCasino, DVMA alert(1),
prompt(1), xssgame, ninjasql, DVL .. Hay cientos.

No deberías hacer pentest en otros sistemas sin saber lo que haces al 100% y como puede afectar al entorno.

Mírate cosas de OSINT, ciberforensics y fingerprint (y haz herramientas).



retr02332

#2
Muchas gracias por tu respuesta, es muy completa.

Sin embargo solo me quedaron dos ultimas dudas:

en cuanto al punto 3: dices que estudiarlo todo al tiempo pero... ahora ando viendo redes, pentesting(las fases y todo eso (teoria-practica), c++. el empezar a aprender mas lenguajes o tecnologias. pienso que no alcanzaria a ser un experto en cada una sino mas bien saber de a pocos de cada una. (asi lo veo) pero en base a tu experiencia en realidad ves viable estudiar varias cosas a la vez?

en cuanto al punto 4: trato de programar mis herramientas en lo que puedo con bash y python (los que manejo mas, ya que c++ aun me lio con las librerias bastante). La cuestion es, lo de construir mis propios exploits. Esta claro que me faltan mas conocimientos para llegar a eso (por ahora sera usar los que hayan publicos pero mas importante saber como funcionan claramente) pero hay alguna guia de como elaborar un zero-day un exploit. que hay que considerar, seguir, o tener en cuenta a la hora de hacerlo..? y en que lenguajes se hacen mas.. c++, assembler? siempre he tenido esas dudas sobre desarrollo de exploits y que bueno que lo mencionaste.

Solo es eso, muchas gracias :D

@XSStringManolo

#3
Cita de: clay2332xd en  4 Agosto 2020, 02:18 AM
Muchas gracias por tu respuesta, es muy completa.

Sin embargo solo me quedaron dos ultimas dudas:

en cuanto al punto 3: dices que estudiarlo todo al tiempo pero... ahora ando viendo redes, pentesting(las fases y todo eso (teoria-practica), c++. el empezar a aprender mas lenguajes o tecnologias. pienso que no alcanzaria a ser un experto en cada una sino mas bien saber de a pocos de cada una. (asi lo veo) pero en base a tu experiencia en realidad ves viable estudiar varias cosas a la vez?

en cuanto al punto 4: trato de programar mis herramientas en lo que puedo con bash y python (los que manejo mas, ya que c++ aun me lio con las librerias bastante). La cuestion es, lo de construir mis propios exploits. Esta claro que me faltan mas conocimientos para llegar a eso (por ahora sera usar los que hayan publicos pero mas importante saber como funcionan claramente) pero hay alguna guia de como elaborar un zero-day un exploit. que hay que considerar, seguir, o tener en cuenta a la hora de hacerlo..? y en que lenguajes se hacen mas.. c++, assembler? siempre he tenido esas dudas sobre desarrollo de exploits y que bueno que lo mencionaste.

Solo es eso, muchas gracias :D
3. Se trata de tener una base. Tener un buen abanico te permite elegir entre varias opciones para cumplir el objetivo de forma inteligente.

Está muy bien tener un ferrari, pero si tienes 4 hijos y los quieres llevar a la playa... Igual era mejor haberse comprado un porche y un todo terreno por el mismo precio. Si no te sirve el porche inviertes más en él sin necesidad de vender el todo terreno.

Siempre puedes hacer 5 viajes con el ferrari claro.

4. Para construir un exploit, debes saber entender la vulnerabilidad y las tecnologías que puedes usar para comunicarte con ella. Un exploit no es más que algo que explota una vulnerabilidad. Normalmente es código, pero puede requerir condiciones o solo interactuar en cierto orden con la aplicación.
Cada exploit es único por lo que la única receta es entender la vulnerabilidad y como afecta esta a la aplicación.

Un zero-day no es más que un exploit para una vulnerabilidad nueva que la empresa afectada no tiene.

A cerca del lenguaje, tiene poca importancia en cual se hagan más.


https://sensepost.com/blog/2019/analysis-of-a-1day-cve-2019-0547-and-discovery-of-a-forgotten-condition-in-the-patch-cve-2019-0726-part-1-of-2/

Si no entiendes cosas de la entrada del blog pregunta.