主机探测
ip为192.168.31.145
端口扫描
开放了3个端口,22、80和443,22端口直接爆破登录密码成功概率很小
[!note]
-sC
是同时运行默认的脚本扫描,-sV
是用于进行服务版本检测
访问80和443,都是默认页
开始目录遍历,有新发现,但没什么信息
发现上传点,不过返回的信息没用,也不知道图片上传之后的存储路径
绑定域名->进一步信息收集
在端口扫描的结果中注意到,ssl证书的信息,里面提示了一个域名,修改/etc/hosts
文件,然后访问域名。从页面上看是要跟随这只兔子,注意到兔子尾巴有个n30
修改hosts之后再尝试遍历目录
|
|
发现/private
目录和robots.txt
,robots.txt
没啥内容
在/private
目录下发现有两个文件,下载并查看
openssl 爆破密钥
提示key是通过openssl 0.9.8c-1
生成的
查找这个版本是否有漏洞,发现存在漏洞——在基于 Debian 的操作系统上,OpenSSL 0.9.8c-1 到 0.9.8g-9 之前的版本使用随机数生成器生成可预测的数字,这使得远程攻击者更容易对加密密钥进行暴力破解攻击。
Predictable PRNG Brute Force SSH
:利用可预测的伪随机数生成器(PRNG)进行暴力破解SSH(Secure Shell)。
exp:
|
|
成功找到key
利用key成功ssh登录
获得第一个flag
SUDO提权
家目录下有个可执行文件code
,用file
命令查看了是属于python文件,用uncompyle2
命令反编译得到源码
从中得知用户n30
的密码
|
|
sudo查看当前权限
find
提权
Got flag
关于SSL证书
在网络中明文传输非常危险,Netscape公司提出的安全协议SSL,利用数据加密、身份验证和消息完整性验证机制,为网络上数据的传输提供安全性保证。ssl证书可以防止中间人攻击、网络监听等。
SSL协议的这些安全机制需要有证书配合一块使用才能实现。SSL使用证书对通信双方之间建立的连接的两端进行身份认证,并使用证书对加密的通信信道进行协商,从而确保安全。
SSL证书是一种遵循SSL协议的数字证书,包含拥有者的公钥及相关身份信息,由受信任的数字证书颁发机构(CA)颁发。
SSL 证书中通常包括的详细信息包括:
- 针对其颁发证书的域名
- 颁发给哪个人、组织或设备
- 哪个证书颁发机构颁发了证书
- 证书颁发机构的数字签名
- 关联的子域
- 证书的颁发日期
- 证书的到期日期
- 公钥(不公开私钥)
总结
1、端口扫描信息要尽可能全面,比如此处就是通过端口扫描信息得知要绑定hosts再去访问,从而进一步收集信息
2、根据hint发现openssl存在漏洞,利用随机数生成器生成可预测的数字来暴力破解
3、通过反编译python文件获取账户密码,从而能够进行sudo查看当前权限。sudo提权这里是用的find
命令