内网渗透之代理转发

1 前言
谈到内网转发,在我们日常的渗透测试过程中经常会用到端口转发,可以利用代理脚本将内网的流量代理到本地进行访问,这样极大的方便了我们对内网进行横向渗透。

那为什么不直接通过登陆服务器来对内网中其他机器进行渗透,而是通过内网转发呢?意义何在呢?

因为…

大部分时候拿到权限不够,无法直接登录。

而且如果在内网服务器中进行操作,我们需要上传工具进行很多操作,如果服务器缺少对应的环境变量或者组件,会导致渗透受阻。

而且直接远程登录会留下比较明显的痕迹。

因此内网转发是我们最好的选择,在本地进行操作是最方便的,也比较安全~~~

说这么多,不知道大家有没有听过"代理"这个词,这个东西和我们要说的内网转发有很大的关系~

2 正向和反向代理
那接下来咱们唠一下什么是正向/反向代理?

正向代理中,Proxy和Client同属一个区域,对Server是透明的;反向代理中,Proxy和Server同属一个区域,对Client透明。但其实这不管是正向还是反向代理都有一个共同的特点,都是代替收发请求和响应,不过从结构上来看正好左右互换了下,所以把前者那种代理方式叫做正向代理,后面那个玩意叫做反向代理。

2.1正向代理(Forward Proxy)

Lhost—>proxy—>Rhost

Lhost为了访问到Rhost,向proxy发送了一个请求并且指定目标是Rhost,然后proxy向Rhost转交请求并将获得的内容返回给Lhost,简单来说正向代理就是proxy代替了我们去访问Rhost。

2.2反向代理(Reverse Proxy)
Lhost<—>proxy<—>firewall<—>Rhost

和正向代理相反(废话),一般情况下,防火墙肯定不能让外网机器随便访问地访问内网机器,所以就提出反向代理。

Lhost只向proxy发送普通的请求,具体让他转到哪里,proxy自己判断,然后将返回的数据递交回来,这样的好处就是在某些防火墙只允许proxy数据进出的时候可以有效的进行穿透。

简单区分

正向代理的是客户端,反向代理的是服务端,可以理解为正向代理是就比如年少时期喜欢那个Ta,当时很羞涩需要我自己(Lhost)写一份信(proxy)去告诉Ta,反向代理就是喜欢的那个Ta(Rhost)知道并且主动(proxy)过来告诉自己(Lhost)。

有人要问了,代理本质又是基于什么"何方神圣"呢?

那就是Socks协议~~

3 Socks协议
什么是Socks协议??

中文意思:防火墙安全会话转换协议,工作在OSI参考模型的第5层(会话层)。

它是一种可以穿透防火墙的协议,很多场景都会用到。比如Fan墙,你们懂得~~

因为Socks介于传输层与表示层之间,使用TCP协议传输数据,因而不提供如传递ICMP信息之类的网络层相关服务。

目前有两个版本:SOCKS4和SOCKS5

SOCKS4支持TELNET、FTPHTTP等TCP协议;

SOCKS5支持TCP与UDP,并支持安全认证方案。

Ps: Socks不支持ICMP,不能使用ping命令。。记住哦~~~

使用设置proxychains的代理端口,进行访问,一般配合nmap和metasploit进行后续内网渗透。

Ps:socks4版本协议不支持udp和icmp协议,所以使用nmap要加上-sT -Pn即使用tcp协议且不使用icmp协议。

4 Natcat
让我们的神器出手–瑞士**,也叫NC,小巧强悍,主要作用就是用来反弹shell。

主机A:192.168.153.138

主机B:192.168.153.140

正向连接

在主机A执行

nc -l -p 5555 -t -e cmd.exe

-t是通过telnet模式执行 cmd.exe 程序,可以省略。

5 reGeorg+Proxychains
reGeorg是reDuh的升级版,主要是把内网服务器的端口通过http/https隧道转发到本机。

1.上传reGeorg的tunnel.jsp到web主机A。访问链接,并转发到本地端口。

主机B以python环境运行:

6 Earthworm+Proxychains
EW 是一套便携式的网络穿透工具,具有SOCKSv5服务架设和端口转发两大核心功能,可在复杂网络环境下完成网络穿透。

该工具能够以"正向"、“反向”、"多级级联"等方式打通一条网络隧道,直达网络深处,用蚯蚓独有的手段突破网络限制,给防火墙松土。

支持 Linux、Windows、MacOS、Arm-Linux 均被包括其内,强烈推荐使用。

7 ssh隧道代理转发
ssh有三个强大的端口转发命令,分别是本地转发、远程转发、动态转发。

socks代理:

ssh -qTfnN -D port remotehost

参数详解:

“ -C 允许压缩数据
-q 安静模式
-T不占用 shell
-f 后台运行,并推荐加上 -n 参数
-N不执行远程命令
-g允许远端主机连接本地转发的端口
-n把 stdin 重定向到 /dev/null (防止从 stdin 读取数据)
-L port:host :hostport 正向代理
//将本地机(客户机)的某个端口转发到远端指定机器的指定端口

-R port:host :hostport 反向代理

//将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口

-D port socks5代理

//指定一个本地机器 “动态” 应用程序端口转发。

7.1 ssh本地转发
远程管理服务器上的mysql,mysql不能直接root用户远程登陆。这时候就可以通过本地转发,通过ssh将服务器的3306端口转发到本地1234端口实现以root用户远程登陆mysql。

ssh -CfNg -L <本机地址>:<本机端口>:<目标B地址>:<目标B端口>用户名@跳板IP(A)

ssh -CfNg -L 1234:127.0.0.1:3306 root@45.XX.XX.X21

python reGeorgSocksProxy.py -p 1080 -u http://192.168.153.137/tunnel.jsp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值