Pwned靶机
信息收集
- 通过
nmap
扫描得到靶机ip
为192.168.78.175
,开放21,22
和80
端口。外加一些服务和linux
版本。而且ftp不存在匿名登录
- 使用
dirsearch
扫描网站目录
- 使用
gobuster
扫描网站获得目录
web渗透
- 访问目标网站,发现下面给出了一句话。感觉是要找到一个账密进行登录,在获取另外一个账户登录进行提权
- 访问扫描得到的
robots.txt
文件
- 访问
nothing
目录,发现确实没有什么东西在这里
- 俗话说得好:渗透没有线索和头绪,那就是信息收集的内容不够。再使用
gobuster
再进行目录扫描,得到了一个隐藏的文件。所以要多使用不同工具或者字典进行目录扫描
- 访问该目录,发现给出来很多类似目录的信息,经过访问发现只有
pwned.vuln
能访问
- 访问目录发现是一个登录界面
- 首先查看是否有注释,发现还真有还给出了账密,账户为
ftpuesr
,一看就是登录ftp。登录了一下网站没有反应
ftp渗透
- 使用账密成功登陆到靶机,查看目录内容发现一个文件和一个id_rsa,一看就是要指定私钥进行ssh登录
- 使用
get
命令将这两个文件下载到本机,查看note.txt
内容,查看是否有帐户名。发现一个可疑的ariana
用户
获取shell
- 使用
ssh
指定私钥尝试登录ariana
用户
- 这里遇到一个问题,就是这个
id_rsa
文件的权限,一开始登录显示权限错误,更改成777依旧错误,经过搜索发现,id_rsa
文件默认权限属性为0700/0600
权限提升
-
在该目录下有一个
user1.txt
,找到第一个flag
-
查看是否有常见的提权,查看是否有
sudo
权限,发现可以免密码使用selena
用户执行一个脚本
- 查看脚本的内容,发现是将输入的内容保存到变量
msg
中,后面还有$msg 2>/dev/null
命令执行。作为可控参数的msg
那这就有方法可以进行恶意利用了。
- 可以使用
selena
用户执行该脚本,输入将msg
变量赋值为/bin/bash
,就可以获取selena
用户的shell。也可以输入反弹shell
的命令,也可以获取selena
用户shellsudo -u selena /home/messenger.sh
-
这里发现
selena
用户在docker
组中,想到这里是不是突破点,上网搜索,发现真存在docker
组提权 -
先改成交互式
shell
,再查看一下靶机的docker
镜像
- 根据文章的给出的命令,进行
docker
提权,发现成功得到root
的shell
一种通用的Docker提权方式 (360doc.com)
- 当前所在的是docker环境中,获取的也是只能在docker环境中使用的root权限,但是环境内的文件与靶机是一样的。所以需要先来到挂载的目录
/mnt
下,目录存在着靶机具有的目录,当然也就有root目录了
- 进入
root
目录下查看flag
。不能cd /root
,这样子就会去到靶机本地的root
目录下,没有权限,获取的root
权限只能在挂载的目录下使用
10 在selena
目录下,还存在着第二个flag
靶机总结
- 前期信息收集是重中之重,没有web渗透没有线索了,就要看看目录扫描等信息收集是否做全面了。不行就转去搜索服务的版本漏洞,查看是否有远程命令执行
- 靶机还是少不了看源代码注释的
- ftp登录后的get和put命令;ssh的私钥文件权限和登录方式
- sudo -l发现不是root权限的,而是另外用户的,使用
sudo -u 用户名
来使用该用户权限来执行 - 理解给出的脚本命令含义,从中就可以发现利用的地方,输入的信息保存到变量再执行
put命令;ssh的私钥文件权限和登录方式 - sudo -l发现不是root权限的,而是另外用户的,使用
sudo -u 用户名
来使用该用户权限来执行 - 理解给出的脚本命令含义,从中就可以发现利用的地方,输入的信息保存到变量再执行
- 学习到了docker提权的方法