Me lo contaron y lo olvidé, lo leí y lo entendí, lo hice y lo aprendí.





Mostrando entradas con la etiqueta hacking. Mostrar todas las entradas
Mostrando entradas con la etiqueta hacking. Mostrar todas las entradas

domingo, 25 de mayo de 2014

Eliminar Sweet Page (Chrome, Firefox, Internet explorer, toolbars)

El "Sweet Page" es un MalWare que afecta a los navegadores Web; aunque su función en meramente publicitaria, debido a que sólo provoca que al iniciar tu navegador Web te direccione a la página "sweet-page.com", es fastidioso no ver la página inicial que necesites (Y en mi caso, mi antivirus bloqueaba la página y me lanzaba una alerta).
La manera de actuar de este MalWare es algo ingenioso, para empezar altera los accesos directos de tus navegadores web para que, en lugar de ejecutar la página inicial del programa, ejecute la página "Sweet Page"; algo así:


Además de jugar con algunos valores del registro que, básicamente, funcionan igual (pasar de parámetro la URL al programa que se ejecuta, en el caso de que no se usen los accesos directos).
Este MalWare viene en archivos de "gestores de descargas" (Un gestor de descarga como el Softonic.com, que te descargan un programa que, a la vez, te descarga el programa real junto con varios complementos extras como parte publicitaria). Aunque se supone hay normas que regulan para que esto no sea un inconveniente e instales algo que no quieres, los programadores de estos servicios son astutos como para presentarte la descarga de complementos de una manera que no entiendas que estás aceptando la descarga en lugar de rechazarla (preguntas  inversas, confirmaciones escondidas, etc) y, en casos extremos pero reales, ignorar tu decisión e instalar los complementos de todas maneras.

Programas como el Anti-Malware y el Super-antispyware detectan entradas del registros como maliciosas, pero desconocen el resto de los métodos usados por el Malware debido a que son, de cierta manera, genuinos.

Afortunadamente encontré un vídeo en YouTube que da a conocer un buen programa para eliminar males de este tipo (Aseguro que varios MalWare más empezarán a usar éstos métodos de propaganda). Aquí está el vídeo que encontré (Y el enlace para verlo directo en YouTube http://youtu.be/F-VDAjrPPAw) :



Los enlaces de descargas que se encuentran en el vídeo son los siguientes:
http://dropcanvas.com/#5Q3Q8E6oL93Jzb
https://toolslib.net/downloads/viewdo...

(Aunque recomiendo entrar al enlace directo para que encuentren el programa más actual)

lunes, 6 de enero de 2014

Configuración FTP del KeyLogger Ardamax

Un keylogger es un tipo de software o dispositivo hardware que se encarga de registrar las pulsaciones del teclado en una computadora y almacenar el registro en la misma o enviar la información a través de Internet.
Actualmente su mayor uso es el robo de información de un usuario como cuentas de correo, contraseñas, cuentas bancarias, etc; aunque su fin inicial fue el tener un registro de lo realizado en una computadora (una especie de respaldo de información escrita, páginas web visitadas y demás).

Ardamax Keylogger es uno de los millones de programas que realizan esta función, y personalmente lo considero muy útil ya que permite enviar la información recolectada mediante internet por el protocolo FTP y por correo electrónico; aunque en ambos casos se requiere tener un servidor de cada tipo, y por correo electrónico no me refiero a sólo una cuenta de correo, sino tener una cuenta de administrador. Como es más sencillo conseguir un servicio FTP (gratuito) que tener un servidor SMTP (correo electrónico), enseñaré los sencillo pasos para usar el Ardamax Keylogger mediante FTP.

Primero a descargarlo, aquí les tengo dos enlaces de descarga directa:

Descarga desde google drive
Descarga desde webcindario

Para instalarlo hay que ejecutar el archivo setup_akl.exe (No hay contraseña para descomprimir el archivo).

NOTA: Tengo que dejar en claro que estos tipos de archivos son muy bien analizados por los antivirus, así que si al descargarlo les manda una alerta, desactívenlo por unos momentos; una vez descargado lo puede volver a activar (aconsejo poner la carpeta donde alojen el instalador en la lista de excepciones de su antivirus, igualmente pongan en excepciones la carpeta en donde se instaló el keylogger: C:\ProgramData\REF por defecto para Windows 7).

La instalación es sencilla, una vez instalado ejecuten el programa:


En la barra de tareas les debe de aparecer un ícono como este:


Para lo que sigue, necesitamos tener un alojamiento web con servicio FTP; repito que eso es muy se encuentra muy sencillo en internet. Yo uso webcindario.com, así que si pueden háganse una cuenta allí y, una vez creada, crean un "nuevo espacio". En mi caso tengo el espacio unrinconenlaweb.webcindario.com. O si no, sólo busquen en Google "alojamiento web ftp".

Ahora bien, regresemos al keylogger instalado en la computadora; en el ícono de la barra de tareas se da clic DERECHO para que aparezca un submenú y se selecciona "Options":



En la ventana emergente tenemos un menú desplegable a la izquierda, desplegamos (damos clic) "Delivery" y de las opciones damos clic en FTP:


Allí configuramos a qué dirección web nos enviará los registros que capture:

-> FTP host es la dirección web de nuestro servidor FTP. Por ejemplo, en mi caso es "ftp.webcindario.com" (Sin el http ni nada más).
-> Username es el usuario del servicio, comúnmente es el nombre de tu cuenta de usuario; en el caso de webcindario el "username" es también el nombre del dominio, o sea "unrinconenlaweb".
-> Password es la contraseña del usuario; en el caso de webcindario es la misma contraseña que la de mi cuenta.
-> Remote folder es la carpeta en donde se enviarán los registros; por ejemplo, en webcindario al conectarse por FTP primero tengo que entrar a la carpeta "web" y después a una de mis carpetas personales, tengo una carpeta llamada "logs" y allí quiero almacenar mis registros, así pues mi "remote folder" sería "web/logs".
-> Port es el puerto por el cual se conecta el keylogger, el 21 es el estándar y recomiendo dejarlo así. Mi configuración queda:


Le damos clic en el botón "test" para ver si se puede realizar el envío de los archivos:


Aquí se indica que la conexión fue exitosa, incluso se me envió un archivo de prueba en la carpeta de mi servidor FTP:


Hasta aquí sólo se configuró la conexión por FTP y sólo hace falta configurar el envío de los registros. Para ello, en el menú derecho entramos en la opción "Control" y configuramos las siguientes opciones:


-> Send Logs every: marcamos esta casilla para que se envíen los registros a nuestro alojamiento web. A la derecha de esta opción se elije cada cuánto se envían los registros; esta opción es personal, cada quién sabrá cuánto es necesario recibir los registros (Una computadora con poco uso tal vez necesite enviar cada hora, una con mucho uso cada 5 minutos).
->Delivery Method: por defecto se tiene marcado Email, se desmarca Email y se marca FTP, aquí se está indicado por qué medio enviará los registros.
-> Log Format: es el formato con el cual se enviarán y recibirán los registros, el formato HTML es el más cómodo.
-> Include: indicamos qué queremos que se registre, por defecto se tiene todo seleccionado (pulsaciones de teclas, registros web, registros de chat, registros de aplicaciones abiertas, capturas de pantalla, imágenes de webcam y registros de micrófonos).
-> Send Only if log size exceeds: aquí es si queremos checar el tamaño de los archivos antes en enviar, si los archivos pesan igual o más que el la cantidad marcada entonces se enviarán; esta opción es sólo por si queremos evitar recibir archivos vacíos (recomiendo marcarla y dejarla con esa con la cantidad defecto).
-> Clear logs after successful sendig: "limpiar registros después de enviar", se marca si queremos que, una vez enviados unos archivos, éstos se borren de la computadora con el keylogger. Sirve para no llenar de "basura" la computadora o para que no sea encontrado más sencillamente el keylogger.

Damos clic en ACEPTAR y listo, se tiene el keylogger configurado y funcionando.


Aquí se ven los registros que recibí mientras realizaba este artículo (De mi propia computadora, claro).


jueves, 24 de enero de 2013

[Demostración] Extraer datos de una Web (SQL Injection)

Posiblemente sean pocos a los que no les haya llamado la atención éste tema.
La inyección SQL (SQL injection o SQLi) es la forma más sencilla de lograr extraer los datos de un sistema, entre otras cosas, y la más común (debido al mismo caso).

Éste método consiste en alterar una consulta original que se realiza a la base de datos introduciendo un texto extra, que debe ser correcto, con el cual le indicamos qué queremos obtener.

Por ejemplo, suponiendo que se busca un usuario cuyo nombre se encuentre en una variable que es rellenada por el usuario:

"Select * FROM usuario WHERE nombre='$nombre';"

Si el valor de la variable $nombre fuera normal, como por ejemplo darknet, la consulta sería:

"Select * FROM usuario WHERE nombre='darknet';"

Por ahora todo funcionaría correctamente, pero ¿Qué pasaría si no se filtran bien los valores introducidos en la variable $nombre?
La respuesta es que se puede deformar la consulta para obtener un resultado indeseado para el sistema pero correcto para el atacante.
En el mismo ejemplo, vamos a darle a la variable $nombre el valor de darknet' or nombre LIKE '%%; la consulta alterada sería:

"SELECT * FROM usuario WHERE nombre='darknet' or nombre LIKE '%%';"

De ésta forma la consulta traería los datos de TODOS los usuarios en lugar de sólo 1.
Ahora bien, ya que se entiende el funcionamiento de una inyección, el método que se utiliza (en este caso) para obtener los datos de una página Web es manejando los parámetros GET de la página.
Los parámetros GET son aquellos que se observan en la URL del sitio y que, por lo general, van después del signo de '?'.
Por ejemplo, se tiene la siguiente URL:
http://www.paginaweb.com/index.php?search=123&status=2

Los parámetros GET de la URL son: search=123&status=2; como cada parámetro está separado por el signo &, así pues tenemos 2 parámetros: search y status, cuyos valores son '123' y '2' respectivamente. Éstos parámetros llegan a ser usados por los programadores para hacer consultas a la base de datos, como por ejemplo en las páginas de noticias o blogs en donde utilizan un parámetro para buscar el Id de la nota que se va a mostrar.
Claro que, aunque se usen los parámetros GET ésto no quiere decir que la página sea vulnerable ya que se pueden filtrar los valores obtenidos en los parámetros y ver si son legítimos o no.

Pero bien, al tener entendido cómo funciona ésta mecánica les presento un vídeo en donde se hace una demostración a la hora de indagar y extraer datos de una Base de datos en una página vulnerable:



Por si la resolución del vídeo a la hora de subirlo a YouTuBe no es muy apreciable, aquí les dejo el enlace de descarga directa: https://dl.dropbox.com/u/46960544/inyeccion%20SQL.mp4

Siendo ésto todo, me despido...

lunes, 6 de agosto de 2012

Crack de contraseñas SHA1 en Python [Fuerza bruta]

Hace poco mostré un Script que creaba un diccionario básico para encontrar contraseñas por medio de fuerza bruta (Generador de Contraseñas [diccionario] en Pyhon) ; ahora traigo otro script que complementa al anterior, un programa que lee las contraseñas generadas, las procesa mediante la digestión SHA1 y las compara con una contraseña ya codificada para encontrar la palabra correcta.
El Script funciona con cualquier diccionario siempre y cuando las contraseñas candidatas estén separadas por un salto de línea, o sea:

contraseña1
contraseña2
contraseña3
...

Como siempre, primero el código:

# -*- coding: cp1252 -*-
import hashlib
archivo = raw_input("Archivo en donde se encuentran las contraseñas: ")
password= raw_input("Escribe la contraseña digerida: ")
try:
    diccionario = open(archivo,"r")
except:
    print "Error al abrir el archivo"
    raw_input("Presione cualquier tecla para salir...")
    exit()

print "comenzamos"


while True:

    linea = diccionario.readline()
    if not linea:
        raw_input("No se encontró la contraseña en el archivo")
        break
    linea=linea.replace("\n","")
    encriptacion=hashlib.sha1(linea).hexdigest()
    if encriptacion == password:
        print "Se encontró la contraseña: "
        print linea
        raw_input()
        break

print "Fin del programa"

raw_input("Presione cualquier tecla para salir")


  • Primero se importa el módulo "hashlib" el cual contiene varios métodos de digestión (hash).
  • Se pide al usuario el diccionario del cual se obtendrán las contraseñas candidatas y la contraseña ya digerida que se va a buscar.
  • En el bloque try-except se intenta abrir el diccionario y de no existir se lanzará una excepción.
  • En el bloque WHILE es donde se realiza la comprobación de las contraseñas:
  1. Se lee una línea del archivo, si se llegó al final de éste se lanza un mensaje diciendo que la contraseña no fue encontrada en el archivo.
  2. De ser una línea válida, a ésta se le quita el salto de línea que contiene al final (en caso de tener éste símbolo).
  3. Se le aplica la digestión a la contraseña extraía del archivo y se compara con la contraseña a buscar; de coincidir ambas, se muestra el valor de la contraseña extraída antes de ser digerida; de lo contrario se prosigue con el bucle en la siguiente línea para leer otra nueva contraseña candidata.
Como ven, los mecanismos de fuerza bruta son muy sencillos, el problema como siempre son los costos en memoria, procesador y tiempo; pero son los que dan más seguridad de encontrar alguna contraseña.
Para el caso de cualquier otro tipo de digestión que contenga el módulo hashlib no hace falta nada más que cambiar la encriptación del comando:
encriptacion=hashlib.sha1(linea).hexdigest()

por cualquier otra deseada, como por ejemplo md5:
encriptacion=hashlib.md5(linea).hexdigest()

Sin nada más que explicar, nos leemos.

Apaga la TV
y enciende tu cerebro

jueves, 2 de agosto de 2012

Generador de Contraseñas [Diccionario] en Python

En el ámbito del Hacking los diccionarios de contraseñas son muy útiles a la hora de crackear contraseñas mediante la fuerza bruta, ya que el tener las posibles contraseñas es un archivo del cual se van obteniendo una por una y es analizada es más rápido que generar en tiempo real la "palabra candidata" para después ser probada.
El método que es más usado es tener una base de datos con palabras comunes y/o palabras claves que pueden ser usadas como contraseñas (Contraseñas comunes como "perro", "amor", "123456", "drácula", "thehungergames", etc); pero éste método no da un alto porcentaje de acierto a la hora de usar fuerza bruta, por lo cual es más conveniente usar la mayor cantidad de posibles combinaciones de letras, números y signos posibles para las contraseñas. Éste método requiere de más tiempo, más tiempo de procesamiento y, obviamente, más espacio de almacenado, pero entre más combinaciones se tengan mayor es el porcentaje de acierto a la hora de buscar una contraseña en específico.

En esta ocasión realicé un pequeño Script en Python que genera un archivo con todas las posibles contraseñas que contengan una longitud entre 1 y 20 que se puedan generar con las combinaciones de letras mayúsculas, minúsculas, números y los signos '-' (guión medio) y '_' (guión bajo).

Primero el código Pythoneano:

# -*- coding: cp1252 -*-
letras = ['','a','b','c','d','e','f','g','h','i','j','k','l','m','n','ñ','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','Ñ','O','P','Q','R','S','T','U','V','W','X','Y','Z','1','2','3','4','5','6','7','8','9','0','-','_']
indices=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
#67 elementos en la lista
i=0
diccionario=open("diccionario.lis","w")
while(indices[20]==0):
cadena=""
while( j < 20  )  :
if(indices[j] > = 6 7 ) :
indices[j]=0
indices[j+1]=indices[j+1]+1
cadena=cadena+letras[indices[j]]
j=j+1
#print cadena+"\n"
diccionario.write(cadena+"\n")
indices[0]=indices[0]+1
if(indices[0]>=67):
indices[0]=0
indices[1]=indices[1]+1
diccionario.close()
print "terminado"

Como podrán notar, el código esta poco optimizado y es muy bizarro, pero cumple con su función; la explico:

Primero se crea una lista (letras) con los caracteres que quiero incluir en las combinaciones de contraseñas, tomando en cuenta la posición vacía (""). Noten que cuento que tengo 67 caracteres.

Después creo otra lista (indices) que me guardará la posición de los índices por cada posición posible y le agrego una posición más a la lista, lo cual no es del todo necesario pero no quise complicarme con validaciones.
con open('diccionario.lis','w') abro/creo un archivo con permisos de escritura en donde iré guardando las contraseñas generadas. Hago ésto antes de empezar con las iteraciones para no gastar recursos del procesador al estar abriendo y cerrando el archivo, además de que en python se sobre-escribiría el archivo si se abre de ésta manera.

Empiezo con las iteraciones, el "while(indices[20]==0)" me asegura el el último índice (el 21) de la lísta de índices será 0, ya que al vale 1 quiere decir que los demás índices ya habrán dado toda la vuelta y por consiguiente se habrán realizado las combinaciones posibles.

cadena="" crea una variable cadena que inicia vacía, esta cadena es la que contendrá la contraseña generada; poco a poco se le irán concatenando los caracteres.

while( j < 20  )  :
if(indices[j] > = 6 7 ) :
indices[j]=0
indices[j+1]=indices[j+1]+1
cadena=cadena+letras[indices[j]]
j=j+1

Esta parte de código lo que hace es concatenar el carácter que apunta cada índice a la variable cadena; el "if(indices[j] >=67)..." lo que hace es comprobar si el índice ya superó la cantidad de caracteres con los que manejo (en éste caso 67) para reiniciar a 0 la cuenta y aumentar en 1 el índice que le sigue.
Después se concatena el valor del índice a la variable "cadena".
y aumento en 1 el índice J para seguir con el siguiente, valga la redundancia, índice.

con diccionario.write(cadena+"\n") simplemente escribo la contraseña en el archivo, concatenando el salto de línea "\n".

El "if(indices[0]=..." solo comprueba que si el primer índice ya superó los 67 caracteres, para así aumentarse en 1 o bien para reiniciar a 0 y aumentar en 1 al siguiente índice.

Finalmente, cuando terminan todas las combinaciones posibles, cierro la conexión con el archivo y termino el programa.



Ésto sería todo.
Tengo pensado hacer programas que, usando el diccionario generado por este Script se puedan "desencriptar" contraseñas digeridas en MD5 y SHA1.

Por ahora nos seguiremos leyendo.


Apaga la TV
Y enciende tu cerebro

domingo, 8 de enero de 2012

Inyección HTML

HTML Injection

La inyección de HTML es una de las técnicas de Defacing, consiste en inyectar, mediante un formulario, código html con el fin de que se ejecute y se produsca un efecto "anormal" en la página.

Debe quedar claro que cualquier técnica de Defacing es una falta de ética, ningún webmaster merece que su sitio web sea modificado; además de que en varios países se considera un acto ilegal.

Existen un par de formas para lograr inyectar código html en una página, la que mejor manejo y conosco consiste en insertar un texto, en un campo de formulario, que modifique el código fuente de la página.
Para ello, el texto que se inserta en el campo (como puede ser un text) debe mostrarse tal cual en cualquier parte de la página. Esto ocurre en comentarios de blogs, tagboards, libros de visitas y demás, sitios en donde el texto que introduces se guarda en una Base de Datos y de ésta se extrae y muestra en la página para todos los usuarios que visiten el sitio.
Los programadores Web suelen desactivar el html en sus formularios, poner filtros, limpiar el código y cualquier cosa para evitar que sean defaceados; aún así se puede comprobar si la página es vulnerable; un método es introducir esto <> en todos los campos y se envían, en un caso normal estos símbolos no se visualizarán en pantalla pero si buscamos en el código fuente los campos que introducimos tendríamos que ver los "<>" en los valores vulnerables.
Un método más infalible es la simple práctica, enviar la inyección y ver si funciona o no.

Les pondré un ejemplo de un blog que, para el ejemplo, se hiso vulnerable. A mi me gusta usar el navegador Chrome por que permite inspeccionar el código HTML de cada objeto de la página. Podemos observar que el blog tiene un sistema de registro (simple) de usuarios y que el nick del usuario logeado se muestra normalmente:


En la imagen en nick "legender" se encuentra entre las etiquetas <font>y</font>. Entonces para hacer una inyección efectiva se realiza cerrando las etiquetas en las cuales se encuentra este valor.
Como los nicks se guardan en la Base de Datos, necesitamos registrar un nick tal que cierre la etiqueta e introdusca el código html que queramos, por ejemplo:



Aquí nuestro "nick" sería "fuckencio" y cerramos la etiqueta </font>, después hacemos una simple inyección de <h1>Hacked</h1> que insertará un titular cuando nos logeemos con éste nick.
Entonces registramos en nuevo usuario:



El usuario se registró ya en la B.D. Si notamos, el formulario nos arroja un warning debido a la sintaxis, ésto no obligatoriamente ocurre solo en ciertos casos.
Nos logeamos con el nuevo usuario, utilizando obviamente el nick completo con el código a insertar, recordemos que todo éste código llegó tal cual a la BD por lo que ese es nuestro nick completo:



Y como ven la página nos muestra como si nuestro nick fuera "fuckencio", pero debido a la inyección html nos muestra el titular "Hacked", lo cual no provoca realmente nada dañino pero muestra la efectividad de la inyección.


Ahora, poniéndonos en el lado del Webmaster, se debe saber el método para evitar éstas inyecciones; los métodos son muy sencillos debido a que existen ya funciones para éste tema. La primera es strip_tags("código a filtrar") ; lo que hace la función es eliminar las etiquetas html introducidas, o sea que si se introduce "<h1>hola</h1>" al pasar por esa función resultaría "hola".
La segunda función es htmlentities("código a filtrar") que lo que hace es mostrar el html como texto plano y el navegador no lo ejecutará; o sea que si se introduce "<h1>hola</h1>" se mostraría tal cual en el navegador "<h1>hola</h1>".

Esto es todo.
Me despido y recuerden: Ante todo la ¡ÉTICA!

jueves, 24 de noviembre de 2011

[Hacking] Obtención de contraseñas

Por qué no puse robo? pues simplemente para disfrazar la intención, pero tómese en cuenta que es no solo ilegal, también una falta de ética el obtener la contraseña de un tercero (y usarla) sin su consentimiento; pero de igual manera pueden surgir eventos en los cuales se llegue a tal caso, no estoy yo aquí para juzgar los principios éticos de cada quien. Aun que prefiero que usen esta información con carácter informativo para seguridad propia.

Primeramente pienso que ésta es la segunda pregunta más hecha a google, justo después de la pregunta "¿Cómo hackear Messenger/facebook", claro está de que, a parte de que google no responde preguntas, no se encuentra JAMÁS una receta de cocina para obtener contraseñas y tampoco les daré una.
Es muy difícil realmente la garantía de robo de contraseñas, por que desde siempre la mayor parte la debe de poner el usuario victima (aun que no lo crean), y los métodos para que el usuario "caiga" depende de si se conoce a la víctima o no, todo esto ya tiene cabida en otro ámbito en el hacking: ingeniería social.

Les hablaré de 2 métodos usuales.

El primero, siendo el más sencillo, hacer que el usuario te envíe la contraseña directamente; claro que no así como suena, lo común es inducir al usuario a escribir sus datos en un formulario (que piensa que es seguro) que se conecta a tu servidor, al enviar los datos realmente te los envía a tí y no a donde el usuario cree que se envían. Un método muy a los MASTER es el defacing que consiste en alterar un formulario (de logeo principalmente) de una página legítima para que también te envíe a tí los datos que pasan por ella, la inyección SQL es muy habitual pero existen algunos métodos más.
Una segunda opción más viable son los fake's, éstos son imitaciones de páginas auténticas que pueden engañar al "usuario promedio" que inocentemente introduces sus datos para identificarse; por ejemplo, chequen ésta página: fake de facebook, como pueden notar es casi idéntica a la págin principal del facebook salvo unos detalles y que la barra de navegación es "http://gadel.webcindario.com/face/index.htm", ésta es inofensiva y que solo la hice como muestra pero puedo hacer una conexión a una Base de datos que introduzca los datos metidos en los campos y obtendré libremente las contraseñas de las pobres víctimas. Incluso si se dan cuenta, al hacer clic en "entrar" te envía a la página del Face como si te hubieras equivocado de contraseña o algo, un buen detalle para desorientar más.

Una segunda opción más común es el robo de contraseñas mediante la computadora víctima, ésto es más arriesgado pero más eficaz; consiste en instalar un programa en la computadora víctima que capture todo lo tecleado y lo envíe a un servidor en internet. Éstos programas son llamados "keylogger", su función es muy sencilla pero envían información detallada de todo lo escrito, cuándo y en qué aplicaciones/páginas se escribió tal cosa; obviamente son considerados como virus por el sistema y los antivirus, lo que dificulta la instalación de los mismos pero es más que conocido que éstas protecciones son fácilmente burlables: encriptando el programa, tumbando el antivirus antes de instalarlo, en fin...

Ya conocen 2 de los métodos más "funcionales" usados actualmente, como pueden ver es el usuario victima el último en ceder ante el atacante, es verdad que la seguridad total es inexistente ya que vulnerabilidades siempre van a existir, por ellos es bueno conocer las formas en que podemos ser atacados y evaluar nuestra propia seguridad ante tal situación.
Espero que ésto les pueda servir, cualquier pregunta pueden hacerla.