Tutoriales y Manuales
Entradas Mensuales
-
►
2024
(Total:
1019
)
- ► septiembre (Total: 50 )
-
►
2023
(Total:
710
)
- ► septiembre (Total: 65 )
-
▼
2022
(Total:
967
)
- ► septiembre (Total: 72 )
-
▼
enero
(Total:
88
)
- Adiós a lo gratis en Google: Drive dejará de ofrec...
- Apple presenta una guía de seguridad para AirTags ...
- Grupo Norcorenao Lazarus utiliza cliente Windows U...
- Ciberataque afecta al Senado de Puerto Rico
- Cliente de Azure de Microsoft recibe el mayor ataq...
- Traefik: un proxy inverso para contenedores Docker
- Rubber Ducky pendrive USB maligno roba datos
- Vulnerabilidad en Safari y iCloud permitía tomar e...
- Rojadirecta se enfrenta hasta a 6 años de cárcel y...
- Grave vulnerabilidad en Polkit permite obtener roo...
- Navega gratis con una IPv6 gracias a un túnel con ...
- Gestos de Android que casi nadie conoce y que son ...
- Hackean el sistema de ferrocarriles de Bielorrusia...
- Microsoft deshabilita las macros de Excel 4.0 XLM ...
- Un nuevo ataque DDoS en Andorra a varios streamers...
- Manual uso htop: monitoriza recursos servidor en t...
- Un 80% de de los españoles cree ser rastreado por ...
- La UE advierte que dos tercios de las reseñas de l...
- 1 de cada 3 webs de phishing desaparece durante su...
- Rusia y la Unión Europa se plantean prohibir el mi...
- Intel invertirá 20.000M $ para construir en Ohio l...
- Estafadores colocan falsos códigos QR en parquímet...
- Vulnerabilidades ponen en peligro a la mitad de eq...
- DevToys la "navaja suiza" de utilidades para progr...
- Google Play Juegos para Windows: jugar juegos Andr...
- Usuarios antiguos Google G Suite con correo gratui...
- Cuidado con el phishing: DHL, Microsoft y WhatsApp...
- Investigadores encuentran 1 millón de credenciales...
- Guía de medidas de ciberseguridad para protegerse ...
- OnlyOffice es la suite ofimática de código abierto...
- Ciberataque a la Cruz Roja compromete los datos de...
- Europa tendrá sus propios servidores DNS públicos ...
- Gestión contenedores: DockerFile y Docker Compose
- Mejores pendrives USB 3.2
- Antivirus Windows Defender permite ver las carpeta...
- Microsoft compra Activision Blizzard por 68.700 mi...
- Error en Safari permite filtrar el historial y dat...
- Hackean Amedia, importante medio de comunicación d...
- ¿Vale la pena seguir usando banda 2.4GHz o mejor u...
- Canadá rastreó la ubicación de 33 millones de pers...
- Las CPUs Intel Alder Lake y Windows 11 no permiten...
- Comandos y ejemplos con FFmpeg
- Disponible nueva versión convertidor multimedia Ha...
- UltraRAM es el futuro del almacenamiento híbrido d...
- Cómo utilizar Grabify IP Logger o IPLogger
- Importantes detenciones de grupos de Rusos de rans...
- Ucrania denuncia un ciberataque masivo contra webs...
- El hospital de Lucena de Córdoba víctima del ranso...
- Android permitirá desactivar el 2G para evitar su ...
- Alemania estudia bloquear Telegram si persisten su...
- Samsung presenta primer sistema computacional con ...
- Mejores sistemas protección red con sistemas IDS/IPS
- La Unión Europea realizará simulacro de ciberataqu...
- Wi-Fi 6e: la actualización más importante del Wi-F...
- Vulnerabilidad crítica en la pila HTTP (IIS) en Wi...
- Kazajistán y el minado de las criptomonedas
- Varios operadores Europeos quieren que se prohíba ...
- La velocidad de Wi-Fi 6E podría alcanzar 1-2 Gbps
- Desarrollador sabotea su proyecto open source en G...
- Canon enseña a sus clientes cómo saltarse las comp...
- Avira es otro antivirus que también mina criptomon...
- Prohíben el uso de Telegram, WhatsApp y Signal a l...
- AnonSurf permite anonimizar vía TOR todas las cone...
- Consejos para proteger la privacidad de los menore...
- Descargar vídeos con Youtube-dl: con interfaz gráf...
- Programas de captura de pantalla para Windows
- Antivirus Norton 360 se pone a minar criptomonedas...
- Detenido un jefe de la mafia italiana fugado hace ...
- Multa millonaria de Francia a Google y Facebook po...
- Instalar ADB y usar los comandos básicos
- Starlink llega oficialmente a España: precios y ve...
- SEGA Europa sufre una filtración de su Base de Datos
- Glances: herramienta monitorizar servidores Window...
- Registrarse en Skype pide rellenar un captcha 10 v...
- DanderSpritz herramienta con panel de control post...
- Críticas a Chrome por nueva API para identificarte...
- La UE desconecta 48 mil dominios .eu registrados p...
- Así te pueden hackear por copiar y pegar comandos ...
- Instaladores falsos de Telegram Desktop contienen ...
- Error efecto del año 2022 afecta servidores de cor...
- Consiguen ocultar malware en unidades SSD
- Samsung presenta en el CES el Galaxy S21 FE
- Hoy es el adiós definitivo para productos BlackBerry
- Intel muestra la increíble velocidad de las unidad...
- Google Drive borrará archivos de tu cuenta si inci...
- La Universitat Oberta de Catalunya vuelve a la nor...
- Framework post explotación Powershell-Empire
- Sandboxie Plus: ejecuta aplicaciones poco confiabl...
-
►
2021
(Total:
730
)
- ► septiembre (Total: 56 )
-
►
2020
(Total:
212
)
- ► septiembre (Total: 21 )
-
►
2019
(Total:
102
)
- ► septiembre (Total: 14 )
-
►
2017
(Total:
231
)
- ► septiembre (Total: 16 )
-
►
2016
(Total:
266
)
- ► septiembre (Total: 38 )
-
►
2015
(Total:
445
)
- ► septiembre (Total: 47 )
-
►
2014
(Total:
185
)
- ► septiembre (Total: 18 )
-
►
2013
(Total:
100
)
- ► septiembre (Total: 3 )
-
►
2011
(Total:
7
)
- ► septiembre (Total: 1 )
Blogroll
Etiquetas
Entradas populares
-
Después de ver qué es una vCPU y la diferencia entre núcleos (cores) e hilos en los procesadores, pasamos a explicar toda la nomenclatura d...
-
En el panorama en constante evolución de la seguridad de redes, OpnSense se ha convertido en una formidable solución de firewall. Nacido de...
-
Pese a que Gemini ofrece multitudes de opciones, recientemente, se ha dado a conocer una situación fuera de lo común. Hace unos días, un es...
Gestión contenedores: DockerFile y Docker Compose
Después ver una pequeña introducción a los contenedores docker y su funcionamiento con los comandos y las opciones básicas debemos pasar a un siguiente nivel de conocimientos A medida que avanzamos en el uso de los contenedores docker necesitamos aprender a utilizar nuevas herramientas y recursos que nos permitirán manejar de forma más ágil varios contenedores.
Docker Compose
Docker Compose es una herramienta que permite simplificar el uso de Docker. A partir de archivos YAML es mas sencillo crear contenedores, conectarlos, habilitar puertos, volúmenes, etc.
Con Compose puedes crear diferentes contenedores y al mismo tiempo, en cada contenedor, diferentes servicios, unirlos a un volúmen común, iniciarlos y apagarlos, etc. Es un componente fundamental para poder construir aplicaciones y microservicios.
En vez de utilizar Docker via una serie inmemorizable de comandos bash y scripts, Docker Compose te permite mediante archivos YAML para poder instruir al Docker Engine a realizar tareas, programaticamente. Y esta es la clave, la facilidad para dar una serie de instrucciones, y luego repetirlas en diferentes ambientes.
Usaremos un archivo docker-compose.yml
para configurar los servicios
de la aplicación. Los servicios son las partes de la aplicación (p.e.
un servicio para el almacenamiento de los datos y otro para el
front-end)
En un mismo host podemos tener varios entonos aislados. Compose usa nombres de proyecto para mantener a los entornos aislados. De forma predeterminada se usa el nombre del directorio desde donde se lanza la aplicación.
Parámetros docker-compose.yml
-
“version ‘3’: Los archivos docker-compose.yml son versionados, lo que significa que es muy importante indicar la versión de las instrucciones que queremos darle. A medida de que Docker evoluciona, habrá nuevas versiones, pero de todos modos, siempre hay compatibilidad hacia atrás, al indicar la versión
-
“build .”: Se utiliza para indicar donde está el Dockerfile que queremos utilizar para crear el contenedor. Al definier “.” automáticamente considerará el Dockerfile existente en directorio actual.
-
“command”: Una vez creado el contenedor, aqui lanzamos el comando que permite ejecutar Jekyll, en modo servidor. El comando “–host 0.0.0.0” sirve para mapear el contenedor al sistema operativo host
-
“ports”: mapeamos los puertos locales, por ejemplo 4000 (webserver jekyll) y 35729 (livereload) al servidor host. Esto permite que accediendo a Localhost:4000 podamos probar el sitio generador por Jekyll
-
“volumes”: lo que hacemos es mapear el directorio local se mapee directamente con el /directoriox, lugar donde hemos creado la aplicación. De este modo, cualquier cambio en el directorio local en el host, se hará de inmediato en el contenedor.
Ejemplos:
version: '3'
services:
reverse-proxy:
image: traefik:alpine
command: --api --docker
ports:
- "80:80"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
Al finalizar, es posible acceder a http://localhost:8080 y ver el panel de control (dashboard) de Traefik funcionando correctamente.
Otro ejemplo:
wordpress: image: wordpress links: - mariadb:mysql environment: - WORDPRESS_DB_PASSWORD=contraseña ports: - "80:80" volumes: - ./code:/code - ./html:/var/www/html mariadb: image: mariadb environment: - MYSQL_ROOT_PASSWORD=contraseña - MYSQL_DATABASE=wordpress volumes: - ./database:/var/lib/mysql
Luego
docker-compose up -d
- $ docker-compose up -d Construye y lanza el entorno en modo dettached
- $ docker-compose pull Descarga las imágenes pero no inicia los contenedores
- $ docker-compose rm [-fs] Borra los contedores parados. Con -fs los detiene y fuerza su borrado
Ejemplos:
MetasPloit
docker run --rm -it -p 443:443 -v ~/.msf4:/root/.msf4 -v /tmp/msf:/tmp/data remnux/metasploitTenemos ya instalado:
msfconsole
Kali Linux en un contenedor
docker pull kalilinux/kali-rolling
docker run -t -i kalilinux/kali-rolling /bin/bash
Sin abreviar:
docker run --tty --interactive kalilinux/kali-rolling /bin/bash
Recuerda actualizar y actualizar metapaquetes:
apt-get update && apt-get install metasploit-framework
Listado completo metapaquetes KaliLinux
Distro Pentesting
O podemos usar una imagen preparada para realizar pruebas de seguridad (principalmente de penetración), fue preparada por SZalek y es pública en el Hub de Docker. ( >https://hub.docker.com/r/szalek/pentest-tools/ )docker pull szalek/pentest-toolsIncluye algunas herramientas como:
- searchsploit
https://www.exploit-db.com/searchsploit/#installlinux
searchsploit -u
searchsploit -h
searchsploit ProFTPD
searchsploit afd windows local
- sqlmap
http://sqlmap.org/
sqlmap -u {URL}.php?username=adrian --dbs
sqlmap -u {URL}.php?username=adrian -D {DB_NAME}--tables
sqlmap -u {URL}.php?username=adrian -T {TABLE-NAME} --columns
sqlmap -u {URL}.php?username=adrian -T {TABLE_NAME} --dump
- nmap
nmap -sSV -Pn 127.0.0.1
nmap -sT -sV -A -O -v 127.0.0.1
nmap -n -sV -Pn 127.0.0.1
nmap --script=mysql-enum 127.0.0.1
- nikto
https://cirt.net/Nikto2
nikto -host {URL}/ -output /tmp/test.html
nikto -host {URL}/ -output /tmp/test.csv
- dnsenum
https://github.com/fwaeytens/dnsenum
dnsenum --help
dnsenum {URL}
- haveibeenpwned
api form https://haveibeenpwned.com
https://github.com/szalek/haveibeenpwned
haveibeenpwned emails.txt
haveibeenpwned test@example.com
haveibeenpwned noexist@btbw.pl
- Uniscan
-- uniscan -u http://www.example.com/ -qweds
- WpScan
project page: https://github.com/wpscanteam/wpscan
wpscan
wpscan --url www.example.com
you can user official wpscan docker image (docker run -it --rm wpscanteam/wpscan -u https://yourblog.com [options])
- sublist3r
sublist3r {URL}
- massdns
massdns -r /home/massdns/lists/resolvers.txt -t AAAA domains.txt > results.txt
# docker images
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7f11c2dfa7ae szalek/pentest-tools "/bin/bash" About a minute ago Up About a minute happy_hugle
# docker start 7f11c2dfa7ae
# docker exec -it 7f11c2dfa7ae /bin/bash
Usando Tor y un proxy SOCKs en un contenedor Docker
# docker run --name tor -ti -p 9050:9050 jgamblin/tor
Despues simplemente en nuestro navegador favorito, sea Mozilla Firefox, pues se debe agregar el SOCK Proxy en Proferencias/General/Red.
Indicamos nuestro ip ( 127.0.0.1 ) y el puerto 9050.
DockerFile
Creación de imágenes propias
-
Para construir una imagen, se crea un
Dockerfile
con las instrucciones que especifican lo que va a ir en el entorno, dentro del contenedor (redes, volúmenes, puertos al exterior, archivos que se incluyen. -
Indica cómo y con qué construir la imagen.
-
Conseguimos que el build de la aplicación definida en el contenedor se comporte de la misma forma en cualquier lugar que se ejecute. Hacemos que sea repetible.
El DockerFile nos permitirá definir las funciones básicas del contenedor.
Todo Dockerfile debe terminar en un comando CMD o en un ENTRYPOINT, pero
en este caso, no lo utilizamos, ya que lanzaremos un comando
directamente desde la receta de Docker Compose. Es decir, este
Dockerfile se utiliza solamente para construir el contenedor y
configurarlo. No es autoejecutable.
FROM
FROM indica que Docker debe utiliza que la obtendrá de Docker Hub. La version Alpine de linux contiene recetas de imagenes Docker que ocupan muy poco espacio.
- Comandos RUN, CMD y ENTRYPOINT
RUN
El comando RUN se ejecuta cuando se está construyendo una imagen personalizada para realizar una acción, creando una capa nueva. Este comando tiene el siguiente formato:
RUN comando
Cuando se ejecuta con esta sintaxis se pasa como parámetro a la Shell del sistema. Dependiendo del sistema operativo es:
- · Linux — > bash (/bin/bash -c)
- · Windows — > cmd (cmd/s/c)
Otra forma de utilizar este comando es:
RUN [“ejecutable”, “parametro1”, …]
Con esta forma no se invoca a la Shell del sistema por defecto, sino que se permite ejecutar programas que la imagen contenga. Una cosa a recordar, es que tenemos que poner los parámetros entre comillas. En el siguiente ejemplo con el comando Get-Service de powershell se recuperan todos los servicios Windows que se están ejecutando en la máquina.
RUN [“Powershell”, “Get-Services”, “*”]
Una cosa importante sobre este método, y es que podemos vernos en la situación que se quiere provocar un error y que la creación de la imagen se interrumpa cuando el comando que se está ejecutado produzca un error. Para conseguir este resultado se tiene que utilizar el parámetro -o pipefail (no todos los Shell lo soportan)
RUN [“/bin/bash”, “-c”, “set -o pipefail && wget –o https://misitio/”]
CMD
Este comando se encarga de pasar valores por defecto a un contenedor. Entre estos valores se pueden pasar ejecutables. Este comando tiene tres posibles formas de pasar los parámetros:
CMD [“ejecutable”, “parametro1”, “parametro2”, …]
Esta es la forma más recomendable.
CMD [“parametro1”, “parametro2”, ….]
Esta forma se utiliza para pasar parámetros al comando EntryPoint.
CMD Comando paametro1 parametro2
Ecomando se ejecuta en la Shell con los parámetros establecidos.
A diferencia del comando RUN, los comandos que se pasen por medio de este método se ejecutan una vez que el contenedor se ha inicializado, mientras que RUN se utiliza para crear la imagen de un contenedor.
ENTRYPOINT
Este comando se ejecuta cuando se quiere ejecutar un ejecutable en el contenedor en su arranque. Los ejemplos tipo de su uso, son cuando se quiere levantar un servidor web, una base de datos, etc ….
Este comando tiene dos sintaxis:
ENTRYPOINT [“comando”, “Parametro1”, “Parametro2”, …]
Esta es la forma recomendada.
ENTRYPOINT comando parametro1 parametro2
Con esta forma el comando se ejecuta en la Shell del contenedor.
Utilización de varios comandos de forma conjunta
Como se ha comentado anteriormente el comando CMD se puede utilizar para pasar parámetros al comando ENRYPOINT. Una posible forma de realizarlo es:
ENRYPOINT [“Powershell”, “Get-Services”]
CMD [“MySql]
En el ejemplo, se está invocando al comando Get-Services para recuperar información de los servicios Windows y como en el comando CMD se está indicando el servicio en concreto del que se quiere recuperar la información que en este caso es del servicio Windows de MySql.
Nota: cuando los comandos o parámetros son pasados entre corchetes siempre van entre comillas. Esto es porque el comando correspondiente lo interpreta como una cadena JSON.
Recordatorio Comandos básicos docker-compose
-
docker-compose up: da instrucciones a Docker para crear el contendor y ejecutarlo.
-
docker-compose down: apaga todo los servicios que levantó con docker-compose up.
-
docker-compose ps: permite ver los contenedores funcionando.
-
docker-compose exec: permite ejecutar un comando a uno de los servicios levantados de Docker-compose.
Copias de seguridad de contenedores
Ya estén encendidos o apagados, podemos realizar respaldos de seguridad de los contenedores. Utilizando la opción “export” empaquetará el contenido, generando un fichero con extensión “.tar” de la siguiente manera:
docker export -o fichero-resultante.tar nombre-contenedor
o
docker export nombre-contenedor > fichero-resultante.tar
Restauración de copias de seguridad de contenedores
Hay que tener en cuenta, antes de nada, que no es posible restaurar el contenedor directamente, de forma automática. En cambio, sí podemos crear una imagen, a partir de un respaldo de un contenedor, mediante el parámetro “import” de la siguiente manera:
docker import fichero-backup.tar nombre-nueva-imagen
Copias de seguridad de imágenes
Aunque no tiene mucho sentido por que se bajan muy rápido, también tenemos la posibilidad de realizar copias de seguridad de imágenes. El proceso se realiza al utilizar el parámetro ‘save‘, que empaquetará el contenido y generará un fichero con extensión “tar“, así:
docker save nombre_imagen > imagen.tar
o
docker save -o imagen.tar nombre_imagen
Restaurar copias de seguridad de imágenes
Con el parámetro ‘load’, podemos restaurar copias de seguridad en formato ‘.tar’ y de esta manera recuperar la imagen.
docker load -i fichero.tar
Fuentes:
https://dockertips.com/comandos-run-cmd-y-entrypoint-en-el-dockerfile
0 comentarios :
Publicar un comentario
Los comentarios pueden ser revisados en cualquier momento por los moderadores.
Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.
Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.