かわろぐ

技術、ボルダリング、セキュリティ、その他もろもろ

MENU

kali linux で apt が Release file for XXX is not valid yet と言われた場合の対処方法

環境

  • kali linux 2018.01

事象

Mac上に仮想マシンとして構築していた kali linux を2ヶ月ぶりくらいに起動してみて、 apt update したところ以下の様なエラーがでて、アップデートができなくなっていました。

# apt update
E: Release file for http://http.kali.org/kali/dists/kali-rolling/InRelease is not valid yet (invalid for another 71d 3h 43min 56s).  Updates for this repository will not be applied.

f:id:kawa_xxx:20180617183829p:plain

解決方法

わかってしまえばなんてことはなく、 kali linux の時刻が2ヶ月ずれていたことが原因でした。以下のコマンドで時刻をあわせてやることでアップデートが出来るようになりました。

sudo date —set “2018/06/17 17:00"

めでたしめでたし。

参考文献

サイバーセキュリティテスト完全ガイド ~Kali Linuxによるペネトレーションテスト~

サイバーセキュリティテスト完全ガイド ~Kali Linuxによるペネトレーションテスト~

  • 作者: Peter Kim,八木橋優,前田優人,美濃圭佑,保要隆明,株式会社クイープ
  • 出版社/メーカー: マイナビ出版
  • 発売日: 2016/08/01
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る

WOWHoneypot のログをローテートする

環境

  • WOWHoneypot 1.1
  • Ubuntu 18.04 LTS

ログを一ヶ月分だけ保持させたい

WOWHoneypotをサービス化してみるではとりあえず常時起動しているように設定しました。このままではログファイルがどんどん肥大化していき、いずれはディスクフルでサーバが止まってしまいます。そこで、今回はログのローテートの設定を入れてみたいと思います。

WOWHoneypot はデフォルトでは log/access_loglog/wowhoneypot.log にそれぞれアクセスログとハニーポットのログと分けて保存されます。ただし、ローテートなどの設定はデフォルトでは出来ないため、動かし続けるとログがディスクを埋め尽くしてしまいます。 ログの集積は別途考えるとして、まずは一ヶ月分のみローカルに日次でファイルを分けた形でログを保持し、それより古いものは削除するという設定をしてみたいと思います。

ログローテートの設定

/etc/logrotate.config に設定を記載しても良いのですが、/etc/logrotate.d/ 配下がインクルードされているので、 wowhoneypot 用のファイルをつくってそこにローテートの設定を記載するようにしましょう。

sudo vi /etc/logrotate.d/wowhoneypot

wowhoneypot は日々増えていくログファイルは2種類あるので、全く同じ設定ですが、2つに分けて書きます。 ログ量の増え方が全然違うのですぐローテートするタイミングを変えたくなるだろうなと思ってです。

/home/wow/wowhoneypot/log/access_log{
        ifenpty
        dateformat .%Y%m%d
        missingok
        daily
        rotate 30
        endscript
}

/home/wow/wowhoneypot/log/wowhoneypot.log{
        ifenpty
        dateformat .%Y%m%d
        missingok
        daily
        rotate 30
        endscript
}

これでひとまず、ディスクフルでhoneypot が止まってしまうということはなくなりました。次回はいよいよログの集積環境を作っていきたいと思います。

参考文献

https://qiita.com/Esfahan/items/a8058f1eb593170855a1

WOWHoneypot をサービス化してみる

前回の記事では単にプログラムを自身のユーザ権限で実行しただけなので、SSHを切断したりするとハニーポット自体も終了してしまいます。なのでちゃんとデーモン化して常時起動しておくようにしてみたいと思います。

WOWHoneypot用のユーザを作る

万が一 WOWHonyepot に脆弱性があってユーザ権限を取られてしまった場合に、影響が最小限になるよう専用ユーザとし、sudo 権限などは与えないでおきます。

$ sudo adduser wow

安直にハニーポット名の先頭三文字を取ったけど、他のハニーポッターな方はもっと凝った名前をつけているのでしょうか…?

サービス化する

wowhoneypot.py を直接起動してしまうと、SSHを切断したりするとハニーポット自体も終了してしまうので、ちゃんとサービス化します。 バージョンアップ等に容易に対応できるように起動用のシェルスクリプトファイルを作ることにします。

以下の内容を、 /home/wow 直下に wowhoneypot.sh として保存します。WOWHoneypot 本体は /home/wow/wowhoneypot 以下にクローンされているとします。

#!/bin/bash
cd /home/wow/wowhoneypot
/usr/bin/python3 /home/wow/wowhoneypot/wowhoneypot.py

systemctl から扱えるように /etc/systemd/system 以下に wowhoneypot.service というファイルで以下の内容を保存します。

[Unit]
Description=WoWHoneypot daemon
Documentation=https://github.com/morihisa/WOWHoneypot

[Service]
ExecStart = /home/wow/wowhoneypot.sh
ExecRestart = /bin/kill -WINCH ${MAINPID} ; /home/wow/wowhoneypot.sh
ExecStop = /bin/kill -WINCH ${MAINPID}
Restart = no
Type = simple
User = wow
Group = wow

[Install]
WantedBy = multi-user.target

サービスとして起動、停止するには以下のコマンドを使います。

$ sudo systemctl enable wowhoneypot.service // 自動起動設定を有効に
$ sudo systemctl start wowhoneypot.service     // サービスを開始する
$ sudo systemctl stop wowhoneypot.service     // サービスを停止する

上記の eneble と start の両方を実行すると、以下のように wowhoneypot のプロセスが起動しているはずです。 もし起動していなかったら、 /var/log/syslog をみて原因を特定しましょう。大抵の場合、実行ファイルのパスが間違っているのではないかと思います。

f:id:kawa_xxx:20180506133236p:plain

おわりに

前回の記事とあわせて、これで wowhonyepot をきちんと植えることが出来ました。 次回は syslog でログを外部サーバに集積、簡易分析するのと、WOWHoneypot 1.1 で実装されたハンティング機能をいじって見ようと思います。

書評:減らす技術を読んだ

最近公私共にわちゃわちゃしており、やることに追われまくっている気がするので、気になり手に取ってみました。

本の中にあった「生産性だけ上げても意味がない」と言うのはほんと最近実感しています。生産性上げたところでできるようになる作業量なんてたかが知れていますし、現代はそれ以上に色々なものが流れ込んできて油断していたら、情報の洪水にあっという間に流されてしまいます。

制限を設けて、本質に迫ることだけに集中したからだ

なにかを成し遂げたいなら本当に無駄なことをしている時間はないんですよね。子どもが出来てからすごく実感しています。自分の時間なんて殆ど取れないですからね。

一度にひとつづつ変える シングルタスクにする

自身の経験でも実感しましたが、人間はCPUみたいにマルチコアでもないし、ハイパースレッディングなんてことも出来ないので、一度に一つのことに集中したほうが絶対的に良い成果を挙げられるんですよね。あれもこれもと触手を伸ばしていたら、どれも中途半端にできるけどこれと言った成果がどれも出ていない…なんていう残念な状態に陥ってしまいます。

シングルタスクと言っても、最近は通知やチャットなど注意力を削ぐものが非常に多いので、それらが容易に目に入らないようにするために通知を切る、ディスプレイの数を減らすなど対策をして自分の集中力を守るような試みをしています。

さーて、成果出すぞ!

減らす技術 新装版

減らす技術 新装版

WOWHoneypot を構築してみた

Cowrie につづいて、morihi_soc さんが作成されている、WOWHoneypot を植えてみました。

セットアップ方法

基本的には Github に書いてある環境の通りにセットアップしただけです。とても簡単ですね。唯一違う点は OS が Ubuntu 18.04 LTS だという点くらいでしょうか。

ここには書いてありませんが、サーバ自体のセキュリティアップデートは必ず全て適用して、SSHは秘密鍵のみに設定変更してからハニーポットの運用を開始するようにしましょう。ミイラ取りがミイラになっては仕方ないので…

$ sudo ufw default DENY
$ sudo ufw allow 80/tcp
$ sudo ufw allow 8080/tcp
※ SSH のアクセスポートも環境に合わせて追加してください。
$ sudo ufw enable
$ sudo vi /etc/ufw/before.rules
※ 「*filter」より前に下記の4行を追記する。
———————————————————————————
*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
COMMIT
———————————————————————————
$ sudo ufw reload
$ cd ~/
$ git clone https://github.com/morihisa/WOWHoneypot.git wowhoneypot
$ cd wowhoneypot
$ python3 ./wowhoneypot.py

試しにIP直打ちでアクセスしてみると、最下部の2行のようにWOWHoneypotのログにもちゃんと履歴がのこっているし、ログインフォームらしき画面も表示されているので正常に動作していることが確認できました。

f:id:kawa_xxx:20180430160852p:plain

WOWHoneypot を植えて

Cowrieのときはすぐにアクセスが来ましたが、WOWHoneypot の場合は wow と驚く程早く、攻撃者からのアクセスがあるわけではありませんでした。ちゃんとサービス化して気長に待ちましょうかね。

さて、Cowrie と合わせてそろそろログを集積する環境をちゃんとしなくては。