Linuxをはじめよう(原題: "Getting Started"/"ハッカーの為のLinux" Part 1/10)

Untitled (23)

※この記事は、Hackers Ariseというウェブサイトの「何故全てのハッカーがLinuxをマスターすべきか」(原題: Why Every Hacker Should Know and Use Linux)を翻訳したものです。

直接OCCUPYTHEWEB氏より許可を頂いております。

この記事を書くに至った経緯については、以下の記事でお話しているので、是非ご参照下さい。

Linux for Hackers(ハッカーのためのLinux)連載開始のお知らせ - 忙しい人のためのサイバーセキュリティニュース

 

Linuxをはじめよう

WindowsMac環境でコンピュータの基本を学んだ人の多くは、Linuxの操作に慣れていない事が多い。

Linuxの操作方法を知らない事が、一人前のホワイトハッカーに必要なスキルを習得する上で障害となる事がある。

多くの理由から、Linuxは唯一のハッキングプラットフォームと言える。

したがってLinuxの知識は、すべてのハッカーが一人前の”ホワイトハット・ハッカー”として成長する為に欠かせないものである。

この連載記事・”Linux for Hackers”の目的は、『Linuxの基本』を提供する事である。

ゆっくり段階的に、それでいて論理的に説明し、あなたの「Linuxスキル」を育てていきたい。

そうすればHackers Ariseで紹介する他のハッキング手法をより効率的に吸収する事が出来るだろう。

f:id:nanashi0x:20171218224825p:plain

このチュートリアルでは、Kali Linuxの基礎を紹介する。

当記事の執筆段階で使用したのは、Kali Linuxのバージョン1.1だ。

しかし、ほぼ全てのLinuxディストリビューションに適用される知識なので、無理に環境をこの記事に合わせる必要は無い。

(訳者補足: OCCUPYTHEWEB氏自身は、Debianを使っているようです。)

ターミナルを開く

Linuxで作業する場合、最初のステップとして、ターミナルを開く。

Kali Linuxでは、デスクトップ上部にあるターミナルのアイコンをダブルクリックするか、control + alt + tと入力する。 


 

ターミナルのアイコンをクリックするか、Ctrl + Alt + Tを押すと、以下のような端末が開く。


  

ターミナルは、デフォルトでShellを開くようになっている。

Shellとは、基本的なオペレーティングシステム上でコマンドを実行したり、Shellスクリプトを作成したりするためのコマンドライン環境である(スクリプトについては後述する)。

Linuxには様々なShell環境が存在するのだが、その中で最も一般的なのは『BASHシェル』または『Bourne Againシェル』だ。

Kaliだけでなく、その他多くのLinuxディストリビューションでも、デフォルトShellとして設定されている事が多い。

ファイルシステム

Windowsファイルシステムとは異なり、Linuxシステムは物理ドライブに制限されない。

Linuxファイルシステムは、そのファイル構造の最上位に”/”(又は、”root”)が存在する。

これは物理ドライブを表すのではなく、単に論理ファイル構造の最上位である。

下記のLinuxファイルシステムを示す図では、ファイルシステムの最上部に”/”(又は、”root”)があるのが見て取れる。

Linuxディレクトリ.001

 

ちなみに、「root」ユーザーと混同しないようにして欲しい。

”rootユーザー”と言うと全く別の物を意味する。ここで言う”root”は、『ファイル構造の根底となるもの』だ。

"/"配下のサブディレクト

Linux初学者の為に、重要な"/"配下のサブディレクトリを説明する。

  • /etc -- 一般的に、Linuxの設定ファイルが保存される
  • /bin -- Windowsで言う、言語のバイナリファイル、又は「.exeファイル」が存在するディレクト
  • /lib -- ライブラリが存在するディレクトリ。WindowsのDLLのような共有プログラムが保存される。

 

今後の記事で、上記したサブディレクトリの説明に時間を割いていくが、今のところLinuxファイルシステムの一般的な概念で十分だ。

続いては、Linuxを使う際に必須なコマンドについて紹介する。

pwd

Linuxで作業中、カレントディレクトリ(現在のディレクトリ)を知りたい場合がある。

その時は”pwd”(present working directoryの略)というコマンドを入力すれば、現在ユーザーがどのディレクトリに位置しているか示してくれる。

"pwd”コマンドは、ディレクトリ間を移動するときに重要だ。

それでは「pwd」と入力して、どこにいるのかを見てみよう。

 

ご覧のとおり、Linuxは/rootを返した。

これは、カレントディレクトリが、rootユーザーのディレクトリである事を意味している。

もし別のディレクトリにいた場合は、その時にいるディレクトリ名が返される。

whoami

Linuxではどんなユーザーとしてもログインできます。

システム管理者は、「rootユーザー」としてログインしている可能性があるが、通常のタスクを実行する場合は推奨しない。

その理由はセキュリティ対策である。

もしあなたが「rootユーザー」としてログインしているときにハッキングの被害を受けたら、攻撃者はすぐにroot権限を持ち、システム全体のコントロールを獲得してしまうからだ。

したがってLinuxを使用する際は、よっぽどの事がない限り一般ユーザーとしてログインするといいだろう。

もし今、どのユーザーとしてログインしているか知りたいとしよう。

そんな時は、"whoami"とコマンドをターミナルに入力するといい。

 

例えば、私が”OTW”というユーザーとしてログインしていた場合には、ターミナルは"whoami"コマンドに対して”OTW”という値を返してくる。

cd

ターミナル上でファイルシステムを移動することは、Linuxでは不可欠なスキルである。

Windowsコマンドラインシステムを使用した事がある人はわかると思うが、”cd”(change directoryの略)コマンドを使用して、ディレクトリを変更できる。

試しにターミナルで”cd”入力してみよう。以下の画像の様に、ディレクトリを変更することが出来るはずだ。

 

プロンプトで表示されている通り、カレントディレクトリは”/etc”ディレクトリである。念のためpwdと入力してみると良いだろう。

ファイル構造で1つ上のレベルに移動したいときは、"cd"コマンドの後ろに”..”をつけることが出来る。

kali > cd ..

 

2つ上のディレクトリに移動したい場合は、”cd”の後に”..”を2回入力する。

kali > cd .. ..

ファイルシステムの最上位である"root"まで移動したい場合には、cdの後に"/"入力すればいい。

kali > cd /

念のため繰り返すが、”/”はファイル構造の最上位またはルートを表す。

ls

カレントディレクトリの内容を見るには、”ls”(listの略)コマンドを使用する。

kali > ls

以下の画像からわかる通り、lsコマンドを使用すると、ファイルとディレクトリが一覧表示される。

(訳者補足: Linuxディレクトリとは、Windowsではフォルダを意味する。)


 

パーミッション、所有者、サイズ、変更日時などのファイルやディレクトリに関する詳細が必要な場合は、lsの後に”-l”という”スイッチ”を追加することができる。

kali > ls -l


 

いつも私は、Linuxで"ls"を行うときには、"ls"コマンドの後に"-l"スイッチを入力している。

最後に隠しファイルをlistする方法について書いておく。

Linuxには隠しディレクトリ・ファイルが存在しており、単純に”ls”または”ls -l”とコマンド入力するだけでは表示されない。

”ls -l”コマンドに加えて、小文字の”a”(-a)を追加すると、隠しファイルが表示される。

kali > ls -la

help

ほぼすべてのコマンドに、ヘルプファイルが備わっている。

ヘルプファイルとは、コマンド、ユーティリティ、またはアプリケーションの使用方法を簡潔にまとめた”カンニングシート”の様なものだと言えるだろう。

たとえば、Wifiクラッキングツールの”aircrack-ng”を使用する時に操作方法がわからなくなったとしよう。

その場合、”aircrack-ng”コマンドの後に、”--help”と続けて入力するだけでいい。

尚、入力する際は、ダブルダッシュ( -- )に注意する事。

Linuxのルールとして、以下の様になっている(勿論、例外もある)。

  • 単一文字(aやl等)の場合・・・ダッシュ( - )
  • ”help”等の”英単語オプション”の場合・・・二重ダッシュ( -- )

以下は、”aircrack-ng”のヘルプ画面を示す画像である。

kali > aircrack-ng --help

 

場合によっては、”-h”、又は”?"と入力するだけでも、ヘルプ画面を参照する事が出来る。

例えば、脆弱性スキャンツールの”nmap”のヘルプが必要な場合、以下の様に入力する。

kali > nmap -h

 

”nmap -h”のように、”h”の前にダッシュ( - )を使用している。

man

ヘルプスイッチに加えて、特定のアプリケーションやコマンドについての詳細は、man(manualの略)ページを参照する。

ほぼ全てのLinuxディストリビューションにおいて、ユーティリティ、コマンド、及びアプリケーションの”マニュアルページ”が用意されている。

manを見るためには、コマンド、ユーティリティ、アプリケーションの前に、"man"と入力するだけでいい。

kali > man aircrack-ng

 

こうする事で、”aircarck-ng”のマニュアルが開き、”--help”画面よりも詳細な情報が得られる。

manを使うと、ターミナルでは”more”コマンドでマニュアル・ファイルを開く。

"more"とは、ファイル表示コマンドの1つである。moreについては別セクションで後述する。

manページをスクロールする為には、Enterキー、PGDN(page down)キー、又はPGUP(page up)キーを使用する。

manページを終了するには、単に「q」と入力する。

終わりに

以上が、連載記事"ハッカーのためのLinux"のPart.1である。

出来るだけ分りやすく簡潔に説明をしたつもりだが、不明な事があればコメント欄で質問して欲しい。

または、気軽にoccupytheweb@protonmail.comまでメールして貰いたい。

それでは、Part.2をお楽しみに。

(訳者補足: もし質問があれば、本記事のコメント欄に記入して頂くか、問い合わせページから質問を送って下さっても結構です。出来る限り回答します。)