本文主要是讲述在主机渗透中我们经常使用的一条路径(存活判断-端口扫描-端口删选(web端口)-针对性渗透(web渗透))进行渗透,其中主要涉及发现漏洞、利用漏洞、获取上传位置等过程中自己的一点经验技巧。简单来说,本文主要是对某主机进行渗透的全过程记录!如有不合理或错误的地方,烦请各位多多指教,谢谢!
1.1 主机存活判断
当我们得到一个主机IP时,我们首先对它进行存活判断,最简单的就是通过ping命令,但是如果主机是禁ping那么我们可能会判断失误,因此我们需要使用nmap来再次进行存活判断(命令格式为:nmap –sn [ip])。
通过使用ping命令,如图1所示,我们可以判断主机是存活的。
图1 主机存活判断
1.2 端口扫描
通过主机存活判断,我们知道主机是存活的,接下来就是对主机进行端口扫描,查看主机开放了哪些端口,端口扫描工具可以使用nmap、御剑等工具进行扫描,而nmap对于扫描全端口来说,我觉得很慢(可能是我的带宽渣吧),因此我几乎都是使用御剑进行端口扫描,而御剑对服务的识别却没有nmap那么好,看情况选择。在主机渗透方面,主要是扫描一些控制类端口或者web类端口,对于控制类端口主要是使用暴力破解工具探测弱口令,运气好的话可能就能直接获取服务器的控制权,而我运气一向不好,所以本文主要是选择web类端口进行着手渗透。另外我们可以使用nmap对主机进行漏洞检查(命令格式:nmap –script=vuln [ip]),但是看运气好不好,好的话直接扫出一个远程命令执行的漏洞,然后可以使用但不限于metaspolit进行利用!
如图2,通过端口扫描我们发现主机开放了如下端口,我一般选择后面带->符号的端口,这类端口多数为web类端口(个人经验,仅供参考),可以得到2个端口,我们随便选择一个8008进行渗透(后来才发现2个端口的漏洞是一样的)。
图2 端口扫描
1.3 获取服务器基本信息
获取服务器基本信息的方法很多,本次将使用nc进行获取服务器基本信息,使用方法为:nc [ip] [port] ,然后输入HEAD HTTP/1.0 ,按enter将回显服务器基本信息,如果没有回显,可以将1.0改为1.1试试,如图3所示,网站使用jsp脚本,另外还有servlet可知该网站主要是java开发。(以后再遇到这种情况先使用反序列化工具验证下)
图3 获取服务器基本信息
1.4 wvs web漏洞扫描
虽然通过访问可知,http响应码为404,但是依旧可以进行扫描,看能不能发现目录等相关信息。
图4 http响应码404
wvs是一个自动化的web应用程序安全测试工具,它可以扫描可以通过web浏览器和遵循http或https规则的web站点和应用程序。通过wvs可以扫描SQL注入、XSS、目录检测、版本检测、源代码泄露等诸多漏洞。
通过wvs扫描,如图5可知该站点是oracleweblogic server,且存在weblogic ssrf漏洞,由于本人实在是一个菜鸟,对ssrf漏洞利用只能探测内网端口,无法反弹shell,路过的大神求指点,如何利用weblogic ssrf进行反弹shell,小的在此先谢过了。因此发现既然是weblogic,还是java开发的(上面初步判断的),那就用java反序列化工具看看有没有这个漏洞。
图5 wvs扫描结果
1.5 发现weblogic反序列化漏洞
通过java反序列化漏洞利用工具验证,如图6可知,该漏洞是存在的,并且知道了当前用户及用户的当前目录等信息。
图6 验证漏洞存在
1.6 上传webshell
漏洞是存在的,并且可以利用,通过该漏洞,我们可以执行命令、文件管理、webshell上传,我们就选择webshell上传吧(增加工作量呀),但是上传我们需要一个我们能进行web访问的路径,如图7,但是路径在哪找呢?
图7 上传需要物理路径
1.7 寻找web路径
通过wvs,我们可以获取到相关路径,如图8,但是我们需要绝对路径,我们选择了其中一个使用locate进行查找,发现太多了,根本不好判断是哪一个,如图9所示。
图8 扫描发现的目录
图9 无法判断具体目录
这样就结束了吗?当然没有,在上次的文章中我说过,我们可以通过查看页面中的图片属性,然后来进行web路径的寻找。通过F12源码审查,我们可以获取到相关图片的路径,如图10,图11所示,此处选择图11的图片路径(因为我最先扫描目录扫出来的只有console,如图12)。
图10 web路径1
图11 web路径2
图12 目录扫描
1.8 查找绝对路径
通过获取到的图片名称及对应的目录,我们使用locate[图片名]进行查看,如图13,对比发现即可获取到绝对路径(图中第二条)。
图13 获取绝对路径
1.9 上传webshell
通过获取到的绝对路径及web路径,我们即可上传webshell,先上传一个小马试试(忘记截图了,参考下面的上传大马),但是我们连接不上,免杀的小马也试过了,就是不行,如图14,服务器500错误。不是k8上面有现成的k200pxd马吗,如图15,上传试试发现成功了,如图16,k200pxd马连接成功!但是操作很不方便,可能一时脑壳宕了,小马不行干嘛不上传大马,为啥总想中国菜刀呢(太爱国了),真是丢了西瓜捡了芝麻。
图14 小马连接失败
图15 k200pxd马代码获取
图16 k200pxd马连接成功
1.10 成功获得webshell
通过获取的物理路径及web路径,重新尝试上传大马,如图17所示,上传成功,最后访问大马成功,如图18所示。
图17 上传大马成功
图18 连接大马成功
1.11 总结
在本次渗透中,主要是对weblogic反序列化漏洞进行利用获取webshell,而上传的webshell要我们能访问,所以我们就需要获取web路径及web路径对应的物理路径,获取web路径一是可以扫目录看能不能发现,二可以查看源代码,看有没有相关信息,另外还有报错信息泄露路径等手段,本文主要是根据页面中图片的属性结合locate命令来寻找对应的关系。
另外在我上传小马过程中,总是不成功,虽然小马上传成功了(通过ls可以查看对应目录中的文件),但是访问不了,总是报500错误,菜刀也连接不上,于是想到使用k200pxd马进行上传(之前遇到过上传小马大马都不行,就上传k200pxd马可以),发现成功了,可能是固定思维,发现小马不能上传,一开始就没想到要上传大马,连上k200pxd马之后,感觉操作很不喜欢,才想到上传大马试试,最后上传大马成功!