本校ではCyberSecurityの講義として,IPUSIRONの「ハッキングラボの作り方」を テキストとして1,2年生にハッキングの体験として学習しており,そのテキストが 全面的に刷新されたので,教科書の内容を記す。
本校サイバーセキュリティ科は,[時代が求める「ホワイトハッカー」の知識と技術を習得]を目標に 人材を育成しており,ホワイトハッカーに欠かせない
- UNIX
- Programming
- Internet/Web技術
- サーバー・インフラセッティング
- Security
などを教えており,本講義はその集大成とする位置づけとなっている。
1年次からLinuxを通常のOSとして使用しており,コマンドについては一通り学習しているが filter(sed, tr, grep)コマンドやprocess(kill, jobs, fg, bg)や権限(chmod, chown) については使用頻度が少なく講義の中で重要性を理解させたい
1年次にPython学習に140時間ほど学習し,2年次にはPythonによる通信系のプログラミングも行っている また,Web制作でReact/NextでJSも触っている。
1年次に, .comMaster程度の知識を学習しているがプロトコルやヘッダー等の理解には乏しい。 Web作成は,上記のReact/NextとWordPressを用いた学習を行っている
サーバーに関しては,1年次は上記Internet技術や後述のセキュリティによって知識だけある状態 2年時に主なインターネットサーバーの構築,設定を行っている。 インフラに関しては物理セッティングの講義はなく,Network Namespaceや仮想コンピューティングで ルーティング等を行っている状況です。
SEA/Jという団体の資格を学習することにより,1年次はセキュリティ全般の知識, 2年次はサーバーセッティングをするうえでの知識・技術を学習しています
本書のコンセプトと仮想サーバ,仮想ネットワークの説明を中心に1年生には,次年度も 本テキストを用いて講義を行うことと,分量の関係でシナリオを分けて行うことを告げておく 興味がある学生は自力で残りのシナリオを行っておくのも良いことを伝える
− 仮想マシン (virtualbox, vagrant) − 仮想ネットワーク(network namespace)
このChapterは,いくつかの仮想環境を説明しVirtualBoxの上にParrotOSをインストールして 環境構築を行っているが,本校ではすでにVirtulBox + Vagrantの環境を構築している。 1年時はテキスト通りにおこなっても良いが,2年生はVagratCloudからBoxを引っ張ったほうが時間短縮できる。 またVulnHubとMetasploitable3を説明があるが,Metasploitable3のシナリオは2年生で行う。
- VulnHub
- Metasploitable
- ParrotOS
- 本校はUSキーボードを採用しているが,あえて教科書どおりインストールして環境をインストール後に(ディレクトリ名の英語化も)修正させると良い
本校ではDebian系のUbuntuを採用しておりこの章のコマンドは入学当初にほぼ学習済みであるが パーミッションやプロセスに関連するコマンドは理解して使えるように指導してほしい。 またエディタはvi(neovim)で行っているので,このチャプターに関してはVagrant,もしくはVirtulBoxをバックグラウンドで動かしてSSHで行うのが望ましい。
$ VBoxManage list vms # show "VM_NAME"
$ VBoxManage startvm "VM_NAME" --type headless
#!/bin/sh
VBoxManage startvm "$1" --type headless
第2部に入る前での,仮想マシンのセッティング説明。 Vagrantを使用する場合はVagrantfileのPrivateNetworkを用いて行う
Vagrant.configure("2") do |config|
config.vm.box = "cloudkats/parrotsec-os"
config.vm.box_version = "6.1.0"
config.vm.network "private_network", ip: "192.168.56.101"
config.vm.provider "virtualbox" do |vb|
# Display the VirtualBox GUI when booting the machine
vb.gui = false # Wireshark等GUIを使う場合はtrue
# Customize the amount of memory on the VM:
vb.memory = "2048"
end
end
このセクションは本格的なハッキングのシナリオです VagrantもしくはVirtualBoxの仮想マシンを複数用意して実験を行います
1年生にとってはとても重要な内容なので,しっかりと行ってください。 2年生もプロトコルの仕組みをしっかりと復習することは重要なので復習します
- Scan: netdiscover, Nmap, Gobuster
- Invasion: Anonymous FTP, ディレクトリトラバーサル,SSH
- Authentication: Burp, John The Ripper
- Privilege: sudo -l, /bin/nice
- su, sudo, sudoersの学習と同時にUserGroupの役割も教えてください また ALL=(ALL:ALL) ALL は権限の与え方としては特殊であることも
- IP, TCP, UDP, ICMP等のプロトコルはカプセル化やヘッダーの仕組みをしっかり教えてください
- Wiresharkについてはtcpdumpも合わせて教えてください(サーバ内部の通信を確認するため)
- netcatについては,HTTP,FTP,MAIL,TELNET通信やnc同士でのファイル転送(リダイレクト)を行ってください
このセクションではSCANとMetasploitをつかってのEXPLOITが重要項目になります 1年生必須,2年生は何も参照しないでもできるように指導してください
- Scan: fping, nmap, Droopescan
- Investigation: robot.txt
- Invasion: ExploitDB, Metasoloit, TTY
- Privilege: SUID
このセクションはPasswordのCrackingをオンライン・オフラインのクラッキングツールで,ブルートフォースと辞書攻撃の違いを学習します。 このセクションではJohn the ripperおよびHydraの実習がないが,できれば環境を準備したい。
このセクションではスティッキービットの実行権限に関する学習と,tcpdumpまたはwireshark のキャプチャーやpcapファイルの解析を学習してクラックを行います
- scan: netdiscover, Nmap, Gobuster
- command: file, tcpdunp, wireshark
- Authentication: Aircrack-ng
- inversion: ssh
- privilege: suid, nohup
- scan: netdiscover, Nmap, Nikto, Gobuster
- investigation: directorytraversal, fileinclude, Burp, passwd file
- inversion: mysqlclient, strings command
- privilege: suid
- scan: arp-scan, Nmap
- investigation: Gobuster, Wfizz, LinPEAS
- inversion: LFI
- analyse: evil.php
- authentication: ssh2john, John the Rippter
- privilege: passwd file
- scan: Nmap, Dirb, WPScan
- authentication: Hydra, John the Ripper
- inversion: SSH
- search: wp-config.php
- privilege: su -l
- scan: netdiscover, Nmap, droopescan
- datathief: SQL Injection, sqlmap
- inversion: Metasploit, Drupageddon, reverse shell, SSH
- search: config.php, LinPEAS
- privilege: bash -i, Exploit
- scan: fping, Nmap, DIRB
- datathief:SQL injection, sqlmap
- analyze: strings, exiftool, file
- Hydra, John the Ripper
- inversion: SSH
- privilege: sudo -l, SUID
- scan: arp-scan, Nmap, Nikto
- analize: Base64, password hash, Burp, development tool
- authentication: reverse shall, netcat, curl, metasploit
- privilege: suid, namp
- scan: netdiscover, Nmap, Gobuster
- search: /etc/sudoers
- inversion: SSH
- privilege: system, SUID
- scan: Nmap
- datathief: command injection attack, curl
- search: LinPEAS
- investigation: ufw, iptables, tcpdump
- inversion: ftp, reverse shell, Netcat
- privilege: exploit
- scan: Nmap,traceoroute, WPScan, Gobuster
- authentication:Hydra, Metasoloit
- analyze: Brainfuck, CyberChef
- inversion: shell, ssh
- privilege: sudo -l
- scan: Nmap, Wfuzz