反向shell與反向ssh隧道,遠程控制內網機器

反向shell ssh隧道,打通局域網機器與外網的牆壁


最新瞭解到的,方法二的進階,更方便:

首先需要在公網IP的這臺機器上配置ssh服務, 使能其端口轉發:

sudo vi /etc/ssh/sshd_config

添加如下行:

GatewayPorts yes

重啓sshd生效:

sudo service ssh restart


ssh-copy-id serveruser@serverIp

建立自動重連的ssh反向隧道

autossh -M 6334 -fNR 6333:localhost:22 ServerUser@Server

任意主機

ssh clientuser@serverIp -p 6333


最近工作需求要在辦公室能夠控制遠程客戶端部署的linux機器,實現遠程debug,但是客戶端機器深處內部局域網,沒有對外IP也沒法端口映射,於是想到了反向隧道,總結一下方法,主要有以下兩種:


1、反向shell簡單方便,但是連上客戶端後操作不如ssh方便;

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


**reverse shell**

第一步,服務器端先監聽本地端口

   

 nc -n -vv -l -p 25566

第二步,本地電腦端將bash通過tcp流的方式發送到遠程服務端

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

**reverse ssh**

b機器

>先創建ssh密鑰:

  cd ~/.ssh

>執行下面命令,出現選擇保存文件可密碼提示的時候,一路回車即可

  ssh-keygen -t rsa

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

>密鑰創建成功後,上傳公鑰到辦公室服務器上面: 

ssh-copy-id [email protected]

>然後就可以免密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/



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章