0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

systemd socket と shell script で作る簡易 honeypot

Last updated at Posted at 2025-01-19

標準入出力にログインプロンプトを表示して相手の入力を記録するだけの honeypot

/var/tmp/honeypot/honeypot.sh
#!/bin/sh                                                                                                                                                                                       
logfile=/var/tmp/honeypot/honeypot.txt
exec 2>>$logfile
date >>$logfile
echo "from $REMOTE_ADDR $REMOTE_PORT" >>$logfile
echo -n 'login: '
read content
echo "login: $content" >>$logfile
echo -n 'Password: '
read content
echo "Password: $content" >>$logfile
echo -n '$ '
while read content; do
  echo "$content" >>$logfile
  if echo "$content" | grep -q '^ *exit'; then exit 0; fi
  echo -n '$ '
done
exit 0

上記 honeypot を指定したポートで起動する systemd socket ファイルと対応サービスファイル

/etc/systemd/system/honeypot.socket
[Unit]
Description=Honeypot

[Socket]
# Port number to be listened
ListenStream=65535
FreeBind=yes
Accept=yes
ReusePort=yes

[Install]
WantedBy=multi-user.target

以下はサービスファイルだが、同じ名前で@を付けたサービス名にするのがポイント

/etc/systemd/system/honeypot@.service
[Service]
ExecStart=/bin/sh /var/tmp/honeypot/honeypot.sh
StandardInput=socket
StandardOutput=socket
StandardError=journal
Type=oneshot

これだけやって touch /var/tmp/honeypot/honeypot.txt && chmod a=rw /var/tmp/honeypot/honeypot.txt && systemctl daemon-reload && systemctl enable --now honeypot.socket すれば指定したポートで honeypot が起動し始め、わけのわからん接続を /var/tmp/honeypot/honeypot.txt に記録し始める

telnet ホスト 自分で決めたポート で動き始めたhoneypotにアクセスできるから、/var/tmp/honeypot/honeypot.txt に何が記録されるか確認する

よりセキュアにする

上記の設定だとroot権限で動作する shell script がインターネットからの接続を処理していてあまり良くないので、以下のような行を honeypot@.service に追加するとより安全になる


User=adduserで作った一般ユーザー
Group=adduserで作った一般グループ
RestrictAddressFamilies=none
MemoryDenyWriteExecute=yes
ProtectProc=noaccess
PrivateTmp=no
PrivateDevices=yes
PrivateNetwork=yes
ProtectSystem=full
ProtectHome=yes
LockPersonality=yes
TasksMax=5
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?