Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
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.
Tabla de contenido
Capítulo 1: Preparación para la piratería
Conclusión
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:
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
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.
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.
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:
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
Para explorar cómo funciona Python, observe cómo se puede usar el comando de impresión para mostrar
"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:
Ingrese “salir()”
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.
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.
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
11. Cerrar
12. Salir
1. Deshacer
2. Rehacer
3. Cortar
4. Copiar
5. Pegar
6. Seleccionar todo
7. Encuentra
8. Buscar de nuevo
9. Buscar selección
11. Reemplazar
12. Ir a Línea
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
9. Formato de párrafo
1. Concha de pitón
2. Comprobar módulo
3. Módulo de ejecución
Reiniciar Shell
Ejecución de interrupción
1. Ir a Archivo/Mentira
2. Depurador
3. Visor de pilas
1. Configurar INACTIVO
ventanas
Ayudar
1. Acerca de la inactividad
Machine Translated by Google
2. Ayuda inactiva
3. Documentos de Python
4. Demostración de tortugas
Aquí hay otros editores y sus características que tal vez desee consultar:
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.
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
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
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:
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.
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
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.
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
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.
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
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:
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
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 (+)
Por ejemplo:
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:
Multiplicar (8)
Por ejemplo:
Energía (**)
Por ejemplo:
Machine Translated by Google
Dividir (/)
Por ejemplo:
4 / 2 da 2
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 (%)
Por ejemplo:
13 % 3 te dará 1
Por ejemplo:
Por ejemplo:
9 > 3 te da VERDADERO
Por ejemplo:
x = 6; y = 9; x <= y te da VERDADERO
Por ejemplo:
x = 6; y = 3; x >= y te da VERDADERO
Igual a (==)
Por ejemplo:
x = 3; y = 3; x == y te da VERDADERO
No igual a (!=)
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
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
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
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
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
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
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.
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:
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
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
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.
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.
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
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í:
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:
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
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.
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.
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
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
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
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
¿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:
sudo (comando): ejecuta un comando de shell de forma remota utilizando privilegios de superusuario (o
administrador)
Machine Translated by Google
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
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
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
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
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
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
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
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
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. .
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
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.
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:
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
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.
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:
ls -l shell.py
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
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 *
código shell = (
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:
Para guardar su archivo, presione Ctrl + X y luego presione Y cuando se le solicite. Ingrese para proceder a guardar su
archivo modificado.
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:
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
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.
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
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
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.
cualquier editor de texto de su elección. Una vez que esté en una nueva ventana de script, ingrese el siguiente código:
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
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.