Writeup Exception (CodebyGames)
Предисловие.
Решение данной задачи на самом деле самое короткое, его можно было написать одним предложением "уязвимость CVE-2022–26923" и на этом все. Информации более чем достаточно будет, для тех кто может пользоваться поисковиками, но для тех кто не особо любит гуглить решение ниже.
Решение.
Получаем ip на платформе codeby.games.
Проводим разведку и сбор информации о цели с помощью nmap.
# Nmap 7.94SVN scan initiated Wed Jul 17 15:44:18 2024 as: nmap -sVC -A -T4 -Pn -oA scan 192.168.2.17
Nmap scan report for 192.168.2.17
Host is up (0.026s latency).
Not shown: 989 closed tcp ports (reset)
PORT STATE SERVICE VERSION
53/tcp open domain Simple DNS Plus
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2024-07-17 19:44:28Z)
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: codeby.cdb0., Site: Default-First-Site-Name)
|_ssl-date: TLS randomness does not represent time
| ssl-cert: Subject: commonName=exception.codeby.cdb
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1::<unsupported>, DNS:exception.codeby.cdb
| Not valid before: 2024-04-10T09:19:13
|_Not valid after: 2025-04-10T09:19:13
445/tcp open microsoft-ds?
464/tcp open kpasswd5?
593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
636/tcp open ssl/ldap Microsoft Windows Active Directory LDAP (Domain: codeby.cdb0., Site: Default-First-Site-Name)
| ssl-cert: Subject: commonName=exception.codeby.cdb
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1::<unsupported>, DNS:exception.codeby.cdb
| Not valid before: 2024-04-10T09:19:13
|_Not valid after: 2025-04-10T09:19:13
|_ssl-date: TLS randomness does not represent time
3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: codeby.cdb0., Site: Default-First-Site-Name)
|_ssl-date: TLS randomness does not represent time
| ssl-cert: Subject: commonName=exception.codeby.cdb
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1::<unsupported>, DNS:exception.codeby.cdb
| Not valid before: 2024-04-10T09:19:13
|_Not valid after: 2025-04-10T09:19:13
3269/tcp open ssl/ldap Microsoft Windows Active Directory LDAP (Domain: codeby.cdb0., Site: Default-First-Site-Name)
|_ssl-date: TLS randomness does not represent time
| ssl-cert: Subject: commonName=exception.codeby.cdb
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1::<unsupported>, DNS:exception.codeby.cdb
| Not valid before: 2024-04-10T09:19:13
|_Not valid after: 2025-04-10T09:19:13
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=7.94SVN%E=4%D=7/17%OT=53%CT=1%CU=32957%PV=Y%DS=2%DC=I%G=Y%TM=6698
OS:1F59%P=x86_64-pc-linux-gnu)SEQ(SP=103%GCD=1%ISR=107%TI=I%CI=I%II=I%SS=S%
OS:TS=A)SEQ(SP=104%GCD=1%ISR=107%TI=I%CI=I%II=I%SS=S%TS=A)SEQ(SP=104%GCD=1%
OS:ISR=107%TI=RD%CI=I%II=I%TS=D)OPS(O1=M5B4NW8ST11%O2=M5B4NW8ST11%O3=M5B4NW
OS:8NNT11%O4=M5B4NW8ST11%O5=M5B4NW8ST11%O6=M5B4ST11)WIN(W1=FFFF%W2=FFFF%W3=
OS:FFFF%W4=FFFF%W5=FFFF%W6=FFDC)ECN(R=Y%DF=Y%T=80%W=FFFF%O=M5B4NW8NNS%CC=Y%
OS:Q=)T1(R=Y%DF=Y%T=80%S=O%A=S+%F=AS%RD=0%Q=)T2(R=Y%DF=Y%T=80%W=0%S=Z%A=S%F
OS:=AR%O=%RD=0%Q=)T3(R=Y%DF=Y%T=80%W=0%S=Z%A=O%F=AR%O=%RD=0%Q=)T4(R=Y%DF=Y%
OS:T=80%W=0%S=A%A=O%F=R%O=%RD=0%Q=)T5(R=Y%DF=Y%T=80%W=0%S=Z%A=S+%F=AR%O=%RD
OS:=0%Q=)T6(R=Y%DF=Y%T=80%W=0%S=A%A=O%F=R%O=%RD=0%Q=)T7(R=Y%DF=Y%T=80%W=0%S
OS:=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=Y%DF=N%T=80%IPL=164%UN=0%RIPL=G%RID=G%RIPCK
OS:=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%T=80%CD=Z)
Network Distance: 2 hops
Service Info: Host: EXCEPTION; OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
| smb2-time:
| date: 2024-07-17T19:45:22
|_ start_date: N/A
| smb2-security-mode:
| 3:1:1:
|_ Message signing enabled and required
TRACEROUTE
HOP RTT ADDRESS
1 26.26 ms 192.168.2.17
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Wed Jul 17 15:45:29 2024 — 1 IP address (1 host up) scanned in 71.52 seconds
Как мы можем наблюдать у нас нет открытого 80/443 порта, соответственно проверять на наличие вэба нет смыла, поэтому посмотрим, на то как еще мы можем получить первоначальный доступ.
Начнем проверку с общедоступных share с нулевой сессией. Для этого воспользуемся программой impacket.
Интересующий нас Disk будет HR, необходимо подключиться к нему и осмотреть данную шару.
Все что-то мы можем увидеть так это календарь, его необходимо скачать командой get.
Далее, думаю догадаться не очень сложно, что если у нас есть документ или картинка, то нам придется посмотреть метаданные данного файла.
Инструмент просмотра метаданных у каждого свой.
Таким образом мы найдем первого пользователя. Для успокоения души можно проверить его валидность.
./kerbrute_linux_amd64 userenum --dc 192.168.2.17 -d codeby.cdb users.txt
Далее так же ни чего сложного, получив пользователя пробуем userspray.
nxc smb 192.168.2.17 -u '$user' -p /usr/share/wordlists/rockyou.txt --ignore-pw-decoding
Получив необходимые данные для УЗ нам необходимо будет получить "карту" сети, это можно сделать разными способами. Самый излюбленный наверное это использование Bloodhound. Я воспользуюсь ldapdomaindump ознакомиться с данным инструментом можно здесь. Оговорюсь сразу, дабы ни чего не перемешалось, создайте отдельную папку для того, что бы вывод команды не смешался с остальными файлами.
На что обратить внимание, так это на файл domain_computers.* расширений будет несколько.
Ну вот мы и подошли к главному моменту, где все же придется почитать, что же это за уязвимость с идентификатором CVE-2022–26923. О самой уязвимости можно почитать здесь, ну а саму CVE-2022–26923 можно найти здесь.