Este blog ya no está activo, sigue informándote aquí:

Mostrando entradas con la etiqueta Sistemas de archivos. Mostrar todas las entradas
Mostrando entradas con la etiqueta Sistemas de archivos. Mostrar todas las entradas

martes, 19 de diciembre de 2017

CheatSheet.- ANALYZING MALICIOUS DOCUMENTS

Creo que esta chuleta debería estar en el escritorio de cualquiera ya que en los tiempos que corren la infección a través de archivos Microsoft Office, RTF y Adobe Acrobat (PDF) están a la orden del día y si te gusta este mundo, tienes que saber como poder analizar este tipo de archivos de una forma fácil y segura. 
 
 
Así que, gracias a esta chuleta sabremos que pasos tenemos que realizar si queremos analizar un documento sospechoso y que herramientas tenemos que usar. 
Si, podría haber subido solo la imagen pero el PDF tiene los enlaces a los diferentes githubs de las herramientas que deberíamos usar. Así que es mucho mas practico. 

Sed Buenos ;)

lunes, 11 de enero de 2016

Slides.- Esteganografia en los Metadatos de Archivos del Sistema

Estas Slides vienen de la conferencia BSides de Vienna del año pasado y si, yo también me he quedado un poco anonadado al ver el titulo. Pero si alguna vez habéis jugado a variar valores de metadatos de archivos randoms os va a gustar mucho. 
 
 
Así que hoy os recomiendo encarecidamente estas Slides si sois amantes de la esteganografia y de los metadatos.
Ademas vienen con ejemplos bastante curiosos.

Sed Buenos con esto 0;) 

sábado, 17 de octubre de 2015

Borrar Archivos de Forma Segura Con shred

Ayer en el blog de Security Art Work hablaban del [borrado seguro] y como instituciones como la U.S Navy tenían ciertos patrones para realizarlo. La verdad es que viene de lujo tener esta información ya que siempre esta bien saber cuantas pasadas y de que manera las tendremos que pasar para considerar que la información esta bien borrada. 


Una de estas herramientas es shred que ya viene por defecto en sistemas como ubuntu (al menos en las versiones 14 si, como en mi caso) y la verdad es que es muy vesatil y fácil de utilizar.
  • shred [option]… file[…] 
Como veis solo seria ejecutar ese comando pasándole las opciones que prefiramos y el archivo a borrar. Eligiendo así el numero de pasadas y como queremos que haga estas pasadas. Si con unos, si con ceros o que sea totalmente aleatorio. 

Si queréis mas información acerca de lo que os puede ofrecer shred os dejo el siguiente enlace: 
Aunque si tenéis mas curiosidad sobre mas herramientas para diferentes plataformas os dejo el enlace a la entrada de Security Art Work:

viernes, 17 de abril de 2015

Python a lo Macarra.- Creando Directorios Específicos Para Proyectos.

La idea se me ocurrió ayer cuando vi el desorden que tenían las carpetas de mi ordenador y pensé que eso en el trabajo no me podía pasar ya que perdería un montón de tiempo buscando un archivo en cuestión. Así que busque un poco de información y me anime a programar un script simple que creara directorios ordenados para cada tipo de proyecto o lo que a mi fuera mejora. 

Por ejemplo, si quisiera llevar un proyecto la estructura/tree seria mas o menos así: 

XXXX es el nombre del proyecto que tu le pongas xD

Así que podemos echar mano de import os y os.mkdir() para pasarle los directorios puestos previamente en una lista con un bucle for. Fácil, pero por si acaso y como siempre, os dejo el código para que podáis verlo. 

import os

def proyecto(nombre)
path = [nombre,nombre+"/Contacto",nombre+"/Desarrollo",nombre+"/Maestra",nombre+"/Maestra/Codigo",nombre+"/Maestra/Comunicaciones",nombre+"/Maestra/Documentos", nombre+"/Maestra/Hardware", nombre+"/Maestra/Pruebas",nombre+"/Ofertas",]

    for directory in path:
        print (directory)
        os.mkdir(directory)


if __name__ == "__main__":
    
    d1 = input ("Nombre del proyecto: ")
    proyecto(d1)

La gracia de os.mkdir(path[, MODE]) es que podemos añadir el MODE, el modo o los permisos que queremos para cada tipo de directorio. Ademas funciona con el modo octal donde el primer dígito establece el tipo de permiso deseado al dueño; el segundo al grupo; y el tercero al resto de los usuarios.

Estos son los tipos de permisos: 


Por lo que encima de tener carpetas de proyectos las podríamos tener personalizadas por los permisos que marque nuestra política de seguridad con solo un script  de 10 lineas o menos. 

Espero que os haya gustado y que os sea util. 


Sed Buenos ;) 

miércoles, 8 de abril de 2015

Python A Lo Macarra.- ¡Magic Numbers or File!

Hace unos días que estoy enganchado a leer write-ups de CTFs y una regla habitual de muchos participantes cuando reciben un archivo es pasarle el comando file para saber de que tipo de archivo se trataba o para verificar que no les estaban tomando el pelo con la extensión. Ademas de ser una idea genial para la realización de un peritaje, por aquellas cosas de que al copiar el disco algún archivo misteriosamente no lleva la extensión correspondiente. 

Así que, file me pareció un comando genial pero, como no podía ser de otra manera, todos los comandos chulos no están disponibles para Windows. Lo cual me ha hecho tener ganas de programarlo en Python ya que es una cosa que no existía y que siempre que encontraba una librería esta tiraba de algún port de file para Windows. De esta manera es como me he decidido aprender, un poco por encima, que son los Magic Numbers y como podía buscarlos. 


Para los que estabais igual que yo, los Números Mágicos son un conjunto de caracteres alfanuméricos que identifican un archivo que, en un principio, se registran en  2-bytes al principio del archivo. Ademas de haber gente genial que los ha ido recopilando en tablas separando el valores hexadecimal del ASCII y catalogados por productos y extensiones. 

Ejemplos de tablas: 
Sabiendo que tenemos los valores en hexadecimal de un montón de extensiones y que python puede leer e imprimir el código binario de cualquier archivo en 4 lineas de codigo solo necesitaba la maner a de convertirlo a hexadecimal y compararlo con el Magic Number que yo quisiera. 

Buscando buscando, recordé que hace tiempo estaba jugando con binascii, una librería que contiene una serie de métodos para convertir representaciones binarias en varias codificaciones ASCII y que gracias a ella ahora tenia el metodo para poder realizar mi script. 
  • binascii.hexlify(data):
    • Return the hexadecimal representation of the binary data. Every byte of data is converted into the corresponding 2-digit hex representation. The returned bytes object is therefore twice as long as the length of data.
Aquí os dejo el Script/PoC super-esbozado ya que solo busca por el numero mágico de un pdf: 

import binascii
import re 
archivo = 'aaaa.pdf'
with open(archivo, 'rb') as m:
    contenido = m.read()

d= str(binascii.hexlify(contenido))
print (d)
o1 = re.search("25504446",d)
if o1:
    print ("Es un pdf como una casa Adobe Portable Document Format and Forms Document file")
else:
    print (" Pues, será otra cosa")

Lo he probado con y sin extensión y pasandole un archivo que no sea un pdf. Funciona y nunca me he alegrado tanto de ver código hexadecimal imprimiéndose en mi pantalla. 


Ahora solo hace falta introducir mas Magic Numbers y hacer que el mismo programa analice y encuentre los archivos sin extensión de cualquier directorio. Ya os he dicho que para temas Forenses esta idea tenia futuro. 

Espero que os haya gustado. 

Sed Buenos ;) 

domingo, 7 de diciembre de 2014

SONY y Su Caperta De Passwords

Los que ya estáis al día en noticias de seguridad ya sabréis que Sony Pictures fue hackeada por el grupo #GOP (Guardians of Peace) pero lo mas curioso es como dejaron la carpeta de Passwords después del ataque.


Como podéis ver en la foto el artífice del ataque creó una carpeta mientras iba recopilando contraseñas. Las cuales se guardaba en texto plano y distribuidas en diferentes tipos de archivos Como podéis ver en la siguiente foto.


Fuente:

Sed Buenos y no hagáis esto nunca xD

jueves, 4 de diciembre de 2014

Borrado de Archivos de Forma Segura Utilizando Gutmann y Python.

Hoy o mas bien dicho ayer por la noche, me entró la curiosidad de saber como borrar un archivo de forma segura. No, no os hablo de buscar un programa y ya está. Si no de buscar algún script en Python que haga lo que quiero, leer y entender el código para aprender. Bueno, estuve rebuscando un poco y encontré un blog que hablaba de archivos de TrueCrypt y del borrado seguro de estos utilizando el método Gutmann. 
"El método Gutmann es un algoritmo para borrar de forma segura el contenido de computación discos duros , tales como archivos . Ideado por Peter Gutmann y Colin Plumb y presentado en el documento Eliminación segura de datos desde magnética y de estado sólido de memoria en julio de 1996, se trataba de escribir una serie de 35 patrones sobre la región que desea borrar."
Este es el método que utiliza:


Aquí tenéis el Script y la fuente de esta entrada: 
Lo único que hace es abrir el archivo que tu le pases y escribir el algoritmo en la parte binaria del mismo. Con lo que se consigue que, aunque se pueda extraer la foto o el documento con herramientas forenses, solo sean un montón de datos hexadecimales randoms con una extensión y nombre curioso.

Solo he añadido un d1=raw_input() un print y un os.remove(d1) al script para que pudiera pasarle cualquier archivo y al acabar de escribir el algoritmo, lo borrase. Os pego el código. 

import os
#constantes
d1 = raw_input("Dame el archivo que he de destrozar: ")
FILE= d1
#Creacion de valores aleatorios
rnd = lambda : str(os.urandom(3))
print 'Generando datos de sobreescritura con la secuencia Gutmann...'
data = [ rnd(), rnd(), rnd(), rnd(), '\x55', '\xAA', '\x92\x49\x24', '\x49\x24\x92', '\x24\x92\x49', '\x00', '\x11', '\x22', '\x33', '\x44', '\x55', '\x66', '\x77', '\x88', '\x99', '\xAA', '\xBB', '\xCC', '\xEE', '\xFF', '\x92\x49\x24', '\x49\x24\x92', '\x24\x92\x49', '\x6D\x86\xD8', '\xD6\xDB\x6D', '\xDB\x6D\xB6', rnd(), rnd(), rnd(), rnd(), ] 
print 'Abriendo el fichero...'
f = open(FILE, mode='r+b')
print 'Escribiendo datos...'
for loop in data:
f.seek(0) 
f.write(loop*65536) if len(loop) == 1 else f.write(loop*21845) 
print 'Cerrando fichero...'
f.close()
print 'Borrando fichero'
os.remove(d1)
print 'Done!'

He hecho la prueba con un par de archivos que tenia en una memoria USB. He pasado este script y luego he echado un vistazo con FTK imager, tras hacer una copia bit a bit para ver que pasaba. 


Como es normal, los archivos siguen estando allí una vez borrados pero el contenido en binaro/hexadecimal ha sido cambiado mostrando el patrón haciendo imposible extraer nada de ellos. 

Os aconsejo que lo proveis y mireis a ver si tiene algun fallo, Ponedlo en los comentarios que quiero leerlo. Así aprendo. 

Sed Buenos y espero que os sirva. 

sábado, 22 de noviembre de 2014

#Python .- Jugando con Archivos y Directorios.

Hoy he estado todo el día laido con un problema con mi driver de la tarjeta de red y la nueva actualización de Windows y no me ha dado tiempo a hacer la entrada que tenia pensada para hoy referente a evento [RetroBarcelona] que se esta haciendo en Barcelona este fin de semana.  Pero como igualmente iba a ser una entrada dedicada a la programación, hoy os voy a dar unos cuantos tips para trabajar con archivos y directorios. A mi me han ayudado mucho a trastear con Python y espero que a vosotros también os ayuden. 



Para buscar todos los archivos con una extensión, por ejemplo .jpg:

import glob
lista = glob.glob("*.jpg")

Para listar todos los archivos de un directorio:

import os
ficheros = os.listdir('/home/alumno/ejercicios/python') # linux
ficheros = os.listdir(r'c:Documents and SettingsalumnoEscritorioejerciciospython') #windows: cuidado con el caracter

Directorio actual:

os.getcwd()
os.curdir

Tipos de ficheros

print michero, 'es un',
if os.path.isfile(mifichero):
          print 'fichero'
if os.path.isdir(mifichero):
          print 'directorio'
if os.path.islink(mifichero):
          print 'enlace'

Último acceso a un fichero

ultimo_acceso = os.path.getatime('foto.jpg')
ultima_modificacion = os.path.getmtime('foto.jpg')
tiempo_en_dias = (time.time()- ultimo_acceso)/ (60*60*24)
print tiempo_en_dias

Eliminar ficheros y directorios

os.remove('mifoto.jpg')
for foto in glob.glob('*.jpg') + glob.glob('*.tif'):
             os.remove(foto)

Eliminar directorio:

import shutil
shutil.rmtree('midirectorio')

Copiar y renombrar ficheros

import shutil
shutil.copy(mifichero, copiafichero)

# copia también tiempo de último acceso y última modificación
shutil.copy2(mifichero, copiafichero)

# copia un árbol de directorios
shutil.copytree(raiz_de_directorio, copia_directorio)

Manipulando los paths y nombres

Rutas

>>> os.path.split('/home/alumno/python/ejercicios/ej1.py')
('/home/alumno/python/ejercicios', 'ej1.py')
>>> os.path.basename('/home/alumno/python/ejercicios/ej1.py')
'ej1.py'
>>> os.path.dirname('/home/alumno/python/ejercicios/ej1.py')
'/home/alumno/python/ejercicios'

Extensiones

>>> os.path.splitext('pelicula.avi')
('pelicula', '.avi')

Crear y moverse entre directorios

directorioOriginal = os.getcwd()
directorio = os.path.join(os.pardir, 'miNuevoDir')
if not os.path.isdir(directorio):
            os.mkdir(directorio)
os.chdir(directorio)
...
os.chdir(directorioOriginal) # vuelve al directorio inicial
os.chdir(os.environ['HOME']) # cambia al directorio home


Fuente: 
Sed Buenos ;) 

martes, 4 de noviembre de 2014

Wenpcfg.- Ocultando/Mostrando Directorios Sensibles.

Hace mucho que tenia esta entrada en el tintero por que no me parece una forma muy buena de asegurar directorios que puedan ser susceptibles a un ataque pero si que es verdad que si estamos en un entorno como CITRIX o similares si que nos puede ayudar. 

Hablo de WENPCFG las siglas de (Windows Explorer Navigation Pane Configuration) una herramienta que nos ayuda a ocultar o mostrar diferentes directorios. 


Si le queréis echar un ojo a la herramienta: 
Mas información y fuente de esta entrada: 

martes, 20 de agosto de 2013

Curiosidades .- FAT 32 y Los Dichosos 4G - Convert [unidad] /FS: NTFS

Esta entrada tiene una larga y ahora divertida historia detrás que algún día contare. Pero, hoy no es ese día, supongo que muchos ya sabréis las limitaciones que tiene el sistema de archivos FAT 32 (File Allocation Table de 32 bits) que viene por defecto en bastantes memorias USB y supongo que sabréis que no podéis copiar archivos mas grandes de 4GB. (lo cual aveces se me olvida xD)


Pero bueno esto tiene una fácil solución. Solo hace falta convertir nuestro sistema de archivos de FAT 32 a NTFS (New Technology File System que de nuevo ya tiene poco pero funciona xD). Para hacerlo vamos a pasar de utilizar programas externos al Windows y como buen HaXor vamos a ir a toquetear la terminal de Windows. Primer insertaremos la memoria USB y borraremos el contenido. 


Para convertirlo usaremos la herramienta Convert que viene en todos los Windows desde NT hasta adelante. Así que, abrimos nuestra terminal Windows (ya sabéis, WINDOWS + R y escribimos cmd) y utilizaremos lo siguiente:
  • Convert [letra de la Unidad de la Memoria USB] /FS: NTFS
(Todas las veces que lo he probado con esta unidad me ha dado error, pero ... xD)

Ahora solo hace falta comprobar si la herramienta Convert ha realizado su función. Hay que remarcar que la herramienta puedo convertir el sistema Fat32 a NTFS pero no a la inversa. 


Espero que esto vaya bien para todo aquel que se haya vuelto loco buscando lo que pasaba. Sed Buenos ;)