Honeypot SSH/Telnet. Сowrie: различия между версиями
Cless (обсуждение | вклад) (Новая страница: «Категория:Honeypot») |
Cless (обсуждение | вклад) |
||
| Строка 1: | Строка 1: | ||
[[Категория:Honeypot]] | [[Категория:Honeypot]] | ||
== Ссылки == | |||
https://github.com/cowrie/cowrie | |||
== Установка == | |||
Зависимости | |||
<code>yum install git python36-virtualenv openssl-devel libffi-devel python3-devel python3</code> | |||
<code>yum groupinstall 'Development Tools'</code> | |||
Cowrie | |||
<code>cd /opt/</code> | |||
<code>git clone <nowiki>http://github.com/cowrie/cowrie</nowiki></code> | |||
Добавляем пользователя и права | |||
<code>adduser cowrie</code> | |||
<code>chown -R cowrie:cowrie /opt/cowrie</code> | |||
Разрешаем порты <1024 (22,23) для непривилегированных приложений (python) | |||
<code>yum localinstall -y <nowiki>https://s3.amazonaws.com/aaronsilber/public/authbind-2.1.1-0.1.x86_64.rpm</nowiki></code> | |||
<code>touch /etc/authbind/byport/22</code> | |||
<code>chown cowrie:cowrie /etc/authbind/byport/22</code> | |||
<code>chmod 770 /etc/authbind/byport/22</code> | |||
<code>touch /etc/authbind/byport/23</code> | |||
<code>chown cowrie:cowrie /etc/authbind/byport/23</code> | |||
<code>chmod 770 /etc/authbind/byport/23</code> | |||
<code>nano /opt/cowrie/etc/cowrie.cfg</code> | |||
[honeypot] | |||
hostname = server01 | |||
... | |||
<code>nano /opt/cowrie/etc/userdb.txt</code> | |||
root:x:* | |||
tomcat:x:* | |||
oracle:x:* | |||
admin:x:* | |||
VAR 1: | |||
COWRIE MANUAL RUN FOR TEST | |||
--- | |||
# su cowrie | |||
su - cowrie | |||
cd /opt/cowrie | |||
# change cowrie-honeypot ssh, telnet ports to standart 22,23 | |||
nano /opt/cowrie/etc/cowrie.cfg | |||
... | |||
[telnet] | |||
enabled = true | |||
listen_endpoints = tcp:23:interface=0.0.0.0 | |||
[ssh] | |||
listen_endpoints = tcp:22:interface=0.0.0.0 | |||
--- | |||
# create virtialenv | |||
virtualenv-3 --python=python3 cowrie-env | |||
# run virtenv | |||
source cowrie-env/bin/activate | |||
# install py deps | |||
(cowrie-env) $ pip install --upgrade pip | |||
(cowrie-env) $ pip install --upgrade -r requirements.txt | |||
# run honeypot app | |||
bin/cowrie start | |||
VAR 2: | |||
COWRIE AS SERVICE AND AUTOSTART | |||
--- | |||
nano /opt/cowrie/etc/cowrie.cfg | |||
... | |||
[ssh] | |||
listen_endpoints = systemd:domain=INET6:index=0 | |||
[telnet] | |||
enabled = true | |||
listen_endpoints = systemd:domain=INET6:index=1 | |||
--- | |||
nano /etc/systemd/system/cowrie.socket | |||
--- | |||
[Unit] | |||
Description=Cowrie SSH and Telnet honeypot socket | |||
PartOf=cowrie.service | |||
[Socket] | |||
ListenStream=22 | |||
ListenStream=23 | |||
[Install] | |||
WantedBy=sockets.target | |||
--- | |||
nano /etc/systemd/system/cowrie.service | |||
--- | |||
[Unit] | |||
Description=A SSH and Telnet honeypot service | |||
After=network.target | |||
After=rsyslog.service | |||
Requires=cowrie.socket | |||
[Service] | |||
User=cowrie | |||
Group=cowrie | |||
Restart=always | |||
RestartSec=5 | |||
Environment=PYTHONPATH=/opt/cowrie/src | |||
WorkingDirectory=/opt/cowrie | |||
ExecStart=/opt/cowrie/cowrie-env/bin/python /opt/cowrie/cowrie-env/bin/twistd --umask 0022 --nodaemon --logger cowrie.python.logfile.logger --pidfile= -l - cowrie | |||
StandardOutput=syslog | |||
StandardError=syslog | |||
SyslogIdentifier=cowrie | |||
[Install] | |||
WantedBy=multi-user.target | |||
--- | |||
systemctl daemon-reload | |||
systemctl enable cowrie | |||
systemctl start cowrie | |||
VAR 3: | |||
# !!! OLD - DON'T USE !!! | |||
# AUTOSTART AT BOOT | |||
# CURVY, BUT IT WORKS | |||
--- | |||
nano /opt/cowrie/cowrie_start.sh | |||
--- | |||
#!/bin/bash | |||
su -m cowrie -c """/bin/bash -c 'cd /opt/cowrie/ && source cowrie-env/bin/activate && bin/cowrie start'""" | |||
--- | |||
nano /opt/cowrie/cowrie_stop.sh | |||
--- | |||
#!/bin/bash | |||
su -m cowrie -c """/bin/bash -c 'cd /opt/cowrie/ && source cowrie-env/bin/activate && bin/cowrie stop'""" | |||
--- | |||
nano /etc/systemd/system/cowrie.service | |||
--- | |||
[Unit] | |||
Description=cowrie | |||
Requires=network.target | |||
After=network.target | |||
[Service] | |||
WorkingDirectory=/opt/cowrie | |||
ExecStart=/opt/cowrie/cowrie_start.sh | |||
Type=forking | |||
Restart=on-failure | |||
RestartSec=60s | |||
[Install] | |||
WantedBy=multi-user.target | |||
--- | |||
systemctl daemon-reload | |||
systemctl enable cowrie | |||
systemctl start cowrie | |||
reboot | |||
<nowiki>#</nowiki> TEST | |||
<nowiki>#</nowiki> AT HONEYPOT HOST | |||
netstat -luptn | |||
... | |||
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 18737/python3 | |||
tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN 18737/python3 | |||
... | |||
<nowiki>#</nowiki> AT OTHER HOST | |||
ssh root@<honeypot_host> | |||
<nowiki>#</nowiki> AT HONEYPOT HOST | |||
<nowiki>#</nowiki> session logs (json) | |||
nano /opt/cowrie/var/log/cowrie/cowrie.log | |||
nano /opt/cowrie/var/log/cowrie/cowrie.json | |||
<nowiki>#</nowiki> play session binary record (COOL!) | |||
python3.6 /opt/cowrie/bin/playlog /opt/cowrie/var/lib/cowrie/tty/e37915d299d57dd525db26f1af1a22b5450885d98408d9922a8d084f6e12b131 | |||
Версия 12:20, 8 января 2022
Ссылки
https://github.com/cowrie/cowrie
Установка
Зависимости
yum install git python36-virtualenv openssl-devel libffi-devel python3-devel python3
yum groupinstall 'Development Tools'
Cowrie
cd /opt/
git clone http://github.com/cowrie/cowrie
Добавляем пользователя и права
adduser cowrie
chown -R cowrie:cowrie /opt/cowrie
Разрешаем порты <1024 (22,23) для непривилегированных приложений (python)
yum localinstall -y https://s3.amazonaws.com/aaronsilber/public/authbind-2.1.1-0.1.x86_64.rpm
touch /etc/authbind/byport/22
chown cowrie:cowrie /etc/authbind/byport/22
chmod 770 /etc/authbind/byport/22
touch /etc/authbind/byport/23
chown cowrie:cowrie /etc/authbind/byport/23
chmod 770 /etc/authbind/byport/23
nano /opt/cowrie/etc/cowrie.cfg
[honeypot] hostname = server01 ...
nano /opt/cowrie/etc/userdb.txt
root:x:* tomcat:x:* oracle:x:* admin:x:*
VAR 1:
COWRIE MANUAL RUN FOR TEST
---
# su cowrie
su - cowrie
cd /opt/cowrie
# change cowrie-honeypot ssh, telnet ports to standart 22,23
nano /opt/cowrie/etc/cowrie.cfg
...
[telnet]
enabled = true
listen_endpoints = tcp:23:interface=0.0.0.0
[ssh]
listen_endpoints = tcp:22:interface=0.0.0.0
---
# create virtialenv
virtualenv-3 --python=python3 cowrie-env
# run virtenv
source cowrie-env/bin/activate
# install py deps
(cowrie-env) $ pip install --upgrade pip
(cowrie-env) $ pip install --upgrade -r requirements.txt
# run honeypot app
bin/cowrie start
VAR 2:
COWRIE AS SERVICE AND AUTOSTART
---
nano /opt/cowrie/etc/cowrie.cfg
...
[ssh]
listen_endpoints = systemd:domain=INET6:index=0
[telnet]
enabled = true
listen_endpoints = systemd:domain=INET6:index=1
---
nano /etc/systemd/system/cowrie.socket
---
[Unit]
Description=Cowrie SSH and Telnet honeypot socket
PartOf=cowrie.service
[Socket]
ListenStream=22
ListenStream=23
[Install]
WantedBy=sockets.target
---
nano /etc/systemd/system/cowrie.service
---
[Unit]
Description=A SSH and Telnet honeypot service
After=network.target
After=rsyslog.service
Requires=cowrie.socket
[Service]
User=cowrie
Group=cowrie
Restart=always
RestartSec=5
Environment=PYTHONPATH=/opt/cowrie/src
WorkingDirectory=/opt/cowrie
ExecStart=/opt/cowrie/cowrie-env/bin/python /opt/cowrie/cowrie-env/bin/twistd --umask 0022 --nodaemon --logger cowrie.python.logfile.logger --pidfile= -l - cowrie
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=cowrie
[Install]
WantedBy=multi-user.target
---
systemctl daemon-reload
systemctl enable cowrie
systemctl start cowrie
VAR 3:
# !!! OLD - DON'T USE !!!
# AUTOSTART AT BOOT
# CURVY, BUT IT WORKS
---
nano /opt/cowrie/cowrie_start.sh
---
#!/bin/bash
su -m cowrie -c """/bin/bash -c 'cd /opt/cowrie/ && source cowrie-env/bin/activate && bin/cowrie start'"""
---
nano /opt/cowrie/cowrie_stop.sh
---
#!/bin/bash
su -m cowrie -c """/bin/bash -c 'cd /opt/cowrie/ && source cowrie-env/bin/activate && bin/cowrie stop'"""
---
nano /etc/systemd/system/cowrie.service
---
[Unit]
Description=cowrie
Requires=network.target
After=network.target
[Service]
WorkingDirectory=/opt/cowrie
ExecStart=/opt/cowrie/cowrie_start.sh
Type=forking
Restart=on-failure
RestartSec=60s
[Install]
WantedBy=multi-user.target
---
systemctl daemon-reload
systemctl enable cowrie
systemctl start cowrie
reboot
# TEST
# AT HONEYPOT HOST
netstat -luptn
...
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 18737/python3
tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN 18737/python3
...
# AT OTHER HOST
ssh root@<honeypot_host>
# AT HONEYPOT HOST
# session logs (json)
nano /opt/cowrie/var/log/cowrie/cowrie.log
nano /opt/cowrie/var/log/cowrie/cowrie.json
# play session binary record (COOL!)
python3.6 /opt/cowrie/bin/playlog /opt/cowrie/var/lib/cowrie/tty/e37915d299d57dd525db26f1af1a22b5450885d98408d9922a8d084f6e12b131