Djinn 攻略(难度:高级)
前言:本文为系列文章第五篇,难度为高级,涉及到SSH的Knock敲门机制,命令执行漏洞及绕过,python反编译,python的input漏洞等知识。攻击思路描述:

01 信息收集
对目标进行端口扫描,探测开放的端口及应用。该靶机开放了21、22、1337、7331端口,其中7331端口为web应用端口。首先关注到21端口,nmap扫描得知可匿名登录,使用ftp匿名登录上去发现3个txt文件,都下载到本地查看。从三个文件的信息来看,第1个信息可能是账户密码,第2个提示1337端口有个小游戏,完成了会获得奖励,第3个信息是封邮件。通过第2个小游戏,编写计算代码赢得奖励,得知SSH的knock敲门端口。
然后关注7331的web端口,使用目录扫描工具扫描发现两个可用目录,分别为/wish和/genie。访问/wish目录出现输入框(execute)和提交按钮,寓意提交你想执行的东西。那么这里就想到命令执行,输入id,跳转到/genie界面,发现执行了id命令。之后通过执行反弹shell的命令去获取目标权限即可,只不过这里存在字符过滤,需要绕过,可使用base64编码的形式绕过,最后成功拿到目标第一个权限。
02 提权
拿到服务器权限后一般是低权限账号,那么就需要提权,通过查看当前目录下的文件,得知存储账户密码的文件路径,找到了一对用户名密码。
由于当前用户权限输入的字符都是double输入,自然想到通过ssh登录更方便。结合之前SSH的knock敲门机制,先把22端口敲开,使用找到的账户密码登录上去拿到nitish用户权限。之后通过genie的sudo提权拿到sam用户权限,接着通过yago的sudo执行,有4个选项,任意输入无果,最后通过反编译sam目录下的.pyc文件得知该程序的源码,利用python的input漏洞成功提权,拿到root权限。
结束语
该靶机在高级难度下,主要考验了靶机攻击者的信息收集能力,命令执行的漏洞利用能力,以及一些常用的提权方法。靶机难度为高级。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/5927.html
