渗透测试基础
任务描述:
- 这个作业是一个比较有趣靶机进行渗透测试,要求是你获得 W1R3S 机器的 root 权限,然后读取位
于/root 目录下的 flag.txt
能做到哪做到那儿,把每一步的过程写清楚,和指令/代码运行结果一起放到报告里(可以进行脱敏处理)
该靶机是一个公开的靶机,有很多现成的 wp,要“借鉴”多少取决干个人,写在报告里即可,尽量
自己完成,当然,也可以问我。靶机地址:leve1-信息搜集,尽可能多的写自己收集的信息
leve2-外网打点,找到任意一个漏洞就算通过,当然多多益善
leve3-获得普通用户权限
level4-获得管理员权限,可以尝试下有没有更多提权的方法
level1-信息搜集
端口扫描–nmap
由于靶机是在内网内,使用这里扫描扫一遍应该就行了,但如果是不在内网或是现实中,最好扫描3遍,以便得到准确的信息。
确定靶机的ip地址
首先,在kali中输入
1 |
|
来确定网段,方便之后用nmap来确定靶机的ip
由图可看出,虚拟机网段为192.168.183.129/24
接着输入一下指令来探测在线主机(未打开靶机时)
1 |
|
然后打开靶机,再次探测在线主机
对比两次探测结果,发现新增出192.168.183.130,可知这就是靶机的ip
nmap扫描靶机端口
先用全端口扫描指令
1 |
|
知道了靶机地址之后,分别对靶机进行SYN端口扫描
1 |
|
进行TCP端口扫描
1 |
|
进行UDP端口扫描
1 |
|
查看服务版本
1 |
|
漏洞扫描(关键)
1 |
|
总结端口扫描信息
用nmap扫描靶机后,发现靶机开放了4个端口及对应的服务和版本,以及一些可能存在的漏洞(主要是80、3306端口),然后根据截图把信息总结记录下来(这里因为图方便,就没总结直接看截图了)
目录扫描
这里我采用的是御剑扫描
发现所有的都是下面这个样子
于是再尝试在kali中使用dirsearch来扫描
1 |
|
出现了一些不一样的结果(后来想想应该是我御剑没勾选3XX的缘故)
由于是用靶机来练习,并没有域名等信息
web指纹识别(未使用)
域名检查、网络空间测绘(无需使用)
用FOFA查不了(应该是靶机只是在内网运行,未部署到外网)
子域名发现(未使用)
leve2-外网打点
由于通过漏洞扫描的发现,大概知道80端口漏洞可能是最多的,3306其次。因此推测可能从80端口和3306去寻找机会,成功的可能性比较大一些。
进一步查看扫描结果
先把刚才目录扫描出来的网址一个个打开看看(先试状态为200再试301)
访问
1 |
|
访问
1 |
|
访问
1 |
|
访问
1 |
|
由以上结果可以看出,前面两个网址暴露出来的信息很有价值,而且从账号密码登录界面联想到sql注入等其他操作(但由于还是小白,并不知道怎么操作),以此打算就第二张图的那个“next”在看看会不会有其他有用的信息,
果然有更多的信息,这里把表填好,再次“next”
但到这里,我还是没想出如何利用这些信息去寻找漏洞,属实有点狼狈。
尝试寻找漏洞
根据漏洞扫描的结果和刚才那个WordPress登录界面,打算用searchsploit查询一下漏洞
1 |
|
将文档下载下来并查看
1 |
|
好消息是找到漏洞了,坏消息是不会用,翻译了一下有一个说的是用xss注入,但是我并不会,其他的文档提供的方式也是不会正确使用,尝试了好久,并没有收获,卡在这一步了。
leve3-获得普通用户权限
卡在了这一步,查看了一下别人的WP,B站号:BV1mB4y1j7K6
继续尝试
发现还有一个漏洞Cuppa CMS,于是用searchsploit指令寻找相关的漏洞
1 |
|
把txt文件下载下来,并查看
1 |
|
根据文件里的提示,尝试
1 |
|
得到上图,却没有显示出信息,分析原因,发现可能是编码问题(文件中有提及)。这里换成curl来尝试
1 |
|
得到了一堆奇奇怪怪的东西,在用html2text进一步处理
1 |
|
拿到之后,在尝试一下看能不能拿到shadow文件
1 |
|
这边也是成功拿到shadow文件。
john破解
将上面的内容复制粘贴到一个新的文件(这边我命名为hash)
1 |
|
接着用john破解
1 |
|
芜湖,这边也是成功破解出秘密,不难看出w1r3s用户的密码就是“computer”
赶紧去靶机登录界面试试
果然每错,这边也是成功登入!
level4-获得管理员权限
这边可以参考这个文章(更加全面)
或者跟着b站那篇wp继续操作
提升权限
首先需要确定一下我们目前w1r3s的权限,
先在kali上用ssh远程连接靶机(当然直接在靶机上操作也可以)
1 |
|
成功连接后,输入下面的指令来确定目前用户的权限
1 |
|
哇去,这个w1r3s竟然有着(ALL:ALL)ALL权限!
由于拥有着ALL权限,所以执行下面指令就能获得root权限了
1 |
|
寻找flag
有了root权限后,接下来就是找到flag了
1 |
|
这样就大功告成了,这个flag还挺有意思的!