Está en la página 1de 94

Machine Translated by Google

Hackear con Python

La guía definitiva para principiantes


Machine Translated by Google

Introducción
Este libro le mostrará cómo usar Python, crear sus propias herramientas de piratería y aprovechar al
máximo los recursos disponibles que se crean con este lenguaje de programación.

Si no tiene experiencia en programación, no se preocupe: este libro lo guiará a través de la


comprensión de los conceptos básicos de la programación y la navegación por los códigos de Python.

Este libro también le servirá como guía para comprender las metodologías comunes de piratería y aprender
cómo las usan los diferentes piratas informáticos para explotar vulnerabilidades o mejorar la seguridad.
También podrá crear sus propios scripts de piratería con Python, usar módulos y bibliotecas que están
disponibles en fuentes de terceros y aprender a modificar los scripts de piratería existentes para abordar
sus propias necesidades informáticas.

¡Gracias y espero que lo disfruten!


Machine Translated by Google

Tabla de contenido
Capítulo 1: Preparación para la piratería

Capítulo 2: Conceptos básicos de Python

Capítulo 3: Escritura de programas en Python

Capítulo 5: Operadores y expresiones

Capítulo 6: Funciones y módulos

Capítulo 7: Configuración para la piratería

Capítulo 8: Hackeo de redes

Capítulo 9: Hacks para la Web

Capítulo 10: Comprensión de los ataques con Python

Capítulo 11: Otros trucos ingeniosos para probar

Conclusión

Bonificación: vista previa de 'Introducción a Python 3


Machine Translated by Google

Capítulo 1: Preparación para la piratería

Todo aspirante a hacker debe aprender a usar un lenguaje de programación para descubrir y explotar las
debilidades de una computadora. Si bien no hay nada de malo en usar recursos que ya están disponibles,
querrá desarrollar mejores herramientas que le permitan hacer un mejor uso de su propia computadora. Debido
a que usted es el mejor juez cuando se trata de comprender sus propias necesidades, es consciente de que
muchas de las herramientas existentes disponibles en línea o en el mercado carecen de algunas de las
funciones que puede necesitar para que su computadora funcione de la manera que desea. .

El mundo de la informática cambia todos los días: cada hora se desarrollan nuevos hacks y también puede
esperar que diferentes expertos en seguridad los descubran. Si está atascado en el uso de herramientas de
piratería antiguas para realizar un reconocimiento o protegerse de la posibilidad de un ataque, es probable que
tenga algunos problemas. Por ejemplo, lanzar un malware en una máquina objetivo que ya ha mejorado su
sistema de seguridad no solo hará que su ataque falle, sino que la probabilidad de que el ataque sea rastreado
hasta usted también es alta.

Aprender un lenguaje de programación también le permitirá aumentar su probabilidad de piratear con éxito
y disminuir la probabilidad de ser detectado por IDS (sistemas de detección de intrusos), software antivirus
o herramientas que utilizan las fuerzas del orden. Si está aprendiendo a ser un hacker de sombrero blanco
al aprender cómo actúan los piratas informáticos criminales y desarrollar sus propias herramientas para la
explotación y manipulación del sistema, entonces definitivamente podrá usar códigos de seguridad
actualizados para combatir los nuevos programas de craqueo que se desarrollan todos los días. Al poder
codificar programas sobre la marcha, también podrá detectar y prevenir ataques a medida que ocurren.

Ser capaz de codificar sus propias herramientas de piratería también le permitirá contribuir a la comunidad de
piratas informáticos que comparten sus recursos con usted, al descubrir una mejor manera de realizar un
ataque, hacer una contramedida contra un pirateo ilegal o actualizar los protocolos de seguridad o habilidades
de una herramienta conocida, podrá hacer su parte para hacer del mundo de la computación un lugar más seguro
para estar.
Machine Translated by Google

¿Qué es Python?
Python se considera un lenguaje de código abierto, lo que significa que puede descargarlo del sitio web de
python.org de forma gratuita. Este lenguaje de alto nivel ha existido desde finales de los años 80, pero definitivamente
ha sobrevivido la prueba del tiempo: todavía se usa hoy para crear GUI, aplicaciones web, juegos y, lo que es más
importante, vulnerabilidades de piratería y mitigación de intrusiones.

Si está migrando desde otro lenguaje de programación, podrá aprender fácilmente Python gracias a su fácil lectura.
La mayoría de los comandos usan declaraciones típicas en inglés que le permitirán comprender de inmediato su
propósito, incluso si es la primera vez que se encuentra con este idioma. Los códigos de Python también son
mucho más cortos y simples en comparación con otros lenguajes de alto nivel como Java, y vienen con una
biblioteca y funciones que ya están integradas, así como acceso a módulos y bibliotecas de terceros. Sus robustas
bibliotecas integradas y la disponibilidad de recursos compilados por otros usuarios lo convierten en uno de los
lenguajes de programación favoritos de los hackers.

Aquí hay un ejemplo: si desea ejecutar el comando Imprimir clásico para escribir "¡Hola, mundo!" usando Java,
tendrá que escribir lo siguiente:

Sin embargo, Python solo requerirá que ingrese lo siguiente:

En este punto, tiene la idea de que una secuencia de comandos de piratería completa será mucho más simple
y corta con Python, en comparación con otros lenguajes de alto nivel que generalmente se usan para crear
programas.

Si es un programador primerizo, encontrará que Python es relativamente fácil de aprender, gracias a sus códigos y
sintaxis más simples. También podrá ejecutar sus códigos en diferentes tipos de dispositivos y sistemas operativos,
como Android, Windows, Linux y Mac OS X. Si está interesado en saltar directamente a la piratería, definitivamente
se divertirá infinitamente descubriendo lo que está buscando. puede manipular con sus propios programas: Python
no solo le permite explotar y manipular computadoras portátiles, teléfonos inteligentes y computadoras de escritorio,
sino que también le permite ejecutar sus programas en microcontroladores que se encuentran en juguetes, controles
remotos, electrodomésticos y prácticamente cualquier dispositivo que tiene una computadora adentro.
Machine Translated by Google

Comenzando con Python


Si está utilizando una distribución reciente de Linux o UNIX, probablemente ya tenga Python instalado.
Algunos usuarios de Windows, particularmente los propietarios de computadoras HP, también pueden tenerlo
instalado en sus computadoras. Sin embargo, si necesita una instalación nueva del paquete, puede descargarlo
desde www.python.org.

Normalmente, querrá obtener la última versión, que es la 3.5.2, pero también puede querer obtener la última
versión de Python 2, que es la 2.7.11, si es más compatible con los proyectos de piratería que tiene en mente.
Si bien Python 3 puede ser el futuro de este lenguaje de programación, ciertos factores, como la compatibilidad
con su computadora o el uso de servicios de terceros, pueden hacer que descargue Python 2 en su lugar.

Instalación de ventanas
Una vez que haya descargado el paquete de instalación del sitio web de Linux, descomprímalo y ejecute el
archivo .exe para continuar con la instalación. Debería poder obtener pip, documentación e IDLE cuando
vaya con la instalación estándar.

Nota: Verifique que haya marcado esta opción:

Si desea cambiar la ubicación de su instalación, simplemente haga clic en

y luego presione Siguiente. Luego, use la ruta c:\python35 como su ubicación de instalación. Si ha
instalado Python en la ruta correcta, vaya a:

También puede ejecutar Python desde el símbolo del sistema si configuró correctamente la variable PATH
durante la instalación. Si está ejecutando Python por primera vez en Windows, escriba cmd en el cuadro de
diálogo Ejecutar (haga clic en el botón Inicio para ubicar este comando). Una vez que haya abierto el símbolo
del sistema, ingrese "python" para iniciar el programa.

Instalación de Mac OS X Puede

descargar el instalador del sitio web de Python o puede usar Homebrew para obtener el paquete de instalación.
Si aún no tiene Homebrew instalado, abra una terminal (presione la tecla Comando + la barra espaciadora para
iniciar la búsqueda de Spotlight y luego ingrese la Terminal) e ingrese este comando:

/usr/bin/ruby -e "$(curl -fsSL


https://raw.githubusercontent.com/Homebrew/install/master/install)"

Después de instalar Homebrew, le indicará cómo procederá con la instalación.


Presiona Enter y luego proporciona tu contraseña de usuario para continuar. Una vez instalado, ahora puede
usar el comando "preparar" desde la terminal para instalar paquetes para OS X.

Para instalar el paquete de Python, abra una nueva Terminal e ingrese:


Machine Translated by Google

Instalación en Linux Si
su sistema operativo es GNU/Linux, puede usar el administrador de distribución Ubuntu o Debian para
instalar Python. Para hacer eso, simplemente ingrese este comando:

Una vez que pueda instalar el programa, ejecútelo escribiendo "python" en la terminal.
Machine Translated by Google

Interactuar con el lenguaje Python Ahora que


ha instalado Python, lo siguiente que debe hacer es aprender cómo puede usarlo para explorar
funciones o probar un código. Puede usar Python usando el modo de secuencia de comandos si desea
ver cómo se interpretan los archivos o aplicaciones completos.
Para interactuar usando Python, puede usar IDLE (Entorno de desarrollo integrado), que abrirá la ventana de
shell de Python o la línea de comando en Windows.

Interactuar usando el símbolo del sistema La línea


de comandos de Windows (o la Terminal en Linux y Mac OS X) es la forma más simple y directa
de comenzar a usar Python. Con esta herramienta, podrá ver cómo funciona Python en función de
cómo reacciona a cada comando que ingresa en el indicador >>>, que también se conoce como
indicador del intérprete.
Tenga en cuenta que esta podría no ser la forma preferida por los piratas informáticos cuando se trata de
interactuar con este lenguaje de programación, pero este método le permitirá explorar fácilmente las funciones
de Python.

Para explorar cómo funciona Python, observe cómo se puede usar el comando de impresión para mostrar
"Python es para piratear".

Abra la línea de comando de Python.

Una vez que vea el indicador >>>, ingrese:

imprimir ("Python es para piratear").

Presiona Enter para finalizar el comando. Justo después de eso, Python mostrará el texto solicitado en
la siguiente línea.

¿Qué pasará si hiciste algo mal con tu comando? Si usó una sintaxis defectuosa, como una declaración
incompleta o un comando mal escrito, obtendrá un error de visualización similar a este:

Cómo salir de Python


Si desea salir del indicador de Python, use cualquiera de estos comandos:

Ctrl + Z, y luego presiona Enter

Ingrese "salir ()"

Ingrese “salir()”

Interactuando usando el IDLE


Machine Translated by Google

Cuando utilice un lenguaje de programación, como Python, deberá desarrollar su código utilizando un entorno de desarrollo
integrado o IDE. Un IDE es una aplicación que le proporcionará todas las herramientas que necesita para desarrollar un
software. Por lo general, estas herramientas son un editor de texto que lo ayudará a modificar el código fuente en el que está
trabajando, un depurador y un conjunto de herramientas para la automatización de la compilación que puede usar a través de
una GUI (interfaz gráfica de usuario). Los IDE también le permitirán usar la integración con bibliotecas de control de versiones
que puede obtener de terceros, lo que significa que puede extraer códigos creados por otros y luego mezclarlos y combinarlos
con su propio código para obtener los resultados que desea. .

Puede obtener su IDE preferido de una fuente de terceros, como sitios educativos para lenguajes de programación,
o de los propios desarrolladores del lenguaje. Python.org, por ejemplo, le proporciona un IDE gratuito que puede usar
como punto de partida para el desarrollo, si no está seguro de qué IDE funcionará mejor con su estilo de codificación.

La herramienta IDLE que viene con su paquete de instalación sirve como una plataforma donde puede ingresar sus
códigos de manera eficiente e interactuar con Python. Puede acceder fácilmente a IDLE haciendo clic en su icono en su
escritorio, en el menú Inicio o ubicándolo en la carpeta de instalación.

IDLE le permite utilizar estas funciones:

La ventana de shell de Python que le permite utilizar la entrada y salida de código codificado por colores y obtener
mensajes de error si ingresa una declaración incorrecta.

Un depurador que viene con pasos, visualización de espacio de nombres local y global y puntos de interrupción
persistentes

navegadores y configuración

Un editor de texto que le permite usar múltiples ventanas, colorear para Python, completar automáticamente,
deshacer y otras características

El uso de IDLE le permitirá usar dos ventanas (el Shell y el Editor) que puede usar simultáneamente. También puede tener
ventanas de salida que tengan un menú contextual y un título diferentes.

Los menús que puede usar en IDLE cambiarán según la ventana que haya seleccionado.
Las opciones que pertenecen a cada menú son sencillas, lo que significa que no tendrá dificultades para entender lo que
hace cada uno de ellos, incluso si es nuevo en la programación.

Aquí están los menús y la ventana a la que están asociados.

Archivo (para las ventanas Editor y Shell)

Este menú contiene las siguientes opciones:

1. Nuevo

2. Abierto

3. Archivos recientes

4. Módulo abierto
Machine Translated by Google

5. Navegador de clases

6. Navegador de rutas

7. Guardar

8. Guardar como

9. Guardar copia como

10. Ventana de impresión

11. Cerrar

12. Salir

Editar (para Editor y Shell)

Este menú contiene las siguientes opciones:

1. Deshacer

2. Rehacer

3. Cortar

4. Copiar

5. Pegar

6. Seleccionar todo

7. Encuentra

8. Buscar de nuevo

9. Buscar selección

10. Buscar en archivos

11. Reemplazar

12. Ir a Línea

13. Mostrar finalizaciones

14. Ampliar palabra

15. Mostrar sugerencia de llamada

16. Mostrar padres circundantes

Formato (ventana del editor)

1. Región de sangría

2. Región dentada
Machine Translated by Google

3. Comentar la región

4. Descomentar Región

5. Tabificar Región

6. Desmarcar región 7.

Alternar pestañas

8. Nuevo ancho de sangría

9. Formato de párrafo

10. Franja de espacios en blanco finales

Ejecutar (ventana del Editor)

1. Concha de pitón

2. Comprobar módulo

3. Módulo de ejecución

Menú Shell (ventana Shell)


Ver último reinicio

Reiniciar Shell

Ejecución de interrupción

Depuración (ventana de Shell)

1. Ir a Archivo/Mentira

2. Depurador

3. Visor de pilas

4. Visor de pila de apertura automática

Opciones (ventanas Editor y Shell)

1. Configurar INACTIVO

2. Contexto del código (disponible solo en el Editor)

ventanas

1. Altura del zoom

Ayudar

1. Acerca de la inactividad
Machine Translated by Google

2. Ayuda inactiva

3. Documentos de Python

4. Demostración de tortugas

Otras cosas que puede usar


Puede escribir sus códigos en otros IDE o editores de texto que no sean IDLE, según sus necesidades.
No hay una guía real para elegir dónde debe escribir y guardar sus códigos, siempre que el editor que esté utilizando lo
ayude a codificar cómodamente y venga con resaltado de sintaxis que lo ayudará a visualizar su código, entonces podrá
lograr sus objetivos de piratería y cree el código que desea usar en el futuro.

Aquí hay otros editores y sus características que tal vez desee consultar:

Edición educativa de PyCharm

Si desea concentrarse en aprender Python en lugar de concentrarse en cómo debería navegar por sus
ventanas, entonces este es el editor para usted. Puede extraer códigos existentes en el editor para aprender
cómo se escriben ciertos programas, o aprender usando el tutorial que viene con él.

Puede descargar este editor gratuito desde www.jetbrains.com.

Texto sublime

Sublime Text le permite usar un administrador de paquetes, que esencialmente funciona para cualquier
persona que esté acostumbrada a escribir en procesadores de texto. También viene con funciones como el
plegado de códigos, que oculta líneas de códigos en las que no está trabajando.

Tenga en cuenta que este no es un software gratuito, pero viene con un período de prueba que no tiene límite
de tiempo.

EMPUJE

Este software gratuito le permitirá realizar muchas personalizaciones, lo cual es excelente si es un


programador experimentado que quiere trabajar con la configuración con la que se sienta más cómodo. Otro
factor positivo de este software es que tiene un historial de uso extendido, lo que significa que tiene una
comunidad de usuarios a la que puede acceder fácilmente cuando necesita ayuda.

Si es nuevo en la programación, puede parecer un editor de texto desalentador, pero la curva de


aprendizaje empinada valdrá la pena al final. Al aprender a codificar a través de la piratería de inmediato,
podrá obtener una buena comprensión de Python a medida que lo experimente utilizando diferentes
herramientas que ya fueron creadas por otros piratas informáticos.

coda

Este software viene con una prueba gratuita durante una semana y luego costará $ 99 después. coda
Machine Translated by Google

no es un editor de texto desprovisto de campanas y silbatos: viene con características como conectividad
SSH, controles de código para conectarse automáticamente a un concentrador y una interfaz de terminal. Si
está buscando desarrollar una aplicación web para sus hacks, entonces este es probablemente el IDE que
funcionará mejor para usted.

Ahora que tiene configurado su entorno de desarrollo, es hora de que comience a aprender sobre los conceptos
básicos de Python.
Machine Translated by Google

Capítulo 2: Conceptos básicos de


Python Su objetivo, por supuesto, es hacer que Python vaya más allá de imprimir un texto. Para
hacer eso, deberá aprender otros conceptos que son esenciales en un script de Python. También querrás
crear un script que sea fácil de entender y revisar en el futuro, en cualquier caso, querrás mejorarlo y
convertirlo en una herramienta de trabajo para tus hacks.

Para tomar entradas y manipularlas para obtener ciertos resultados, primero deberá aprender cómo
funcionan las variables y las constantes en este lenguaje de programación.
Machine Translated by Google

Comentarios
Estas son declaraciones que vienen después del símbolo #. Estos textos te permiten:

Explique los problemas que pretende superar o resolver en su programa

Tome nota de las suposiciones, los detalles y las decisiones importantes que desea realizar
en el código.

Hacer notas en su código no solo le recuerda lo que quiere lograr en su código, sino que también
ayuda a los lectores que usarán su programa a comprender qué líneas de código se supone que deben
hacer.
Machine Translated by Google

constantes literales
Las constantes literales se nombran así porque tomas estos fragmentos de texto por su valor literal.
Estas constantes pueden ser:

Números

Pueden ser números enteros (números enteros simples) o flotantes (números que tienen puntos decimales)

Instrumentos de cuerda

Estas son secuencias de caracteres, que puede especificar usando comillas simples, comillas dobles
o comillas triples. Tenga en cuenta que las comillas simples y dobles funcionan de manera similar en
Python y que puede expresarlas libremente dentro de comillas triples. Aquí hay un ejemplo:

Las cadenas también son inmutables, lo que significa que no puede cambiar una cadena una vez que la
haya creado.

Cómo formatear cadenas


Hay instancias en las que deseará construir cadenas a partir de una información
diferente. Para hacer esto, necesitará usar el método. Echale
ejemplo:
un vistazo a éste

Una vez que haya terminado, guarde este fragmento de código como str_format.py. Así es como se
verá cuando ejecutes el programa:

El método de formato le permite usar un valor de argumento para tomar el lugar de una especificación
particular. Echale un vistazo a éste ejemplo:
Machine Translated by Google

Este fragmento de código le dará este resultado:


Machine Translated by Google

Variables
Debido a que habrá múltiples instancias en las que necesitará almacenar información en su código y
luego manipularlas, necesitará tener algunas variables. Al igual que su nombre, las variables tienen
valores variables, como números reales, cadenas, booleanos, diccionarios o listas, a los que puede
acceder a través de ciertos métodos. Echa un vistazo a este código de muestra:

En este ejemplo, puede definir la variable denominada puerto, que se utilizará para almacenar el número
entero 21, y la variable denominada banner, que contendrá una cadena. Para combinar estas variables
juntas como una sola cadena, deberá usar el puerto variable mediante el uso de la función str().

Dado que necesita acceder rápidamente a los datos que almacenó, debe asignar nombres a las variables.
Aquí es donde entran en juego los identificadores. Los identificadores funcionan como nombres de código
que utiliza para señalar algo que ha utilizado en su código o programa. Aquí hay algunas reglas que debe
seguir al asignarlos:

El carácter inicial debe ser una letra del alfabeto o un guión bajo.

Los caracteres restantes deben consistir en guiones bajos, letras o dígitos.

Distinguen entre mayúsculas y minúsculas, lo que significa que mycode y myCode no indican el
mismo valor y no son intercambiables cuando los asigna como identificador.
Machine Translated by Google

Objetos
Las cosas a las que se hace referencia como algo en el código que existe en Python se denominan
objetos. Si está migrando a Python desde otro lenguaje de programación, debe tener en cuenta que todo
en Python, incluidas las cadenas, los números y las funciones, se clasifica como un objeto.
Machine Translated by Google

Liza
Python le permite hacer uso de una estructura de datos de lista que es extremadamente útil cuando se trata
de almacenar colecciones de objetos. Como programador, puede crear listas que contengan diferentes tipos
de datos. Al mismo tiempo, también puede hacer uso de varias técnicas integradas en Python que le permitirán
insertar, indexar, contar, clasificar, agregar, eliminar, abrir e incluso invertir elementos en una lista. Echale un
vistazo a éste ejemplo:

Usando el código anterior, pudo crear una lista a través del método append(), imprimir todos los elementos
especificados y luego ordenar los elementos antes de pedirle al programa que los imprima nuevamente.
También pudo encontrar el índice de un elemento y también eliminar elementos particulares.
Machine Translated by Google

Diccionarios
La estructura del diccionario de Python le permite hacer uso de una tabla hash que se puede usar para
almacenar prácticamente cualquier cantidad de objetos. El diccionario del programa contiene un par de elementos
que consisten en una clave y su valor correspondiente.

Los diccionarios son extremadamente útiles para crear scripts de piratería. Por ejemplo, puede crear un escáner
diseñado para explotar las vulnerabilidades de un sistema en particular, como puertos TCP abiertos.
Si tiene un diccionario que mostrará los nombres de los servicios para los puertos correspondientes que desea
explotar. Por ejemplo, puede crear un diccionario que le permita buscar la clave ftp y luego proporcionarle una salida
de 21, que corresponde a un puerto que quizás desee probar. También puede usar diccionarios para realizar
ataques de fuerza bruta para descifrar una contraseña cifrada. Lo que hace que Python sea aún mejor es que puede
codificar sus propios diccionarios y usarlos en otros scripts que desee desarrollar en el futuro.

Cuando crea un diccionario, las claves deben separarse de su valor correspondiente con dos puntos y los
elementos deben separarse con comas. En el siguiente ejemplo, podrá usar el método .keys() para obtener una
lista de todas las claves disponibles en el diccionario y el método .items() que le proporcionará todos los elementos
que contiene el diccionario. Echale un vistazo a éste ejemplo:

Ahora que conoce los conceptos básicos que hacen que los scripts de Python realicen tareas, está listo para comenzar
a usarlos en su propio script. En el próximo capítulo, aprenderá cómo debe verse un script de Python legible.
Machine Translated by Google

Capítulo 3: Escritura de programas en Python Ahora


que conoce algunos conceptos básicos que necesita comprender en Python, es hora de aprender
algunas pautas que debe recordar cuando se trata de escribir un programa en Python. En este
capítulo, aprenderá cómo usar algunos de los conceptos más básicos para ejecutar comandos simples
y formatear sus códigos de Python de tal manera que le resulte más fácil comprenderlos y
documentarlos más adelante.
Machine Translated by Google

Cómo usar constantes y variables literales

Abra su editor de texto y ejecute lo siguiente:

Su salida debería verse así:

Lo que sucedió en este programa es que asignaste un valor literal de 5 a la variable dada i a
través de un operador de asignación, que es el signo =. Toda esa línea se considera una
declaración porque indica que se debe hacer algo, que es conectar dicha variable a un valor
numérico. Luego, imprimió el valor de i usando el comando de impresión.

Luego, sumaste 1 al valor dado que almacenaste en la variable i, y luego lo guardaste.


Cuando usa la declaración de impresión nuevamente, obtiene el valor de 6.

Al mismo tiempo, también asignó una cadena literal a la variable s y luego procedió a usar la
declaración de impresión.
Machine Translated by Google

Líneas físicas y lógicas Lo


que ve cuando escribe un programa se llama línea física. Lo que Python obtiene cuando
escribe una declaración se llama línea lógica. Dicho esto, este lenguaje de programación
asume que cada línea física que ves corresponde a una línea lógica determinada.
Si bien puede usar más de una línea lógica en una línea física usando el símbolo de punto y
coma (;), Python recomienda que los programadores como usted ingresen una sola declaración para
que sus códigos sean más legibles. De esta manera, podrá ver las líneas en las que está trabajando
y evitar posibles confusiones cuando esté trabajando en dos líneas lógicas diferentes y perderse en
lo que se supone que debe trabajar.
Machine Translated by Google

Sangría
Python es uno de los lenguajes de programación donde el espacio en blanco, especialmente el espacio al comienzo de
cada línea de código, es importante. Mediante el uso de sangría, puede agrupar bloques o declaraciones que pertenecen
juntas. Como regla general, asegúrese de usar la misma sangría cuando trabaje en declaraciones similares. Recuerde
también que usar una sangría incorrecta puede hacer que su código sea propenso a errores. Echale un vistazo a éste
ejemplo:

Cuando ejecute este código, obtendrá este resultado:

Python recomienda que use cuatro espacios para sus sangrías. Los típicos buenos editores de texto harán esto por
usted. Siempre que sea coherente con los espacios que está utilizando, podrá evitar resultados inesperados en su código.

¡Ahora que conoce los conceptos básicos, ahora puede comenzar a aprender las cosas más interesantes!
Machine Translated by Google

Capítulo 5: Operadores y expresiones La mayoría


de las declaraciones (también llamadas líneas lógicas) que escribirá en su código
incluirán expresiones. Las expresiones se dividen en operandos y operadores.

Los operadores son esencialmente funciones que hacen algo en su código, que se representan
mediante símbolos o palabras clave. Por lo general, requieren piezas de información en las que
puedan trabajar, que se denominan operandos. Por ejemplo, si tiene la expresión 4 + 5, el signo más
(+) es el operador y los números 4 y 5 son operandos.
Machine Translated by Google

Operadores de Python
Eche un vistazo a cómo se ven las expresiones en un indicador de intérprete:

Cuando evalúe expresiones en un indicador de intérprete y haya utilizado la sintaxis correcta, podrá ver el resultado
que espera justo después depiratería,
la línea lógica.
deberá Dado que producirá
memorizar cómo se códigos
usan lospara sus propias
operadores herramientas
en un código. de

También tenga en cuenta que Python usa los operadores según la precedencia. Eso significa que cuando le pide
a su código que realice ciertas operaciones que tienen mayor prioridad. Por ejemplo, Python siempre realizará
operaciones que requieran dividir o multiplicar variables sobre operaciones que requieran sumar o restar. Si dos
operadores tienen el mismo valor de precedencia, Python los evaluará de izquierda a derecha.

Aquí hay una lista de los operadores que están disponibles en Python.

más (+)

Añade dos objetos.

Por ejemplo:

4 + 5 te dará 9, y 'e' + 'j' te dará 'ab'

menos (-)

Resta un número de otro número. En caso de que el primer operando en la ecuación esté ausente,
Python asume que es cero.

Por ejemplo:

-87 te dará un número negativo, y 80 – 40 te dará 40.

Multiplicar (8)

Multiplica a números o repite una cadena un cierto número de veces.

Por ejemplo:

2*5 te da 10, y 'ja' * 3 te da 'jajaja'

Energía (**)

Eleva un determinado número a la potencia del siguiente operando.

Por ejemplo:
Machine Translated by Google

3 ** 3 te dará 9 (esto se calcula como 3 * 3 * 3)

Dividir (/)

Divide el primer operando con el siguiente.

Por ejemplo:

4 / 2 da 2

Dividir y piso (//)

Divide el primer operando con el siguiente y luego redondea el resultado al número más
cercano.

Por ejemplo:

5 // 2 te da 2

Módulo (%)

Te da el resto de una división.

Por ejemplo:

13 % 3 te dará 1

Menos que (<)

Te da un resultado de si el primer operando es menor que el siguiente. El operador de comparación


dirá si es VERDADERO o FALSO.

Por ejemplo:

3 < 9 devuelve VERDADERO

Mayor que (>)

Te da un resultado de si el primer operando es mayor que el siguiente. El operador también dirá


si es VERDADERO o FALSO.

Por ejemplo:

9 > 3 te da VERDADERO

Menor o igual que (<=)

Te da un resultado de si el primer operando es menor o igual que el siguiente.

Por ejemplo:

x = 6; y = 9; x <= y te da VERDADERO

Mayor o igual que (>=)

Te da un resultado de si el primer operando es mayor o igual que el siguiente


Machine Translated by Google

Por ejemplo:

x = 6; y = 3; x >= y te da VERDADERO

Igual a (==)

Te dice si los dos operandos son iguales.

Por ejemplo:

x = 3; y = 3; x == y te da VERDADERO

No igual a (!=)

Te dice si los operandos no son iguales

Por ejemplo:

x = 3; y = 4; x != y te da VERDADERO
Machine Translated by Google

Expresiones
Las expresiones son combinaciones de operadores y valores en su código. Puedes
pensar en ello como algo que “expresa” algo que tiene un valor. Por ejemplo, si usa la función
eval(1 + 1), obtendrá un resultado que le proporciona el valor de estos dos números sumados.
Echale un vistazo a éste ejemplo:

Guarde esto como expression.py y luego ejecútelo en el indicador del intérprete. Debería poder obtener esta salida:

Como habrás notado, Python almacenó valores en las variables 'largo' y 'ancho', y puedes calcular el perímetro
y el área de un rectángulo usando estas expresiones. También puede almacenar el valor de la expresión largo *
ancho en otra variable, que se llama área, y luego mostrarlo usando la función de impresión.

Ahora que sabe cómo puede usar los componentes básicos de un lenguaje de programación, ¡ahora puede estar
listo para aprender cómo puede usarlos en un código!
Machine Translated by Google

Capítulo 6: Funciones y módulos Escribir un


código para piratear puede ser tedioso cuando está limitado a usar operaciones. Imagínese
tener que escribir una operación y luego repetirla una y otra vez a lo largo de su secuencia
de comandos para que su código haga algo. Es bueno que Python te permita hacer uso de
funciones y módulos que te permitirán repetir ciertas acciones dentro de tu código y en
otros scripts que construirás en el futuro.

En este capítulo, aprenderá a crear y utilizar funciones y módulos. También aprenderá cómo iterar los
comandos que ha emitido en su secuencia de comandos para repetir ciertas acciones para diferentes
elementos y manejar los errores que pueda encontrar en su secuencia de comandos.
Machine Translated by Google

Funciones
En Python, una función le permite crear un bloque de código que podrá realizar una acción. También son
reutilizables, lo que significa que puede proporcionar un nombre a ese bloque de instrucciones y luego ejecutar
este bloque con el nombre que le asignó en cualquier parte del programa que está creando sin ningún límite. En
términos de Python, esto se llama "llamar a la función".

Las funciones son probablemente el componente más importante de un lenguaje de programación. En Python,
generalmente se definen usando la palabra clave def, seguida de un nombre de identificador para la función que
desea usar. Echale un vistazo a éste ejemplo:

Guarde esto como function1.py y luego ejecútelo en el indicador del intérprete. Debería ver este resultado después
de hacerlo:

Lo que sucedió aquí es que puede definir la función say_hello, que no tiene parámetros, razón por la
cual no se indica ningún valor entre paréntesis. Los parámetros se indican en funciones para incluir una entrada
que puede usar para pasar diferentes valores a la función y obtener un resultado específico que tiene en mente.

Observe también que logró llamar a la función dos veces en este ejercicio, lo que significa que no tuvo que
volver a escribir todo el código para que Python repita una acción en particular.

Parámetros de función
Las funciones pueden tomar valores que podrán usar, que se llaman parámetros.
Los parámetros actúan de manera similar a las variables, excepto que está definiendo sus valores cada vez que
llama a la función y que ya les ha asignado valores una vez que ejecuta la función.

Los parámetros se especifican entre un par de paréntesis cuando se define la función y se separan mediante
comas. Si necesita llamar a la función en su código, deberá proporcionar
tenga en cuenta
los valores
que cuando
de la misma
proporciona
manera.valor
También
a
su función mientras la nombra, estos valores se denominan parámetros; pero cuando proporciona valores cuando
llama a la función, estos valores se denominan argumentos. Echale un vistazo a éste ejemplo:
Machine Translated by Google

Guarde esto como function_param.py y luego ejecútelo en el indicador del intérprete. Debería obtener esta salida:

Argumentos de palabras
clave Habrá instancias a medida que codifica en las que tiene demasiados parámetros en su función;
si desea especificar algunos de ellos, puede usar argumentos de palabras clave para dar valores a
algunos de los parámetros. Si lo hace, tendrá la ventaja de usar fácilmente la función sin tener que
preocuparse por el orden de los argumentos, y podrá asignar valores a los parámetros que desea usar,
especialmente cuando los otros parámetros que están disponibles ya contienen valores de argumento
que están configurados por defecto.
Echa un vistazo a este código de muestra:

Guarde este código como function_keyword.py y luego ejecútelo en el indicador del intérprete. Deberías obtener el siguiente
resultado:

La declaración de devolución
Si desea salir de la función, o si desea devolver un valor de la función, entonces esta declaración resultará útil. Echale un vistazo
a éste ejemplo:
Machine Translated by Google

Guarde este código como function_return.py y luego ejecútelo en el indicador del intérprete. Deberías obtener
el siguiente resultado:

DocStrings
Python viene con una característica genial llamada docstrings, que es una herramienta que puede usar para
documentar el código que está creando y hacerlo más fácil de entender. También puede obtener una cadena de
documentos de una función mientras el código ya se está ejecutando. Echale un vistazo a éste ejemplo:

Guarde este código como function_docstring.py y luego ejecútelo en el indicador del intérprete. Deberías obtener
el siguiente resultado:

Lo que sucedió aquí es que puede ver la cadena de documentación de la función que ha utilizado, que es la
primera cadena en la línea lógica inicial. Tenga en cuenta que las cadenas de documentación también se pueden
usar en clases y módulos.
Machine Translated by Google

Iteración
Hay algunos casos en los que puede resultar redundante escribir el mismo código varias veces para realizar
una función similar, como verificar diferentes direcciones IP o analizar diferentes puertos.
Por esta razón, es posible que desee utilizar un bucle for en su lugar para iterar el mismo código para
diferentes elementos. Por ejemplo, si desea iterar un código para la subred de direcciones IP de 192.168.0.1
a 192.168.0.254, puede usar un bucle for que contenga un rango de 1 a 255 para mostrar la subred completa.
Eche un vistazo a este código de muestra para ver cómo se hace:

Si desea iterar el mismo código a través de una lista de puertos conocidos para analizar las
vulnerabilidades de un sistema, puede iterar a través de una lista de elementos que desea verificar en su lugar.
Echale un vistazo a éste ejemplo:
Machine Translated by Google

Manejo de excepciones
Incluso si ya puede escribir un programa con la sintaxis correcta, es posible que experimente algunos
errores durante la ejecución o el tiempo de ejecución. Por ejemplo, cuando divide algo por cero, es
probable que experimente un error de tiempo de ejecución porque Python sabe que es imposible
hacerlo. Cuando intente realizar esta acción, Python podría regresar con este resultado:

Si desea corregir el error mientras ya está ejecutando su código, la capacidad de Python para realizar el
manejo de excepciones será útil. Usando el ejemplo anterior, puede usar la instrucción try o except para hacer
uso del manejo de excepciones, de modo que cuando ocurra el error, la función de manejo de excepciones
detectará el error y luego imprimirá el mensaje en la pantalla. Echale un vistazo a éste ejemplo:

Si desea ver dónde ocurrió específicamente el error en su secuencia de comandos, puede usar el siguiente
código en su lugar:
Machine Translated by Google

Módulos
Si desea hacer uso de las funciones que ya ha creado de otro programa a otro, en lugar de tener que volver a
escribir todo el código, entonces puede usar módulos.

La forma más sencilla de hacer módulos es crear un archivo que contenga todas las variables y funciones que
pueda necesitar usar en un programa futuro y luego guardarlo como un archivo .py. Alternativamente, también
puede crear sus módulos en un lenguaje en el que esté escrito el intérprete de Python, como el lenguaje C.
También puede tener un módulo importado por otro programa y usar toda la funcionalidad guardada allí, que es lo
mismo que usa las bibliotecas estándar que usa en Python.

Eche un vistazo a cómo puede usar un módulo de biblioteca estándar a través de este ejemplo:

Guarde este código como module_using_sys.py y luego ejecútelo en el indicador del intérprete. Debería obtener
esta salida:

Lo que sucedió aquí es que primero importó el módulo sys. Al usar la declaración de importación, puede decirle a
Python que desea usar un módulo que contenga la funcionalidad relacionada con el entorno de Python. Cuando
este lenguaje de programación ejecuta la instrucción, buscará el módulo .sys. Dado que este es un módulo
incorporado, Python conoce la ubicación donde se puede encontrar.

En cualquier caso, si está intentando importar un módulo escrito en Python, el intérprete buscará en todos los
directorios que se enumeran en la variable sys.path. Una vez que se encuentre, se ejecutarán las instrucciones que
se encuentran en ese módulo, lo que hará que esté disponible para su uso. Este proceso de inicialización solo tiene
lugar la primera vez que importa un módulo.

Sys Module
Python tiene un módulo incorporado que le brinda acceso a todos los objetos que el intérprete del
lenguaje de programación mantiene o usa. Llamado el módulo sys, este módulo incluye argumentos de
línea de comando, tamaño máximo de enteros que se pueden usar, banderas, ganchos de ruta, así como
otros módulos disponibles.
Machine Translated by Google

Poder interactuar con el módulo sys le permitirá crear diferentes scripts que puede usar para diferentes propósitos
de piratería. Por ejemplo, es posible que desee analizar diferentes argumentos de la línea de comandos durante el
tiempo de ejecución. Si va a crear un escáner para descubrir las vulnerabilidades del sistema, es posible que desee
pasar un nombre de archivo como argumento de la línea de comandos, lo que se puede hacer usando la lista sys.argv
que se compone de todos los argumentos de la línea de comandos. Eche un vistazo a este código de muestra para
ver cómo se usa este módulo:

Cuando ejecute este fragmento de código, verá que el argumento de la línea de comando ha sido analizado y luego
Python imprime los resultados en la pantalla. La salida se verá así:

Módulo OS El

módulo OS de Python proporciona una gran cantidad de rutinas para diferentes sistemas operativos, como
Mac, Posix y NT. Con este módulo, puede permitir que el lenguaje de programación interactúe por sí solo con el
sistema de archivos, los permisos, la base de datos de usuarios y diferentes entornos de sistema operativo.

Usando el ejemplo anterior, usted, el usuario, envió un archivo de texto como argumento de línea de comando.
Sin embargo, también será valioso si puede verificar si el archivo que ha pasado existe y si el usuario actual de la
máquina a la que se dirige tiene los permisos necesarios para leer ese archivo. Para determinar esto, puede crear
un código que muestre un mensaje de error si no se cumple alguna de las condiciones. Puedes usar este código
para hacer eso:

Para verificar su código, puede intentar leer un archivo que no está disponible en el sistema, lo que hará que el
script que acaba de escribir muestre el error. Luego, puede ingresar un nombre de archivo que se leerá con éxito.
Finalmente, puede crear restricciones de permisos y ver que la secuencia de comandos que ha creado imprima un
mensaje de acceso denegado convencional:
Machine Translated by Google
Machine Translated by Google

La biblioteca estándar de Python La


biblioteca de Python es más o menos la colección de casi todos los elementos que hay en este lenguaje
de programación. Esta extensa colección contiene varios módulos integrados que le permiten acceder a
diferentes funcionalidades en el sistema. La biblioteca estándar de Python también es responsable de
brindarle acceso a los módulos, que están diseñados para mejorar la portabilidad inherente de Python.
Esto significa que puede lidiar con las plataformas cuando se trata de crear sus códigos.

Si está ejecutando Python desde una máquina con Windows, es probable que tenga la biblioteca
estándar completa incluida en su instalación. Si utiliza UNIX o cualquier sistema operativo similar, es
posible que deba utilizar las herramientas de empaquetado disponibles en su sistema operativo si desea
obtener algunos de los componentes opcionales.

En este punto, ya conoces lo esencial en Python. A medida que cree sus propios códigos para
piratear o importe módulos de bibliotecas, podrá descubrir más funcionalidades y aprender para qué
sirven.

Dado que está aprendiendo a codificar para piratear, la mejor manera de acelerar su ritmo es aprender a
medida que crea herramientas que puede usar para piratear. ¡Esto significa que es hora de que hagas
cosas emocionantes!
Machine Translated by Google

Capítulo 7: Configuración para la piratería

En este punto, tienes una idea básica de cómo funciona Python y cómo se crearon los programas usando
este lenguaje de programación. Ahora, está listo para aprender cómo puede usar secuencias de comandos
de Python para comprometer sitios web, redes y más.

Aprender a piratear implica ser capaz de configurar el entorno adecuado en el que puede trabajar para
desarrollar sus propias herramientas de explotación. Como ya instaló Python y la biblioteca estándar que
viene con él, está bastante preparado para piratear. Todo lo que necesita hacer ahora es instalar otras
herramientas y bibliotecas que pueda usar para las vulnerabilidades que se detallarán en este libro.
Machine Translated by Google

Instalación de bibliotecas de terceros


Las bibliotecas de terceros son esencialmente bibliotecas que no vienen de forma nativa con su
instalación de Python. Todo lo que necesita hacer para obtenerlos es descargarlos de una fuente de
destino, realizar la descompresión en el paquete que acaba de descargar y luego cambiar al directorio de destino

Como ya habrá adivinado, las bibliotecas de terceros son extremadamente útiles cuando se trata de
desarrollar sus propias herramientas a partir de los recursos que ya ha creado otra persona. Dado
que Python es un lenguaje de programación altamente colaborativo, puede usar bibliotecas que
puede encontrar en fuentes de sitios web como GitHub o el sitio web de Python e incorporarlas a su código.
Allá

Una vez que esté dentro del directorio, puede instalar el paquete descargado usando el comando
python setup.py install. Echa un vistazo a este ejemplo para ver cómo se hace:

Lo que acaba de suceder aquí es que pudo instalar un paquete que le permitirá analizar
Machine Translated by Google

resultados de nmap descargando el paquete python-nmap.

Sugerencia: si desea establecer su entorno de desarrollo más rápido, es posible que desee obtener una copia
de BackTrack Linux Penetration Distribuion, que esencialmente le permite obtener acceso a herramientas que
se utilizan para análisis forense, análisis de red, pruebas de penetración y ataques inalámbricos. .
Machine Translated by Google

Su primer programa de Python: un descifrador de


contraseñas La fuerza de Python radica en las sólidas bibliotecas que puede usar al crear sus propios progra
Este programa de Python no solo le enseñará cómo puede descifrar contraseñas, sino que también lo ayudará a
aprender cómo incrustar una biblioteca en su código y obtener los resultados que desea.

Para escribir este descifrador de contraseñas, necesitará tener un algoritmo crypt() que le permita codificar
contraseñas que están en formato UNIX. Cuando inicie el intérprete de Python, verá que la biblioteca de cifrado que
necesita para este código ya está en la biblioteca estándar. Ahora, para calcular un hash encriptado de una
contraseña de UNIX, todo lo que necesita hacer es llamar a la función crypt.crypt() y luego establecer la contraseña y
la sal como parámetros. El código debe regresar con una cadena que contiene la contraseña cifrada.

Así es como se debe hacer:

Ahora, puede intentar codificar la contraseña de un objetivo con la función crypt(). Una vez que pueda importar
la biblioteca necesaria, ahora puede enviar los parámetros salt "HX" y la contraseña "egg" a la función. Cuando ejecute
el código, obtendrá una contraseña codificada que contiene la cadena "HX9LLTdc/jiDE". Así es como debería verse la
salida:

Cuando eso suceda, simplemente puede escribir un programa que use la iteración a lo largo de un diccionario
completo, que probará contra cada palabra que posiblemente producirá la palabra utilizada para la contraseña.

Ahora, deberá crear dos funciones que puede usar en el programa que va a escribir, que son testPass y main. La
función principal abrirá el archivo que contiene la contraseña cifrada, que es password.txt, y luego leerá todo el
contenido en las líneas que contiene el archivo de contraseña. Luego, dividirá las líneas en la contraseña codificada y
su
Machine Translated by Google

nombre de usuario correspondiente. Después de eso, la función principal llamará a la función testPass para probar
las contraseñas codificadas contra el diccionario.

La función testPass tomará la contraseña que todavía está encriptada como parámetro y luego regresará después
de agotar las palabras disponibles en el diccionario o cuando haya descifrado con éxito la contraseña. Así es como se
verá el programa:

Cuando ejecute este código, podrá ver este resultado:


Machine Translated by Google

A juzgar por estos resultados, podrás deducir que la contraseña del nombre de usuario 'víctima' está
en el diccionario que tienes disponible. Sin embargo, la contraseña para el nombre de usuario 'root' es
una palabra que no contiene su diccionario. Esto significa que la contraseña del administrador en el
sistema que está tratando de explotar es más sofisticada, pero posiblemente puede estar contenida en
otro tipo de diccionario.

En este punto, ahora puede configurar un entorno de piratería ideal para Python y aprender a utilizar
los recursos disponibles de otros piratas informáticos. Ahora que puede crear su primera herramienta
de piratería, ¡es hora de que descubra cómo puede crear sus propios scripts de piratería!
Machine Translated by Google

Capítulo 8: Hackeo de redes

Un ataque a la red es cualquier proceso o táctica que permitirá a un hacker comprometer la seguridad
de una red. Cuando puede realizar un ataque a la red, puede usar la cuenta de un usuario y los privilegios
que se le atribuyen, robar o modificar datos almacenados, ejecutar un código para corromper un sistema
o datos, o evitar que un usuario autorizado acceda a un servicio. .

En este capítulo, aprenderá cómo atacar una red usando algunas herramientas y códigos de terceros que
puede escribir usando Python. Al mismo tiempo, también obtendrá una mejor conciencia sobre cómo los
piratas informáticos obtienen información sobre su objetivo y realizan ataques en función de las vulnerabilidades
que pudieron descubrir.
Machine Translated by Google

Reconocimiento: la salva inicial de su ataque La piratería de


un sistema comienza con el reconocimiento, que es el descubrimiento de vulnerabilidades estratégicas en
la red antes de lanzar cualquier ataque cibernético. Puede pensar en esto como la investigación de un
pirata informático sobre sus objetivos: cuanta más información conozcan sobre la red que quieren piratear,
más ideas podrán recopilar sobre las mejores herramientas que pueden usar para lanzar ataques que son
más probables. para pasar desapercibido por el usuario objetivo mientras causa el mayor daño posible.

Tenga en cuenta que todos pueden ser el objetivo de un pirata informático, lo que significa que aprender cómo los piratas
informáticos realizan el reconocimiento significa poder proteger su propio sistema también. Cada vez que se conecta a Internet
y envía datos a través de la web, está dejando huellas que los piratas informáticos pueden rastrear hasta usted. Cuando eso
suceda, es posible que los piratas informáticos quieran estudiar sus actividades en su red y descubrir vulnerabilidades en su
sistema que les facilitarán infiltrarse y robar datos que pueden ser valiosos para ellos.

En esta sección, aprenderá a crear scripts simples que le permitirán escanear los puertos TCP vulnerables de su objetivo.
Para interactuar con estos puertos abiertos, también deberá crear sockets TCP.

Python es uno de los lenguajes de programación modernos que le permite obtener acceso a las interfaces de socket BSD. Si
es nuevo en este concepto, los sockets BSD le brindan una interfaz que le permitirá escribir aplicaciones para que pueda
comunicarse con una red justo entre hosts.
Al realizar una serie de utilidades API de socket, podrá conectarse, escuchar, crear, vincular o enviar tráfico en los sockets
TCP/IP de un objetivo.

¿Qué sucede cuando puede explotar el TCP de un objetivo? Si puede conocer la dirección IP y los puertos TCP que están
asociados con el servicio al que desea apuntar, entonces puede planificar mejor su ataque. La mayoría de las veces, esta
información está disponible para los administradores del sistema en una organización y estos datos también son algo que los
administradores deben ocultar de cualquier atacante. Antes de que pueda lanzar cualquier ataque en cualquier red, primero
deberá obtener esta información.

Hacer su escáner de puertos

El escaneo de puertos es un método en el que puede evaluar cuál de los puertos en una computadora de destino está
abierto y qué tipo de servicio se está ejecutando en ese puerto específico. Dado que las computadoras funcionan para
comunicarse con otros dispositivos y realizar una función al abrir un puerto para enviar y recibir datos, los puertos abiertos
pueden ser una vulnerabilidad que los piratas informáticos querrán explotar. Piense en un puerto abierto para que sea
similar a una ventana abierta para un ladrón: estos puertos abiertos sirven como un paso libre para cualquier pirata
informático que desee robar datos o establecer una tienda dentro de una computadora para explotar sus debilidades
durante un período prolongado de tiempo. .

Tenga en cuenta que el escaneo de puertos no es una actividad ilegal; de hecho, el personal de seguridad de la red
escanea los puertos de las computadoras cliente para conocer sus vulnerabilidades y aplicar el protocolo de seguridad
necesario. Sin embargo, el escaneo de puertos también es la mejor manera para que cualquier pirata informático descubra
nuevas víctimas y descubra la mejor manera de piratear su sistema. Al mismo tiempo, los escaneos de puertos repetitivos
también pueden causar una denegación de servicio, lo que significa que es posible que un usuario legítimo no pueda usar un
Machine Translated by Google

servicio de red en particular debido a que los puertos están agotando sus recursos.

Un escáner de puertos le permitirá ver los hosts y los servicios que están conectados a ellos. Esencialmente,
esta sección le permitirá escribir su propio programa para un escáner de puerto TCP que podrá realizar un
escaneo de conexión completo al TCP del objetivo para identificar los hosts que puede querer explotar en el
futuro utilizando el socket integrado. en el módulo, que a su vez le da acceso a la interfaz de socket BSD.

Como ya habrás adivinado, los sockets están detrás de casi todo lo relacionado con las comunicaciones
de red. Cuando abre un navegador web, su computadora abre un socket para comunicarse con un
servidor web. Lo mismo sucede cuando se comunica con otras computadoras en línea o envía una solicitud a
su impresora a través de su Wi-Fi.

Eche un vistazo a algunas de las funciones de socket que va a utilizar:


Machine Translated by Google

Con esta información, puede crear un escáner de puertos simple que le permitirá conectarse a todos
los puertos que pueda definir que correspondan a un host en particular. Abra su editor de texto y luego
guarde el siguiente código como portscanner.py:
Machine Translated by Google

Cuando ejecuta este programa en el indicador del intérprete, así es como debería verse la salida:
Machine Translated by Google

Uso de la biblioteca Mechanize para realizar un reconocimiento anónimo La mayoría


de los usuarios de computadoras usan un navegador web para navegar por sitios web y ver contenido en Internet.
Cada sitio web tiene características diferentes, pero generalmente leerá un documento de texto en particular, lo analizará
y luego se lo mostrará a un usuario, al igual que la forma en que un archivo fuente interactúa con el intérprete de Python.

Con Python, puede navegar por Internet obteniendo y analizando el código fuente HTML de un sitio web. Hay
diferentes bibliotecas que vienen con este lenguaje de programación que pueden manejar contenido web, pero para este
truco, usarás Mechanize, que incluye la clase principal llamada Navegador. Eche un vistazo a este script de muestra que
le mostrará cómo obtener el código fuente de un sitio web:

Cuando ejecute este script, verá el código HTML de syngress.com para su página de índice, que se verá así:

Garantizar el anonimato mientras navega Ahora


que sabe cómo obtener una página web, querrá crear un script que le permita recuperar información de
forma anónima de un sitio web. Como ya sabrá, los servidores web se encargan de registrar las direcciones
IP de los diferentes usuarios que visitan sus sitios web para identificarlos. Por lo general, esto se puede
evitar usando una VPN (red privada virtual) o usando Tor.
Lo que sucede cuando usa una VPN es que todo el tráfico se enruta automáticamente a la red privada. Con
este concepto, tiene la idea de que puede usar Python para conectarse a los servidores proxy, lo que le dará a su
programa una capa adicional de anonimato.
Machine Translated by Google

Puede usar la clase Browser para especificar un servidor proxy que será usado por un programa en
particular. Para este script, puede usar el proxy HTTP proporcionado por www.hidemyass.com. En cualquier caso,
este proxy ya no está disponible para su uso, simplemente puede ir al sitio web y seleccionar un proxy HTTP que
pueda usar. También puede obtener otros excelentes servidores proxy para sus códigos en http://rmccurdy.com/
scripts/proxy/good.txt.

Luego verá que el sitio web al que intenta acceder cree que está utilizando la dirección IP 216.155.139.115,
que en realidad es la dirección IP que le proporcionó su proxy. Ahora, continúa construyendo tu script:

En este punto, su navegador ya contiene una sola capa de anonimato. Sin embargo, los sitios web usan una
cadena llamada agente de usuario para identificar a los usuarios únicos que inician sesión en su sitio. Esta cadena
generalmente permitirá que el sitio web obtenga información útil sobre un usuario para proporcionar un código HTML
personalizado, que luego brinda una mejor experiencia de usuario. Sin embargo, los sitios web maliciosos también
pueden usar esa información para explotar el navegador que está utilizando un usuario específico. Por ejemplo, hay
ciertas cadenas de agentes de usuario que algunos sitios web de viajes usan para detectar usuarios que navegan
usando Macbooks, que luego proceden a darles opciones más caras a estos usuarios.

Como está utilizando Mechanize, puede cambiar la cadena de agente de usuario de la misma manera que cambia
el proxy. Puede utilizar las cadenas de agentes de usuario disponibles en http://www.useragentstring.com/pages/
useragentstring.php que puedes usar para la próxima función que vas a hacer. Ahora, creará un script que le
permitirá probar un cambio en su cadena de agente de usuario para el navegador Netscape:
Machine Translated by Google

Cuando ejecute este código, podrá ver que puede navegar por una página web utilizando una cadena
de agente de usuario falsa. El sitio web que está navegando ahora cree que está usando un navegador
Netscape 6.01 en lugar de simplemente usar Python para buscar la página.

Lo que sucede después es que los sitios web que va a visitar intentarán presentar cookies que pueden
usar como un identificador único para identificarlo como visitante habitual cuando regrese a su sitio la
próxima vez. Para evitar que estos sitios web lo identifiquen, deberá asegurarse de borrar todas las cookies
de su navegador cada vez que realice funciones que desee que sean anónimas. Otra biblioteca integrada
en Python, llamada Cookelib, le permitirá hacer uso de varios tipos de contenedores que le permitirán tratar
con las cookies que le presenta el sitio web.
Para este script, utilizará un tipo de contenedor que le permitirá guardar cookies en el disco y luego imprimir
las cookies que recibió durante su sesión:
Machine Translated by Google

Cuando ejecute este script, verá su cookie de ID de sesión para navegar por el sitio de Syngress:

Finalice su navegador anónimo en una clase de Python En este


punto, tiene una idea de todas las funciones que desea incluir en su navegador anónimo, y para
realizar todo el proceso de importación de todas estas funciones a todos los archivos que necesitará.
creará en el futuro, necesitará convertir eso en una clase. Esto le permitirá simplemente llamar a la
clase usando un objeto de navegador en el futuro. Este script te ayudará a hacer esto:
Machine Translated by Google

Esta clase ahora contiene una lista de agentes de usuario, así como una lista de servidores proxy
que quizás desee usar cuando navegue. También contiene las funciones que pudo crear
anteriormente, a las que puede llamar individualmente o todas a la vez usando la función de
anonimización. La función de anonimización también le permitirá seleccionar la opción de esperar 60
segundos, lo que aumentará el tiempo de las solicitudes que envíe. Si bien esto no cambiará nada en
la información que envíe al sitio web, este paso disminuirá la posibilidad de que los sitios web que
visite reconozcan que la información que se les envía proviene de una sola fuente. También notará
que el archivo anonBrowser.py incluye esta clase y debe guardarse en un directorio local que contenga
scripts que lo llamarán.

Ahora, puede escribir un script donde puede usar la clase que acaba de crear. En este
ejemplo, ingresará votos para una competencia en línea en el sitio web kittenwar.com donde
debe votar por los gatitos en función de su ternura. Debido a que los votos en el sitio web se tabularán
de acuerdo con la sesión de un usuario, deberá tener visitas únicas al sitio web en
Machine Translated by Google

ordenar que se cuenten sus votos. Con este script, debería poder visitar el sitio web objetivo de
forma anónima cinco veces, lo que le permitirá ingresar cinco votos usando la misma computadora:

Después de ejecutar este script, podrá obtener la página web de destino mediante cinco sesiones
únicas diferentes, lo que significa que está utilizando cookies diferentes cada vez que visita.
Machine Translated by Google

Ataque inalámbrico: Ataque Dnspwn Este


ataque se crea utilizando la herramienta airpwn, que es un marco para la inyección de paquetes para redes
inalámbricas 802.11. Esta herramienta se crea para escuchar los paquetes entrantes y luego inyecta contenido en
el punto de acceso cuando los datos entrantes coinciden con un patrón que se especifica en el archivo de
configuración. Para su objetivo, su airpwn se ve y se comporta como el servidor con el que está tratando de
comunicarse. Esta herramienta se creó primero para apuntar a HTTP, pero también se puede usar para explotar DNS.

En esencia, el uso de un ataque dnspwn implica atraer a su objetivo para que visite una página web maliciosa que
instalará malware en su objetivo a través de la descarga, o falsificará un sitio web en particular para robar la
credencial de su objetivo. Para realizar este ataque, necesitará tener instalado Backtrack o Kali Linux en su
computadora, así como un adaptador de tarjeta inalámbrica.

Sigue estos pasos:

1. Configure su monitor inalámbrico

Para rastrear la actividad inalámbrica de su objetivo, deberá configurar su adaptador de tarjeta inalámbrica
en modo de monitoreo. Para hacer esto, abra airmon-ng desde Kali Linux y luego ingrese el siguiente
comando.

Ahora, podrá capturar datos directamente en la red demo_insecure (objetivo).

Una vez que tenga un monitor en funcionamiento, puede comenzar a crear el código para su ataque.

2. Crea tu código.

Deberá utilizar el módulo scapy para realizar el ataque dnspwn. Para hacer esto, deberá olfatear todos los
paquetes UDP que vienen con el destino del puerto 53 y luego enviar el paquete a la función send_response
que creará más adelante.

Ahora que tiene el módulo scapy, ahora podemos crear la función que le permitirá interpretar la solicitud
de la información necesaria y luego realizar la inyección de respuesta. Puede hacer esto trabajando en las
siguientes capas:

802.11 Frame: cambie el indicador "to-ds" a "from-ds", lo que hará que parezca que las
solicitudes que está realizando provienen del punto de acceso

Marco 802.11: cambie las direcciones Mac del destino y la fuente


Machine Translated by Google

Capa IP: cambie las direcciones IP del destino y la fuente

Capa UDP: cambie los puertos de destino y origen

Capa DNS: coloque el indicador de "respuesta" y luego agregue la respuesta que ha


falsificado.

El módulo scape simplifica todo el proceso al eliminar muchos detalles de los que no necesita preocuparse.
Una vez que scapy haya abstraído los demás detalles, puede usar el siguiente código:

En este punto, tienes todas las banderas preparadas para tu ataque. El siguiente paso es hacer y
agregar la respuesta DNS:
Machine Translated by Google

Finalmente, inyecte la respuesta que ha falsificado:


Machine Translated by Google

Expulsar a un usuario de su red

Este truco es una solución con la que podría haber estado soñando, especialmente si está utilizando
una red que tiene muchos otros usuarios. Como habrá notado, existe un cierto límite cuando se trata de enviar
y recibir datos a través de la red y sus propias interfaces de red. La razón de este límite es la cantidad de ancho
de banda que tiene, y si otros usuarios no están acaparando el ancho de banda, más rápidas serán sus
conexiones.

Cuando todo el ancho de banda que debería estar disponible para usted, está experimentando un DoS
(denegación de servicio). En realidad, puede forzar un DoS a otro usuario buscando y manipulando el
servicio de un host remoto. Una vez que haya encontrado ese servicio, puede hacer que el programa se
comporte de una manera que no debe hacerlo, lo que hará que el host remoto consuma todos sus recursos
disponibles y luego lo desconecte. Alternativamente, también puede causar una inundación UDP, que se
realiza enviando una gran cantidad de paquetes UDP a varios puertos en el host remoto de su objetivo. Esto
hará que el host ignore cualquier aplicación que esté escuchando a ese host en particular y luego responda
con un paquete que dice Destino ICMP inalcanzable.

Para hacer esto, todo lo que necesita hacer es abrir su editor de texto e ingresar el siguiente código:

Guarde este código como udpflood.py y luego seleccione todas las opciones de archivo al guardar. Para
ejecutar el código, abra IDLE y luego ejecute el programa, que le pedirá que ingrese toda la información que
necesita. Tenga en cuenta que este truco está dirigido a un solo puerto, pero si desea explotar todos los otros
65,535 puertos que están disponibles.
Machine Translated by Google

Capítulo 9: Hacks para la Web

Es posible que se pregunte cómo superar ciertas políticas de protección de sitios web para obtener un
archivo que desea, navegar de forma anónima u obtener más información sobre el sitio web que desea
penetrar para lanzar un ataque masivo. En este capítulo, aprenderá cómo puede realizar hacks Creat
en un sitio web usando algunos programas que puede crear usando Python.
Machine Translated by Google

Creación de una red de bots


SSH Ahora que sabe cómo crear un escáner de puertos y sabe cómo puede encontrar objetivos vulnerables,
ahora puede proceder a explotar sus vulnerabilidades. Una de las formas de hacerlo es explotar el protocolo
Secure Shell (SSH) para obtener las credenciales de inicio de sesión de los clientes.

¿Qué es una botnet? Los bots, como su nombre lo indica, son increíblemente útiles a la hora de automatizar servicios en
prácticamente cualquier dispositivo. Las botnets, por otro lado, son un grupo de bots que están unidos por una red que permite
a los administradores de sistemas realizar tareas automatizadas de manera eficiente en todo un sistema de usuarios que están
conectados entre sí por un servidor o una red local. Si bien las botnets son esencialmente herramientas para administrar
fácilmente varias computadoras, también pueden ser herramientas que puede usar para fines no deseados, como crear un
DoS o DDoS (Distributed Denial of Service) que puede causar que un sitio web se cargue varias veces en una sesión. o por
comentar en sitios de redes sociales continuamente.

Aquí hay un programa que le permitirá crear su propia red de bots utilizando otra biblioteca popular de Python llamada Fabric,
que le permitirá crear una aplicación llamada C&C (comando y control) que le permitirá administrar múltiples hosts infectados
a través de un host de shell seguro. .

Creando el C&C
Suponiendo que usted, como atacante, ya logró comprometer el SSH y ya tiene acceso a ellos.
Suponiendo que las credenciales de los hosts se almacenan en un archivo que tiene este formato:
nombre de usuario@nombre de host:contraseña del puerto.

Ahora que tiene estas credenciales, deberá considerar las funciones que necesita crear. Esto puede significar que
necesita ejecutar una verificación de estado para ver los hosts en ejecución, realizar una sesión de shell interactiva para
comunicarse con un host de destino y ejecutar un comando en los hosts seleccionados.

Para comenzar, deberá importar todos los miembros del espacio de nombres fabric.api:

Después de eso, deberá tener las variables de entorno, env.passwords (mapea las cadenas de host y las contraseñas que
puede usar) y env.hosts (administra la lista maestra de hosts), para poder administrar todos los hosts que quieres apuntar.
Una vez que tenga estas configuraciones, no tendrá que ingresar cada contraseña para cada nueva conexión.

Ahora que tiene esta configuración, ahora puede proceder a ejecutar los comandos. Estas son las funciones que
puede usar para poder usar:

local (comando): ejecuta un comando en el sistema local de destino

sudo (comando): ejecuta un comando de shell de forma remota utilizando privilegios de superusuario (o
administrador)
Machine Translated by Google

put(local_path, remote_path) – carga archivos de forma remota

open_shell(): abre un shell interactivo de forma remota

ejecutar (comando): ejecuta un comando de shell de forma remota

get(remote_path, local_path) – descarga archivos de forma remota

Ahora puede crear una función que le permitirá crear una cadena de comando y luego ejecutarla.
Aquí está el código para crear el comando run_command:

Ahora, puede crear una tarea que le permitirá hacer uso de la función run_command, que le permitirá verificar qué hosts están
activos ejecutando el comando uptime:

Para realizar las otras tareas, querrá verificar a qué hosts le gustaría dar los otros comandos o para crear una sesión de shell.
Para poder hacer esto, deberá crear un menú que le permita ejecutar las otras tareas con los hosts especificados utilizando la
función de ejecución de Fabric. Así es como debería verse esta parte del código:
Machine Translated by Google

Guarde el código como fabfile.py y luego ejecútelo en el indicador del intérprete. Así es como se ve el código
completo cuando lo ejecutas:
Machine Translated by Google

Verá que pudo hacerse con el control de todas las máquinas a las que tiene acceso.
Machine Translated by Google

Scraping de sitios web que necesitan credenciales de


inicio de sesión Si desea extraer datos de un sitio web, encontrará que primero deberá iniciar
sesión antes de poder acceder a la información que desee. Esto significa que para obtener los
datos que necesita, primero deberá extraer todos los detalles que necesita para iniciar sesión en
su sitio web objetivo.

Estudio del sitio web de destino


Este es el escenario: desea extraer datos del sitio de bitbucket, al que puede acceder iniciando
sesión en bitbucket.org/account/signin. Dado que le solicita que proporcione las credenciales de
usuario, no puede ingresar al sitio web y extraer la información que desea. Como habrás adivinado,
tendrás que crear un diccionario que te permita ingresar detalles para iniciar sesión.
Para averiguar qué necesita para ingresar las credenciales que necesita, deberá inspeccionar los elementos del campo
"nombre de usuario o correo electrónico". Puede hacer esto haciendo clic derecho en el campo y luego seleccionando
"inspeccionar elemento".

Haga lo mismo para el campo de contraseña:

Ahora, eres consciente de que deberías estar usando "nombre de usuario" y "contraseña" como claves en tu
diccionario, lo que debería darte las credenciales correspondientes como valor.

A continuación, busque una etiqueta de entrada que esté oculta en la fuente de la página y que
esté etiquetada como "csrfmiddlewaretoken", que le proporcionará la clave y el valor:

Crea tu código
Ahora que conoce los requisitos, ahora puede crear el programa que necesita para construir su diccionario:
Machine Translated by Google

Guarde esto como login_scraper.py y luego ejecútelo en el indicador del intérprete para obtener las credenciales
que necesita.
Machine Translated by Google

Capítulo 10: Comprensión de los ataques con Python

La piratería no se trata solo de lanzar ataques: comprender cómo los piratas informáticos de sombrero
negro lanzan objetivos y penetran en sus sistemas de destino le permitirá comprender cómo puede usar
su nuevo conocimiento para evitar que su propio sistema sea vulnerable a ellos.
Machine Translated by Google

Conocer las ubicaciones de los usuarios a


partir de los tweets Si ha estado usando Twitter, puede pensar que está twitteando sus
actualizaciones por pura aleatoriedad; sin embargo, lo cierto es que estás siguiendo una fórmula
informal para los tuits que redactas. Por lo general, esta fórmula incluye el nombre de otro usuario de
Twitter que indica a quién se dirige su tweet, el texto de su tweet y su elección de etiqueta hash. Hay
otros datos incluidos en su tweet, que pueden no estar visibles en el cuerpo de su tweet, como una
imagen que desea compartir o una ubicación. Para un pirata informático, toda la información en su
tweet contiene algo que será importante para escribir un ataque: cuando lo piensa, está brindando
información sobre la persona que le interesa, enlaces que es probable que usted y su amigo estar
interesado y las tendencias sobre las que tal vez quiera aprender. Las imágenes, especialmente una
imagen de una ubicación, se convierten en detalles agregados al perfil de un usuario, lo que, por
ejemplo, puede indicar dónde es probable que vaya a desayunar una persona objetivo.

Si desea obtener detalles de forma anónima para recuperar toda esta información, puede utilizar el siguiente
código:
Machine Translated by Google
Machine Translated by Google

Ahora, puede probar este script creando una lista de ciudades que albergan equipos de grandes ligas. Después de eso,
puede eliminar las cuentas de Twitter de los Nacionales de Washington y los Medias Rojas de Boston. Su secuencia de
comandos se verá así:

Cuando su secuencia de comandos regresa con los resultados anteriores, es probable que deduzca que estos equipos
están twitteando en vivo desde donde están. De este resultado, puede deducir que los Medias Rojas están jugando en
Toronto, mientras que los Nacionales están en Denver.
Machine Translated by Google

Coincidencia de una dirección IP con una ubicación física La


mayoría de las veces, las personas están dispuestas a publicar lo que piensan en los sitios de redes
sociales o realizar ataques que encuentran usando herramientas en línea que pueden descargar, pensando
que nunca tendrán que enfrentar las consecuencias de sus actos. Mientras que la mayoría de los hackers
testarudos pero sin experiencia y los trolls en línea piensan que pueden esconderse detrás de una cuenta
falsa para ocultar su identidad, puedes probar que estas personas no son tan anónimas como creen que son.
De hecho, hay varias formas de usar bibliotecas y módulos de terceros en Python para desenmascarar la
ubicación y la identidad de un usuario en función de su dirección IP.

Por ejemplo, sospecha que su sistema está siendo atacado por otro pirata informático y observa que sus
puertos abiertos están siendo rastreados por una dirección IP en particular. Lo que querrá hacer una vez que
se dé cuenta de este posible ataque es identificar la ubicación de esa dirección IP e informar a las autoridades.
Python puede ayudarlo a hacer eso usando un script que es similar a lo que se discutirá en esta sección.

En este ejemplo, utilizará la base de datos disponible gratuitamente que se puede encontrar en
http://www.maxmind.com/app/geolitecity. Con esta base de datos gratuita, intentará escribir un código que
haga coincidir las direcciones IP que se encuentran en su lista con las ciudades. Para ello, descargue la base
de datos gratuita, descomprímala y envíela a la ubicación /opt/GeoIP/Geo.dat.

Una vez que pueda descargar la base de datos de GeoCityLite, podrá analizar las direcciones IP hasta
ubicar el nombre del país, el estado, el código postal y la longitud y latitud generales. Para facilitar el
trabajo, puede utilizar una biblioteca de Python creada para analizar esta base de datos.

Cuando ejecute este script, podrá ver datos que se ven así:
Machine Translated by Google

Analizar paquetes con Dpkt


En este punto, comprende lo importante que es analizar los paquetes: no solo querrá analizar los
paquetes que provienen de otra computadora para comprender las actividades de otro usuario, sino
también comprender lo que otras personas van a hacer con ellos. los paquetes que están observando
desde su computadora. En este truco, aprenderá cómo analizar una captura de red y examinar la capa
de protocolo de cada paquete utilizando la herramienta llamada Dpkt.

Cuando ejecute este script, podrá encontrar las direcciones IP de origen y de destino:

Lo siguiente que querrá hacer es hacer coincidir estas direcciones IP con una ubicación física.
Puede mejorar el script que acaba de crear creando una función adicional retGeoStr(),
que le dará una ubicación física para la dirección IP que su código puede localizar. Para este
ejemplo, podrá encontrar el código de país de tres dígitos y la ciudad para cada dirección IP y
luego hacer que el código muestre esta información. En cualquier caso, la función le solicita una
excepción, manéjela proporcionando un mensaje que indique que la dirección no está registrada.
Esto le permitirá manejar todas las direcciones que no están incluidas en GeoLiteCity
Machine Translated by Google

base de datos que descargó anteriormente o instancias de direcciones privadas.

Una vez que pueda agregar la función retGeostr al script que pudo producir anteriormente, podrá crear un
buen conjunto de herramientas de análisis de paquetes que le permitirá ver los destinos físicos de los
paquetes que desea estudiar. Así es como debería verse su código final:
Machine Translated by Google

Así es como se verá su script en acción:

Según estos resultados, sabe que el tráfico que está analizando se enruta a diferentes partes
del mundo. Ahora que sabe que es posible que sus datos se enruten a demasiadas computadoras
diferentes, tiene la idea de que necesita mejorar su seguridad asegurando sus puertos.
Machine Translated by Google

Envenenamiento ARP usando Python

Si eres un hacker, una de las cosas que querrás asegurar es tu anonimato. Querrá asegurarse de que su ubicación
sea imposible de rastrear, y eso se debe a una buena cantidad de razones.
En aras de practicar la piratería de sombrero blanco, querrá aprender cómo los programadores pueden enmascarar
su ubicación, especialmente cuando realizan ataques de reconocimiento o ataques DoS, que utilizan el Protocolo
de Internet y se aseguran de que verifique su tráfico de vez en cuando. a tiempo para ver si sus actividades están
siendo escuchadas por una dirección IP desconocida. Al mismo tiempo, es posible que también desee protegerse
de ser atacado por piratas informáticos de sombrero negro ocultando su ubicación.

Para los piratas informáticos de sombrero negro, la suplantación de IP esencialmente les permite ocultar
su identidad y ubicación cada vez que realizan su ataque. Si lo hace, también les permitirá hacerse pasar
por otro sistema informático y vencer las medidas de seguridad existentes que pueden requerir autenticación basada
en sus direcciones IP.

Uno de los ataques que utiliza IP falsificada se denomina suplantación de identidad ARP, que implica el envío
de un mensaje falso del Protocolo de resolución de direcciones (ARP) a través de una red de área local objetivo.
Cuando se hace con éxito, la dirección MAC de un atacante obtiene la dirección IP de una computadora
autorizada en la red objetivo. Esto permitirá que un atacante modifique o detenga todo el tráfico, o intercepte los
datos enviados a través de la red. Con el siguiente código, puede capturar todos los paquetes que se enrutan hacia
una máquina objetivo, lo que implica poder ver toda la información que envía un usuario objetivo, lo que le permite
ver la comunicación privada que no está protegida por ninguna forma de encriptación. .

Encuentre información sobre la máquina objetivo Para


averiguar cómo puede piratear su objetivo, deberá verificar el caché ARP en la máquina que desea
atacar. Para inspeccionar el caché ARP en una máquina con Windows, eche un vistazo a este ejemplo:
Machine Translated by Google

Notará que la dirección IP de la puerta de enlace predeterminada del objetivo es 172.16.1.254 y tiene
una entrada de caché ARP con la dirección MAC 3c-ea-4f-2b-41-f9. Tome nota de esto para verificar el
caché ARP mientras tiene un ataque en curso y verifique que haya cambiado la dirección MAC que
corresponde a la puerta de enlace.

Codifica el ataque
Ahora que conoce la dirección IP del objetivo y la puerta de enlace, ahora puede crear su código. Su
código debería verse así:
Machine Translated by Google

Codifique el
envenenamiento El código anterior configura su ataque ingresando la dirección IP de destino y la dirección
MAC que lo acompaña usando la función get_mac. También ha configurado un rastreador de paquetes que
capturará el tráfico para su máquina objetivo. Todo lo que le queda por hacer es escribir estos paquetes en
un archivo PCAP que puede extraer más tarde con la herramienta Wireshark o usar un script de tallado de imágenes.
Una vez hecho esto, puede llamar a la función restore_target, que le permitirá devolver la red a su
forma original antes de que ocurriera el ataque.

Ahora que puede configurar el truco, está listo para codificar el envenenamiento ARP. Coloque el siguiente
código encima del bloque de código que leyó anteriormente:
Machine Translated by Google
Machine Translated by Google

Capítulo 11: Otros trucos ingeniosos para probar


Machine Translated by Google

Evitar la detección por antivirus Un


software antivirus está diseñado para detectar archivos sospechosos en su sistema, como virus y
malware. Sin embargo, poder modificar el contenido de un malware le permitirá eludir la detección
antivirus.

En este truco, podrás aprender a crear un código malicioso usando un componente de Kali
Linux llamado Metasploit. Este programa puede generar malware, pero la mayoría de las
compañías de antivirus pueden reconocer fácilmente el contenido escrito por este software cuando
se liberan en una computadora tal como se escribieron originalmente. Para crear un malware a prueba
de antivirus, deberá modificar el malware que creará con el software.

Cree su programa malicioso Abra Kali


Linux e inicie una terminal. Ejecute este comando:

mfspayload-1 | más

Al hacerlo, se mostrarán los exploits que están disponibles para su uso, como los siguientes:

Si desea vincular un shell para crear un puerto de escucha, ejecutar un comando en un puerto de destino
y crear su propio control remoto, ingrese estos comandos en la terminal de Kali Linux:

msfpayload windows/shell_bind_tcp X > shell.exe


ls -l shell.exe

Obtendrá el siguiente resultado, que muestra que Metasploit ha creado un archivo ejecutable llamado
shell.exe, que es su malware:

Por supuesto, cualquier software antivirus sensato se dará cuenta de que se trata de un archivo inseguro que puede
comprometer la computadora de un objetivo.
Machine Translated by Google

Pruebe su software malicioso

Para ver que el archivo .exe que ha creado se reconoce como malware, transfiéralo a otra computadora que
tenga un programa antivirus a través de un USB, correo electrónico o arrástrelo al escritorio para copiarlo.
Casi inmediatamente, el antivirus instalado lo atrapará y lo detectará así:

Ahora, si va a desactivar el software antivirus y ejecutar el malware, la línea de comando mostrará algo
como esto:

Cuando esto sucede, puede controlar la máquina con Windows donde está instalado el malware usando otra
computadora.

Para detener el malware, finalice el archivo shell.exe en el Administrador de tareas o reinicie la PC.

Edite el malware usando Python Dado que su


programa antivirus puede detectar el malware que creó, necesita editar el código de malware para que eluda la
seguridad de su computadora. Para hacer eso, abra Kali Linux y escriba esta cadena de comando en la terminal:
mfspayload windows/shell_bind_tcp C

Verá que el código del exploit que ejecutó anteriormente está en código hexadecimal. Lo que debe hacer es
compilar este código en un archivo .exe. Para hacer esto, todo lo que necesita hacer es ingresar esta cadena
de comando en una terminal Kali Linux:

mfspayload windows/shell_bind_tcp C > shell

ls -l shell.py

Al ingresar este código, Kali Linux generará un archivo que se ve así:


Machine Translated by Google

Este código está en lenguaje C, lo que significa que deberá agregar algunas líneas. Para hacer eso, ingrese
esta cadena de comando en la terminal de Kali Linux:

nano shell.py

Obtendrá un editor de texto con este código:

Importe el código de la biblioteca del sistema que le permitirá ejecutar programas C desde Python. Para hacer
eso, agregue la siguiente línea al comienzo del código:

de ctypes importar *

Agregue lo siguiente al comienzo de la línea de código hecadecimal inicial:

código shell = (

Después de eso, elimine la siguiente línea:

Buf de caracteres sin firmar[]

Su código en el editor de texto nano debería aparecer así:


Machine Translated by Google

Desplácese hacia abajo y busque el punto y coma ubicado cerca del final del guión. Agregue un paréntesis de cierre antes.
Después de hacerlo, agregue las siguientes líneas al final del código:

Deberías ver esto en tu pantalla después de hacerlo:

Para guardar su archivo, presione Ctrl + X y luego presione Y cuando se le solicite. Ingrese para proceder a guardar su
archivo modificado.

Compile el malware y ejecútelo Para ejecutar el


malware modificado, primero deberá compilarlo. Para hacer eso, levante un
Machine Translated by Google

símbolo del sistema y luego ejecute esta cadena de comando:

pyinstaller --onefile --noconsole shell.py

Esto creará una nueva carpeta que se llama "dist". Esta carpeta tendrá el malware modificado en su interior llamado
shell.exe. Para ejecutar el malware, todo lo que necesita es abrir la carpeta y hacer doble clic en el archivo shell.exe.

El Firewall de Windows podría bloquear algunas de las funciones del programa, ya que intentará conectarse
a un servidor remoto. Evítelo seleccionando Permitir acceso. Después de hacerlo, abra el símbolo del sistema y
luego ejecute:

netstat-an | búsqueda 4444

Esto abrirá un puerto de escucha, que se ve así:

Para detener el oyente, simplemente abra el Administrador de tareas y finalice los procesos llamados shell.exe.

Comprueba con tu antivirus si aún se puede detectar el malware que acabas de crear. Debería pasar por alto la
mayoría de los programas antivirus conocidos que existen.
Machine Translated by Google

Recuperar elementos eliminados en la Papelera


de reciclaje Como ya sabe, la Papelera de reciclaje en el sistema operativo Windows se usa como una carpeta
especial que sirve como almacenamiento para los archivos que un usuario elimina. Estos archivos están marcados
para borrarse del disco duro, pero en realidad no se eliminan. En los sistemas operativos Windows anteriores
(Windows 98 y anteriores), estos archivos se almacenan en el directorio C:\Recycled, y los sistemas operativos
posteriores hasta Windows XP almacenan estos archivos en un directorio denominado C:\Recycler. Si usa Windows
7 y Vista, sus archivos se almacenan en un directorio llamado C:\$Recycle.Bin.

Si vacía su Papelera de reciclaje, puede pensar que todos los archivos que se mueven allí se han ido por completo.
Sin embargo, hay situaciones en las que es posible que desee recuperar archivos que eliminó accidentalmente de la
Papelera de reciclaje, o es posible que desee bucear en la basura y recuperar documentos importantes que se
eliminaron de una computadora de destino. Este código te ayudará a hacer todas estas cosas.

Cree un módulo para ayudar a encontrar archivos eliminados


Por supuesto, querrá escribir un script que sea independiente del sistema operativo, lo que lo hará útil para piratear
un sistema operativo diferente. Para hacer eso, querrá escribir una función que ejecute una prueba contra todos los
directorios posibles que contengan archivos borrados en un sistema operativo, y luego regrese con la información
que contiene el directorio que existe en el sistema operativo que desea explotar. :

Una vez que logre encontrar el directorio de la Papelera de reciclaje objetivo, lo siguiente que debe hacer es mirar
el contenido. Echa un vistazo al directorio encontrado:

Notará las cadenas S-1-5-21-1275210071-1715567821-725345543, que terminan en 500 o 1005. Estas cadenas
representan las cuentas de usuario en la máquina de destino. Ahora, querrá identificar estas cuentas de usuario y
averiguar de cuál de las cuentas de usuario desea recuperar los elementos eliminados.
Machine Translated by Google

Verifique la identificación del usuario

Para decodificar la cadena SID que encontró anteriormente, deberá acceder al Registro de Windows y
hacer coincidir la cadena con un nombre de usuario. Encontrará la información con esta clave de registro:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\
<SID>\ProfileImagePath

Abra el símbolo del sistema y escriba "consulta de registro". Esto dará como resultado este resultado:

Después de decodificar el nombre de usuario, deberá crear una función que traduzca el SID al nombre de
usuario. Si lo hace, podrá obtener más información útil cuando recupere elementos que se eliminaron de la
Papelera de reciclaje.

Esta función abrirá el registro para verificar la clave ProfileImagePath, buscar el valor y luego enviarlo con el
nombre que se encuentra justo después de la barra invertida en la ruta de usuario de destino.

Ahora, es el momento de juntar todo el código que revelará todos los archivos que todavía están en la
Papelera de reciclaje. Así es como se verá el código completo:
Machine Translated by Google

Cuando ejecuta este código dentro de la máquina de destino en el ejemplo, notará que el script
ha encontrado dos usuarios, el Administrador y alex. También podrá ver algunos de los archivos
que se eliminaron que tal vez desee recuperar:
Machine Translated by Google

Crear un registrador de teclas usando Python El

registro de teclas, también conocido como captura de teclado o registro de pulsaciones de teclas, es un truco utilizado por los piratas
informáticos para registrar las teclas que se presionan en un teclado sin que la víctima sepa que está siendo grabada. Al poder registrar
estas pulsaciones de teclas, cualquier pirata informático podrá descifrar cómo el usuario objetivo interactúa con su computadora. Esto
significa que con un keylogger, básicamente tienes acceso a prácticamente todo lo que la víctima ha escrito en su teclado, lo que incluye
datos confidenciales como nombres de usuario, contraseñas, números de tarjetas de crédito, etc. La creación de un registrador de
teclas eficiente le permitirá robar convenientemente la identidad de otra persona, especialmente cuando su registrador permanece sin
ser detectado.

A pesar del gran peligro que los keyloggers pueden representar para cualquier usuario, son muy fáciles de hacer usando Python. El
código que se enseñará en esta sección es un registrador de teclas que no depende del hardware y continuará ejecutándose en
segundo plano, lo que evita que el usuario objetivo lo note.

Abra su editor Abra IDLE, o

cualquier editor de texto de su elección. Una vez que esté en una nueva ventana de script, ingrese el siguiente código:

Pruebe el archivo creado Guarde

el código como keylogger.py y luego ejecute el archivo presionando Ctrl + R. El keylogger continuará ejecutándose en segundo
plano y registrará las pulsaciones de teclas en el archivo keyloggeroutput.txt.

Para finalizar el registro, abra el Administrador de tareas y finalice todas las tareas y programas de Python en ejecución.
Machine Translated by Google

Conclusión

En este punto, es posible que haya tenido alguna idea sobre cómo puede hacer que su propio sistema
informático y su red sean más seguros; simplemente ejecutar algunos de los códigos que se dan en este libro
como ejemplo le dará la idea de que hay demasiados. explota que están disponibles para los piratas
informáticos criminales y se utilizan para comprometer las computadoras objetivo. Sin embargo, su nuevo
conocimiento puede evitar que sea víctima de estos piratas informáticos y permitirle pensar diez pasos por
delante. Dado que ya ha terminado de leer una guía para principiantes sobre la piratería con Python, los
únicos pasos siguientes que debe seguir son perfeccionar sus habilidades mejorando los scripts de código
abierto y creando sus propios programas que puede compartir con otras personas interesadas en seguridad de info

Ahora que tiene un mejor conocimiento sobre cómo los hackers criminales piratean usando Python, puede
ajustar ese conocimiento para desarrollar programas que mitiguen estos ataques. Tenga en cuenta que las
herramientas de piratería que se discutieron aquí también son herramientas que pueden ayudarlo a descubrir
sus propias vulnerabilidades que los piratas informáticos pueden explotar. Como usted es capaz de usar el
mismo lenguaje de programación que muchos hackers sofisticados usan hoy en día, tiene la oportunidad de
detenerlos con mejores scripts y programas que también puede compartir con su red.

Si ha disfrutado leyendo este libro y cree que se ha convertido en un mejor hacker gracias a él, tómese el
tiempo para compartir este libro con otros piratas informáticos y cuéntele a otros lectores sobre él en
Amazon.com. Estoy emocionado de saber de usted pronto!
Machine Translated by Google

Bonificación: vista previa de 'Introducción a Python 3

Python es un lenguaje de programación utilizado para programas interactivos, portátiles y flexibles. Tiene una
sintaxis que puede interactuar fácilmente con otros sistemas. Está orientado a objetos, lo que significa que se
centra en datos, módulos y clases orientados a objetos. Puede usarlo para fines generales en la programación.
También tiene una amplia gama de biblioteca estándar que le permite trabajar de forma más rápida y fiable.

Las primeras versiones de Python son la serie 2x, que sigue siendo muy útil incluso con la llegada de la serie
3x, porque sus características son compatibles con más aplicaciones y sistemas. Debido a algunas
actualizaciones, otros dispositivos todavía no aceptan la serie Python 3. Hay algunos sistemas que no están
ajustados a Python 3.

Sin embargo, Python 3 es la última serie del lenguaje de programación Python. Al igual que Python 2, es más
fácil de aprender que la mayoría de los lenguajes de programación porque su sintaxis es clara y simple y no es
difícil, a diferencia de los lenguajes de tipado estático.

Python también tiene un intérprete interactivo, como IDLE, que permite a los estudiantes codificar rápidamente
y verificar, en el momento, si sus sintaxis son correctas.

Para este libro, nos centraremos en la serie Python 3.

Haga clic aquí para ver el resto en Amazon.

También podría gustarte