渗透测试之Webshell
简介
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形式的接口传入就行:
第二种木马:
第二种木马的使用方法:
WebShell管理工具
网上有挺多WebShell管理工具的,这些管理工具可以用来生成隐蔽性比较强的木马,并比较方便的连接木马进行渗透。这里简单罗列一些WebShell管理工具:
- webacoo
- Cknife
- antSword
- 冰蝎
- weevely
- Altman
- Webshell
- quasibot
这些工具中有些是Windows环境的工具,有些是Linux环境的工具。看个人需要来选择要使用哪种工具吧。Cknife在以前业内挺有名,中文名叫中国菜刀,不是很确定还有没有继续更新。
你们在挑选使用的工具时,要确认一下是否还有维护,还有更新记录。去官网或者源头下载,别使用第三方定制过的,很容易中毒。
WebShell管理工具-webacoo
webacoo是Linux环境下的命令行工具,在Kali中安装的话直接输入webacoo就可以:
在这里特意介绍webacoo,主要是因为它有这些优点:
- 编码通信内容通过cookie头传输,隐蔽性强
- 使用方便
先来看一下帮助文档:
不对所有参数做介绍了,就用webacoo演示一遍渗透过程吧。
生成木马文件:
参数-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还支持通过密码连接,这样就不容易出现自己好不容易渗透控制的肉鸡,第二天就被人摘了桃子的情况。
先看一下帮助文档:
下面演示一下渗透操作。生成木马文件:
将木马文件传给目标主机:
在攻击机上连接目标主机:
在连接上目标主机后,可以通过输入help命令,查看前面提到的那些丰富的管理模块:
如果你在执行了help后没有管理模块显示,那可能是少装了一个python的三方库pysocks。直接通过pip应该会失败,可以去仓库下载源码包,手动安装,源码包地址:
https://pypi.python.org/pypi/PySocks/
将源码包放到攻击机后,到解压后的目录执行安装命令:
安装成功后,就能正常使用weevely的管理模块了。
查找目标系统中的弱权限隐患:
查找账户文件:
这个其实自己通过命令也能很容易查找到,就是不知道weevely是直接查的固定文件,还是查了etc里面的所有文件。
用目标主机扫描内网其他主机:
管理模块很多,这里就不全部演示了,感兴趣可以看帮助文档。
WebShell的防护
一般可以通过静态检测和动态检测来防止被webshell渗透。
静态检测主要是指对web日志的检查,进行文本特征匹配、统计特征计算与文件关联性分析,最后对检测结果汇总,列出疑似的Webshell文件。例如,网站目录下某php文件访问量很少,且来源ip固定。
动态检查主要是指监控webshell执行时刻表现出来的特征。例如,webshell如果执行系统命令的话,会有进程,我们只要实时监控可疑进程就行。
总结
作为攻击者,要进行webshell渗透,主要是考虑如何绕过系统上传webshell,如何隐藏webshell免查杀;作为防御者,为了安全,应该考虑如何避免webshell被上传,如何查杀webshell。
渗透测试之Webshell相关推荐
- tomcat temp 大量 upload 文件_渗透测试之文件上传漏洞总结
文末下载上传环境源码 客户端 js检查 一般都是在网页上写一段javascript脚本,校验上传文件的后缀名,有白名单形式也有黑名单形式. 查看源代码可以看到有如下代码对上传文件类型进行了限制: 我们 ...
- 渗透测试之SQL注入基础
渗透测试之SQL注入基础 SQL注入类型 按照数据类型类型来分类 按照执行效果来分类(页面回显效果) 按照数据提交的方式来分类 判断注入类型的方法 MySQL注入基础 联合查询注入 布尔注入 时间盲注 ...
- 2017-2018-2 20155303『网络对抗技术』Final:Web渗透获取WebShell权限
2017-2018-2 『网络对抗技术』Final:Web渗透获取WebShell权限 --------CONTENTS-------- 一.Webshell原理 1.什么是WebShell 2.We ...
- 渗透测试之后台查找,如何查找网站后台
渗透测试之后台查找,如何查找网站后台 1.当前页面信息浏览 查看图片的相关属性 查看网站底部管理入口和版权信息 robots文件 故意请求不存在的页面 2.当前页面后台猜解 CMS指纹识别 猜解常见后 ...
- 渗透测试之破解密码(3)
渗透测试之破解密码(3) 常见密码破解技术 被动在线攻击 主动在线攻击 离线攻击 彩虹表 使用彩虹表破解密码 使用非技术性方法 使用闪存驱动器窃取密码 提升权限 TRK(Trinity Rescue ...
- Kali渗透测试之端口扫描1——UDP、TCP、僵尸扫描、隐蔽扫描
端口扫描 每个服务器上面都会跑很多应用,每个应用都会侦听某些端口,通过侦听端口接收来自客户端或其他用户对应用程序的访问.所以在发现目标主机存活后,我们需要知道目标主机上都开放了那些端口,应用程序的漏洞 ...
- @渗透测试之信息收集
目录 渗透测试之信息收集 一.信息收集之概述 1.1 渗透一个目标系统,最常见的信息手机目标有如下几种: 1.2 信息收集的作用 二.利用搜索引擎收集信息 2.1 利用搜索引擎的收集目标主要有以下几种 ...
- Python渗透测试之ARP毒化和协议应用
Python渗透测试之ARP毒化和协议应用 1. ARP毒化 ARP毒化是一种比较老的渗透测试技术,通过ARP毒化技术分析并提取内网流量中的敏感信息,往往会有许多意外的收获. 1.1 工作原理 A ...
- 近源渗透测试之Keylogger实战
近源渗透测试之Keylogger实战 转载,侵删 原创 大好人 来源于公众号:雷神众测 原文链接:https://mp.weixin.qq.com/s?__biz ... 8a1fcbc183d84 ...
最新文章
- 多维矩阵/数组变成一维数组
- python详细安装教程linux-Linux(Ubuntu)系统安装Python
- 附件文件无法保存到服务器,可能是目录属性设置问题,请与管理员联系,Discuz不能上传过大文件的解决办法...
- javascript保留两位
- 吃糖果(信息学奥赛一本通-T1193)
- OOA OOD OOP
- 返回一个不确定的对象_我有一个Android必备知识点,你确定不了解一下?
- SAP License:SAP传输错误所引起的系统崩溃事件反思
- Unity3D游戏开发之邂逅Unity3D
- 考研数学刷题视频资料
- scratch编程小游戏咬指大冒险
- 「京东白条」的数据架构进化之路!
- ERD Online 4.0.0 免费私有部署方案
- 黑苹果开启硬件加速(Clover)
- js数组操作(pop,push,unshift,splice,shift方法)
- echarts使用百度地图
- VR基础——PicoVR SDK接入及使用整理
- 免费Zblog站群采集管理插件工具
- 诚诚富众选择投资理财产品
- python 实现udp通信