反向shell与反向ssh隧道,远程控制内网机器

来源:互联网 发布:飞控科技软件下载 编辑:程序博客网 时间:2024/05/20 05:56

反向shell ssh隧道,打通局域网机器与外网的墙壁


最近工作需求要在办公室能够控制远程客户端部署的linux机器,实现远程debug,但是客户端机器深处内部局域网,没有对外IP也没法端口映射,于是想到了反向隧道,总结一下方法,主要有以下两种:


1、反向shell简单方便,但是连上客户端后操作不如ssh方便;

2、反向ssh隧道,部署稍微麻烦,但是连上后操作如同本地命令行,爽!


**reverse shell**

第一步,办公室服务器端先监听本地端口

    nc -n -vv -l -p 25566

第二步,远程客户端将bash通过tcp流的方式发送到远程服务端

   /bin/bash -i > /dev/tcp/dev.yeegen.com/25566 0<&1 2>&1


**reverse ssh**

客户端机器

>先创建ssh密钥:

  cd ~/.ssh

>执行下面命令,出现选择保存文件可密码提示的时候,一路回车即可

  ssh-keygen -t rsa

 ----->Choose no passphrase when asked and accept the default filename is OK

>密钥创建成功后,上传公钥到办公室服务器上面: 

  scp id_rsa.pub <user>@<yourhost>:.ssh/authorized_keys

>然后就可以免密ssh连上办公室服务器了,这个最好是在办公室创建一个权限低的用户,专门用来做反向ssh,安全!!!!
    运行下面的命令,将本地bash推送到办公室服务器端的unusedPort,端口号指定一个没用的就好

    ssh -N -R <unusedPort>:localhost:22 serverUser@serverIP Or serverUrl

办公室服务端机器:
>运行下面的命令,连接本地的上面指定的unusedPort,就转发到客户端的bash了,任性debug吧!:

     ssh -l <clientHost UserName> -p <sameUnusedPort> localhost



**note**
> 将上面的命令组织后,写成脚本,并将脚本加入crontab 中定时循环运行,即可随时随地,远程debug客户端啦~~~~
> crontab -e ,定时任务添加一下~~~~~  




**reference**

https://www.tunnelsup.com/raspberry-pi-phoning-home-using-a-reverse-remote-ssh-tunnel/
https://www.tunnelsup.com/ssh-without-password/
https://null-byte.wonderhowto.com/how-to/create-reverse-shell-remotely-execute-root-commands-over-any-open-port-using-netcat-bash-0132658/


0 0
原创粉丝点击