靶机下载地址:戳我
This machine was made for Jordan’s Top hacker 2018 CTF , we tried to make it simulate a real world attacks “as much as possible” in order to improve your penetration testing skills , also we but a little tricky techniques on it so you can learn more about some unique skills.
0x00 前期工作
使用kali探测存活主机,得到W34kn3ss:1靶机的ip为192.168.58.142
探测端口的开放情况:
0x01 信息收集
- 80端口
Apache/2.4.29,默认欢迎界面。
- 22端口
弱口令爆破失败。
- Nikto扫描结果
- dirb目录扫描结果
0x02 获取权限
上个步骤使用nikto扫描粗来了/test/目录,访问一哈:
555 keys…keys是啥0.0
后来想到还有443端口,于是查看了无效证书,在这里发现了一点信息:
将域名和IP添加到了hosts文件:
访问后得到该页面,注意这里由一个n30:
使用dirb获取敏感目录:
访问敏感目录http://weakness.jth/private/,得到两个文件:
mykey.pub(公钥):
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEApC39uhie9gZahjiiMo+k8DOqKLujcZMN1bESzSLT8H5jRGj8n1FFqjJw27Nu5JYTI73Szhg/uoeMOfECHNzGj7GtoMqwh38clgVjQ7Qzb47/kguAeWMUcUHrCBz9KsN+7eNTb5cfu0O0QgY+DoLxuwfVufRVNcvaNyo0VS1dAJWgDnskJJRD+46RlkUyVNhwegA0QRj9Salmpssp+z5wq7KBPL1S982QwkdhyvKg3dMy29j/C5sIIqM/mlqilhuidwo1ozjQlU2+yAVo5XrWDo0qVzzxsnTxB5JAfF7ifoDZp2yczZg+ZavtmfItQt1Vac1vSuBPCpTqkjE/4Iklgw== root@targetcluster
notes.txt:
this key was generated by openssl 0.9.8c-1
这个版本的Openssl是存在漏洞的:
cat /usr/share/exploitdb/exploits/linux/remote/5622.txt
得到该漏洞的使用方法:
解压后发现好大(。
- 在整个文件夹内搜索mykey.pub的内容:
- 得到
4161de56829de2fe64b9055711f531c1-2537.pub
,将后缀名去掉就是私钥。
- 接下来使用私钥登录ssh,用户名为之前得到的n30:
初步怀疑user.txt是一个md5,但是解不开。接下来分析code。使用file命令可以得知它是一个python2文件,但是打开我看不懂任何内容,应该是被编译了。
使用python3 -m http.server 8043
起了个文件共享,将code下载到本地上,然后反编译。得到以下内容:
#! /usr/bin/env python 2.7 (62211) #coding=utf-8 # Compiled at: 2018-05-08 10:50:54 #Powered by BugScaner #http://tools.bugscaner.com/ #如果觉得不错,请分享给你朋友使用吧! import os, socket, time, hashlib print ('[+]System Started at : {0}').format(time.ctime()) print '[+]This binary should generate unique hash for the hardcoded login info' print '[+]Generating the hash ..' inf = '' inf += chr(ord('n')) inf += chr(ord('3')) inf += chr(ord('0')) inf += chr(ord(':')) inf += chr(ord('d')) inf += chr(ord('M')) inf += chr(ord('A')) inf += chr(ord('S')) inf += chr(ord('D')) inf += chr(ord('N')) inf += chr(ord('B')) inf += chr(ord('!')) inf += chr(ord('!')) inf += chr(ord('#')) inf += chr(ord('B')) inf += chr(ord('!')) inf += chr(ord('#')) inf += chr(ord('!')) inf += chr(ord('#')) inf += chr(ord('3')) inf += chr(ord('3')) hashf = hashlib.sha256(inf + time.ctime()).hexdigest() print ('[+]Your new hash is : {0}').format(hashf) print '[+]Done'
得到n30用户的密码:dMASDNB!!#B!#!#33
输入sudo -l
命令查看此用户拥有的特殊权限,发现可以直接提权为root。输入sudo -i
可进入root用户下,提权成功。