Кальдера через SSL
Я пытаюсь настроить кальдеру через https, но у меня возникли проблемы. Я выполнил инструкции, приведенные в документации (https://caldera.readthedocs.io/en/latest/Plugin-library.html), но вот что у меня есть:
┌──(root㉿kali)-[/home/kali/Desktop/caldera]
└─# cd plugins/ssl
┌──(root㉿kali)-[/home/…/Desktop/caldera/plugins/ssl]
└─# openssl req -x509 -newkey rsa:4096 -out conf/certificate.pem -keyout conf/certificate.pem -nodes
(Key generation and questions....)
┌──(root㉿kali)-[/home/…/Desktop/caldera/plugins/ssl]
└─# cp templates/haproxy.conf ./conf
┌──(root㉿kali)-[/home/…/Desktop/caldera/plugins/ssl]
└─# nano conf/haproxy.conf
┌──(root㉿kali)-[/home/…/Desktop/caldera/plugins/ssl]
└─# cd ../..
┌──(root㉿kali)-[/home/kali/Desktop/caldera]
└─# python3 server.py --fresh --insecure -P ssl
2023-08-08 13:39:22 - WARNING (server.py:118 <module>) --insecure flag set. Caldera will use the default.yml config file.
2023-08-08 13:39:22 - INFO (server.py:125 <module>) Using main config from conf/default.yml
2023-08-08 13:39:23 - INFO (server.py:151 <module>) Fresh startup: resetting server data. See data/backup directory for data backups.
2023-08-08 13:39:23 - ERROR (app_svc.py:173 validate_requirement) go does not meet the minimum version of 1.11
2023-08-08 13:39:23 - INFO (contact_gist.py:70 start) Invalid Github Gist personal API token provided. Gist C2 contact will not be started.
2023-08-08 13:39:23 - INFO (tunnel_ssh.py:26 start) Generating temporary SSH private key. Was unable to use provided SSH private key
2023-08-08 13:39:23 - INFO (app_svc.py:116 load) Enabled plugin: ssl
2023-08-08 13:39:23 - INFO (logging.py:92 log) Creating SSH listener on 0.0.0.0, port 8022
2023-08-08 13:39:23 - INFO (server.py:741 start) serving on 0.0.0.0:2222
2023-08-08 13:39:23 - INFO (server.py:73 run_tasks) All systems ready.
2023-08-08 13:39:28 - ERROR (base_events.py:1771 default_exception_handler) Task exception was never retrieved
future: <Task finished name='Task-29' coro=<_check_using_default_cert() done, defined at /home/kali/Desktop/caldera/plugins/ssl/hook.py:24> exception=ConnectionRefusedError(111, 'Connection refused')>
Traceback (most recent call last):
File "/home/kali/Desktop/caldera/plugins/ssl/hook.py", line 26, in _check_using_default_cert
server_cert = get_server_certificate(('127.0.0.1', 8443))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/ssl.py", line 1527, in get_server_certificate
with create_connection(addr, timeout=timeout) as sock:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/socket.py", line 851, in create_connection
raise exceptions[0]
File "/usr/lib/python3.11/socket.py", line 836, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused
Файлы, которые я изменил, следующие:
плагины/ssl/conf/haproxy.conf
bind *:8443 ssl crt plugins/ssl/conf/insecure_certificate.pem
к
bind *:8443 ssl crt plugins/ssl/conf/certificate.pem
conf/default.yml (часть плагина)
plugins:
- access
- atomic
- compass
- debrief
- fieldmanual
- manx
- response
- sandcat
- stockpile
- training
к
plugins:
- access
- atomic
- compass
- debrief
- fieldmanual
- manx
- response
- sandcat
- stockpile
- training
- ssl
И те же изменения в local.yml
Почему это дает мне ошибку, показанную выше? Сертификат существует, поэтому я не понимаю, почему у меня возникают проблемы. Это похоже на то, что сервер https никогда не запускается, порт 8443 никогда не открывается, и он пытается получить сертификат, но порт 8443 закрыт.