tryhackme–Overpass
用nmap扫描主机,因为前面我已经简单扫过开放的端口了,所以我现在直接放上详细扫描的贴图和命令
nmap -T4 -sS -sV 10.10.220.203 -sC -p 22,80
扫描得到的目录
各种扫描,注入,爆破都试过了,也没有历史漏洞,看了wp才知道是js代码逻辑漏洞,这方面练的太少了,以至于没有找到切入点
async function login() {
const usernameBox = document.querySelector("#username");
const passwordBox = document.querySelector("#password");
const loginStatus = document.querySelector("#loginStatus");
loginStatus.textContent = ""
const creds = { username: usernameBox.value, password: passwordBox.value }
const response = await postData("/api/login", creds)
const statusOrCookie = await response.text()
if (statusOrCookie === "Incorrect credentials") {
loginStatus.textContent = "Incorrect Credentials"
passwordBox.value=""
} else {
Cookies.set("SessionToken",statusOrCookie)
window.location = "/admin"
}
条件检查有效凭证。如果不正确,则输出“Incorrect Credentials”,但如果正确,则设置一个名为SessionToken的Cookie,并将用户重定向到/ admin,在这里他是根据服务端返回的状态码,也就是Incorrect Credentials判定的,我们可以利用burp来重发响应包,来欺骗前端js验证
接下来看操作
转发,将得到的响应包删掉Incorrect Credentials再转发
然后刷新浏览器,看到James的ssh私钥
j将ssh私钥保存到本地,就可以用James用户的ssh私钥免密登录,保存私钥的文件的权限一定要为600
在这里还需要一个密码,Paradox也说了忘记了自己爆破,kali中也有工具可以从ssh私钥中提取密码
python /usr/share/john/ssh2john.py id_rsa > id_rsa.hash
john --wordlist=tools/dict/rockyou.txt id_rsa.hash
登录
ssh james@10.10.241.41 -i id_rsa
找到user.txt
在定时任务找到一个有趣的东西,可以利用定时任务提权,以root的身份下载一个sh的文件并且执行
修改/etc/hosts文件,将overpass.thm域名映射到我们kali的ip上,再在kali的web服务器上新建同样的目录以及文件,但不过文件的内容改为反弹shell的内容,这样一来,root权限,哦霍霍~~
又是垃圾的一天
ps:
个人站点博客:XingHe,欢迎来踩~