はじめに
macにhomebrewを使用してhydraをインストールしてクラックをデモしてみます。
hydraインストール
hydraはパスワードクラック用のライブラリです。
あるサーバのftpやssh、basic認証のパスをクラックします。
クラックを推奨しているわけではなく、自サーバがブルートフォースにあった場合に突破されにくいかどうかをチェックするためです。汗
インストール
まずはhydraの概要をチェックします
% brew info hydra (git)-[master] hydra: stable 8.1 (bottled), HEAD Network logon cracker which supports many services https://www.thc.org/thc-hydra/ /usr/local/Cellar/hydra/8.1 (14 files, 1.2M) * Built from source with: --with-libssh From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/hydra.rb ==> Dependencies Build: pkg-config ✔ Required: openssl ✔ Optional: subversion ✘, libidn ✘, libssh ✔, pcre ✔, gtk+ ✘ ==> Options --with-gtk+ Build with gtk+ support --with-libidn Build with libidn support --with-libssh Build with libssh support --with-pcre Build with pcre support --with-subversion Build with subversion support --HEAD Install HEAD version
info情報の通り、opensshが必須です。インストールされていない場合(チェックになっていない)はインストールしてください
% brew install openssh
ではhydraをインストールします
libsshも必要なようなのでwithオプションでインストールします
% brew install hydra --with-libssh
これでインストールできました。
hydraのバージョンをチェックしてみましょう ※合わせてオプションを確認してみましょう
% hydra -v Hydra v8.1 (c) 2014 by van Hauser/THC - Please do not use in military or secret service organizations, or for illegal purposes. Syntax: hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-W TIME] [-f] [-s PORT] [-SuvVd46] [service://server[:PORT][/OPT]] Options: -l LOGIN or -L FILE login with LOGIN name, or load several logins from FILE -p PASS or -P FILE try password PASS, or load several passwords from FILE -C FILE colon separated "login:pass" format, instead of -L/-P options -M FILE list of servers to attack, one entry per line, ':' to specify port -t TASKS run TASKS number of connects in parallel (per host, default: 16) -U service module usage details -h more command line options (COMPLETE HELP) server the target: DNS, IP or 192.168.0.0/24 (this OR the -M option) service the service to crack (see below for supported protocols) OPT some service modules support additional input (-U for module help) Supported services: asterisk cisco cisco-enable cvs ftp ftps http[s]-{head|get} http[s]-{get|post}-form http-proxy http-proxy-urlenum icq imap[s] irc ldap2[s] ldap3[-{cram|digest}md5][s] mssql mysql nntp oracle-listener oracle-sid pcanywhere pcnfs pop3[s] postgres rdp redis rexec rlogin rsh s7-300 sip smb smtp[s] smtp-enum snmp socks5 ssh sshkey teamspeak telnet[s] vmauthd vnc xmpp Hydra is a tool to guess/crack valid login/password pairs. Licensed under AGPL v3.0. The newest version is always available at http://www.thc.org/thc-hydra Don't use in military or secret service organizations, or for illegal purposes. Example: hydra -l user -P passlist.txt ftp://192.168.0.1
-xオプションを使う場合のyosemite環境の対策
-xオプションはランダム(passlistがない場合 ※password辞書)なブルートフォースを行う場合に使えるオプションです。
/usr/includeディレクトリがない場合に-xオプションでエラーとなるため対応が必要です。
macのバージョンにより存在しないようでyosemite環境ではなかったです。marveric以降はないのかもしれません。
% hydra -x -h Hydra v8.1 (c) 2014 by van Hauser/THC - Please do not use in military or secret service organizations, or for illegal purposes. [ERROR] -x option is not available as math.h was not found at compile time
※/usr/includeの直下にmath.hが必要です
以下のコマンドでダイアログが表示されるのでインストールしてください
% xcode-select --install
hydraでsshクラックデモ
今回はsshクラックのみ確認してみます
パスワードリストファイルを使用してブルートフォース
まずはパスワードリストファイルを作ります。適当です。
password 123456 abc123 hello testtest
※ファイル名はpasslistとしておきます
よく使われるパスワードトップ500について参考:
http://www.symantec.com/connect/blogs/top-500-worst-passwords-all-time
※ここにあるパスワードは個人でパスワードとしては使わないほうが安全です
フォーマット
hydra -l [ユーザ名] -P [パスワード辞書ファイル] [対象サーバIPアドレス] ssh
ではクラックします
% hydra -l root -P passlist 123.456.789.000 ssh
※ユーザ名はroot,サーバIPは123.456.789.000として確認します。ユーザ名もパスワード同様に-Lオプションでクラック可能です。
うまくパスワードをクラックすると以下のようなメッセージになります
1 of 1 target successfully completed, 1 valid password found
ランダム値を使用してブルートフォース(-xオプション使用)
フォーマット
hydra -l [ユーザ名] -x [パスワードパターン] [対象サーバIPアドレス] ssh
[パスワードパターン]は MIN:MAX:CHARSET形式で指定します
MINからMAXまでの範囲の文字数のパスワードを設定します ※4:6であれば4文字から6文字の範囲
CHARSETは、1指定で数字、a指定でアルファベット小文字、A指定でアルファベット大文字を指します
ではクラックします
% hydra -l root -x 4:6:1aA 123.456.789.000 ssh
※ユーザ名はroot,サーバIPは123.456.789.000として確認します。
うまくパスワードをクラックすると以下のようなメッセージになります
1 of 1 target successfully completed, 1 valid password found
The Ruby openssl extension was not compiled. Missing the OpenSSL lib?エラーの解決法をメモ
rbenvでrubyをインストールした時にでたエラーの解決法
rbenvはrubyのバージョンを切り替える事ができるコマンド。
※macの場合はhomebrewでrbenvをインストール
エラー発生
指定バージョンのrubyをインストール
rbenv install 2.0.0-p353
エラー発生
Downloading ruby-2.0.0-p353.tar.gz... -> http://dqw8nmjcqpjn7.cloudfront.net/78282433fb697dd3613613ff55d734c1 Installing ruby-2.0.0-p353... BUILD FAILED Inspect or clean up the working tree at /var/folders/1t/x1p587mn79x7k3dc855825sm0000gn/T/ruby-build.20150120012737.63793 Results logged to /var/folders/1t/x1p587mn79x7k3dc855825sm0000gn/T/ruby-build.20150120012737.63793.log Last 10 log lines: installing default gems: /Users/[username]/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0 (build_info, cache, doc, gems, specifications) bigdecimal 1.2.0 io-console 0.4.2 json 1.7.7 minitest 4.3.2 psych 2.0.0 rake 0.9.6 rdoc 4.0.0 test-unit 2.0.0.0 The Ruby openssl extension was not compiled. Missing the OpenSSL lib?
エラー内容の通り、opensslがないと言っているので確認する
brew list | grep openssl
既に入っていた・・・
解決法
homebrewのアップデート
brew update
※念のため
readlineインストール ※入ってなかった場合のみ
brew install readline
readlineとopensslのアップグレード
brew upgrade openssl readline
ruby-buildインストール
brew uninstall ruby-build brew install --HEAD ruby-build
※最初にアンインストールしておく
rubyインストール
RUBY_CONFIGURE_OPTS="--with-readline-dir=`brew --prefix readline` --with-openssl-dir=`brew --prefix openssl`" rbenv install 2.0.0-p353
これでインストールされればOK。
まだインストールできない場合、色々と環境により、パス指定やXCodeのアップグレードなど必要になる場合があるかも。
githubに「pull request」を送れたりするhubコマンドを導入方法をメモ
hubコマンドはGitHub社が公開しており、githubに関する様々な処理をコマンドで実行する事ができるもの。
gitコマンドで既にできることを、シンプルなコマンドで解決したり、gitコマンドではないpull requestなどをコマンドで行う事ができるようになる。
※ 通常はgithubのブラウザからpull requestをする
またhubはgitコマンドを包括しており、hubコマンドでgitコマンドを全て使用することができるようになる。
hubのupstreamリポジトリのreadmeでインストールからコマンドの使い方まで載せているので参考にするとよい。
hubコマンドのリポジトリ:
https://github.com/github/hub
今回はmacでパッケージ管理はhomebrewを使用する
インストール
インストール
brew install --HEAD hub
設定
既存のgitコマンドは全てhubに置き換えられるようになる。
つまりは
git add .
は
hub add .
で、できるようになるが、慣れないためhubコマンドもgitコマンドで使えるようにalias設定をしておく
これはhubのreadmeに記載されている
シェルの設定ファイル:
eval "$(hub alias -s)"
※bashの場合は.bash_profile、zshの場合は、.zprofile
hubの使い方(git clone)
git cloneコマンドについてreadmeより、
git clone $ git clone schacon/ticgit > git clone git://github.com/schacon/ticgit.git $ git clone -p schacon/ticgit > git clone git@github.com:schacon/ticgit.git $ git clone resque > git clone git@github.com/YOUR_USER/resque.git
※gitはalias設定のhubをコールしているため、hubとしても動く
git cloneを行う場合にgithubのリポジトリ指定をなしにしてリポジトリ名のみで取得ができる。またはユーザ名の指定などもできるサンプル
これ以外にも省略できるコマンドはreadme参照
hubコマンドでpull request
git pull-requestコマンドについてreadmeより
# while on a topic branch called "feature": $ git pull-request [ opens text editor to edit title & body for the request ] [ opened pull request on GitHub for "YOUR_USER:feature" ] # explicit title, pull base & head: $ git pull-request -m "Implemented feature X" -b defunkt:master -h mislav:feature
オプションについて
-m : pull requestメッセージ
-b : プルリク先の指定
-h : プルリク元の指定
下記はつまり、メッセージが「Implemented feature X」でmislavのfatureブランチからdefunktのmasterブランチへpull requestのサンプルになる
git pull-request -m "Implemented feature X" -b defunkt:master -h mislav:feature
-mを指定しない場合は、指定しているエディターが起動する(commitと同様)ので指定のフォーマットで記載する
指定フォーマット:
[pull requestタイトル]
[改行]
[pull requestメッセージ]
使える便利コマンド
githubをブラウザで開いてリポジトリを参照するコマンド
git browse
githubをブラウザで開いてdiffを参照するコマンド
git compare
git compareコマンドについてreadmeより
$ git compare refactor > open https://github.com/CURRENT_REPO/compare/refactor $ git compare 1.0..1.1 > open https://github.com/CURRENT_REPO/compare/1.0...1.1 $ git compare -u fix > (https://github.com/CURRENT_REPO/compare/fix) $ git compare other-user patch > open https://github.com/other-user/REPO/compare/patch
MacにRails環境を構築する方法をメモ
パッケージ管理ソフトはhomebrew、一からMacにRails環境を構築する方法と概要について。
Command Line Toolsインストール
Macで開発を行うためのコマンドラインツールをインストールする。
参考抜粋
——————————————————————————————————-
デベロッパ ポータルから直接、Xcode コマンド ライン ツールを .dmg ファイルとしてダウンロードすることができます。
Mac で https://developer.apple.com/downloads/index.action にアクセスします。
インストールの途中で Apple Developer としてログインするよう求められます。
[Downloads for Apple Developers]リストで、必要な[Command Line Tools]の項目を選択します。
——————————————————————————————————-
参考:
http://www.hulinks.co.jp/support/fortran/f_macosx018.html
Homebrewインストール
パッケージ管理ソフトのHomebrewをインストールする。Macにパッケージ類をインストールするためのソフト。
インストール
ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"
インストール確認(バージョンチェック)
brew -v
homebrewのバージョンが表示されれば成功
rbendインストール
Rubyのバージョン管理に使用するrbenvをインストールする。rubyのバージョンアップの切り替えをサポートするツール。
rbend,ruby-buildインストール
brew install rbenv ruby-build
rbendのパスを設定
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile echo 'export PATH="$HOME/.rbenv/shims:$PATH"' >> ~/.bash_profile source ~/.bash_profile
Rubyインストール
rbenvを使いrubyのインストール可能バージョンを確認
rbenv install -l
インストールしたいrubyを選びインストール
rbenv install (バージョン名)
例) 2.0.0-p353のrubyをインストールする場合
rbenv install 2.0.0-p353
※The Ruby openssl extension was not compiled. Missing the OpenSSL lib?エラーとなる場合
参考http://to-developer.com/blog/?p=1197
インストール確認
rbenv versions
関連ディレクトリの更新 ※しないといけない
rbenv rehash
参考
http://dqn.sakusakutto.jp/2014/02/rbenv_rehash_what_it_does.html
使用するrubyバージョンを設定
rbenv global 2.0.0-p353
rubyのバージョン確認
ruby -v
ここで2.0.0になっていれば成功
Railsインストール
ruby標準のダウンロードツール(コマンド)gemを使いインストールする。
RDoc(Documentation from Ruby Source Files)をインストール
gem install rdoc
※これをいれずにRailsをインストールすると、「file ‘lib’ not found」がでる
sudo gem install rails
Rails開発で入れておいた方が良いライブラリ群のインストール
Rails開発で使いそうなライブラリもgemでインストールする。
gem install bundler gem install mysql gem install sqlite3 gem install jquery-rails gem install rake gem install activerecord-postgresql-adapter gem install uglifier gem install json
Railsプロジェクト作成
新規Railsプロジェクトのディレクトリ作成
rails new [プロジェクト名]
macにjenkinsをインストールする手順をメモ
パッケージ管理はhomebrewを使う
インストール
brew install jenkins
インストール確認
brew list
jenkinsインストール情報(バージョンなどの確認)
brew info jenkins
起動
•手動起動(毎回起動する必要がある)
java -jar /usr/local/cellar/jenkins/1.496/libexec/jenkins.war
•自動起動(MAC起動時に自動実行)
launchctlというサービスの登録・管理が可能なものを使用する
ln -sfv /usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents launchctl load ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
ブラウザで動作確認
デフォルトポートは8080となる
GUI管理画面が表示されたら完了
macにnode.jsをインストールする手順のメモ
パッケージマネージャはhomebrewを使用する
Homebrewはmac os x用のパッケージマネージャ。Debianでいうところのapt-getに近いもの。macportというパッケージ管理もあるらしいが、homebrewの方が人気が上がっているという記事を読んだのでこちらを使用してみる。
パッケージマネージャがなくても、node.jsをダウンロードして解凍してインストールの3手順でできるけど、homebrewだと一発で入る
ちなみにコマンドでダウンロードする場合は以下 ※ mac os xはデフォルトでwgetは入っていない
curl -o node-v0.9.5.tar.gz http://nodejs.org/dist/v0.9.5/node-v0.9.5.tar.gz
node.js公式サイト: http://nodejs.org/
導入はおよそ1分の作業
手順1.node.jsをインストール
brew install node
——————————————————————————————
==> Downloading http://nodejs.org/dist/v0.8.16/node-v0.8.16.tar.gz
######################################################################## 100.0%
==> ./configure –prefix=/usr/local/Cellar/node/0.8.16
==> make install
==> Caveats
Homebrew installed npm.
We recommend prepending the following path to your PATH environment
variable to have npm-installed binaries picked up:
/usr/local/share/npm/bin
/usr/local/Cellar/node/0.8.16: 870 files, 13M, built in 2.5 minutes
——————————————————————————————
現在の最新版0.9.5なんだけど0.8.16が入った・・・・なんでだろう。まあいいか
あとnpmっていうrubyで言うところのgem、fuelphpで言うところのoilコマンドをインストールしたいところだけど、「Homebrew installed npm.」て書いてあるので、nodeインストールで自動的に入れてくれているっぽい
※1/7補足:brew info node とかでデフォルトでインストールされるバージョンが分かる。シェルでバージョンを変更することもできるそう。
npmのインストール確認
npm -v
これでバージョンが表示されればOK
手順2./usr/local/share/npm/binを環境変数に設定
.bashrcファイルに環境変数を設定する ※.bash_profileファイルでも同様
export PATH=$PATH:/usr/local/share/npm/bin
手順3..bashrcファイル反映
source .bashrc
※再起動でも良い
動作確認
公式サイトのトップにあるサンプルアプリhelloworldを動かす
1.ファイル作成
新規でexample.jsファイルを作成する
var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(1337, '127.0.0.1'); console.log('Server running at http://127.0.0.1:1337/');
2.node.jsを実行
node example.js
3.ブラウザで確認
下記URLにアクセスしてhelloworldが表示されれば成功
http://127.0.0.1:1337/
coffee-break
Don't write code that useless.
1日5杯はコーヒー、カフェオレ飲みます。狭心症のため安静にします☆松本 雄貴
Kotlinでサービスリリース目指す!
iOSでチャットアプリ作成中。自然言語解析LSIを習得中
Mac / Android・iOS / Rails / Oracle
2017年 Lpic L2取得
2012年 Android技術者資格取得
2010年 OracleMasterGold10g取得
2008年 CCNAQiitaもたまに投稿
https://qiita.com/y-matsumoto東京近郊で常駐開発探してる方はこちらよりご連絡ください
SES企業でパートナー会社を探している企業様はこちらよりご連絡ください
スプリットカメラ iOS / Android
音声認識で聞いた日付から曜日当てアプリ Android
ソーシャルタイマー Android
カテゴリー
- ActiveRecord (2)
- Android (52)
- AndroidStudio (10)
- Ansible (1)
- AWS (1)
- Bash (18)
- Blog (7)
- BootStrap (1)
- CentOS (16)
- Chef (1)
- css (2)
- Eclipse (5)
- error (1)
- Facebook (2)
- Firebase (1)
- FuelPHP (16)
- Git (22)
- GitHub (3)
- Gradle (2)
- GraphAPI (1)
- Grunt (1)
- heroku (2)
- illustrator (1)
- iOS (17)
- Java (4)
- Jenkins (1)
- jQuery (3)
- Kotlin (2)
- Mac (22)
- nginx (1)
- Node.js (3)
- peco (1)
- php (5)
- Python (1)
- Rails (16)
- Ruby (11)
- shell (1)
- SNS (1)
- Swift (2)
- tmux (2)
- Vagrant (6)
- Vim (6)
- windows (2)
- WordPress (3)
- zsh (4)
- フリーランス (1)
- ライブラリ (1)
- 勉強会 (2)
- 宣伝 (1)
- 未分類 (2)
最近の投稿
- [MAC]HighSierraでgitプッシュエラー「Unable to negotiate with xxx.xxx.xxx.xxx port xx: no matching cipher found. Their offer: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se fatal: Could not read from remote repository.」
- [iOS]iOS11からFacebook,Twitter連携(シェアなど)廃止の対応方法
- [iOS]速報2017AppleSpecialEventのiOS11、iPhone8など発表内容について
- [iOS][Firebase]The default Firebase app has not yet been configured. Add `[FIRApp configure];
- [iOS]2017年9月リリースのiOS11で開発者が対応するべきこと
- 今人気の現金化サービスCASH(キャッシュ)を使ったレビュー
- [Pandoc][Mac]pandocでmarkdownからwordファイル作成
- [Android]映画サマーウォーズの聞いた日付(誕生日)から曜日当てをアプリ音声認識で簡単に実現
- [Android]起動しているActivityを取得するadb shell コマンド
- [Android][Kotlin]kotlin学習で参考になるサイト一覧
2023年12月 月 火 水 木 金 土 日 « 5月 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 アーカイブ
- 2018年5月
- 2017年9月
- 2017年8月
- 2017年7月
- 2017年6月
- 2017年5月
- 2017年2月
- 2017年1月
- 2016年12月
- 2016年7月
- 2016年6月
- 2016年1月
- 2015年12月
- 2015年11月
- 2015年10月
- 2015年9月
- 2015年8月
- 2015年7月
- 2015年6月
- 2015年5月
- 2015年4月
- 2015年3月
- 2015年2月
- 2015年1月
- 2014年12月
- 2014年11月
- 2014年6月
- 2014年5月
- 2014年4月
- 2014年3月
- 2014年2月
- 2014年1月
- 2013年12月
- 2013年11月
- 2013年9月
- 2013年8月
- 2013年7月
- 2013年6月
- 2013年5月
- 2013年4月
- 2013年3月
- 2013年2月
- 2013年1月
- 2012年12月
- 2012年10月
- 2012年5月
- 2010年6月
エントリ