0
1

More than 3 years have passed since last update.

RaspberryPi で初歩のセキュリティハンズオン その2

Posted at

「オープンハードセキュリティ #5」
https://openhardsecurity.connpass.com/event/184982/
のテキストです。

深センのものづくり企業 Ideagear の社内勉強会を兼ねて、セキュリティの初歩的なハンズオンをします。

前回はこちら
「RaspberryPi で初歩のセキュリティハンズオン その1」
https://qiita.com/nanbuwks/items/1593356f3a15d7fc348f

やること

  • 19:00 オープニング、ssh 設定
  • 19:05 自己紹介とIdeagear の説明
  • 19:15 録画スタート、RaspberryPi にログイン、前回の復習、Linuxの 基本操作
  • 19:25 John the Ripper を使ってパスワードクラッキング実習
  • 19:35 過去に侵入されたRaspberryPiの解析
  • 19:45 (応募があれば)ライトニングトーク
  • 19:55 クロージング、次回開催のアナウンス

講師のRaspberry Pi 上にインターネット経由で ssh でログオンできるようにしています。

image.png

写真は別勉強会でRaspberryPiを使って更に他のワンボードマイコンの実験をしているところです。今回もこのようなシステムを使ってハンズオンを行います。

事前準備

今回使う情報を手元にメモしておいてください。

  • サーバアドレス
  • ssh ポート番号
  • ssh ユーザ名
  • ssh パスワード
  • 自分のscreenセッション名 (connpass のエントリー名を元にします)

RaspberryPi にログイン

サーバに接続

ssh で指定したサーバに接続してください。
接続できたら以下のように表示されます。

Linux raspberrypi 5.4.51+ #1327 Thu Jul 23 10:53:06 BST 2020 armv6l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed Aug  5 10:03:49 2020 from 192.168.42.5
workshop@raspberrypi:~ $ 

と出ます。
さて、以下のように表示されているところに入力していきます。

workshop@raspberrypi:~ $ 

プロンプトについて少し説明

今後、以下のように表示されているところを、

workshop@raspberrypi:~ $

以下のように省略して表示しますので覚えていてください。$ のマークは入力可能であることを示していて、プロンプトと言います。プロンプトは状況により $ や # , > などがあります。

今後、

 $

の表示の後にキーボードから入力してエンターを押します。$ を含め、これより前の部分を入力する必要はありません。

screen セッションに接続


$ screen -x hogehoge

この例では hogehoge が screen セッション名です。自分の screen セッション名に入れ替えてください。

この命令で screen セッションに接続します。 セッションを共有して、作業を講師側でモニターします。

There is no screen to be attached matching hogehoge.

のように出た方はセッション名指定などがうまくできていません。講師にお声がけください。
正常に接続すると、画面が切り替わり再度

hogehoge:~ $ 

のように表示されます。

(上記のようになるように、あらかじめ主催者がraspberry pi 上で設定しています。)

Linux の基本操作

ファイルの一覧を見てみます。

 $ ls
folder  mkscreen.sh  shadow  test

test ファイルの中身を見てみます。

 $ cat test
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

ファイルの最初10行だけを見る方法です

 $ head test
1
2
3
4
5
6
7
8
9
10

ファイルの最後10行だけを見る方法です

 $ tail test
11
12
13
14
15
16
17
18
19
20

ディレクトリの中身を確認してみます

 $ ls folder
test2

ディレクトリに移動して、中身を確認してみます

 $ cd folder
 $ ls
test2

ディレクトリを1つ上に移動します。

 $ cd ..
 $ ls
folder  mkscreen.sh  shadow  test

ディレクトリを新たに作成してみます。

hogehog は自分のセッション名に入れ替えてください。
ディレクトリを作ってみます。

 $ mkdir hogehoge
 $ ls
folder  hogehoge  test

今作ったディレクトリに移動して、中身を確認してみます

 $ cd hogehoge
 $ ls

ファイルを新たに作成してみます。


 $ touch hogehoge
 $ ls
hogehoge

今作ったファイルを消してみます。

 $ rm hogehoge
 $ ls

John the Ripper を使ってパスワードクラッキング実習をしてみよう

今回、Raspberry Pi には以下のユーザが登録されています。

  • root
  • pi
  • workshop
  • macron
  • putin
  • xi
  • trump
  • abe

これらのパスワードを解析してみましょう。

Raspberry Pi のユーザ管理は /etc/passwd にあります。


 $ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
・
・
・
workshop:x:1001:1001:,,,:/home/workshop:/bin/bash
macron:x:1002:1002:,,,:/home/macron:/bin/bash
putin:x:1003:1003:,,,:/home/putin:/bin/bash
xi:x:1004:1004:,,,:/home/xi:/bin/bash
trump:x:1005:1005:,,,:/home/trump:/bin/bash
abe:x:1006:1006:,,,:/home/abe:/bin/bash

これを自分の作業ディレクトリにコピーしてください。


cp /etc/passwd .

さて、passwd というファイル名なのにパスワードっぽい項目が無いですね。パスワードは秘密にしなければならないので別のファイルになっています。
そのファイルは /etc/shadow です。
中身を見てみましょう。



 $ cat /etc/shadow
cat: /etc/shadow: Permission denied

これは権限がないために見えなくなっています。
今回のハンズオンのために /home/workshop (../) に権限を付けたものをコピーしました。


$ ls ..
folder  mkscreen.sh  shadow  test

$ cat ../shadow
root:*:18409:0:99999:7:::
daemon:*:18409:0:99999:7:::
bin:*:18409:0:99999:7:::
・
・
・
workshop:$6$rZfzFGVFUip/7XrO$4Wqv6NYvYNsW6lumgNtbskODnwF9rNlxYeTLQwUwP14E60VuXYRSNfkxwv9t00XACr2in1C1pWv9nxQ/8AN/M1:18479:0:99999:7:::
macron:$6$jEDiUiHkSQMgA9Tp$lGQZVASpTHROQhBxaEKB7qsAZ9Dt7a3BBGtWCuSYhIyr66wIB2Z0WC8mtMVrsViW0RBZ0gr4q7QYBvb2.jz1G.:18479:0:99999:7:::
putin:$6$hD8aQGAwp1k2lb6s$9eERN1sqXAIye.lHHH5Xl0x7tm3hgU0WasxTyCo1.CsrkIymEChm34aFm4mIiAvTZyG0od8JmoOe20oZle7Di.:18479:0:99999:7:::
xi:$6$/ao21dokC/kyY8Nc$WZ3jJ.Fr8n8XU23CM8rdXchu72cVwhTznbVjPLguEc9m0y4p.PPyUBiWgTkOLRxZIhzSFC998OdyN2xR7p/730:18479:0:99999:7:::
trump:$6$4Jngo0cNMEWMPFkV$B0sZjq/8DiYBPh5mREIeMfDDWOGJ62n/bj6fs.LOiw2i8GkT.l6E8wy6SS0k/e7XVdFGapq3D5oj844KQHeJh1:18479:0:99999:7:::
abe:$6$6nLw4Cz.FIsXZEBH$PeL2uNmTqAKCdwXP7zSenlDndFpnM3./YapFnQyHedUeUNZoDU8KUbumVOdP/exGbklcOVPT0Vwfi.bC2E15W1:18479:0:99999:7:::

これを、作業ディレクトリにコピーしましょう。


$ cp ../shadow .


$ ls
passwd  shadow

解析にあたり、ファイルが2つだとやりにくいので1つに統合します。


$ unshadow passwd shadow > crack

解析します。


$ john crack

クロージング、次回開催のアナウンス

お疲れ様でした。

0
1
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
1