最近一段时间都在捣鼓学校里拿下的一台老服务器,虽然说它所在的网段对于我的校园网来说并不算是内网了,但在这段时间里我也学习了很多的内网快速探测的技巧,很可惜没有再拿下一台机器。一方面是因为这台服务器有很长段时间没有管理员上线了,另一方面是因为在它同网段下的机器安全性还算不错(我的ms17-010都没有打成功) 但是这段时间的信息搜集和攻击手段都是值得来总结一下的,本文中采用msf作为后渗透主要工具,一切都已建立在得到了webshell的基础上了。
①这台服务器是否连接了内网中其他很多的服务器
②这台服务器对应的站点权值如何
③服务器的管理员是否经常上线
而这一次的渗透过程中,我其实是先从提权开始的,在多次失败之后才转向内网中其他的机器。
附上下载地址:
https://github.com/GDSSecurity/Windows-Exploit-Suggester
工具的配置使用就不过多介绍了,其中集成的漏洞库还是可以的,我检测出来的结果如下👇
刚开始发现还是有可利用的exp还是很开心的,后来发现这些其实都没办法使用,因为这台机器是Windows2008R2(但是可惜没有永恒之蓝 😭)
但是2008还有一个可利用的本地提权漏洞,也就是大家常说的烂土豆提权(又名ms16-075)
直接使用msf自带的exp,设置好payload和session就可以run了。但这个漏洞是要偷取管理员令牌来提权,所以是有几率的,像我试了好几次都没成功。payload我觉得要设置成bind类型,虽然获得了该机器的一个meterpreter会话,但payload中反弹的会话还是到本地的ip和端口。但是这里要提一点,bind连接一次会话,会在被攻击机器上开启一个监听端口,而且这个端口不会在服务结束后关闭。也就是说我们停掉了一次会话的话,下次bind再连接要换一个端口才可以。
而我们常用的反弹会话一般都要通过frp穿透到公网上的一台服务器,原理就是:被攻击机器反弹自己的shell给公网机器上的一个端口,而这台公网机器把这个端口的流量转发到我们自己内网机器的一个端口,我们在本地监听这个端口就可以获得会话了。frp内网穿透网上有很多教程了,后续我也会自己再弄一个服务器来做frp(现在用的是大哥的 😀)
一夜过去了......
在我的jsp课程上打开了电脑正准备大干一场!一看我的frp无法连接上了!!!我靠,这不会意味着我以后都不能内网穿透了吧!重装虚拟机,配置frp服务器,一顿操作还是没修好,后来发现,可能是我昨天晚上没正常关闭frp客户端,导致服务端拒绝连接了。
然后我就打开了冰蝎连接webshell,准备在服务器上看看有没有什么敏感的文件(比如数据库)然后就发现了两个文件!web.config,mssql的连接账号密码地址一般会放在这里。
我发现了一个内网的地址,但是这个连接地址是带有domain的,要通过sqlserver来连接,所以先放在一旁,来先试试这个218的地址(因为218我是可以直接访问的)一开始我是用大马来连接数据库的,但其实msf也有一些mssql的模块很好用。比如先用mssql_login来测试账号密码是否正确,再用exploit/windows/mssql/mssql_clr_payload 这个模块来获得一个meterpreter会话(也要设置payload为bind模式)
但是这里我们看到mimikatz导出的明文密码,发现只有test用户,这是我之前用大马连数据库创建的,为什么没有administrator呢?因为管理员并没有在线,所以此时我们从在线的用户中导不出它的明文密码。但是我们可以导出administrator的hash值,然后再去彩虹表碰撞。这里我们可以使用hashdump或者msf自带的模块(mimikatz_command -f samdump::hashes)
我们先加一条路由到这台机器的内网网段中,(run get_local_subnets命令用于获取内网网段)当然也可以用arp -a来看。接着使用 run autoroute -s xxx.xxx.xxx.xxx/28 就可以加路由到该网段中了,最好再用-p参数打印出来当前的路由表来看看是否成功。当然,我们也可以使用socks来做流量转发。因为加路由只能让我们的机器在msf里访问它的内网,而想要用浏览器来访问内网中的机器的话,我们就要做一个socks的流量转发,操作很简单。
然后我们建立一个工作区用于存储扫描的机器有关的信息,具体的操作如下
msf5 > workspace -a/-d demo 添加/删除工作区
msf5 > workspace demo 选择工作区
msf5 > workspace 查看当前所在的工作区
msf5 > db_rebuild_cache 在后台创建 msf 表结构[所谓的缓存],说白点儿,就是个建库,建表,建字段,写数据[将 msf 中的所有模块路径都写到指定的字段[该字段一般都会加索引]下,加快查询速度] 的过程
msf5 > db_connect 连接到指定的数据库上,如, db_connect msf:[email protected]/msf
msf5 > db_disconnect 断开数据库 msf5 > db_export 把库中的数据导出到指定文件中
msf5 > db_import 把指定文件中的数据导到库中
msf5 > db_nmap 在 msf 内部调用 nmap 对目标内网进行各种扫描探测
msf5 > db_status 查看当前数据库的连接状态
msf5 > hosts 根据前面的各种结果,查看库中所有的机器列表
msf5 > loot 根据前面的各种结果,查看密码库
msf5 > services 根据前面的各种结果,查找特定服务,通常是指可被快速 getshell 的漏洞服务
msf5 > vulns 根据前面的各种结果,查找存在漏洞的主机,在前面利用的一些漏洞模块扫描时,会自动把扫描结果记录下来
msf5 > workspace 建立工作区
首先使用ms17-010的检测模块来探测是性价比最高的,因为永恒之蓝漏洞一旦攻击成功就是system权限,对于我们的渗透非常有利。这里可以看到我们已经探测出有两台机器存在永恒之蓝漏洞,不过我在尝试攻击之后再次失败了。还有一台2003的32位的机器,这个我不知道到底能不能攻击,我用了32位的exp去攻击并没有成功,可能不支持2003版本的机器吧。
然后可以探测ms08-067的漏洞,msf上并没有scanner模块,但是nmap里集成了扫描模块,所以我们直接用nmap的模块(nmap里还有很多其他的漏洞探测模块 /usr/share/nmap/scripts下)
后面的一些探测就直接以命令的形式记录,不再附上截图(太麻烦了😭)
use auxiliary/scanner/http/http_put 探测内网中可直接利用put方法的机器,直接getshell
use auxiliary/scanner/http/webdav_scanner 探测内网中开启了web服务的机器
use auxiliary/scanner/rdp/rdp_scanner 探测开启3389的机器,爆破,撞库
use auxiliary/scanner/ssh/ssh_version 探测开启22端口的机器,爆破,撞库
use auxiliary/scanner/postgres/postgres_version
use auxiliary/scanner/mysql/mysql_version
use auxiliary/scanner/mssql/mssql_ping 探测三种数据库,mssql应该用处更大一些
还有很多可探测的服务我就没有一一列出来,我都是照着micro8的渗透技术分享来的。
相关实操推荐——EternalBlue漏洞利用复现,可点击文末“阅读原文”预览学习!
别忘了投稿哦
大家有好的技术原创文章
欢迎投稿至邮箱:[email protected]
合天会根据文章的时效、新颖、文笔、实用等多方面评判给予200元-800元不等的稿费哦
有才能的你快来投稿吧!
了解投稿详情点击——重金悬赏 | 合天原创投稿涨稿费啦!