かわろぐ

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

MENU

ハニーポット cowrie に囚われてみた

環境

  • cowrie
  • Ubuntu 16.04.3

ハニーポットに囚われるって?

ハニーポットを構築、運用、観察したことはあるけど、自分がハニーポットに入ったことはこれまでありませんでした。ハニーポットにとらわれるとはどんな感じなのか体験するためにやってみました。

cowrie に囚われて /etc/passwd を見てみた

ローカルの環境に VirtualBox で Ubuntu を入れて、その上に cowrie を構築しました。今回は実験用なので、ポート番号等はデフォルトのものから特に変更しませんでした。

まずは、 root で適当なパスワードでログインします。発行したコマンドはログが見やすいように、w コマンドと cat /etc/passwd を発行して exit でログアウトするというシンプルなもののみにしました。

f:id:kawa_xxx:20180321145308p:plain

結構いろんなユーザがあることになってますね。これは cowrie/honeyfs/etc/passwd にテキストで全く同じ内容が書いてあり、その内容が表示されるだけです。

自分の行動を自分で観察してみた

まずは cowrie.log の該当部分をみてみる。 CMD: w , Command found: w などと発行しているコマンドとそのコマンドがあったかどうかが記されているのが見て取れます。tty ログも記録したよというログが残っていますね。

f:id:kawa_xxx:20180321145323p:plain

それではお次は playlog コマンドで自身の行動をハニーポットが記録したものをみてみましょう。

f:id:kawa_xxx:20180321145329p:plain

うむ。やったことがそのまま出てますね。

終わりに

自分の行動を自分で分析してみることで、ハニーポットがどんな感じにログを出すのかの理解が進みやすくなると思うのでおすすめですね。

参考文献

サイバー攻撃の足跡を分析する ハニーポット観察記録 [ハニーポット観察記録]

サイバー攻撃の足跡を分析する ハニーポット観察記録 [ハニーポット観察記録]

Less コマンドでシンタックスハイライトする方法

環境

  • mac 10.13.3
  • fish shell 2.7.1
  • homebrew 1.5.10
  • source-highlight 3.1.8

less だと寂しい感じに

設定ファイルやソースコードをVimで見るときは以下の様にシンタックスハイライトされた状態でみています。

f:id:kawa_xxx:20180321114356p:plain

ちょっと閲覧したいだけのときはLessを使って見ることも多いです。が、素のLessだと以下の用にシンタックスハイライトされずに寂しい感じで表示されてしまいます。

f:id:kawa_xxx:20180321114347p:plain

less でシンタックスハイライトする方法

まずは、 gnu source-highlitgt を homebrew でインストールします。

$ brew install source-highlight

その後、.bashrc や config.fish などに以下の設定を書きます。

export LESSOPEN='| /usr/local/bin/src-hilite-lesspipe.sh  %s'
export LESS='-R'

これは順番を書き間違えると vオプションで編集モードのエディタから戻ってきた時に、シンタックスハイライトが効かなくなります。間違えないように!といつつ、このシンタックスハイライトを調べていて、Lessで閲覧中にvキーを押すとエディタが開いて、編集モードになるのを初めて知りました。

設定がうまくいっていると Less でも以下のようにシンタックスハイライトされます。うーん見やすい。

f:id:kawa_xxx:20180321114340p:plain

色合いを変えたいけどどうすればいいんだろう…また今度調べようっと。

参考文献

https://www.gnu.org/software/src-highlite/http://www.softantenna.com/wp/review/gnu-source-highlight/

新しいLinuxの教科書

新しいLinuxの教科書

書評:Hello, World OSと標準ライブラリのシゴトとしくみを読んだ

よくプログラミングの最初のコードとして取り上げられる hello world! の動作を Linuxカーネルや glibc のソースコードの中まで調べていく内容でした。

今までこれらのソースコードは読んだことなかったのですが、環境が筆者のWebサイトからダウンロード出来たり、膨大なソースコードの中から目的の場所を探り当てていく方法まで丁寧に書いてあり、非常に読みやすい本でした。

積読してある、熱血アセンブラ入門と大熱血アセンブラ入門も読んでみよっと…

ハロー“Hello, World” OSと標準ライブラリのシゴトとしくみ

ハロー“Hello, World” OSと標準ライブラリのシゴトとしくみ

GCP に cowrie ハニーポットを構築してみた

ニホンモモンガさんの書籍を参考に久しぶりにハニーポットを久しぶりに構築してみました。インスタンス等は書籍にある通り Google Cloud Platform を使ってUbuntu 16.04 LTS でセットアップしました。

よく使う cowrie の起動と停止のコマンド

$ sudo su - cowrie
$ bin/cowrie start
$ bin/cowrie stop

cowrie のログを見る

cowrie の bin/playlog で侵入者の動きを再現する

ログインに成功し、何らかのコマンドが発行された場合に生成されるんですかね。

bin/playlog コマンドに tty ディレクトリ以下にあるファイルを指定すると、どのような流れでコマンドが発行されたかを確認することが出来ます。

$ bin/playlog log/tty/xxxxx.log

cowrie-logviewer を使う

cowrie-logviewer は検索等は出来ないけど、どこの国からアクセスされたかなどを閲覧しやすくしてくれるツールです。

ログファイルが少ないときは問題ないですが、1週間程度動かし続けてログが溜まった状態でこの Viewer を使おうとすると書籍のインスタンスタイプでは CPU が100%に張り付くので要注意です。溜まったログを見る場合は、ちゃんとローカルに落としてきてからやりましょー。

$ python cowrie-logviewer.py
$ ssh <ip> -p <sshのポート> -N -L8080:127.0.0.1:5000

おわりに

まだ植えてから数時間しか経っていないにもかかわらず、もうすでに5つも tty 配下にログが出来てます。

ほんとすごいな。見方を変えれば、弱い設定でSSHなどをインターネットへ公開すればすぐに入られてしまうということです。公開サーバを運用している人は注意が必要ですね。

サイバー攻撃の足跡を分析するハニーポット観察記録

サイバー攻撃の足跡を分析するハニーポット観察記録

zsh から fish に乗り換えるまで

環境

  • fish 2.7.1

zsh の設定がわけわからなくなってきた

乗り換えようと思った理由はこれにつきます。色々な設定を継ぎ足し継ぎ足ししてきたので結構カオスな感じになっていたし、時々原因が特定できない shell がやたらと重いという現象にも悩まされていました。

zsh の設定をまっさらにしても良かったのですが、せっかくだから違うのを使ってみようと思い、見つけたのが fish でした。プラグイン管理ツールもあり、今のところいい感じです。

zsh から fish に乗り換えるまで

インストールは HomeBrew でコマンド一発で完了します。

brew install fish

デフォルトのshellを変更する

fish を HomeBrew で入れただけでは iTerm2 や Terminal を起動したときのshellは変わりません。

$ sudo vim /etc/shells
最終行に /usr/local/bin/fish を追記する
$ chsh -s /usr/local/bin/fish

プラグイン管理ツールを入れる

fish にはプラグイン管理ツール fisherman というものがあります。こいつのお陰で設定ファイルに色々ゴリゴリ書かなくてもいい感じに使えるようになります。

サクッと以下のコマンドでインストールしちゃいましょう。

curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs git.io/fisherman

zshや vim でいろいろな設定やプラグインを入れまくって重くなったり管理がめんどくさくなったりしたので今回は必要最低限しか入れないようにしようと心に誓いました。今のところ必須なのは以下の2つでした。

$ fisher omf/plugin-peco
$ fisher pyenv

peco のプラグインは入れただけでは特にキーバインド等は設定してくれないので、 ~/.config/fish/config.fish に以下を記述してショートカットで呼び出せるようにします。

function fish_user_key_bindings
  bind \cr 'peco_select_history (commandline -b)'
end

プロンプト右側にgit のステータスを表示できるようにする

毎回 git branch して今どこのbranchにいるかや、 git stats してファイルの変更があるかなどを見るのはめんどくさすぎますよね。zsh でも git リポジトリに居るときだけ、branchやステータスを表示するようにしていたので、それと同じ事を実現します。

以下2つの設定ファイルに記述します。

config.fish

# fish git prompt
set __fish_git_prompt_showdirtystate 'yes'
set __fish_git_prompt_showstashstate 'yes'
set __fish_git_prompt_showuntrackedfiles 'yes'
set __fish_git_prompt_showupstream 'yes'
set __fish_git_prompt_color_branch yellow
set __fish_git_prompt_color_upstream_ahead green
set __fish_git_prompt_color_upstream_behind red

~/.config/fish/functions/fish_right_prompt.fish

function fish_right_prompt
  printf '%s' (__fish_git_prompt)
end

とりあえずこれで自分は生活できる用になりました。コマンドを打ち出したときにうっすら表示されるよく使うコマンドと引数の候補はとても便利ですね。 もうちょっと早く乗り換えればよかったなー。

参考文献

http://patorash.hatenablog.com/entry/2017/09/21/022657

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

  • 作者: ブルース・ブリン,Bruce Blinn,山下哲典
  • 出版社/メーカー: ソフトバンククリエイティブ
  • 発売日: 2003/02
  • メディア: 単行本
  • 購入: 18人 クリック: 331回
  • この商品を含むブログ (64件) を見る