Output:
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
#2
Otros lenguajes / Cifrado cesar - haskell
Febrero 26, 2014, 02:29:05 PM
Simple práctica del lenguaje, ya se que soy pesao repitiendo siempre mismos ciphers
#4
Otros lenguajes / sReplace - Haskell
Febrero 26, 2014, 02:28:07 PMejemplo input y output:
input -> sReplace "soy un chico muy listo" "listo" "tonto"
output -> Soy un chico muy tonto
#5
ASM / [NASM] Reverse string
Febrero 18, 2014, 06:12:47 AM
Bueno aqui os dejo mi primer código en ASM, tan solo da la vuelta a un string pero bueno, aun me cuesta pensar las cosas por este sector xd.
Don't judgue me.
Don't judgue me.
#8
Python / Cifrado 312
Febrero 05, 2014, 07:13:45 PM
Una traducción en python del cifrado 312 de Himanen:
Saludos
Saludos
#9
Python / Cifrado L213
Febrero 05, 2014, 07:11:22 PM
Un cifrado que hizo metal traducido a python:
Saludos
Saludos
#10
Python / Anonfiles uploader
Diciembre 04, 2013, 01:55:36 PM
Estaba codeando esta clase para incluir en el bot del reto hasta que me di cuenta de que esta solo iba a poder ser usada por aquel que tuviese el bot corriendo en su PC, digamos que soy un distraido, así que nada, os la dejo aqui por si a alguien le es de utilidad, no tiene nada de especial.
Saludos
Saludos
#11
Python / Bytescanner api improved
Septiembre 20, 2013, 11:28:05 AM
Hace unos dias me dio por pegarle una ojeada a la "api" en python de bytescanner y le hice unas cuantas mejoras al code, aqui les dejo el mio y abajo el code original :
code original:
PD : EL retorno se almacena en un diccionario, asi que cuando importen la clase acuerdense de parsear la informacion.
Saludos
code original:
PD : EL retorno se almacena en un diccionario, asi que cuando importen la clase acuerdense de parsear la informacion.
Saludos
#12
Off Topic / Algún español que asista a la PyCon España 2013?
Septiembre 12, 2013, 12:16:19 PM
Pues eso, querría saber si algún usuario español de underc0de tiene pensado asistir a la primera PyCon España que se celebrara a finales de Noviembre en Madrid.
Para más info -> No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Para más info -> No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
#13
Python / Cifrado de Vigenère
Septiembre 09, 2013, 06:22:56 PM
Buenas, otra solución a un reto de udtools : No tienes permitido ver enlaces.
Registrate o Entra a tu cuenta
Code :
Imágen :
Code :
Imágen :
#14
Python / Cifrado Morse
Septiembre 06, 2013, 11:26:43 AM
Bueno, este cifrado fue realizado con fin de resolver un reto de programación en No tienes permitido ver enlaces.
Registrate o Entra a tu cuenta.
Código :
Imágen :
Código :
Imágen :
#15
Python / Cifrado Kamasutra
Agosto 26, 2013, 09:13:55 PM
Buenas, vengo a traerles la solución a un reto de No tienes permitido ver enlaces.
Registrate o Entra a tu cuenta
Una imágen vale más que mil palabras:
Saludos
Una imágen vale más que mil palabras:
Saludos
#16
Python / Cifrado Escitala
Agosto 26, 2013, 09:10:24 PM
Buenas, hoy les traigo mi solución a un reto de programación en No tienes permitido ver enlaces.
Registrate o Entra a tu cuenta
Una imágen vale más que mil palabras :
Saludos
Una imágen vale más que mil palabras :
Saludos
#17
Bugs y Exploits / La orca desembarca! - Grampus v.beta
Julio 11, 2013, 09:18:34 PMDespues de mucho tiempo de espera, al menos por parte del equipo de desarrollo, Grampus Beta sale a la luz.
Para los que desconozcais el proyecto, Grampus es una herramienta dirigida especialmente a analistas forenses y a pentesters en general.
La herramienta facilita la recopilación de información a traves de la extracción de metadatos de diferentes documentos y tareas de finger/foot printing
Características :
- Extracción de metadatos de documentos e imágenes, formatos soportados : Openoffice/Libreoffice, Office 2007, Office 2003, PDF, jpg, flv y gif.
- Eliminación de metadatos extraidos de diferentes documentos e imágenes.
- Tres tipos de Crawlers, entre los que se encuentra un crawler de documentos (por extensión) usando Google hacking.
- Para la tarea del fingerprinting contamos con un server banner y un escaneo mediante Shodan usando su api
Objetivos :
Como desarrolladores nuestro objetivo sería la implementación de nuevas tareas para la recopilación de información y el mantenimiento de los bugs que vayan saliendo.
Fuera de eso, queremos incentivar el desarrollo colectivo para que esta herramienta pueda ir automanteniendose y autorenovandose gracias a la colaboración de desarrolladores que usen la herramienta y así conseguir el objetivo común de una herramienta multiplataforma, estable y eficiente.
Download :
Aqui os acerco el enlace de nuestro grupo en bitbucket, donde podreis ir viendo los repositorios de los proyectos que vayamos iniciando : No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Este sería el enlace de descarga del software : No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Y este sería el user-guide : No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
#18
Python / 24sms.net Sender
Mayo 22, 2013, 04:51:35 PM
Bueno os vengo a dejar un pequeñito code que hice para resolver unas dudas que se plantearón en este tema : No tienes permitido ver enlaces.
Registrate o Entra a tu cuenta
Sin más el code y una imágen del mensaje recibido:
Imágen :
Sin más el code y una imágen del mensaje recibido:
Imágen :
#19
Python / Whatsapp Metadata Extractor
Mayo 13, 2013, 06:22:08 PMmain_manage.py :
DB_Extractor.py :
metaimg_extractor.py :
Trabajando :
Saludos.
#20
Informática Forense / Forense automatizado a un whatsapp
Mayo 13, 2013, 05:58:17 PMBuenas a todos, ya hace un tiempo que no escribo algún que otro articulo y hoy aburrido hablando con unos amigos por whatsapp me quedo la duda de si whatsapp guardaba los logs de todo lo que hicíera y efectivamente whatsapp lo hacia.
Viendo la de cositas que se estaban guardando :
- Conversaciones de tlfn a tlfn
- Chats activos
- Fotos de los perfiles que mire
- Imágenes, audios, videos que me pasarón o que pase
(Por ejemplo).
Pues me apetecio hacerle un forense y al tiempo que lo hago os haré una demo del forense a un whatsapp y vereís todos los datos que podemos sacar de utilidad.
Recrearemos un entorno en el que dispongo de acceso físico a un terminal.
El whatsapp es una buena forma de extraer información sobre el día día de la persona, se podría aplicar algo como "Dime con quien andas y te diré quien eres" pero convertido al método geek.
Empezamos con la DEMO :
Bueno, los ficheros de whatsapp se guardan por defecto en /storage/sdcard0/WhatsApp/ , y yo me enviaré los ficheros con Airdroid, una estupenda app para compartir archivos PC - Smartphone vía wifi.
Para pasar a estar conectados en "Modo de conexión remota" como ahí podeís ver solo hay que acceder a No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
y te logueas con tu cuenta.
Y tan solo te queda acceder al directorio y descargar los arhivos de los que extraeremos los metadatos.
Una vez descargados los ficheros voy a proceder a comentaros que podemos encontrar en cada uno de los directorios y cómo podríamos extraerles el jugo.
Tenemos "Databases", "Media" y "Profile Pictures", he hecho un script para que extraiga los metadatos de los db.crypt, tambien extrae los ficheros de la carpeta media(imágenes, audios, videos) y tambien extrae las imágenes encontradas en Profile Pictures.
Databases : Aqui podremos encontrarnos una serie de ficheros con extensión "db.crypt", Whatsapp cifra los archivos SQLite con AES pero siempre usa la misma key "346a23652a46392b4d73257c67317e352e3372482177652c" y de este modo podré decodificarlos.
Media : Aqui nos encontramos con una seríe de archivos (imágenes, audios, videos y wallpapers).
Profile Pictures : Aqui nos encontraremos con todas las imágenes de perfil(de usuario) que hemos mirado desde nuestro whatsapp.
NOTA IMPORTANTE : Para extraer la información de todos estos archivos que hemos obtenido he codeado un script que automatiza todo el proceso (a excepción del proceso de obtención de los ficheros , puesto que se supone que tenemos acceso físico al terminal.)
Ahora os mostraré un esquema en forma de arbol para comprender un poco como funciona el script que he preparado:
· WhatsApp Metadata Extractor :
- main_manage.py (main de consola en forma de cliente)
- DB_Extractor.py (extrae los metadatos de la BD)
- metaimg_extractor.py (extrae los metadatos de los .jpg encontrados)
He dividido el proyecto en 3 scripts, main_manage es el encargado de interactuar con el cliente (el que debemos ejecutar), DB_Extractor es el encargado de realizar las consultas con la BD para extraer toda la información(la que nos interesa) y metaimg_extractor es el encargado de buscar en "Media" y en "Profile Pictures" en busca de metadatos en los archivos .jpg (La mayoria vienen con ellos eliminados por defecto pero no me digas por qué algunas imágenes no se filtran y son subidas sin filtrarse).
Sin más os dejo los codes :
main_manage.py :
[/spoiler]
DB_Extractor.py :
[spoiler]
metaimg_extractor.py :
Unas imágenes trabajando :
DB_Extractor :
IMG extractor :
El archivo "Exif" que importamos en el metaimg_extractor podemos encontrarlo en el proyecto de grampus en bitbucket -> No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
PD : El Forense podría llegar a hacerse en mayor profundidad, en este caso solo tratamos los datos que podrían ser más relevantes como conversaciones, envio de archivos y el análisis de los metadatos de las imágenes.
En fin, esto es todo, el script os automatizará todo el trabajo "duro"
Saludos !! , Sanko.
PD : No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
#21
Python / Skype Metadata Extractor
Abril 22, 2013, 02:35:31 PM
Simple script para extraer metadatos del main.db de skype, los metadatos son extraidos ordenados por "Profile_details", "Conversations_details" y "Transfers_details"
Working :
Saludos
Working :
Saludos
#22
Python / File and Process VT Checker
Abril 11, 2013, 12:21:29 PM
Bueno, esta semana podría decirse que me la tome de descanso y tube un rato para poder escribir algún script que no tenga que ver con ninguna de los proyectos que tengo activos y coincidio que revisando udtools me tome con un post de FQV en el que posteaba un programa que buscaba el hash de tu archivo en virustotal para comprobar si alguien lo habia subido o no y tambien buscaba los hash de los procesos activos en tu winbug para comprobar si tenias algún ejecutable previamente subido en VT ejecutandose en tu máquina.
Como era de esperar , el source no estaba y como sentí curiosidad por la Public API de VT me decidí a hacer ambos scripts y que ideas como estas puedan prosperar tomando una base y no perder el tiempo codeando todo desde 0.
PD: Iva a esperar a hacer otro script más para publicar los 3 pero surgierón imprevistos y debo volver al "trabajo" así que solamente subo el file checker y el process checker.
VT File Checker :
Imágen(Working):
VT Process Checker :
Imágen(Working):
Saludos ! :drinking:
Como era de esperar , el source no estaba y como sentí curiosidad por la Public API de VT me decidí a hacer ambos scripts y que ideas como estas puedan prosperar tomando una base y no perder el tiempo codeando todo desde 0.
PD: Iva a esperar a hacer otro script más para publicar los 3 pero surgierón imprevistos y debo volver al "trabajo" así que solamente subo el file checker y el process checker.
VT File Checker :
Imágen(Working):
VT Process Checker :
Imágen(Working):
Saludos ! :drinking:
#23
Desarrollo y modificación de malwares / Msfvenom ayudandonos a evadir av's con python
Marzo 22, 2013, 07:37:44 PM
Hola a todos ! llevo bastante tiempo de inactividad sin redactar ningún articulo por falta de tiempo (existen prioridades) y era hora de poder dedicarle un tiempo a compartir información.
Hoy os traigo un articulo relacionado con uno que ya escribí hace un tiempo "Evadiendo AV's con Python" en el qué nos serviamos de un shellcode generado por metaesploit, lógicamente aun siendo este embedido necesitariamos de más para poder conseguir un FUD o limpieza total, es por eso que hoy nos ayudaremos de MSFVENOM para cumplir nuestro objetivo.
- uy uy uy uy, sobrecarga de información! no te vayas al tejado! empieza por cimentar el suelo!
Totalmente cierto, empezaremos por cuestionarnos "¿Qué es msfvenom?" :
Cabe destacar que msfvenom es una herramienta "relativamente nueva" que surge para hacer la vida de los pentesters mucho más sencilla.
Esta herramienta no es más que la únion de "msfpayload" y "msfencoder" por lo que esta no te permite solo generar tu payload sino que permite que se codifíque directamente con algún algoritmo(los presentes en msfencoder).
Dicho esto y dejando claro que es una herramienta muy intuitiva (msfvenom -h para mostrar los parametros disponibles) comenzaremos a darle uso para comenzar a evadir antivirus de forma cómoda y rápida.
1 .Comenzemos a generar y a codificar nuestro payload ! :
Generaremos el payload que usamos en el último artículo :
y para generarlo y codificarlo escribiremos :
Ejemplo :
Aun siendo codificado por msfvenom si transformamos este shellcode a exe comprobaremos que aun sigue con bastantes detecciones
Link del reporte -> No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Bien, es hora de comenzar la magia !, usaremos el mismo script que utilizamos en la ocasión pasada , es decir , recurriremos a la libreria ctypes para crear un buffer que ejecute el shellcode en memoria.
Bueno , ahora con py2exe lo convertimos en un ejecutable y lo analizamos...
Scan para vagos :
RESULTS: 0/35
AVG Free -
ArcaVir -
Avast 5 -
AntiVir (Avira) -
BitDefender -
VirusBuster -
Clam -
COMODO -
Dr.Web -
eTrust-Vet -
F-PROT -
F-Secure -
G Data -
IKARUS -
Kaspersky -
McAfee -
MS Essentials -
ESET NOD32 -
Norman -
Norton -
Panda -
A-Squared -
Quick Heal -
Solo -
Sophos -
Trend Micro -
VBA32 -
Vexira -
Zoner AntiVirus -
Ad-Aware -
BullGuard -
Immunet -
K7 Ultimate -
NANO -
VIPRE -
File Name encoded.exe
File Size: 5044988
File MD5: f4a8fd68004d0f6f6de8d6a336a86bd2
File SHA1: 159eb4450af494787961ce7a093cccd11a764bc1
Check Time: 2013-03-22 23:59:23
Scan report generated by
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Para nuestra sorpresa y como podemos observar esta TOTALMENTE FUD , 0/35, esto podría estar bien siempre y cuando el payload continuara siendo funcional, ejecutemoslo y veamos si realmente sigue funcionando :
Y ya con esto concluimos ! , espero que os sirviera de ayuda.
En este artículo no se profundiza en el uso de msfvenom ya que no es lo que se pretende, si deseas saber más acerca de él -> No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Saludos, Sanko.
Hoy os traigo un articulo relacionado con uno que ya escribí hace un tiempo "Evadiendo AV's con Python" en el qué nos serviamos de un shellcode generado por metaesploit, lógicamente aun siendo este embedido necesitariamos de más para poder conseguir un FUD o limpieza total, es por eso que hoy nos ayudaremos de MSFVENOM para cumplir nuestro objetivo.
- uy uy uy uy, sobrecarga de información! no te vayas al tejado! empieza por cimentar el suelo!
Totalmente cierto, empezaremos por cuestionarnos "¿Qué es msfvenom?" :
Cabe destacar que msfvenom es una herramienta "relativamente nueva" que surge para hacer la vida de los pentesters mucho más sencilla.
Esta herramienta no es más que la únion de "msfpayload" y "msfencoder" por lo que esta no te permite solo generar tu payload sino que permite que se codifíque directamente con algún algoritmo(los presentes en msfencoder).
Dicho esto y dejando claro que es una herramienta muy intuitiva (msfvenom -h para mostrar los parametros disponibles) comenzaremos a darle uso para comenzar a evadir antivirus de forma cómoda y rápida.
1 .Comenzemos a generar y a codificar nuestro payload ! :
Generaremos el payload que usamos en el último artículo :
y para generarlo y codificarlo escribiremos :
Ejemplo :
Aun siendo codificado por msfvenom si transformamos este shellcode a exe comprobaremos que aun sigue con bastantes detecciones
Link del reporte -> No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Bien, es hora de comenzar la magia !, usaremos el mismo script que utilizamos en la ocasión pasada , es decir , recurriremos a la libreria ctypes para crear un buffer que ejecute el shellcode en memoria.
Bueno , ahora con py2exe lo convertimos en un ejecutable y lo analizamos...
Scan para vagos :
RESULTS: 0/35
AVG Free -
ArcaVir -
Avast 5 -
AntiVir (Avira) -
BitDefender -
VirusBuster -
Clam -
COMODO -
Dr.Web -
eTrust-Vet -
F-PROT -
F-Secure -
G Data -
IKARUS -
Kaspersky -
McAfee -
MS Essentials -
ESET NOD32 -
Norman -
Norton -
Panda -
A-Squared -
Quick Heal -
Solo -
Sophos -
Trend Micro -
VBA32 -
Vexira -
Zoner AntiVirus -
Ad-Aware -
BullGuard -
Immunet -
K7 Ultimate -
NANO -
VIPRE -
File Name encoded.exe
File Size: 5044988
File MD5: f4a8fd68004d0f6f6de8d6a336a86bd2
File SHA1: 159eb4450af494787961ce7a093cccd11a764bc1
Check Time: 2013-03-22 23:59:23
Scan report generated by
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Para nuestra sorpresa y como podemos observar esta TOTALMENTE FUD , 0/35, esto podría estar bien siempre y cuando el payload continuara siendo funcional, ejecutemoslo y veamos si realmente sigue funcionando :
Y ya con esto concluimos ! , espero que os sirviera de ayuda.
En este artículo no se profundiza en el uso de msfvenom ya que no es lo que se pretende, si deseas saber más acerca de él -> No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Saludos, Sanko.
#24
Python / Grampus Project - Presentación detallada
Enero 27, 2013, 07:35:10 PM
Antes de empezar aclarar que el motivo de la creación del tema es totalmente informátivo e incitativo a que otros desarrolladores python puedan colaborar con este proyecto.
Buenas , no hace mucho se ha publicado una entrada por parte de nuestro buen amigo Snifer presentando un poquito y de manera general nuestro joven proyecto.
Así que estoy escribiendo este tema ya no como un "Coming Soon" sino como un tema en el que pueda describir un poco sus características y objetivos...
¿Qué es Grampus Project?
Grampus Project nace para todos aquellos usuarios que necesitan automatizar sus procesos en auditorias web.
Como sabemos la recopilación de información a la hora de realizar un ataque a un objetivo es esencial y a veces este proceso puede ser muy largo y pesado.
Fear the FOCA, de Chema Alonso y su equipo, cubre las necesidades de automatización que necesitamos a la hora del proceso de Fingerprinting y la extracción y el análisis de metadatos lo que no cubre es algo para muchos esencial, la cómoda multiplataforma.
Muchos somos usuarios Linux y nos resulta complicado tener que rompernos el coco para emularlo con WINE o incluso virtualizarlo en una maquina virtual con entorno Windows...
Es por todo esto que nace Grampus Project , para poder cubrir nuestras necesidades.
El proyecto se divide de esta manera :
- Forensic Grampus
- Anti-Forensic Grampus
- Grampus
- Anti Grampus
Aquí es donde entraremos ya en detalles ya que explicaré las características de cada uno...
- Forensic Grampus :
Forensic Grampus es una herramienta forense que pretende extraer y analizar los metadatos encontrados en documentos, imagenes , archivos, aplicaciones...
Esta totalmente programado en Python por lo que es la perfecta alternativa multiplataforma para Forensic FOCA superando a esta con creces en cuanto a extensiones soportadas.
(Para ver las extensiones soportadas puedes visitar nuestro proyecto en Bitbucket en el que trataremos de subir más información acerca de esto ya que puede variar a medida que vamos programando.)
- Anti-Forensic Grampus :
Anti Forensic Grampus es una herramienta ANTI forense que pretende eliminar o modificar aquellos metadatos encontrados en documentos, imagenes, archivos, aplicaciones...
Esta totalmente programada en Python por lo que es una buena alternativa a Metashield Protector proporcionando protección contra las mismas extensiones que podemos analizar en Forensic Grampus.
- Grampus :
Grampus es una herramienta para la automatización de procesos fingerprinting en los trabajos de auditoria web sumandole a esto la posibilidad de extraer y analizar los documentos públicos encontrados en la propia página a la que se le realiza la auditoria convirtiendose así en la alternativa multiplataforma Perfecta para FOCA de Chema Alonso y su equipo.
- Anti - Grampus :
Anti Grampus es una herramienta creada para evitar exponer datos o credenciales que puedan ser de utilidad en ese proceso de fingerprinting volviendo así a nuestro sitio más seguro.
Esta totalmente programado en Python así como las otras 3 herramientas y a diferencia de las demas esta surge como contramedida y no como una alternativa.
CONCLUSIONES :
Con esta explicación sobre nuestro proyecto espero que haya podido aclarar todas las dudas que se tenían al respecto e incluso tal vez pudiera animar a algún programador python a unirse al proyecto...
Actualmente estamos trabajando en la versión Forensic Grampus y al poco de acabarla procederemos a trabajar en Anti Forensic Grampus para más tarde poder centrarnos en la elaboración de Grampus y Anti Grampus.
SIGAN EL PROYECTO EN BITBUCKET:
Pueden seguir el proyecto en bitbucket : No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
en el que iremos actualizando el proyecto.
Desarrolladores actuales :
- @The_Pr0ph3t (Pr0ph3t)
- @SankoSK (Sanko)
- @sniferl4bs (Snifer)
- @don_once (11Sep)
- OverxFlow
Por el momento el proyecto se encuentra en fase de desarrollo y por supuesto necesitamos de programadores python que se animen a contribuir con nosotros.
Lastimosamente hasta que la primera versión de cada uno no este publicadas como versión estable, tendremos un cupo limitado de programadores por lo que aceptaremos la entrada de quienes veamos conveniente aunque si podran disponer de permisos de lectura para ver el sourcecode.
Una vez tengamos la primera versión estable de cada uno abriremos el proyecto para que un gran cupo de personas pueda actuar como developer y crear sus propias modificaciones y demas cosas , eso sí , siempre en modo de branching , es decir, a modo de prueba para que los owners puedan visualizar dichas mejoras y considerar si pueden agregarse a la versión estable o no.
Con esto queda todo más que explicado y creo que puedo concluir con el tema.
Un Saludo , Sanko.
Buenas , no hace mucho se ha publicado una entrada por parte de nuestro buen amigo Snifer presentando un poquito y de manera general nuestro joven proyecto.
Así que estoy escribiendo este tema ya no como un "Coming Soon" sino como un tema en el que pueda describir un poco sus características y objetivos...
¿Qué es Grampus Project?
Grampus Project nace para todos aquellos usuarios que necesitan automatizar sus procesos en auditorias web.
Como sabemos la recopilación de información a la hora de realizar un ataque a un objetivo es esencial y a veces este proceso puede ser muy largo y pesado.
Fear the FOCA, de Chema Alonso y su equipo, cubre las necesidades de automatización que necesitamos a la hora del proceso de Fingerprinting y la extracción y el análisis de metadatos lo que no cubre es algo para muchos esencial, la cómoda multiplataforma.
Muchos somos usuarios Linux y nos resulta complicado tener que rompernos el coco para emularlo con WINE o incluso virtualizarlo en una maquina virtual con entorno Windows...
Es por todo esto que nace Grampus Project , para poder cubrir nuestras necesidades.
El proyecto se divide de esta manera :
- Forensic Grampus
- Anti-Forensic Grampus
- Grampus
- Anti Grampus
Aquí es donde entraremos ya en detalles ya que explicaré las características de cada uno...
- Forensic Grampus :
Forensic Grampus es una herramienta forense que pretende extraer y analizar los metadatos encontrados en documentos, imagenes , archivos, aplicaciones...
Esta totalmente programado en Python por lo que es la perfecta alternativa multiplataforma para Forensic FOCA superando a esta con creces en cuanto a extensiones soportadas.
(Para ver las extensiones soportadas puedes visitar nuestro proyecto en Bitbucket en el que trataremos de subir más información acerca de esto ya que puede variar a medida que vamos programando.)
- Anti-Forensic Grampus :
Anti Forensic Grampus es una herramienta ANTI forense que pretende eliminar o modificar aquellos metadatos encontrados en documentos, imagenes, archivos, aplicaciones...
Esta totalmente programada en Python por lo que es una buena alternativa a Metashield Protector proporcionando protección contra las mismas extensiones que podemos analizar en Forensic Grampus.
- Grampus :
Grampus es una herramienta para la automatización de procesos fingerprinting en los trabajos de auditoria web sumandole a esto la posibilidad de extraer y analizar los documentos públicos encontrados en la propia página a la que se le realiza la auditoria convirtiendose así en la alternativa multiplataforma Perfecta para FOCA de Chema Alonso y su equipo.
- Anti - Grampus :
Anti Grampus es una herramienta creada para evitar exponer datos o credenciales que puedan ser de utilidad en ese proceso de fingerprinting volviendo así a nuestro sitio más seguro.
Esta totalmente programado en Python así como las otras 3 herramientas y a diferencia de las demas esta surge como contramedida y no como una alternativa.
CONCLUSIONES :
Con esta explicación sobre nuestro proyecto espero que haya podido aclarar todas las dudas que se tenían al respecto e incluso tal vez pudiera animar a algún programador python a unirse al proyecto...
Actualmente estamos trabajando en la versión Forensic Grampus y al poco de acabarla procederemos a trabajar en Anti Forensic Grampus para más tarde poder centrarnos en la elaboración de Grampus y Anti Grampus.
SIGAN EL PROYECTO EN BITBUCKET:
Pueden seguir el proyecto en bitbucket : No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
en el que iremos actualizando el proyecto.
Desarrolladores actuales :
- @The_Pr0ph3t (Pr0ph3t)
- @SankoSK (Sanko)
- @sniferl4bs (Snifer)
- @don_once (11Sep)
- OverxFlow
Por el momento el proyecto se encuentra en fase de desarrollo y por supuesto necesitamos de programadores python que se animen a contribuir con nosotros.
Lastimosamente hasta que la primera versión de cada uno no este publicadas como versión estable, tendremos un cupo limitado de programadores por lo que aceptaremos la entrada de quienes veamos conveniente aunque si podran disponer de permisos de lectura para ver el sourcecode.
Una vez tengamos la primera versión estable de cada uno abriremos el proyecto para que un gran cupo de personas pueda actuar como developer y crear sus propias modificaciones y demas cosas , eso sí , siempre en modo de branching , es decir, a modo de prueba para que los owners puedan visualizar dichas mejoras y considerar si pueden agregarse a la versión estable o no.
Con esto queda todo más que explicado y creo que puedo concluir con el tema.
Un Saludo , Sanko.
#25
Hacking ShowOff / Stored XSS and IFXSS mediafire.com
Enero 19, 2013, 09:30:20 AM
No hace un mes encontre una stored XSS en mediafire la cual fue reportada y reparada en un tiempo record y hoy subiendo unos trabajos me percate de que existía un IFXSS en el uploader...
Ya con 2 XSS en tan poco tiempo me decidí a mostraroslos en el hacking showoff
Stored XSS :
Vector -> "<h1 onclick=alert("XSS")>
Estado : Reportado y Fixeado :
IFXSS :
Vector -> "<h1 onclick=alert("XSS")>
Estado -> Reportado y en tramites de reparación.
Ya con 2 XSS en tan poco tiempo me decidí a mostraroslos en el hacking showoff
Stored XSS :
Vector -> "<h1 onclick=alert("XSS")>
Estado : Reportado y Fixeado :
IFXSS :
Vector -> "<h1 onclick=alert("XSS")>
Estado -> Reportado y en tramites de reparación.
#26
Python / Evadiendo AV's con Python
Enero 06, 2013, 10:16:38 PMBuenas , coincidio estaba leyendo un librito (Violent Python) y un capítulo trataba sobre la evasión de antivirus...
Muchos me comentaban que conocían el libro pero que nunca les dio por leerlo, entre las principales razones pues por lo de siempre...
- "ESTA EN INGLÉS y como esta en inglés pues NO LO ENTIENDO BIEN"
Bueno , en este caso voy a "adaptar" un capítulo qué me llamo la antención para que veaís que no es dificil de leerlo y que pues bueno a veces por no leer en inglés os perdeís conocer muchas cosas interesantes...
Al lio...
1. Generar shellcode con código malicioso en msf(metasploit).
2. Escribir el script en python que nos permita ejecutar ese código.
1. Generar shellcode con código malicioso en msf(metasploit):
Abrimos msf :
y generaremos este payload , escribimos :
Aqui nos genera el shellcode :
Ahora pasaremos directamente ese shellcode a exe y escanearemos :
y lo analizamos en un scanner online para por cuantos av's es detectado :
BBCode :
[spoiler] RESULTS: 23/35
AVG Free - Trojan horse Agent_r.OV
ArcaVir -
Avast 5 - Win32:Sileco [Trj]
AntiVir (Avira) - TR/Crypt.XPACK.Gen5
BitDefender - No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
VirusBuster -
Clam - Trojan.MSF_Shellcode
COMODO - TrojWare.Win32.TrojanDownloader.Small.~AOLO@104254503
Dr.Web - Trojan.Packed.196
eTrust-Vet - Win32/ASuspect.HHGCP
F-PROT - W32/SmallTrojan.M.gen!Eldorado (generic, not disinfectable)
F-Secure - Trojan:W32/Shell2Exe.A
G Data - No tienes permitido ver enlaces. Registrate o Entra a tu cuenta, Win32:Sileco [Trj]
IKARUS - Trojan.Win32.Swrort
Kaspersky -
McAfee - Generic Downloader.fa
MS Essentials - TrojanDownloader:Win32/Sileco.A
ESET NOD32 - Trojan.Win32/Shellcode2EXE.A
Norman - winpe/Swrort.A
Norton -
Panda -
A-Squared - Trojan.Win32.Swrort!IK
Quick Heal - Trojan.Agent.ATV.n3
Solo -
Sophos - Mal/Silvana-B
Trend Micro - TROJ_SMALL.SMJ2
VBA32 -
Vexira -
Zoner AntiVirus -
Ad-Aware -
BullGuard - No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Immunet - No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
K7 Ultimate - Riskware ( 22533fae0 )
NANO -
VIPRE -
File Name shellcode.exe
File Size: 20572
File MD5: 2be1f303fa36ac3d6d5e00f38fadc551
File SHA1: 58b63498b305df218cce0949a02ab91832d96348
Check Time: 2013-01-07 02:19:27
Scan report generated by
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta[/spoiler]
23/35 , BUFF , muy quemado...
Pero esto se puede solucionar con nuestro queridito python...
Escribiremos un script que creara un buffer-string y que luego lo ejecute en memoria a traves de un módulo(API) -> Ctypes
Escribamos el script pues :
Ahora lo pasamos a aplicación con py2exe y lo escaneamos de nuevo:
ç
BBCode:
[spoiler] RESULTS: 2/35
AVG Free -
ArcaVir -
Avast 5 - Win32:Hijack-GL [Trj]
AntiVir (Avira) -
BitDefender -
VirusBuster -
Clam -
COMODO -
Dr.Web -
eTrust-Vet -
F-PROT -
F-Secure -
G Data -
IKARUS -
Kaspersky -
McAfee -
MS Essentials - Trojan:Win32/Swrort.A
ESET NOD32 -
Norman -
Norton -
Panda -
A-Squared -
Quick Heal -
Solo -
Sophos -
Trend Micro -
VBA32 -
Vexira -
Zoner AntiVirus -
Ad-Aware -
BullGuard -
Immunet -
K7 Ultimate -
NANO -
VIPRE -
File Name Bindshell.exe
File Size: 3440179
File MD5: b36d2d0ba10d154436add0ea1635e6ec
File SHA1: f96b7843f16ee4670e0c27f1d5a9a0ccdf71b4e3
Check Time: 2013-01-07 01:30:55
Scan report generated by
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta[/spoiler]
Avast y Essentials.. link reporte = No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Ahora comprobemos que el payload se ejecuta correctamente...
Todo correcto al parecer...
Bueno, con esto es todo , espero os agradará el articulo.
Un Saludo ,
Sanko.
Referencias : Creditos para el libro "Violent Python" esto tan solo es una explicación basada en lo que leí.
Traducido al español y explicado como me parecio más adecuado.
#27
Base de Datos / Creando un entorno de trabajo para MongoDB y Django
Enero 03, 2013, 07:36:33 PMBuenas amantes de Django y de las bases de datos no relacionales.
Muchos desarrolladores Django aman las BD's NoSQL y como los developers de Djangoproject piensan en nosotros nos han dado la oportunidad de facilitarnos la vida...
En un antiguo articulo explicamos sobre Pymongo lo qué nos permitia manejar MongoDB desde nuestro python...
En este articulo vamos a crear un entorno de trabajo para poder jugar con Django y MongoDB y en el próximo articulo programaremos algo...
- ¿Qué necesitaremos? :
· MongoDB
· Python
· Django (en la versión 1.3)
· Django-norel
· Django Toolbox
· Django MongoDB - Engine
Por si alguien aun no tiene mucha idea sobre estos pues hablaremos un poco de ellos :
MongoDB : No necesita presentación pues ya tenemos un articulo sobre el
Python : Si no lo sabeís pegaros un tiro.
Django 1.3 : Django es un framework web realizado en Python , para poder trabajar con BD's no relacionales debemos de tener la versión 1.3 puesto que las siguientes no son compatibles con Django-Norel
Django - Norel : Implementa a Django 1.3 lo necesario para trabajar con bases de datos no relacionales.
Django - Toolbox : Una seríe de útiles para trabajar con no relacionales en Django.
MongoDB - Engine : Engine que MongoDB nos proporciona para usar MongoDB como Backend en nuestros proyectos Django
Ahora veremos como instalar Django 1.3, Django-Norel, Django-Toolbox y MongoDB-Engine.
Pero antes requerimos de pip- Python , Git y de Mercurial para realizar la instalación de estos :
- Instalar python-pip:
- Instalar Git :
- Instalar Mercurial :
Una vez tengamos Git , python - pip y Mercurial procederemos a instalar lo dicho :
- Instalando Django 1.3 :
Descargamos Django 1.3 desde No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Nos movemos a la carpeta en la que se nos descargo Django y escribimos :
- Instalando Django Norel :
Aquí ya hacemos uso de mercurial para clonar el repo, escribimos :
A muchos les soltará un error por permisos , así que no olviden ponerse como root por si acaso.
- Instalando Django Toolbox :
Escribimos en terminal de la misma manera :
Y por último :
- Instalando Django MongoDB-Engine :
Aquí ya hacemos uso de git para instalar la engine , escribimos en terminal :
Y esto sería todo lo necesario para poder usar MongoDB como Backend en nuestras aplicaciones en Django.
El próximo articulo trabajaremos ya sobre este entorno que hemos creado.
Saludos , Sanko.
#28
Python / Python + MongoDB = Pymongo
Diciembre 20, 2012, 11:12:49 PM
Bueno , no hace mucho publiqué una introducción sobre MongoDB con sus características , primeros pasos y demas.
Bien , pues hoy trataré sobre un tema que a muchos Pythoneros como yo les interesa.
MongoDB cuenta con unos drivers que soportan una gran variedad de lenguajes :
C
C++
Erlang
Haskell
Java (and other JVM languages)
Javascript
.NET (C#, F#, PowerShell, ...)
Node.js
Perl
PHP
Python
Ruby
Scala
Para más información sobre los drivers : No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Uno de los más recomendados a la hora de tratar con MongoDB desde python es "Pymongo".
Primero debemos instalar la libreria pymongo , en mi caso uso mint asi que:
Jugaremos con los mismos comandos con pymongo que realizamos en la introducción a MongoDB :
- Conectaremos con la BD
- Veremos las BD's que tenemos creadas
- Veremos las colecciones que tenemos ya creadas
- Crearemos una nueva BD
- Crearemos una nueva colección
- Insertaremos nuevos documentos
- Actualizaremos documentos
- Buscaremos documentos
- Borraremos documentos con remove y con drop
Y como petición especial (me enviarón la duda por MP) y ya que al parecer no puede esperar al próximo tutorial de MongoDB :
- Borraremos bases de datos
Bueno comenzemos importando pymongo :
Creamos la conexión con la BD :
Ahí veís puse localhost por defecto porque la BD esta en nuestra PC y pymongo nos conecta con ella si le indicamos local pero ahi deberían de indicar el sitio de la BD y el puerto al que se conecta.
Bueno veamos las BD's que ya hay creadas :
conex.database_names()
Ahora creemos una BD nueva :
Creamos una nueva colección :
Veamos que colecciones tenemos creadas :
Insertemos un documento :
Actualizamos documentos con update():
Vamos a realizar una busqueda de documentos :
Borremos documentos con remove():
Vaciamos la colección (borramos todos los documentos) con drop():
Y ahora la petición especial , borrar bases de datos...
Aquí me explicaré un poquito más puesto que este comando es nuevo(No lo dimos en el post introductorio a MongoDB).
En MongoDB borrariamos la BD de la siguiente manera:
-Accedemos a la database
-Nos borramos
Una vez aclarado esto , veamos como borrariamos la bd en pymongo:
Bueno , ahora pongamos esto en práctica creando un código SIMPLE, no nos vamos a matar creando un super manager para un tutorial... xd
Algo así :
Una imagen del rápido testeo :
Para los vagos aca les dejo el code en Pastebin -> No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
El code esta creado muy rápidamente por eso tiene unos patrones muy rígidos a vuestra imaginación queda quitar lla necesidad de definir unas variables antes de crear el documento y demas cosas , eso ya se tiene que hacer pensando como sería más cómodo y dedicandole un buen rato.
Espero os sirviera este articulo , como siempre UN ABRAZO.
Saludos , Sanko
Bien , pues hoy trataré sobre un tema que a muchos Pythoneros como yo les interesa.
MongoDB cuenta con unos drivers que soportan una gran variedad de lenguajes :
C
C++
Erlang
Haskell
Java (and other JVM languages)
Javascript
.NET (C#, F#, PowerShell, ...)
Node.js
Perl
PHP
Python
Ruby
Scala
Para más información sobre los drivers : No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Uno de los más recomendados a la hora de tratar con MongoDB desde python es "Pymongo".
Primero debemos instalar la libreria pymongo , en mi caso uso mint asi que:
Jugaremos con los mismos comandos con pymongo que realizamos en la introducción a MongoDB :
- Conectaremos con la BD
- Veremos las BD's que tenemos creadas
- Veremos las colecciones que tenemos ya creadas
- Crearemos una nueva BD
- Crearemos una nueva colección
- Insertaremos nuevos documentos
- Actualizaremos documentos
- Buscaremos documentos
- Borraremos documentos con remove y con drop
Y como petición especial (me enviarón la duda por MP) y ya que al parecer no puede esperar al próximo tutorial de MongoDB :
- Borraremos bases de datos
Bueno comenzemos importando pymongo :
Creamos la conexión con la BD :
Ahí veís puse localhost por defecto porque la BD esta en nuestra PC y pymongo nos conecta con ella si le indicamos local pero ahi deberían de indicar el sitio de la BD y el puerto al que se conecta.
Bueno veamos las BD's que ya hay creadas :
conex.database_names()
Ahora creemos una BD nueva :
Creamos una nueva colección :
Veamos que colecciones tenemos creadas :
Insertemos un documento :
Actualizamos documentos con update():
Vamos a realizar una busqueda de documentos :
Borremos documentos con remove():
Vaciamos la colección (borramos todos los documentos) con drop():
Y ahora la petición especial , borrar bases de datos...
Aquí me explicaré un poquito más puesto que este comando es nuevo(No lo dimos en el post introductorio a MongoDB).
En MongoDB borrariamos la BD de la siguiente manera:
-Accedemos a la database
-Nos borramos
Una vez aclarado esto , veamos como borrariamos la bd en pymongo:
Bueno , ahora pongamos esto en práctica creando un código SIMPLE, no nos vamos a matar creando un super manager para un tutorial... xd
Algo así :
Una imagen del rápido testeo :
Para los vagos aca les dejo el code en Pastebin -> No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
El code esta creado muy rápidamente por eso tiene unos patrones muy rígidos a vuestra imaginación queda quitar lla necesidad de definir unas variables antes de crear el documento y demas cosas , eso ya se tiene que hacer pensando como sería más cómodo y dedicandole un buen rato.
Espero os sirviera este articulo , como siempre UN ABRAZO.
Saludos , Sanko
#29
Informática Forense / Analisis de Metadatos con FOCA
Diciembre 20, 2012, 10:00:22 AM
Buenas! , en esta ocasión vengo a traerles una presentación.odp sobre Analisis de Metadatos con FOCA y como burlar FOCA.
Me toco realizar una charla sobre Analisis de Metadatos y use esta presentación como guia para realizar una demostración en directo sobre "Ataque y Defensa".
La presentación esta hecha a prueba de Kiddies por lo qué cualquiera pueda aprender.
Esta se hizo con la intención de hacerme de GUIA mientras iva explicando y haciendo las cosas por lo que su explicación sobre el uso de FOCA no es muy extensa pero servirá para aprender lo básico o para aquel que quiera realizar una charla sobre lo mismo pueda tomarla como guia para la suya.
Sin mas os dejo el link de descarga :
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Espero que os sirva , un abrazo.
Sanko.
Me toco realizar una charla sobre Analisis de Metadatos y use esta presentación como guia para realizar una demostración en directo sobre "Ataque y Defensa".
La presentación esta hecha a prueba de Kiddies por lo qué cualquiera pueda aprender.
Esta se hizo con la intención de hacerme de GUIA mientras iva explicando y haciendo las cosas por lo que su explicación sobre el uso de FOCA no es muy extensa pero servirá para aprender lo básico o para aquel que quiera realizar una charla sobre lo mismo pueda tomarla como guia para la suya.
Sin mas os dejo el link de descarga :
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Espero que os sirva , un abrazo.
Sanko.
#30
Base de Datos / MongoDB - La MySQL del NoSQL
Diciembre 18, 2012, 11:34:53 AM
Buenas , no hace mucho me hicierón una propuesta para trabajar como backend y requerian de conocimientos en bases de datos NoSQL, así que como buen autodidacta me puse a googlear y me encontre con la MySQL de las bases de datos no relacionales.
Esta se llamaba MongoDB y con tan solo leer sus características me dejo totalmente enamorado.
Índice :
{1} Introducción:
1-¿Qué es MongoDB?
2-Características
3-Instalando MongoDB y Primeros pasos
{1}.1 : ¿Qué es MongoDB?
A estas alturas y con esa introducción todos los que desconoceís de MongoDB os estareís preguntando
-¿Qué es MongoDB?- , ahora aclararé todo.
MongoDB es una base de datos relativamente "nueva", esta se orienta a documentos...
-¿Como a documentos?- , para poder trabajar cómodamente sobre mongoDB debemos de olvidarnos de la lógica relacional que MySQL nos implemento , así que realizaré una comparativa para que os quedeís con los términos básicos.
Términos SQL - Términos MongoDB :
Database - Database
Tabla - Colección
Fila - Documento(BSON)
columna - campo
index - index
Con esto ya tendremos una comparativa bastante clara y podemos proseguir con "¿Qué es MongoDB?".
MongoDB fue programada en C++ de código abierto y fué pensada para ser rápida , escalable y sencilla.
Es muy importante destacar que MongoDB ofrece un mayor rendimiento que CouchDB(otra BD NoSQL) e incluso que MySQL.
¿Para qué podemos usar MongoDB?
Puesto que MongoDB no usa digamos los "estándares" de bases de datos no es muy recomendable usarla para aplicaciones bancarias pero cuando tienes que almacenar grandes cantidades de datos como por ejemplo un blog si sería ideal.
Tambien mucha gente recomienda crear híbridos en los que uses una BD Relacional para las transacciones y una no relacional como MongoDB para guardar datos,documentos.
{1}.2 : Características de MongoDB :
Bueno vamos a ver un poco por encima las características de MongoDB :
Ausencia de transacciones
Utiliza Almacenamiento Orientado a documentos (BSON)
Soporte a Querys dinámicas
Indexación de Documentos
Indices Geoespaciales
Analisis de Rendimiento de Queries
Actualización de la información "in-Place"
GridFS
Replicación de Datos
Implementación de Auto Sharding
Utilización de Funciones Map/reduce
Ausencia de transacciones
Se tiene en cuenta como desventaja pero es por esto por lo que MongoDB puede ser más rápida y escalable.
Utiliza Almacenamiento Orientado a documentos (BSON)
BSON(Binary-JSON) es una excelente forma de intercambio de información y de almacenaje. MongoDB almacena todo en un mismo documento y gracias a json el cual describe el contenido del documento no existe la necesidad de crear estructuras ni de esquematizar.
Aparte de las funcionalidades que posee JSON agrega otras como la habilidad de manejar datos binarios, permitiendoles ser sumamente rápida en la búsqueda, indexación, almacenamiento y recuperación de la información, ya que BSON es fácil y rápidamente transformable en cualquier tipo de dato nativo de cualquier lenguaje de programación.
Soporte a Querys dinámicas
MongoDB acepta la ejecución de queries dinámicas, es decir , se pueden ejecutar consultas sin haberlas definido antes como pasa en CouchDB.
Indexación de Documentos
A la hora de insertar documentos a una colección se indexan con una clave/prefijo (_id) que proporciona al documento la capacidad de ser único, esta _id se puede definir a la hroa de insertar pero si no se define el propio mongo te pondrá una por defecto.
Indices Geoespaciales
Esto permite por indexar información basandonos en geo/localización lo que es muy útil a la hora de elaborar aplicaciones para este area.
Analisis de Rendimiento de Queries
MongoDB nos acerca una herramienta para analizar consultas, desde luego muy útil para analizar defectos o mejorarlas.
Actualización de la información "in-Place"
MongoDB puede actualizarse donde quiera que sucedan los cambios ya que realiza la escritura de la información en la memoría y retrasa la escritura en disco lo más posible (esto puede ser una desventaja) pero esto le proporciona su velocidad.
GridFS
Como ya comentamos mongo utiliza BSON para el almacenaje de datos binarios y su limite esta en 4MB de datos binarios en un mismo documento.
Para eso si necesitamos espacios adicionales para audios , videos , imagenes mongoDB nos acerca un sistema de almacenaje de metadatos, GridFS.
Este permite almacenar información del archivo en una coleccion de archivos.
Esto se divide en minimas partes(chunks) que se almacenan en una coleccion de chunks y permite que sea mas sencillo manejar y escalar.
Replicación de Datos
MongoDB tiene un mecanísmo llamado "replicación maestro-esclavo".
Este mecanismo es sencillo de entender , todas las peticiones de escritura se realizan en la BD maestra quien las "copia" en su réplica(esclavo) y así tenemos alternativa si la maestro falla porque la esclava ocupa su sitio.
Implementación de Auto Sharding
Esta es la característica más útilizada porque esta busca que se encarga del manejo de la data y de que esta vaya al servidor correcto para que las queries se ejecuten de la forma más eficiente.
Funciones Map/reduce
Son las funciones más poderosas en cuanto a consultoría de data se refiere.
Estan en JS(JavaScript) y se ejecutan en el servidor.
Hay que dejar claro que mongoDB tiene una shell js para el manejo de BD's y en ella podemos trabajar con código js que nos permite explotar todo su potencial.(Bucles para insertar documentos etc etc...)
La función MAP se encarga de encontrar documentos que cumplen X condición/criterio , despues la funcion REDUCE se encarga de procesar esa información y nos retorna un documento con la información "peticionada"/"encargada".
{1}.3 : Instalando MongoDB
Es de lógica que si vamos a ver como instalar MongoDB primero habrá que descargarlo ¿No?.
Para esto acudimos a su website oficial ->Mongodb.org
Ahí podeís elejir para que OS y estas cositas , en mi caso Linux 32-bit
O tambien podemos hacerlo desde nuestra terminal :
Para comprobar si todo quedo bien abrimos nuestra terminal y escribimos :
Se nos conecta a una bd por defecto "test" , vamos a crear nuestra propia database:
Podemos ver que databases tenemos creadas con :
Aclaración :
La base de datos no se guardará hasta que no guardemos algo dentro...
esto quiere decir que si la creo "use namedb" y luego me salgo de la shell la db no aparecera como creada.
Ok , creemos una colección para nuestra database e insertaremos un documento :
Podemos ver que colecciones tenemos creadas con :
Ahora usaremos .find() para comprobar que se creo el documento :
ahí vemos que nos creo el documento y lo pudimos buscar con .find() que daría un busqueda a todos entre los () podemos dar argumentos
Vamos a crear otro documento con una estructura totalmente diferente para probar la eficiencie de find() para pedirle una busqueda más especifica:
Ahi comprobamos que nos muestra solo lo que nosotros queremos buscar , es decir , datos que contengan "color":"azul" , si no , no muestra nada.
Existe otro método , para mi un poco inútil la verdad pero es otro , xd , este muestra solo la primera fila del doc.
Bueno pasemos a el método count() , este si es más útil ya que nos dice el número de los que tenemos almacenados :
supongamos que queremos actualizar datos y para esto tenemos a nuestro querido update()
Como podeís observar en la imagen gracias a $set actualizamos el documento COLOCANDO "other":"fuckthishit" despues de "name":"sanko"
Ahora tocaremos sobre los métodos remove y drop , es de suponer que algo tiene que ver con eliminar... xd, el método remove nos servira para eliminar filas en los documentos , aqui un ejemplo :
Esto lo que hará será borrar todas las filas del documento dejando este vacío:
pero tambien podemos usar a remove() con parametros para borrar algo de manera concreta :
ahí podeís ver que nos borro lo que le pedimos.
Bueno y por último en esta "introducción" a mongoDB daremos el método drop qué es como el remove PERO drop no tiene la opción de poder borrar datos especificos , si no que te vacia el documento y ya.
Espero que vuestra opinión acerca de esta database sea buena y qué más que decir que el próximo articulo sobre mongodb será algo más "profundo" , veremos más métodos , de autentificación, y demas
Saludos , Sanko.
Esta se llamaba MongoDB y con tan solo leer sus características me dejo totalmente enamorado.
Índice :
{1} Introducción:
1-¿Qué es MongoDB?
2-Características
3-Instalando MongoDB y Primeros pasos
{1}.1 : ¿Qué es MongoDB?
A estas alturas y con esa introducción todos los que desconoceís de MongoDB os estareís preguntando
-¿Qué es MongoDB?- , ahora aclararé todo.
MongoDB es una base de datos relativamente "nueva", esta se orienta a documentos...
-¿Como a documentos?- , para poder trabajar cómodamente sobre mongoDB debemos de olvidarnos de la lógica relacional que MySQL nos implemento , así que realizaré una comparativa para que os quedeís con los términos básicos.
Términos SQL - Términos MongoDB :
Database - Database
Tabla - Colección
Fila - Documento(BSON)
columna - campo
index - index
Con esto ya tendremos una comparativa bastante clara y podemos proseguir con "¿Qué es MongoDB?".
MongoDB fue programada en C++ de código abierto y fué pensada para ser rápida , escalable y sencilla.
Es muy importante destacar que MongoDB ofrece un mayor rendimiento que CouchDB(otra BD NoSQL) e incluso que MySQL.
¿Para qué podemos usar MongoDB?
Puesto que MongoDB no usa digamos los "estándares" de bases de datos no es muy recomendable usarla para aplicaciones bancarias pero cuando tienes que almacenar grandes cantidades de datos como por ejemplo un blog si sería ideal.
Tambien mucha gente recomienda crear híbridos en los que uses una BD Relacional para las transacciones y una no relacional como MongoDB para guardar datos,documentos.
{1}.2 : Características de MongoDB :
Bueno vamos a ver un poco por encima las características de MongoDB :
Ausencia de transacciones
Utiliza Almacenamiento Orientado a documentos (BSON)
Soporte a Querys dinámicas
Indexación de Documentos
Indices Geoespaciales
Analisis de Rendimiento de Queries
Actualización de la información "in-Place"
GridFS
Replicación de Datos
Implementación de Auto Sharding
Utilización de Funciones Map/reduce
Ausencia de transacciones
Se tiene en cuenta como desventaja pero es por esto por lo que MongoDB puede ser más rápida y escalable.
Utiliza Almacenamiento Orientado a documentos (BSON)
BSON(Binary-JSON) es una excelente forma de intercambio de información y de almacenaje. MongoDB almacena todo en un mismo documento y gracias a json el cual describe el contenido del documento no existe la necesidad de crear estructuras ni de esquematizar.
Aparte de las funcionalidades que posee JSON agrega otras como la habilidad de manejar datos binarios, permitiendoles ser sumamente rápida en la búsqueda, indexación, almacenamiento y recuperación de la información, ya que BSON es fácil y rápidamente transformable en cualquier tipo de dato nativo de cualquier lenguaje de programación.
Soporte a Querys dinámicas
MongoDB acepta la ejecución de queries dinámicas, es decir , se pueden ejecutar consultas sin haberlas definido antes como pasa en CouchDB.
Indexación de Documentos
A la hora de insertar documentos a una colección se indexan con una clave/prefijo (_id) que proporciona al documento la capacidad de ser único, esta _id se puede definir a la hroa de insertar pero si no se define el propio mongo te pondrá una por defecto.
Indices Geoespaciales
Esto permite por indexar información basandonos en geo/localización lo que es muy útil a la hora de elaborar aplicaciones para este area.
Analisis de Rendimiento de Queries
MongoDB nos acerca una herramienta para analizar consultas, desde luego muy útil para analizar defectos o mejorarlas.
Actualización de la información "in-Place"
MongoDB puede actualizarse donde quiera que sucedan los cambios ya que realiza la escritura de la información en la memoría y retrasa la escritura en disco lo más posible (esto puede ser una desventaja) pero esto le proporciona su velocidad.
GridFS
Como ya comentamos mongo utiliza BSON para el almacenaje de datos binarios y su limite esta en 4MB de datos binarios en un mismo documento.
Para eso si necesitamos espacios adicionales para audios , videos , imagenes mongoDB nos acerca un sistema de almacenaje de metadatos, GridFS.
Este permite almacenar información del archivo en una coleccion de archivos.
Esto se divide en minimas partes(chunks) que se almacenan en una coleccion de chunks y permite que sea mas sencillo manejar y escalar.
Replicación de Datos
MongoDB tiene un mecanísmo llamado "replicación maestro-esclavo".
Este mecanismo es sencillo de entender , todas las peticiones de escritura se realizan en la BD maestra quien las "copia" en su réplica(esclavo) y así tenemos alternativa si la maestro falla porque la esclava ocupa su sitio.
Implementación de Auto Sharding
Esta es la característica más útilizada porque esta busca que se encarga del manejo de la data y de que esta vaya al servidor correcto para que las queries se ejecuten de la forma más eficiente.
Funciones Map/reduce
Son las funciones más poderosas en cuanto a consultoría de data se refiere.
Estan en JS(JavaScript) y se ejecutan en el servidor.
Hay que dejar claro que mongoDB tiene una shell js para el manejo de BD's y en ella podemos trabajar con código js que nos permite explotar todo su potencial.(Bucles para insertar documentos etc etc...)
La función MAP se encarga de encontrar documentos que cumplen X condición/criterio , despues la funcion REDUCE se encarga de procesar esa información y nos retorna un documento con la información "peticionada"/"encargada".
{1}.3 : Instalando MongoDB
Es de lógica que si vamos a ver como instalar MongoDB primero habrá que descargarlo ¿No?.
Para esto acudimos a su website oficial ->Mongodb.org
Ahí podeís elejir para que OS y estas cositas , en mi caso Linux 32-bit
O tambien podemos hacerlo desde nuestra terminal :
Para comprobar si todo quedo bien abrimos nuestra terminal y escribimos :
Se nos conecta a una bd por defecto "test" , vamos a crear nuestra propia database:
Podemos ver que databases tenemos creadas con :
Aclaración :
La base de datos no se guardará hasta que no guardemos algo dentro...
esto quiere decir que si la creo "use namedb" y luego me salgo de la shell la db no aparecera como creada.
Ok , creemos una colección para nuestra database e insertaremos un documento :
Podemos ver que colecciones tenemos creadas con :
Ahora usaremos .find() para comprobar que se creo el documento :
ahí vemos que nos creo el documento y lo pudimos buscar con .find() que daría un busqueda a todos entre los () podemos dar argumentos
Vamos a crear otro documento con una estructura totalmente diferente para probar la eficiencie de find() para pedirle una busqueda más especifica:
Ahi comprobamos que nos muestra solo lo que nosotros queremos buscar , es decir , datos que contengan "color":"azul" , si no , no muestra nada.
Existe otro método , para mi un poco inútil la verdad pero es otro , xd , este muestra solo la primera fila del doc.
Bueno pasemos a el método count() , este si es más útil ya que nos dice el número de los que tenemos almacenados :
supongamos que queremos actualizar datos y para esto tenemos a nuestro querido update()
Como podeís observar en la imagen gracias a $set actualizamos el documento COLOCANDO "other":"fuckthishit" despues de "name":"sanko"
Ahora tocaremos sobre los métodos remove y drop , es de suponer que algo tiene que ver con eliminar... xd, el método remove nos servira para eliminar filas en los documentos , aqui un ejemplo :
Esto lo que hará será borrar todas las filas del documento dejando este vacío:
pero tambien podemos usar a remove() con parametros para borrar algo de manera concreta :
ahí podeís ver que nos borro lo que le pedimos.
Bueno y por último en esta "introducción" a mongoDB daremos el método drop qué es como el remove PERO drop no tiene la opción de poder borrar datos especificos , si no que te vacia el documento y ya.
Espero que vuestra opinión acerca de esta database sea buena y qué más que decir que el próximo articulo sobre mongodb será algo más "profundo" , veremos más métodos , de autentificación, y demas
Saludos , Sanko.
#31
Hacking ShowOff / IFXSS bugtraq-team.com
Diciembre 13, 2012, 11:44:33 PM
Bueno curioseando un poco por bugtraq para ver novedades y demas me dio por darle un ojo al foro y a la subida de imagenes de avatar y recordando el paper de IFXSS de JKS me puse a jugar un poco y salio :
Vector : "<h1 onclick=alert(document.cookie)>XSS"
Estado : En periodo de reporte.
Vector : "<h1 onclick=alert(document.cookie)>XSS"
Estado : En periodo de reporte.
#32
Python / [Python] Zone-H Reporter Update
Diciembre 07, 2012, 11:35:34 PM
Aqui os traigo una pequeña "update" que le he dado al Zone-H Reporter dotandole de un control de excepciones y un code más limpio.
No más deje una aclaración : los except podeís ponerlos a vuestro gusto yo los deje en except: a secas pero cada uno tiene sus manias y ahí no me meto xd.
Debido a que su visibilidad dentro de las etiquetas es penosa aqui dejo el code en un No tienes permitido ver enlaces. Registrate o Entra a tu cuenta : No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Saludos
No más deje una aclaración : los except podeís ponerlos a vuestro gusto yo los deje en except: a secas pero cada uno tiene sus manias y ahí no me meto xd.
Debido a que su visibilidad dentro de las etiquetas es penosa aqui dejo el code en un No tienes permitido ver enlaces. Registrate o Entra a tu cuenta : No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Saludos
#33
Underc0de / Adios a los problemas con NOD32
Noviembre 20, 2012, 03:26:25 PMNo tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Miren Que justo Me meti underc0de hace unos minutos ... me aparecio esto
Hace Poco Que me detecta el Nod32... No tienes permitido ver enlaces. Registrate o Entra a tu cuenta ! la verdad que no tiene nigun brillo... Queria Ver si alguien sabia como abilidarlo pero sin desabilitar la proteccion Web! o https o http...
solo eso
Cuidence...
Antes era chevere sin que lo detectara...
Me da placer comunicaros a toda la comunidad de Underc0de que ESET ya nos ha quitado de su lista negra en sus últimas actualizaciones , asi que pronto podremos volver a subir todos los servicios.
Un saludo a toda la comunidad.
#34
Códigos Fuentes / [C] Función acción cada x segundos - Sanko
Noviembre 11, 2012, 06:56:15 PM
Bueno ando aqui iniciandome en C y despues de dar sentencias se me ocurrio traducir la misma función que traduzco siempre tras acabar los bucles.
Saludos , Sanko.
PD : Testeado en gcc (Linux).
Saludos , Sanko.
PD : Testeado en gcc (Linux).
#35
Python / [Python] Zone-H Reporter | Sanko
Noviembre 10, 2012, 08:48:18 PM
Bueno hace un tiempo vi un zone-h reporter hecho en perl por Dedalo y hoy aburrido pues me puse a hacer una similar en python.
Quien no sepa lo que es zone-h que se muera no más o que lo busque...
Aqui os dejo el código , es algo extenso y directamente no lo comente.
Saludos , Sanko.
Quien no sepa lo que es zone-h que se muera no más o que lo busque...
Aqui os dejo el código , es algo extenso y directamente no lo comente.
Saludos , Sanko.
#36
Hacking / Owasp Zed Attack Proxy - Matabarras
Noviembre 02, 2012, 01:45:47 PMOs dejo un post que matabarras queria subir pero por cuestión de su escasa disponibilidad me ha pedido como favor que se lo suba.
Asi que aqui una breve explicación sobre Owasp Zed Attack Proxy , un bonito ZAP multiplataforma :
Descarga de la web oficial: No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Asi que aqui una breve explicación sobre Owasp Zed Attack Proxy , un bonito ZAP multiplataforma :
Descarga de la web oficial: No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
#37
Otros lenguajes / Reto de programacion - Comprobar valor del primer caracter.
Octubre 18, 2012, 11:17:35 AM
- ¿En que consiste el reto?
· Comprueba que el primer caracter de la variable 'a' sea 'h' , si este comienza por 'h' imprime un mensaje indicando que es correcto, de lo contrario que imprima un mensaje mostrando que es incorrecto.
- ¿Dificultad? : 2/10 (Sencillito)
De a poco ire aumentando la dificultad para que se puedan ir entreteniendo tanto usuarios iniciados como usuarios avanzados.
Aqui yo hice dos scripts , uno en python y otro en ruby :
Python :
Imagen :
Ruby :
Imagen :
PHP - OKOL :
Imagen :
Abnormality - Pascal :
Imagen :
noxon - No tienes permitido ver enlaces. Registrate o Entra a tu cuenta :
Imagenes :
aneraka - Java :
Imagen :
k0ws - VB6 :
Imagen : SIn imagen (k0ws es un vaguito).
Xt3mpito - Javascript :
Imagenes :
Oggy - C++ :
Imagen:
HD_Breaker - Java :
imagenes :
Me envias un MP indicando el lenguaje , poneis el code y tambien una imagen y yo os incorporare al post.
Pasarón el reto :
-Okol - PHP
-Abnormality - Pascal
-Noxon - No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
-Aneraka - Java
-k0ws - VB6
-Xt3mp - Javascript
-Oggy - C++
-HD_Breaker - Java
· Comprueba que el primer caracter de la variable 'a' sea 'h' , si este comienza por 'h' imprime un mensaje indicando que es correcto, de lo contrario que imprima un mensaje mostrando que es incorrecto.
- ¿Dificultad? : 2/10 (Sencillito)
De a poco ire aumentando la dificultad para que se puedan ir entreteniendo tanto usuarios iniciados como usuarios avanzados.
Aqui yo hice dos scripts , uno en python y otro en ruby :
Python :
Imagen :
Ruby :
Imagen :
PHP - OKOL :
Imagen :
Abnormality - Pascal :
Imagen :
noxon - No tienes permitido ver enlaces. Registrate o Entra a tu cuenta :
Imagenes :
aneraka - Java :
Imagen :
k0ws - VB6 :
Imagen : SIn imagen (k0ws es un vaguito).
Xt3mpito - Javascript :
Imagenes :
Oggy - C++ :
Imagen:
HD_Breaker - Java :
imagenes :
Me envias un MP indicando el lenguaje , poneis el code y tambien una imagen y yo os incorporare al post.
Pasarón el reto :
-Okol - PHP
-Abnormality - Pascal
-Noxon - No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
-Aneraka - Java
-k0ws - VB6
-Xt3mp - Javascript
-Oggy - C++
-HD_Breaker - Java
#38
Ruby / [Ruby] Iceberg Tool - Sanko
Octubre 16, 2012, 05:34:46 PM
Para recordar viejos tiempos , pasar un buen rato y practicar un poco he codeado un ejemplo de iceberg asi como el version publica que se publico hace un (mucho) tiempo.
Advertencia : Esta version del Iceberg es una SIMPLE TRADUCCION de Iceberg Tool Generator Public Version
Lo que significa que no es capaz de evadir a los Antivirus mas actualizados asi como Kaspersky o Nod 32
Para evadirlos existe el Iceberg worm que estan desarrollando Velario y Slore -> No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Saludos...
Advertencia : Esta version del Iceberg es una SIMPLE TRADUCCION de Iceberg Tool Generator Public Version
Lo que significa que no es capaz de evadir a los Antivirus mas actualizados asi como Kaspersky o Nod 32
Para evadirlos existe el Iceberg worm que estan desarrollando Velario y Slore -> No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Saludos...
#39
Ruby / [Ruby] Función KillProcess - Sanko
Octubre 16, 2012, 01:24:13 PM
Buenas , estaba documentandome acerca de 'Win32ole' y 'winmgmts' en ruby y tras mirarlo un poco se me ocurrio hacer esta simple función para matar procesos.
Aqui os la dejo :
Saludos
Aqui os la dejo :
Saludos
#40
Python / [Python] Clonador de Malwares - Sanko
Octubre 12, 2012, 08:17:23 PM
Hace un tiempo hice un pequeñito clonador de malware en ruby , asi que aqui hice una traducción de este en python.
Aqui dejo el code explicado :
Este tan solo es un ejemplo , se puede ampliar a gran nivel pero bueno a cada cual lo que le interese.
Aqui dejo el code explicado :
Este tan solo es un ejemplo , se puede ampliar a gran nivel pero bueno a cada cual lo que le interese.