靶机-KioptrixLevel1.3(#4)

Kioptrix系列的靶机,第四个。

先用namp扫一下

可以看到有ssh,http,samba。

用searchSploit 分别搜索对应版本漏洞。

Apache看到一条符合的。

搜索了一下,发现是.htaccess配置文件中的内容不符合规则时,服务器响应头的Allow字段会泄露部分内存的信息。

尝试了一下,并没有触发。

Samba 3.X-4.X有很多漏洞,依次试一下。 image-20210630101730152

尝试了usermap_script,没有成功

尝试第二个的时候发现了samaba的具体版本,searchsploit中并没有合适的exp

image-20210630144108546

看Web,直接进入后是登陆页面。抓包,sqlmap跑找到密码字段是注入点。

image-20210630145530293

得到两个帐号密码

尝试ssh登陆

image-20210630145749013

emm- -

image-20210630150000640

另一个也是同样的

image-20210630150205313

感觉没什么用。

登陆web试试

image-20210630150633387

image-20210630150835110

继续用sqlmap跑mysql库的user表,跑出1个密文密码

image-20210630220731576

除了*号是是40位

dirb爆破目录。

image-20210630223240177

john目录下有个john.php但是没法看到其中内容,访问会被重定向到index

到这里没什么思路了。于是搜索了下。

发现可以通过echo os.system(‘/bin/bash’)来逃逸受限shell,之后提权。

经过搜索,使用udf提权。

在john的shell里跑了一下linpeass.sh

image-20210705095435875

发现系统中有对应的so

登陆mysql,select * from mysql.func

image-20210705102825322

发现已经导入过了

直接 select sys_exec('chmod u+s /bin/bash')

或者select sys_exec('echo "john ALL=(ALL) NOPASSWD: ALL >> /etc/sudoers"')

获得root权限

获得新技能

  • smbclient -L xxxxx -N 获取Samba版本号

  • echo os.system绕过命令限制

  • sqlmap读文件 –file-read=/bin/kshell

  • getconf LONG_BIT 获取系统位数

  • mysql UDF

获得新思路

  • echo $PATH 查看环境变量
  • echo $SHELL查看用的什么shell
  • ps -ef 看mysql是否以root权限运行,考虑mysql提权

获得新工具

  • 目录扫描工具gobuster
  • 目录扫描工具dirsearch

另一种拿shell方式

前面登陆后到这个页面就没思路了。但其实忘记了测试这条url

image-20210630150633387

对此时的url进行fuzz测试,当username不存在时会报错,如下

image-20210705170603944

继续测试修改username=/etc/passwd,发现做了过滤

image-20210705170842448

双写绕过

image-20210705171116357

发现代码逻辑是username/username.php

php版本是5.2.4<5.3.4,可以用%00截断(NUL meta character)

image-20210705171438641

读到了东西

试了下远程包含

image-20210705171641879

不行,试了php://input也不行。

继续本地文件包含

读取一下当前进程的信息

image-20210706082431749

读取当前进程的cmdline

image-20210706083652199

枚举文件描述符

image-20210706092613364

这里发现当用户在web页面登陆成功后,会将用户名和密码写到fd9,应该是php的session。

前面发现密码字段是注入点,所以这里可以构造万能密码登陆,后面再接上一句话木马。

先试一下phpinfo

密码字段填'or+1=1--+<?php+phpinfo();?>

image-20210706093730833

访问fd9

image-20210706093845003

发现phpinfo执行成功

image-20210706103531226

写一个一句话

再次访问,发现还是phpinfo。

经过多次实验,发现在登陆时去掉Cookie,响应会报错,并Set-Cookie这个cookie与之前的不同。把这个cookie写到请求的Cookie请求头再去登陆。请求fd时也带有这个cookie。

发现改变cookie的值,fd中的内容也不同。应该是对于每一个session都起了一个进程。

image-20210706110338889

这时已经可以以www-data的身份执行命令。

前面已经使用mysql UDF chmod u+s /bin/bash来获得root权限。

这里我们安置一个后门,并用root权限运行。

搜一下whereis netcat(看了攻略才知道的,竟然自带netcat)

image-20210706113431526

先用nc传个shell回来,然后把CrossC2生成的C2传过去。

用MySQL的UDFsys_exec()执行木马。

拿到shell后看了member.php的内容

发现allow_url_fopen和allow_url_include都是On

image-20210706095750981

之所以不可以远程文件包含是因为使用了file_exists(),只有本地路径存在才可以执行到include()。

获得新思路

查看/proc/self/fd/xxx看看有没有什么有趣的东西

查看/proc/self/cmdline查看运行符文的命令行

参考