🎃 学习任何东西不要畏惧 在战略上始终要藐视敌人 在战术上重视敌人 即使是很简单的东西 🎃
http 简介
http [3] 全称是超文本传输协议,一般是网站服务器运行监听的端口,常开放在 80 或 8080 端口,也可以设置自己喜欢的端口,更安全的是 https ,增加了 ssl 安全套接字协议,保证通信过程的数据不被窃取,因为 http 都是明文传输的
日常扫描,之前一直没说过这个命令是什么意思,-A 用来进行操作系统及其版本的探测,今天加了一个 -T4 可以加快执行速度,我一直觉得,命令不在于多,在于知道怎么用,扫描结果是一个 nginx http 服务器,nginx 1.14.2 [4]
┌──(root💀kali)-[~]
└─# nmap -A -T4 10.129.93.105
PORT STATE SERVICE VERSION
80/tcp open http nginx 1.14.2
|_http-title: Welcome to nginx!
|_http-server-header: nginx/1.14.2
实验提到了一个探测版本的命令 -sV [2] ,它也是探测开放端口以确定服务/版本信息的,我扫描了几次,可能是因为网络原因,最后终于成功,比 -A 快了一点,可能是没有探测系统版本的原因
nmap -sV -v 10.129.93.105 // -v 增加详细级别
PORT STATE SERVICE VERSION
80/tcp open http nginx 1.14.2
其它的参数详见官方手册:nmap参数介绍
简单探测
我们直接访问一下,一个 nginx 的默认页面
- web 渗透一直是安全的一个重点方向,那么首先拿到一个网站我们应该干什么呢? 老生常谈的信息收集我是不想再说了,对于没有经验的人,它始终只是一个冰冷的名词
我们只拿这个网站举例,不知道大家是否搭建过网站,网站一般由四大部分组成
操作系统、中间件、数据库、脚本语言,下面只是简单列举了几种,各种搭配根据需求
linux + apache + mysql + php
linux + nginx + mysql + php
windows + iis + sqlserver + aspx
我们扫描完已有的信息包括
nginx 1.1.4 可推测是 linux 系统,因为 windows 一般都是 iis
80 端口的 nginx 默认页面,不确定是否是废弃的网站
接下来应该:
1.探测目录,看是否有其它功能页面,对 web 应用程序进行测试
2.查看是否存在 nginx 1.1.4 版本的公开漏洞,当然也可以选择自己审计源码 😏
目录探测
所谓目录探测 ( dir busting [1]) 就是对 web 目录进行路径爆破,使用字典拼接 url 进行访问,或者使用爬虫爬取链接,可能发现比如源码、信息泄露文件、各种功能页面、后台…
常用工具:kali 自带的 dirb,开源的 python 脚本 dirsearch、gui 程序 layer 子域名挖掘机,今天推荐的是一款全新工具 gobuster [5],下载,查看下用法
┌──(root💀kali)-[~]
└─# gobuster
Command 'gobuster' not found, but can be installed with:
apt install gobuster
Do you want to install it? (N/y)y
扫描一下,使用 dir [6] 目录枚举模块,字典是 dirb 的字典,借用一下,这下面还有很多字典,可以看看
┌──(root💀kali)-[~]
└─# gobuster dir -u http://10.129.93.105 -w /usr/share/wordlists/dirb/common.txt
网络出了问题,换了几次,终于好了,扫描到一个 admin.php [7] ,状态码 200 [8] 代表请求成功
/admin.php (Status: 200) [Size: 999]
访问,是一个登录框
弱口令 admin/admin 进入,看到 flag,关于弱口令,就是密码过于简单或者未修改的默认密码,容易让攻击者猜到
nginx 的测试
公开漏洞复现并不是很简单的事情,首先很多漏洞的分析文章可以说是几乎没有,告诉你有一个 xx 漏洞,你自己复现去吧,即使有文章分析,怎么利用也是个难事,再加上网络环境复杂多变,稍微有点改动有点防护,对于未入门的脚本小子也是灭顶之灾,由于这里的功能点有限,暂时不尝试复现测试
ps: 感觉kali使用确实方便,不用放到 e 盘一堆乱七八糟的工具了
pwn!