提反弹shell之前,先说说一个正常的场景,就是当我们需要连接一台远程服务器时,如果远端服务器IP可访问,并且启动了ssh服务器监听端口22,那么我们就可以在本地通过ssh客户端与远端ssh服务器的22号端口建立连接,这种方式叫做正向连接,即本地是客户端,远端是监听服务器。
有一种情况,当远端服务器在内网中,外部无法访问时,这个时候就可以用反弹shell,即在本地启动一个监听端口的服务器,然后在内网中的机器上客户端发起连接请求,客户端标准输入输出返回给本地服务器,以此实现远端操作的能力,往往黑客会采用这种方式,预埋一个客户端在目标机器上,然后本地启动一个服务监听等待,远端一旦启动客户端就被连接上了。