跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

渗透基础——获得交换服务器的内网互联网协议(互联网协议)


轩辕三官

推荐的帖子

0x00 前言

在渗透测试中,为了搜集信息,常常需要从外网获得交换服务器的内网IP,公开资料显示多级闪蒸的辅助/扫描仪/http/owa_iis_internal_ip插件支持这个功能,但是这个插件公开于2012年,已不再适用于Exchange 2013、2016和2019,本文将要介绍一种更为通用的方法,开源代码,记录细节。

0x01 简介

本文将要介绍以下内容:

owa _ iis _内部_ip插件介绍

更为通用的方法

计算机编程语言开源代码

0x02 owa_iis_internal_ip插件介绍

多级闪蒸的辅助/扫描仪/http/owa_iis_internal_ip插件支持探测交换服务器的内网IP,对应氧化钾系统下的位置为:/usr/share/metasploit-framework/modules/auxiliary/scanner/http/OWA _ IIS _内部_ IP。铷

开源代码库上的地址为:https://github。com/rapid 7/metasploit-framework/blob/master/modules/auxiliary/scanner/http/OWA _ IIS _内部_ IP。铷

通过阅读源码,可以总结出实现原理:

设置超文本传送协议协议为1.0并访问特定统一资源定位器

在返回数据中,如果状态码为401,在页眉中的' WWW-Authenticate '会包含内网互联网协议(互联网协议)

在返回数据中,如果状态码位于300和310之间,在页眉中的'位置'会包含内网互联网协议(互联网协议)

在提取互联网协议(互联网协议)时,使用正则表达式(192\.168\.[0-9]{1,3}\.[0-9]{1,3}|10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}|172\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}),这里存在bug:只能筛选出格式为'192.168.*.*'的内网互联网协议(互联网协议)

为了修复这个bug,可以将正则表达式修改为([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}|10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}|172\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})

注:

修改插件后需要执行命令重新加载_全部来重新加载多级闪蒸插件

修复上面的病菌后,我在测试Exchange 2013、2016和2019时仍然无法获得准确的内网互联网协议(互联网协议)

0x03 更为通用的方法

这里给出一种基于owa _ iis _内部_ip插件的方法,使用计算机编程语言实现,适用范围更广

思路如下:

利用计算机编程语言设置超文本传送协议协议为1.0并访问特定URL,在报错结果中暴露出交换服务器的内网互联网协议(互联网协议)

需要细节如下:

(1)Python设置HTTP协议为1.0

Python2:

导入请求

导入httplib

http lib。http连接。_ http _ vsn=10

HTTP lib。HTTP连接。_ HTTP _ vsn _ str=' HTTP/1.0 '

Python3:

导入请求

从超文本传送协议(Hyper Text Transport Protocol的缩写)导入客户端

客户。http连接。_ http _ vsn=10

客户。HTTP连接。_ HTTP _ vsn _ str=' HTTP/1.0 '

(2)设置访问URL

owa _ iis _内部_ip插件中提到的网址:

URL=['/Microsoft-Server-ActiveSync/default。eas ',

/Microsoft-Server-ActiveSync ',

/Autodiscover/Autodiscover.xml ',

/自动发现,

/Exchange ',

/Rpc ',

/EWS/Exchange.asmx ',

/EWS/Services.wsdl ',

/EWS ',

/ecp ',

/OAB ',

/OWA ',

/aspnet_client ',

/PowerShell']

经过多个环境的测试,更为精确的统一资源定位器如下:

URL=['/OWA ',

/自动发现,

/Exchange ',

/ecp ',

/aspnet_client']

(3)测试代码

#python3

导入请求

导入urllib3

urllib3.disable_warnings()

从超文本传送协议(Hyper Text Transport Protocol的缩写)导入客户端

客户。http连接。_ http _ vsn=10

客户。HTTP连接。_ HTTP _ vsn _ str=' HTTP/1.0 '

尝试:

url='https://mail.test.com/OWA '

response=requests.get(url,verify=False)

打印(响应。状态_代码)

打印(响应。文本)

打印(响应。标题)

例外情况为e:

打印(五)

回显结果:

https连接池(主机=' 192。168 .1 .1 ',port=443):URL:/OWA/认证/登录。aspx超过了最大重试次数?URL=https://192。168 .1 .1/OWA/原因=0(由NewConnectionError(':无法建立新连接:[WinError 10060]连接尝试失败,因为被连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机没有响应'))

从报错信息中,我们可以看到交换服务器的IP,这里只需要加一个正则表达式主机='(0 .*?)',即可提取出来互联网协议(互联网协议)

0x04 开源代码

完整的实现代码已上传至github,地址如下:

https://github . com/3g student/Homework-of-Python/blob/master/Exchange _ get internal IP . py

代码支持5种检测内部网IP的方法。

目前测试结果显示,该脚本支持Exchange 2010、2013、2016、2019,可以稳定获取内网IP。

0x05 小结

本文分析了msf的辅助/scanner/http/OWA _ IIS _ internal _ IP插件,给出了一个更通用的方法,即开源代码,来获取Exchange server的内网IP,并记录详细信息。

留下回复

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...