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

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

    TheHackerWorld官方

邮件启用开发指南


KaiWn

推荐的帖子

0x00 前言

邮件启用提供端到端的解决方案,用于提供安全的电子邮件和协作服务。引用自官方网站的说法:最近的一项独立调查报告称邮件启用是世界上最受欢迎的Windows操作系统操作系统邮件服务器平台。

对于邮件启用的开发者API,我在官方网站上只找到了AJAX API的说明文档,所以本文将要尝试编写计算机编程语言脚本,实现对邮件启用邮件的访问,记录开发细节,开源代码。

0x01 简介

本文将要介绍以下内容:

环境搭建

开发细节

开源代码MailEnableManage.py

0x02 环境搭建

1.安装

安装前需要安装(同移民检查员移民检查)服务和。净3.5,否则无法正常配置网访问

邮件启用下载地址:http://www。启用邮件。com/下载。动态服务器页面

2.配置

启动MailEnableAdmin.msc,在邮件启用管理-邮件管理器-邮局下配置邮件服务器信息

如下图

2-1.png

默认登录页面:

http://邮箱。localhost/me webmail/Mondo/lang/sys/log in。aspx

3.开启Web管理页面

参考资料:

http://www.mailenable.com/kb/content/article.asp?ID=ME020132

启动MailEnableAdmin.msc,选择邮件启用管理-服务器-本地主机-服务和连接器-WebAdmin,右键单击并从弹出菜单中选择属性,选择安装使成形.按钮,进行安装

如下图

2-2.png

启动MailEnableAdmin.msc,在邮件启用管理-邮件管理器-邮局下选择已配置的邮局,右键单击并从弹出菜单中选择属性,切换到网站管理员标签,启用网站管理

如下图

2-3.png

选择指定用户,将属性修改为管理员

默认管理页面:

http://mewebmail.localhost/meadmin/Mondo/lang/sys/login.aspx

注:

如果忘记了用户的明文口令,可以查看默认安装路径丙:\程序文件(x86)\邮件启用\配置下的认证标签文件,其中保存有每个邮箱用户的明文口令

0x03 开发细节

1.版本判断

经过多个版本的测试,总结出来的版本判断方法如下:

访问登录页面:http:///me webmail/Mondo/lang/sys/log in。aspx

查看网页源码,如下图

3-1.png

其中中的v=9.84对应邮件启用的版本

在脚本实现上,我采用了如下方法:

找到?v=的位置

向后截取固定长度的字符串

以'作为分隔符,取出版本号

补充:通过MailEnableAdmin.msc获得版本号

启动MailEnableAdmin.msc,选择邮件启用管理-服务器-本地主机-系统-诊断

如下图

3-2.png

注:版本号列表

http://www.mailenable.com/Premium-ReleaseNotes.txt

http://www.mailenable.com/Standard-ReleaseNotes.txt

2.用户登录

访问URL:/me webmail/Mondo/Servlet/request。aspx

需要的部分关键参数:

txtUsername

文本文件(textfile)密码

loginParam

返回结果为json格式,如果登录成功,bReportLoginFailure的值为错误的

对应的计算机编程语言代码如下:

定义检查(主机、用户名、密码):

URL=host '/me webmail/Mondo/Servlet/request。aspx,”' Cmd=LOGINFormat=JSON '

body={

txtUsername ':用户名,

txtPassword ':密码,

ddlLanguages': 'en ',

'北极,

loginParam':'SubmitLogin '

}

postData=urllib。解析。urlencode(正文).编码(“utf-8”)

标题={

用户代理”:“Mozilla/5.0(X11;Linux x86 _ 64rv:52.0)壁虎/20100101火狐/52.0 ',

content-Type ':' application/x-www-form-urlencoded ',

}

r=requests.post(url,headers=headers,data=postData,verify=False)

如果r .状态代码==200且r . JSON()[' bReportLoginFailure ']==False:

打印('[ ]有效:% s % s“%(用户名,密码))

否则:

打印(r。状态_代码)

打印(正文)

关闭()

3.查看邮箱文件夹

访问URL:/me webmail/Mondo/Servlet/async请求。aspx

需要的部分关键参数:

文件夹,可以指定为收件箱/已发送/草稿/已删除/垃圾邮件

ME_VALIDATIONTOKEN,需要访问/me webmail/Mondo/Servlet/request。aspx?Cmd=获取MBX选项范围=2,从返回结果中获得

返回结果为可扩展标记语言格式,包含该文件夹下所有邮件的数量和每个邮件的简要内容,ID作为每封邮件的唯一标志,在读取邮件时需要作为参数

为了提高效率,可以使用xml.dom解析可扩展标记语言

使用xml.dom解析可扩展标记语言的参考资料:

https://份文件。python。org/3.8/库/XML。多姆。迷你王国。html # XML。多姆。迷你王国。从语法上分析

使用xml.dom解析xml,提取出合计_项的计算机编程语言代码如下:

从xml.dom导入迷你王国

DOM树=minidom。解析字符串(r . text)

集合=DOM树。文档元素

总计=集合。获取属性(' TOTAL _ ITEMS ')

打印('[ ]合计_项目: '合计)

4.查看邮件

访问URL:/me webmail/Mondo/Servlet/request。aspx

需要的部分关键参数:

文件夹,可以指定为收件箱/已发送/草稿/已删除/垃圾邮件

ME_VALIDATIONTOKEN,需要访问/me webmail/Mondo/Servlet/request。aspx?Cmd=获取MBX选项范围=2,从返回结果中获得

ID,需要发送查看邮箱文件夹的请求,在返回结果中获得

返回结果为可扩展标记语言格式,包含邮件的详细内容,如果存在附件,那么附件的存在属性值为1,如果不存在附件,那么附件的存在属性值为0

MESSAGEID作为附件的标志,如果包含多个附件,多个附件共享同一个MESSAGEID,文件名为附件的名称,MESSAGEID文件名作为附件的唯一标志,在下载附件时需要作为参数

为了提高效率,可以使用xml.dom解析可扩展标记语言

可扩展标记语言数据示例如下图

3-3.png

解析可扩展标记语言提取邮件信息的计算机编程语言代码如下:

DOM树=minidom。解析字符串(r . text)

集合=DOM树。文档元素

元素=集合。getelementsbytagname("ELEMENT ")

id=元素[0]。getAttribute('ID ')

打印('[ ] ID : ' id

fromaddress=element[0].getElementsByTagName(' FROM _ ADDRESS ')

print(' From : ' fromaddress[0]).子节点[0]。数据)

至=元素[0]。getElementsByTagName('TO ')

打印('收件人: '收件人[0])。子节点[0]。数据)

subject=element[0].getElementsByTagName("主题")

print(' Subject : ' subject[0]).子节点[0]。数据)

已接收=元素[0]。getElementsByTagName('RECEIVED ')

打印('已接收: '已接收[0]。子节点[0]。数据)

body=element[0].getElementsByTagName("BODY ")

if len(body[0].子节点)0:

print(' BODY : ' body[0].子节点[0]。数据)

附件=元素[0]。getElementsByTagName('附件)

存在=附件[0]。getAttribute('EXISTS ')

如果存在=='1 ':

messageid=附件[0]。getElementsByTagName(' MESSAGEID ')

print(' Attachments:' messageid[0].子节点[0]。数据)

项目=附件[0]。getElementsByTagName("ITEM ")

对于项目中的项目:

打印('名称:'项目。getelementsbytagname(' FILENAME ')[0].子节点[0]。数据)

打印('大小:'项目。getelementsbytagname(' SIZE ')[0].子节点[0]。数据)

5.下载附件

访问网址:/MEWebMail/Mondo/lang/sys/Forms/MAI/get attachment。aspx

需要的部分关键参数:

文件夹,可以指定为收件箱/已发送/草稿/已删除/垃圾邮件

MessageID,需要发送查看邮件的请求,在返回结果中获得

文件名,需要发送查看邮件的请求,在返回结果中获得

在保存附件上,需要区分文本格式和二进制格式

0x04 开源代码

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

https://github。com/3g学生Python的家庭作业/blob/master/mailenablemanage。巴拉圭

代码支持以下功能:

获取版本,版本判断

检查,登录验证

列表文件夹,查看文件夹,命令行显示邮件数量,完整内容保存至文件

查看邮件,查看邮件,命令行显示邮件信息,完整内容保存至文件

下载附件,下载附件

0x05 小结

本文介绍了编写计算机编程语言脚本访问邮件启用邮件的开发细节,开源代码MailEnableManage.py,实现了版本判断、登录验证、查看文件夹、查看邮件和下载邮件的功能

留下回复

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

黑客攻防讨论组

黑客攻防讨论组

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

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