ScriptKiddie-Writeup

概述 (Overview)

86190129.png

  • MACHINE TAGS
    • Web
    • Outdated Software

攻击链 (Kiillchain)

83832260.png

TTPs (Tactics, Techniques & Procedures)

  • nmap
  • exploit-db
  • command injection
  • pspy

阶段1:枚举

老规矩,还是先通过 nmap 枚举下目标服务开放的端口和服务:

75958523.png

暴露的端口很少,浏览器访问下 5000 端口,看看是不是http服务:

76036199.png

很好,在这个端口上确实部署的是一个http服务。通过操作页面上的功能,获悉这可能是调用后端服务的一个Web脚本,尝试用nmap扫一下本地地址,返回的端口信息与我们直接扫的信息一致:

76270173.png

这里我开始对表单尝试命令注入,但尝试了很久发现并没有利用成功,只有是一个非IP地址就会提示错误。

尝试 payloads 功能,发现是通过它实际上就是最终执行的 msfvenom ,生成需要系统的反弹脚本。对表单尝试命令注入,失败。尝试文件上传提示内容错误,失败。对下载地址进行 lfi fuzzing,失败。

83071767.png

os 选项支持三种类型的选项:windowslinuxandroid

尝试 sploits 功能,实际上就是执行的 searchsploit 搜索。对表单尝试命令注入失败,并提示让你停止攻击,说会反击你。 有点意思哈…

77651546.png

阶段2:工具和利用

阶段2.1:msfvenom APK template command injection

在没有更多收获的情况下,开始对上诉三个服务进行 exploit-db 搜索,最终发现一个有意思的:Metasploit Framework 6.0.11 - msfvenom APK template command injection。 刚好也能与目标服务上的 payloads 功能对应上。

78262977.png

49491.py 下载后,修改里面的 payload 内容来进行验证,我这里是通过wget来判断是否能成功执行命令注入:

78714598.png

留意到 http 被目标服务请求了一次,证明漏洞存在,注入反弹shell命令成功获取 kid 用户的shell:

79003447.png

并在 kid 用户目录下发现了 user flag。

79143691.png

阶段3:权限提升

为方便后续操作,先加入免登录公钥然后直接ssh登录到目标服务器上:

79249618.png

随后我将 LinEnum 脚本通过NC暴露在9901端口上,接着在目标服务器上通过bash执行该脚本(这样做有一个好处,就是脚本不落地,除非存在流量分析类工具才能还原出执行脚本):

80190033.png

根据收集到的信息发现存在 /home/pwn 目录,随后在目中发现 scanlosers.sh 可疑的脚本。

80353318.png

通过 /etc/passwd 目录可以得知三个可登录用户:root、pwn、kid

通过阅读脚本代码,发现是一个类似反制的一个脚本,通过查询 hackers 文件内容,排序IP并对其进行 nmap 端口扫描… 有意思… 接着用 pspy 查看下有没有什么可疑的内容。
82166281.png

发现每五分钟会删除 payloads 目录内的变更内容,看来是一个自动清理 msfvenom 生成的定时任务,没什么实际意义,还是继续研究 scanlosers.sh 脚本。

找到站点部署的目录,对代码进行查看,当输入的 text 内容符合正则时将会执行 searchsploit 进行 exploit 的查询,反之将会往 hacker 文件中写入内容,可知占位符第一段是时间戳,第二段是 srcip,也就是来源IP的意思。

83473272.png

对脚本内容进行测试:

83964280.png

cut -d' ' -f3 的意思就是将空格作为分隔符,取第三个元素,而第三个元素 123 将传递成 ip 变量,被注入到执行nmap的语句中去。同时还观察到,每隔2分钟都会有一个未知的定时任务被执行,会不会就是执行scanlosers.sh脚本呢?

84254620.png
让我们来尝试一下,将带有反弹shell的内容写入到 hackers中,并开一个新的监听:
85253798.png

可以看到,得到了 pwn 用户shell,查看下 sudo -l 发现存在 msfconsole

85412740.png

这下就好办了,众所周知 msfconsole 是可以执行python命令的:

85603610.png

好吧,是我想多了每2分钟执行的是删除 payload 内容…

85697408.png

参考