记第一次DC靶场渗透

news/2025/1/6 13:52:01/文章来源:https://www.cnblogs.com/K4N0/p/18651028

前言:听了朋友的说渗透可以快速入门,心血来潮去刷了DC-1这个靶场,结果老实了,跟着wp做了一遍,许多不懂的地方就去搜知识点,记了个笔记也是花了1天左右的时间。顺便水一篇博客

借鉴的WP:
DC-1靶场搭建及渗透实战详细过程(DC靶场系列)

开始渗透之旅:

前置:

DC靶场网上一搜就能搜到,这里就不放链接了,这里说一下我在配置好靶场后遇到的问题

kali连不上网:

这里涉及到了虚拟机net模式和桥接模式,我不是很懂这些配置,然后连校园网的时候使用的桥接模式,导致虚拟机一直连不上网,搜了好多博客还是一个学web朋友教我的,感谢Archie_x✌,更换net模式后用

service networking restart

这条指令来进行重新打开网卡,可以上网了,这里贴一篇,net和桥接的区别
“桥接”和“NAT”方式区别
然后就是靶机和kali在同一个网段,否则kali扫不出DC的主机, 我设置的为net模式
image

1.信息收集

(1.)探测目标IP地址

可以使用三种工具三种指令来进行扫描IP,arp-scannmapnetdiscover

· arp-scan

arp-scan -l
主要用于扫描本地局域网中的设备,通过 ARP 机制获取同网段设备的 IP 和 MAC 地址,帮助了解网络中的活跃设备情况
-l: 参数使它自动检测本地网络接口,对所在子网主机进行扫描,发送 ARP 请求获取响应来得到设备信

image
此时我kali的IP为192.168.18.128
image
这里扫出来四个IP,如何判断这个是靶机IP呢,打开靶场的网络适配的高级设置
image
在靶场的网络适配器高级选项中可以看到靶场的MAC地址:00:0C:29:57:CA:F5
则靶机IP为:192.168.18.132

· nmap

nmap -sP 192.168.18.0/24
这行指令是网络扫描工具 nmap 的一个指令。nmap 用于探测网络相关信息,-sP选项表示进行 Ping 扫描。
目标地址192.168.18.0/24指定了要扫描的网络范围,/24表示子网掩码为 255.255.255.0,扫描的 IP 地址范围是从192.168.18.1到192.168.18.254。(192.168.18.0和192.168.18.255有特殊含义不能当做IP地址)

image

· netdiscover

这个工具就是纯爆破挨个试,看哪个IP能连接
image

(2.)探测目标IP开放端口

使用nmap来探测

nmap -sV -p- 192.168.18.132
-sV 扫描目标主机端口上运行的软件信息
-p-扫描全部端口0-65535

image
这里wp说的是22和80端口是突破,我没咋看懂,这里搜了一下

22 端口
远程管理: 22 端口主要用于 SSH(Secure Shell)服务,系统管理员通过 SSH 远程登录服务器进行管理操作,如执行命令、配置系统和传输文件等,保障了远程操作的安全性。
安全通信: SSH 协议在 22 端口上运行,它对通信数据进行加密,防止数据在传输过程中被窃取或篡改,这对于企业和云服务的数据中心管理至关重要。

80 端口
网站访问: 80 端口是 HTTP(Hypertext Transfer Protocol)协议的默认端口,几乎所有的网站都通过 HTTP 协议在 80 端口上向用户提供网页内容,是用户访问网站的主要通道。
网络服务基础: 大量基于 Web 的应用程序和服务依赖 80 端口来提供服务,包括在线购物、内容管理系统和网络应用接口(API)等,确保网络服务的正常运行。

(3.)网络信息收集

打开ip网站,利用火狐wappalyzer,查看站点信息
image

利用whatweb也可以扫出来

whatweb -v 192.168.18.132
whatweb是一个用于识别网站所使用的技术栈的工具。当你在命令行中执行whatweb -v 192.168.18.132时,它会尝试探测 IP 地址为192.168.18.132的主机上所运行的网站相关技术信息。

image
[whatweb详细使用教程]

这里解释上面一下获得的信息

CMS是Drupal
CMS 是内容管理系统(Content Management System)的简称,是用于创建、管理和发布数字内容的软件应用程序,能让用户方便地更新、编辑网站内容,处理多种类型内容并进行分类等操作。
Drupal 是用 PHP 编写的开源内容管理系统,它具有高度灵活性和扩展性,可以构建从简单博客到复杂企业级网站等各种类型的网站,是众多 CMS 中的一种。 “Drupal 是一种 CMS”。
Apache2.2.22
PHP 5.4.45
JQuery 1.4.4

2.漏洞查找与利用

image
此时以知CMS Drupal是存在漏洞的,用kali的工具进行漏洞查找

(1.)漏洞查找

利用开源渗透工具Metasploit寻找漏洞

Metasploit

image
search Drupal

search Drupal
从名字上也能读出来,利用这个渗透框架搜索Drupal漏洞从名字上也能解读出来,利用这个渗透框架搜索Drupal漏洞

image
包含各个年份的漏洞,年份月近,漏洞等级应该越高(猜测),参考的wp使用的是18的,但是最新的是19的,我想自己试试看

(2.)漏洞利用

2019年漏洞(已修复)

image

Current Setting一列是目前设置的内容
Required表示是否需要设置内容,yes为必须设置,no可以设置也可不设置

所以RHOSTS这里需要设置内容,即攻击目标IP地址

set RHOSTS 192.168.18.132

image
攻击指令

exploit

image
报错,chat查了一下,LHOST没有设置,这个要设置攻击机的IP也就是Kali的IP
image

image
ok老实了,chat跑一下结果,分析分析

最终结果是此次利用 Metasploit 针对目标系统的 “unix/webapp/drupal_restws_unserialize” 漏洞的攻击尝试失败了,虽然漏洞利用流程走完,但未创建会话,因为自动检测判断目标系统不存在该漏洞,若仍想尝试可考虑启用 “ForceExploit” 选项再次发起攻击。

老老实实用18年的

2018年漏洞

image

image
出现Meterpreter session 1 opened(kali和目标IP连接),说明攻击成功,上shell

(3.)Getshell

shell

image

获取交互shell

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

image

image

flag1内容: 每个好的CMS都需要一个配置文件,你也一样
Drupal配置文件: settings.php

image
image
找到了flag2数据库账号密码
flag2:

  • 暴力破解和字典攻击并非获取访问权限的唯一途径(而且你肯定需要获得访问权限)。
  • 利用这些凭证你能做些什么呢?

3.数据库渗透

由上面得到账号密码:

mysql -udbuser -pR0ck3t

image

show databases;

image
使用改数据库,查看表

use drupaldb;show tables;

image
查看User这个表

select * from users;

image
得到两个用户

| admin | $S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR |
| Fred | $S$DWGrxef6.D0cwB5Ts.GlnLw15chRRWH2s1R3QBwC0EkvBQ/9TCGg |

可以通过修改admin或新加一个admin来登进后台
忘记Drupal的管理员密码的解决办法
有两个方法(这里我暂时不会sql注入,所以法2不会)

方法:

先找到加密文件,Drupal的加密脚本路径

/var/www/scripts/password-hash.sh

涉及到代码审计:
image
这里设置密码为123456

php /var/www/scripts/password-hash.sh 123456

image
然后进入数据库,修改admin和Fred的密码

usedrupaldb;updateuserssetpass = "\(S\)D8ZyT1SatJ4QPyvJ5Sn/zKKDQXUYdb7sKwktu8g5dzc5UXpc4kZZ" where name = 'admin' or name = 'Fred';

image

image

打开网站:

image
flag: 特殊权限(Special PERMS)将有助于找到密码文件(passwd)—— 但你需要执行(-exec)那个命令,以弄清楚如何获取影子文件(shadow)中的内容。

提示passwd和shadow
该文件存储了系统用户的基本信息,所有用户都可以对其进行文件操作读
Linux /etc/passwd内容解释(超详细)
/etc/shadow
该文件存储了系统用户的密码等信息,只有root权限用户才能读取
Linux /etc/shadow(影子文件)内容解析(超详细)

image

4.用户密码爆破

SSH:
SSH简介及两种远程登录的方法
利用工具Hydra爆破flag4的密码:
密码暴利破解工具Hydra(海德拉)使用详解

hydra -l flag4 -P /usr/share/wordlists/rockyou.txt.gz ssh://192.168.120.128

-l:用于指定用户名。在这个命令中,用户名是flag4。
-P: 用于指定密码字典文件的路径。这里的密码字典文件是/usr/share/wordlists/rockyou.txt.gz,不过需要注意这个文件是压缩格式的。通常rockyou.txt是一个非常大的密码字典,包含了大量常见的密码组合。
ssh://192.168.120.128: 这部分指定了攻击的目标服务和目标主机的 IP 地址。ssh表示攻击的是 SSH(Secure Shell)服务,192.168.120.128是目标主机的 IP 地址。整个命令的意图是使用hydra工具,以flag4为用户名,用rockyou.txt.gz中的密码尝试对192.168.120.128上的 SSH 服务进行登录破解。

image
用kali去连接

ssh flag4@192.168.18.132

image
用户flag4密码时orange
image
flag4: 你能用同样的方法找到或获取根目录下的那个标志吗?很可能可以。但也许没那么容易。又或许其实挺容易的呢?

5.Linux提取

需要用到SUID提权
简谈SUID提权
利用find命令,找查具有SUID权限的可执行二进制文件

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

-perm: 用于按照文件权限来筛选文件

-u=s: 表示查找那些设置了用户(属主)的suid(Set User ID,设置用户 ID 位)权限的文件。简单说,具有这种权限的可执行文件,在被普通用户执行时,会临时拥有该文件属主的权限,而不是执行这个文件的普通用户原本的权限,这在一些情况下可能涉及到安全相关的特殊配置或者权限提升等情况。

-type f: 表示只查找普通文件(file),排除目录、符号链接等其他类型的文件。

2>/dev/null: 重定向操作,“2>” 把标准错误输出(文件描述符 2)定向到 /dev/null 这个特殊 “黑洞” 设备文件,作用是丢弃错误信息,使终端不显示查找时如权限不足这类错误提示,让命令结果输出更简洁,仅呈现正常查找结果。

image
find比较常用,可以执行root权限的命令查找文件

find / -name index.php -exec "/bin/sh" ;
#!/bin/sh简介

image
image

总结

第一次去打渗透,然后好多都不会的,虽然渗透不需要语言基础,但还是涉及到不少web知识,包括kali指令和工具使用,但是感觉很有意思,一步步的渗透进主机里,最终getshell然后提权,不知道实战是什么样的,果然网安这条路就是要多学多练多做

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

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

相关文章

[网络] 反向代理与内网穿透:FRPC

缘起: GradioGradio是一款快速构建AI Web演示应用的Python Web框架(主要适用于科研、实验室,而非ToC的Web应用),其支持本地运行和远程访问。1个极简的Gradio代码:app.pyimport gradio as gr # 导入gradio库,gradio用于快速创建机器学习模型的web界面# 定义一个名为greet…

windows11使用pycharm连接wsl2开发基于poetry的python项目

windows11使用pycharm连接wsl2开发基于poetry的python项目 背景:公司开发的python项目用到了某个只提供了Linux版本的包,遂研究了一番如何在windows环境下进行开发。windows安装 wsl2 进入到wsl2中,安装对应的python版本,建议使用pyenv,下面以3.10.14版本为例子。 pyenv安…

【反爬虫】接口安全的风控介绍

#风控 #接口信息安全 #业务线 一、接口反爬背景二、反爬数据流框架介绍2.1 数据接入风控2.2 风险感知和策略迭代2.2.1 短线近实时监控告警2.2.2 风控策略部署2.3 异常流量处置能力2.4 网关验签组件的设计和应用2.4.1 验签整体架构2.4.2 接口验签加密流程三、反爬效果体现3.1 普…

发布blazor应用到Linux, 使用nginx作为WebSocket代理

Blazor 使用了SignalR连接, 而SignalR使用的是WebSocket WebSocket协议提供了一种创建支持客户端和服务器之间实时双向通信的 Web 应用程序的方法。作为 HTML5 的一部分,WebSocket 使开发此类应用程序比以前的方法容易得多。大多数现代浏览器都支持 WebSocket,包括 Chrome、F…

读数据保护:工作负载的可恢复性25公用云存储

公有云存储1. 对象存储 1.1. 对象存储可能是未来比较适合长期保存备份与档案的一种技术 1.2. 它的核心功能本身就已经含有保护数据所需的一些特性 1.3. 对象存储系统里的所有数据都能自动复制到多个地点,这意味着它天生就符合3-2-1原则 1.4. 对象存储还可以应对磁退化的问题,…

C#进阶

进阶 目录进阶枚举数组值类型和引用类型函数函数基础ref和out变长参数和参数默认值函数重载递归函数复杂数据类型结构体排序冒泡排序选择排序飞行棋项目C#高级语法面向对象成员变量构造函数成员属性索引器静态成员拓展方法运算符重载内部类和分部类继承里氏替换原则继承中的构造…

P11503 [NordicOI 2018] Nordic Camping

P11503 [NordicOI 2018] Nordic Camping 花了我挺长时间。 帐篷都是正方形的,可以枚举左上角,二分正方形边长,二维前缀和判断是否合法。这部分复杂度为 \(O(n^2\log n)\)。处理出来后,问题似乎就变成了矩形取最大值,单点查询。直接做是 \(\log^2\) 的,65 pts。具体就是,…

OpenXR间接链接、API层总体排序、加载器设计

OpenXR间接链接 通过加载器间接链接,应用程序动态生成OpenXR命令调度表。如果找不到加载器,或者只有比应用程序更旧的API,则此方法允许应用程序正常失败。为此,应用程序在加载器库上,使用特定平台的动态符号,查找(如dlsym())xrGetInstanceProcAddr命令的地址。一旦发…

OpenXR™加载器-设计、操作、调用链

OpenXR™加载器-设计和操作 1.2.1概述 OpenXR是一个分层体系结构,由以下元素组成: 1)OpenXR应用程序 2)OpenXR加载程序 3)OpenXR API层 4)OpenXR运行时间 一般概念适用于Windows和Linux的系统的加载程序。 首先,让把OpenXR环境看作一个整体。OpenXR应用程序位于执行链的…

经典专著《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》4本书推荐

4本书推荐《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》由清华大学出版社资深编辑赵佳霓老师策划编辑的新书《AI芯片开发核心技术详解》已经出版,京东、淘宝天猫、当当等网上,相应陆陆续续可以购买。该…

使用format_obproxy_digest_log工具分析obproxy网络层耗时SQL

之前写过一个博客,介绍 ob_tools包 来实施抓取 observer 层的 gv$ob_sql_audit 的SQL,还提供一些分析SQL来通过不同维度分析缓慢的业务SQL语句,免得和应用扯皮说数据库执行SQL慢。 但是分析出服务端业务SQL语句执行时间还不够,应用也有可能会和你扯皮说obproxy转发慢,也不…