Skip to content

Instantly share code, notes, and snippets.

@omas-public
Created October 17, 2024 04:54
Show Gist options
  • Save omas-public/e0a4d9ee868adb1487677804a6132b9f to your computer and use it in GitHub Desktop.
Save omas-public/e0a4d9ee868adb1487677804a6132b9f to your computer and use it in GitHub Desktop.
ハッキング・ラボの作り方 2nd Edition

CyberSecurity I, II

本校ではCyberSecurityの講義として,IPUSIRONの「ハッキングラボの作り方」を テキストとして1,2年生にハッキングの体験として学習しており,そのテキストが 全面的に刷新されたので,教科書の内容を記す。

ITカレッジ サイバーセキュリティ科 -> 情報セキュリティコース

本校サイバーセキュリティ科は,[時代が求める「ホワイトハッカー」の知識と技術を習得]を目標に 人材を育成しており,ホワイトハッカーに欠かせない

  • UNIX
  • Programming
  • Internet/Web技術
  • サーバー・インフラセッティング
  • Security

などを教えており,本講義はその集大成とする位置づけとなっている。

学生の基礎知識

UNIX

1年次からLinuxを通常のOSとして使用しており,コマンドについては一通り学習しているが filter(sed, tr, grep)コマンドやprocess(kill, jobs, fg, bg)や権限(chmod, chown) については使用頻度が少なく講義の中で重要性を理解させたい

Programming

1年次にPython学習に140時間ほど学習し,2年次にはPythonによる通信系のプログラミングも行っている また,Web制作でReact/NextでJSも触っている。

Internet技術

1年次に, .comMaster程度の知識を学習しているがプロトコルやヘッダー等の理解には乏しい。 Web作成は,上記のReact/NextとWordPressを用いた学習を行っている

サーバー・インフラセッティング

サーバーに関しては,1年次は上記Internet技術や後述のセキュリティによって知識だけある状態 2年時に主なインターネットサーバーの構築,設定を行っている。 インフラに関しては物理セッティングの講義はなく,Network Namespaceや仮想コンピューティングで ルーティング等を行っている状況です。

Security

SEA/Jという団体の資格を学習することにより,1年次はセキュリティ全般の知識, 2年次はサーバーセッティングをするうえでの知識・技術を学習しています

Section 1

Chapter 1 基礎編

本書のコンセプトと仮想サーバ,仮想ネットワークの説明を中心に1年生には,次年度も 本テキストを用いて講義を行うことと,分量の関係でシナリオを分けて行うことを告げておく 興味がある学生は自力で残りのシナリオを行っておくのも良いことを伝える

− 仮想マシン (virtualbox, vagrant) − 仮想ネットワーク(network namespace)

Chapter 2 仮想環境におけるハッキングラボの作り方

このChapterは,いくつかの仮想環境を説明しVirtualBoxの上にParrotOSをインストールして 環境構築を行っているが,本校ではすでにVirtulBox + Vagrantの環境を構築している。 1年時はテキスト通りにおこなっても良いが,2年生はVagratCloudからBoxを引っ張ったほうが時間短縮できる。 またVulnHubとMetasploitable3を説明があるが,Metasploitable3のシナリオは2年生で行う。

  • VulnHub
  • Metasploitable
  • ParrotOS
  • 本校はUSキーボードを採用しているが,あえて教科書どおりインストールして環境をインストール後に(ディレクトリ名の英語化も)修正させると良い

Chapter 3 ParrotOSで遊ぼう

本校では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

Chapter 4 仮想マシンで習得するサーバー侵入

第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

Section 2

このセクションは本格的なハッキングのシナリオです VagrantもしくはVirtualBoxの仮想マシンを複数用意して実験を行います

EX01 Potatoのハッキング

1年生にとってはとても重要な内容なので,しっかりと行ってください。 2年生もプロトコルの仕組みをしっかりと復習することは重要なので復習します

skills

  • Scan: netdiscover, Nmap, Gobuster
  • Invasion: Anonymous FTP, ディレクトリトラバーサル,SSH
  • Authentication: Burp, John The Ripper
  • Privilege: sudo -l, /bin/nice

note

  • su, sudo, sudoersの学習と同時にUserGroupの役割も教えてください また ALL=(ALL:ALL) ALL は権限の与え方としては特殊であることも
  • IP, TCP, UDP, ICMP等のプロトコルはカプセル化やヘッダーの仕組みをしっかり教えてください
  • Wiresharkについてはtcpdumpも合わせて教えてください(サーバ内部の通信を確認するため)
  • netcatについては,HTTP,FTP,MAIL,TELNET通信やnc同士でのファイル転送(リダイレクト)を行ってください

EX02 DC-1のハッキング,EX03 DC-2のハッキング

このセクションではSCANとMetasploitをつかってのEXPLOITが重要項目になります 1年生必須,2年生は何も参照しないでもできるように指導してください

skills

  • Scan: fping, nmap, Droopescan
  • Investigation: robot.txt
  • Invasion: ExploitDB, Metasoloit, TTY
  • Privilege: SUID

note

EX04 Nappinngのハッキング

このセクションはPasswordのCrackingをオンライン・オフラインのクラッキングツールで,ブルートフォースと辞書攻撃の違いを学習します。 このセクションではJohn the ripperおよびHydraの実習がないが,できれば環境を準備したい。

note

EX05 Victimのハッキング

このセクションではスティッキービットの実行権限に関する学習と,tcpdumpまたはwireshark のキャプチャーやpcapファイルの解析を学習してクラックを行います

  • scan: netdiscover, Nmap, Gobuster
  • command: file, tcpdunp, wireshark
  • Authentication: Aircrack-ng
  • inversion: ssh
  • privilege: suid, nohup

EX06 Pwnlabのハッキング

  • scan: netdiscover, Nmap, Nikto, Gobuster
  • investigation: directorytraversal, fileinclude, Burp, passwd file
  • inversion: mysqlclient, strings command
  • privilege: suid

EX07 EvilBoxのハッキング

  • scan: arp-scan, Nmap
  • investigation: Gobuster, Wfizz, LinPEAS
  • inversion: LFI
  • analyse: evil.php
  • authentication: ssh2john, John the Rippter
  • privilege: passwd file

EX08 Ravenのハッキング

  • scan: Nmap, Dirb, WPScan
  • authentication: Hydra, John the Ripper
  • inversion: SSH
  • search: wp-config.php
  • privilege: su -l

EX09 VulnOSv2のハッキング

  • scan: netdiscover, Nmap, droopescan
  • datathief: SQL Injection, sqlmap
  • inversion: Metasploit, Drupageddon, reverse shell, SSH
  • search: config.php, LinPEAS
  • privilege: bash -i, Exploit

EX10 NullByteのハッキング

  • scan: fping, Nmap, DIRB
  • datathief:SQL injection, sqlmap
  • analyze: strings, exiftool, file
  • Hydra, John the Ripper
  • inversion: SSH
  • privilege: sudo -l, SUID

EX11 Mr-Robotのハッキング

  • scan: arp-scan, Nmap, Nikto
  • analize: Base64, password hash, Burp, development tool
  • authentication: reverse shall, netcat, curl, metasploit
  • privilege: suid, namp

EX12 Toppoのハッキング

  • scan: netdiscover, Nmap, Gobuster
  • search: /etc/sudoers
  • inversion: SSH
  • privilege: system, SUID

EX13 Jangrowのハッキング

  • scan: Nmap
  • datathief: command injection attack, curl
  • search: LinPEAS
  • investigation: ufw, iptables, tcpdump
  • inversion: ftp, reverse shell, Netcat
  • privilege: exploit

EX14 Deathnoteのハッキング

  • scan: Nmap,traceoroute, WPScan, Gobuster
  • authentication:Hydra, Metasoloit
  • analyze: Brainfuck, CyberChef
  • inversion: shell, ssh
  • privilege: sudo -l

EX15 LupinOneのハッキング

  • scan: Nmap, Wfuzz
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment