小编给大家分享一下如何解决使用python批量扫描SMTP 25未授权访问问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!测试某系统过程中发现很多服务器都开了25和110端口,但是不确定是不是真的邮件服务端口,所以打算尝试复现下漏洞。SMTP(S免费云主机域名imple Mail Transfer Protocol),简单邮件传输协议是一种可靠且有效的电子邮件传输协议。但是在设计之初,他并没有添加身份验证的机制,导致任意用户可以连接到SMTP服务器进行邮件发送的操作。当然经过这么多年,已经有了SMTP-AUTH扩展来保证其安全性。由于其巨大的基数,导致大量因为设置导致未开启验证或者旧版不支持SMTP-AUTH的STMP仍在现网环境运行,导致大量的垃圾/诈骗邮件依然在网上传播,于是有了这篇文章来记录下学习的过程。为了保证环境真实可控,还是自己搭一个吧。系统环境选择了kali 2020.1,毕竟省事,还能点到专栏名字,血赚。现在最简单安装这些服务环境的方法就是docker了。选一个STARS最多的就好了。这个时候如果你条件有限用的是公司小水管,就可能会发现下载很慢很慢,这时候要切一下国内源:然后添加如下内容:添加后重启docker:下载就起飞了
然后开启docker:尝试使用telnet或者nc连接一下(系统里有哪个就用哪个,都行)可以看到返回了220,说明了连接成功输入HELP可以看到支持的指令使用EHLO或者HELO对服务器打个招呼~
可以看到服务器返回了250。继续编写 MAIL FROM: 这是指定发件人:然后编写RCPT TO: 这是指定收件人:然后输入DATA开始编写内容,并且以单独的一行中只有一个”.”来标识邮件内容结束:
可以看到最后依然是250 OK,id后面是邮件的队列,说明添加邮件成功。可以用QUIT来退出连接了。(小写也可以呦)这样就是一个完整的连接流程了。总结一下:使用telnet或者nc连接smtp服务的25端口,连接成功返回220使用EHLO xxxx 或者 HELO xxxx ,连接成功返回250使用MAIL FROM: 指定发件人,设置成功返回250使用RCPT TO: 指定收件人,设置成功返回250使用DATA写入邮件内容,以单行的“.”结束,编写成功返回250,并且返回队列id使用QUIT退出连接为了获取存在问题的环境,在FOFA中搜索可以获取到国内的开启默认端口的主机IP地址,选国内是为了连接速度快。##开始利用尝试使用telnet连接可以连接成功尝试使用EHLO命令,看看会不会返回支持的扩展:然后,继续MAIL FROM和RCPT TO,会发现需要认证。哦吼吼,继续看看别的。看到一个没有AUTH扩展的,尝试连接一下:一套操作下来,稳健:
可能批量扫描扫描出的25端口很多,一个一个测过去很麻烦,需要一个方法进行批量扫描。这里需要解决两个问题,确定NMAP没有误报,扫描出的25端口的确是smtp服务尝试获取smtp服务能否匿名发送邮件,判断的依据就是不会返回553代码如果用python调用telnet,虽然subprocess可以直接调用telnet,但是执行时不能正确返回telnet命令的结果(处理起来太麻烦了)。所以只能用python telnetlib的库来实现(直接调用shell里的命令有时候真的弱爆了)导入的格式目前是 xx.xx.xx.xx:xx 但是目前只写了针对25默认端口导入的需要是一个格式为 ip:port 的文件,因为懒,所以只写了25端口,机智如你,肯定可以随便改好的。检测smtp其实nmap有对应的脚本,只是没有看到匿名模式的,所以才自己尝试写了一下,其他的可以参考这些:
以上是“如何解决使用python批量扫描SMTP 25未授权访问问题”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注云编程开发博客行业资讯频道!
小编给大家分享一下解决网页证书过期的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!现在网上信息的保护越来越重要,我们要防止自己的私人信息呗别人盗走,进行不法的违规操作。由此可见,网络证书是一个相当重要的东西。对于网络证书,很多人有个人疑惑,怎…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。