カテゴリ:13.実際にやってみる > 13.3.3 Linux(Other)

(1)インストールなど
①Kali linux ダウンロード
https://www.kali.org/downloads/

②VMへインストール
・VM workstation plyaerをダウンロード
・あとでOSをインストールする
インストールする際、Linuxでバージョンは「Debian」系である。version は不明
・HD 30G、メモリ1Gで設定
・VMwareツールをインストール
★CTL+ALTで仮想と実環境の切り替え
デフォルトのパスワードはtoor

・KaliにVMwaretoolを入れたい場合、openvmtoolsを入れるという方法もある。
apt-get update
apt-get install open-vm-tools-desktop

③起動後
イメージを更新するには
apt-get update
apt-get dist-upgrade

(2)初期設定
①キーボード
キーボードが違う気がする。viエディタなどでも、配列が違うと不便。
Setting> Region & Language から設定する。 Settingが表示されていない場合もあり、これは右上だったりする。
http://gate.hatenablog.jp/entry/2018/02/06/kali-keyboard
キーボードは日本語109 (OADG 109A) にしよう

②SSH接続
デフォルトだと、SSHサービスが起動していない場合がある。
systemctl start ssh
こうすれば、外部からSSH接続できるはずだ。(実際にできた)

(3)AWSのKali Linuxの場合
AWSでKaliLinuxを使う。
amazonマーケットプレースで選ぶことができる。無料枠の対象もあり、価格はかなり安い。

★注意点 ログインユーザはec2-user ではなくkali

■snmp-check
KaliLinuxで、snmp-checkを使うと、snmpのポーリングを仕掛けて
情報を一気に取得することができる。

##インストール
apt update
apt upgrade
apt install snmp
apt install snmpcheck

##実行
snmp-check -c public -v 2c 10.1.1.1

■ファイル探索
以下のツールがある
dirb dirbuster
gobuster

dirb でやってみよう。

apt install dirb
dirb http://203.0.113.123/page/
辞書ファイルを指定しないと、デフォルトの以下のファイルを使う
WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt

ただ、時間がかかるので、辞書ファイル的なものを使うといい。
以下は rockyou
wget http://downloads.skullsecurity.org/passwords/rockyou.txt.bz2

apt install bzip2
bunzip2 rockyou.txt.bz2

■PDFにかけたパスワード解析 john
(1)ファイルの準備
Wordにて、「名前を付けて保存」、ファイルの種類をPDFにして保存
ツール>全般オプションではなく、「オプション」>「ドキュメントをパスワードで暗号化する」にチェックを入れる。パスワードは6文字以上が求められる

(2)Kaliにて
AWSの場合、kaliでログイン
Latest Kali Linux with GUI & 2500+ Kali tools & appsの場合、ubuntuでログイン

sudo -i をして、必ずrootになっておこう

以下、マニュアルであるが、docker上でKaliが動いているみたいだ。
https://www.techlatest.net/support/desktop_linux_kali_support/aws_gettingstartedguide/

# docker start kali-linux
# docker exec -it kali-linux /bin/bash

#どこかにpdfファイルを置いて、そのファイルを取得
curl -O http://file_url

#ハッシュを作成
pdf2john abc.pdf > abc.hash

#hashが作成されていることを確認
cat abc.hash

# john abc.hash
Proceeding with wordlist:/usr/share/john/password.lst
123456           (abc.pdf)

上記のように、wordリストはデフォルトのwordlist:/usr/share/john/password.lstを使って解読してくれた。1秒かからず。

Wordlistを指定する場合は、以下でいけると思う
john --wordlist=/home/rockyou.txt abc.hash 


■VNC
VNCを接続するために、TCP5901を空ける
VNCのソフトはすでに入っているので、起動する。
https://dev.classmethod.jp/articles/kali-linux-vnc/
vncpasswd
パスワードは8文字がリミットのようだ。
また、このとき、view-only はNoにした。
vncserver :1
クライアントPCからはViewerをインストールして接続する。(英語版しかないのかな)
https://www.realvnc.com/en/connect/download/viewer/windows/
インスタンスのIP:5901でアクセスできる。
画面が小さいし、反応が遅い、キーボードが英語なので、少しやっかい。
→UltraVNCの方がいいかも
https://forest.watch.impress.co.jp/library/software/ultravnc/download_11198.html
※インストールするときは、Viewerだけでいいのではないかと思っている。

(1)John(John The Ripper)によるLinuxのパスワード解析

①インストール
#apt-get install john

②以下にあるようにShadowファイルそのものではできない
https://orebibou.com/2014/06/etcpasswd%E3%81%AE%E3%82%AF%E3%83%A9%E3%83%83%E3%82%AF%E3%83%84%E3%83%BC%E3%83%AB%E3%80%8Ejohn-the-ripper%E3%80%8F%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%9F/

③解析の実行
#john --users=user johnpasswd
4桁のパスワードであったが、PCのスペックもあるのであろうか、
結構時間がかかる。 →うまくいかなかった。途中で断念

(2)hydraによるPW解析
皆さんにとってわかりやすいPW解析ツールはhydra(ヒュドラ)であろう。
以下がわかりやすい。
https://ozuma.hatenablog.jp/entry/20130601/1370094859

Kali Linuxには最初から入っている。CentOSに入れるのはちょっと大変。
Ubuntsの方が入りやすそう。KaliLinuxはUbuntsベースなので。
http://kumonchu.com/oss/hydra-crunch-ubuntu/
続きを読む

clamAVというのがあり、これでウイルスチェックを行う。
https://www.infocircus.jp/2019/10/05/centos-7-virusscan-clamav/

#インストール
amazon-linux-extras install -y epel
yum install -y clamav clamav-data clamav-devel clamav-filesystem clamav-update clamd

#AVの定義ファイルの更新
freshclam

#スキャンの実行。以下のように、ディレクトリとして / を指定する
clamscan --infected --recursive /

#すべてを実行すると時間がかかるし、パーミッションエラーも多発するので、フォルダを絞って実行するのもいいだろう。
clamscan --infected --recursive /home
または、--exclude-dir で除外するフォルダを指定することも可能。

以下が結果の例
----------- SCAN SUMMARY -----------
Known viruses: 8945582
Engine version: 0.102.4
Scanned directories: 10939
Scanned files: 61495
Infected files: 0
Data scanned: 1446.60 MB
Data read: 2928.30 MB (ratio 0.49:1)
Time: 309.100 sec (5 m 9 s)

Infected files(感染したファイル)がゼロであることを確認しよう。
ファイルを削除することも大

また、cronによって定期的に実行することも選択肢。

HTTPヘッダインジェクションをLinux(AWS)で試してみる。

#http インストール
yum -y install httpd

#perl-CGI インストール
yum -y install perl-CGI

#httpd.confの以下を変更
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org
ls -la /etc/httpd/conf/httpd.conf*

# vi /etc/httpd/conf/httpd.conf
# 以下を修正
#   Options Indexes FollowSymLinks
#  ==>  
#   #Options Indexes FollowSymLinks
#   Options Indexes ExecCGI FollowSymLinks
#
#   #AddHandler cgi-script .cgi
#  ==>  
#   #AddHandler cgi-script .cgi
#   AddHandler cgi-script .cgi

#流し込む場合
sed -i 's/Options Indexes FollowSymLinks/Options Indexes ExecCGI FollowSymLinks/' /etc/httpd/conf/httpd.conf
sed -i '/#AddHandler cgi-script .cgi/ s/#//' /etc/httpd/conf/httpd.conf

#Apache 起動関連
systemctl start httpd
systemctl enable httpd

cd /var/www/html/

#index.cgiを作成
cat <<'EOF' > index.cgi  #EOFを'でクォートしないと、$が変数として展開されてしまう。
#!/bin/perl
use CGI;
use CGI::Cookie;

my $cgi = new CGI;
my $url =$cgi->param('url');

if ($ENV{'QUERY_STRING'} ne '') {
  if ($url ne '') {
    print "Location: $url\n\n";
  }
  print $cgi->header;
}
else{

print $cgi->header;

my %cookies = fetch CGI::Cookie;
if (exists $cookies{'SID'}) {
    $value = $cookies{'SID'}->value;
    if ($value eq 12345){
        print "success";
    }
}else{
    print "hello";
}
}
EOF

#index.cgiに実行権限を付与
chmod +x index.cgi

■ではやってみる
①ページを表示する
http://203.0.113.25/index.cgi
→helloと表示される

②urlの引数を入れて、リダイレクトさせる。
ソースプログラムを見るとわかるが、URLに記載されたurlのパラメータ(値)を「Location: $url\n\n";」というHTTPレスポンスヘッダに入れているので、?url=で記載したURLにページが遷移する
http://203.0.113.25/index.cgi?url=https://www.yahoo.co.jp/

③CookieにSIDをセットする。
HTTPレスポンスヘッダでは、「Location: $url\n\n";」になっていて、以下のように%0D%0Aで改行コードを入れると、HTTPレスポンスヘッダに「Set-Cookie:SID=12345」が入れられる。なので、(セッションを受け取っているだけだとダメで、次にアクセスしたときにCGIスクリプトが反応するので、もしかするともう一度アクセスする必要があるだろうが、)CGIプログラムでSIDを見てsuccessと表示することができる。
http://203.0.113.25/index.cgi?url=http://203.0.113.25/index.cgi%0D%0ASet-Cookie:SID=12345

④HTTPヘッダをみてみよう。GoogleChromの場合、F12で開発者ツール、「Network」タブで、もう一度ページをリロードし、そのページをみるとHeaderが見える。
たとえば、ソースプログラムで以下のようにHTTPヘッダに文字を足してみて、HTTPヘッダをみてみると、わかりやすだろう。「Hello___」の文字が付与されているはずである。
else{
print "Hello___";
print $cgi->header

■1.設定概要
基本的には最近のWebサーバはPUTメソッドがデフォルトでは禁止されている。HTTPのPUTメソッドによるファイルのアップロードを実現するには、Apacheの場合はWebDavが必要。
以下も参照設定
https://httpd.apache.org/docs/2.4/ja/mod/mod_dav.html

※DavLockDBの設定がないとCentOS7ベースのOSは以下のエラーが出る
A lock database was not specified with the DAVLockDB directive. One must be specified to use the locking functionality.  [500, #401]
apacheがインストールされているとして、設定は以下

①httpd.confの最後に以下を追加
vim conf/httpd.conf

DavLockDB "/var/tmp/DavLock"

<Directory "/var/www/html/dav">
        Require all granted
        Dav On
</Directory>

②Davディレクトリ追加
mkdir -p /var/www/html/dav
chmod 777 /var/www/html/dav

③apacheを再起動
systemctl restart httpd

■2.PCからの操作
①アップロード (上書きも可能)
curl -T a.txt --url http://10.1.1.115/dav/a.txt -X PUT

②ファイル取得
curl -O http://10.1.1.115/dav/a.txt

以下だと、ファイルを取得せずに中身を表示
curl --url http://10.1.1.115/dav/a.txt -X GET

③ファイルDELETE(削除)
curl --url http://10.1.1.115/dav/a.txt -X DELETE

■3.WebDavの設定 流し込み
#コンフィグバックアップ
cd /etc/httpd/conf/
sudo cp httpd.conf httpd.conf.org

#PUTメソッド利用のため、mod_davモジュールが有効になっていることを確認(AmazonLinux2ではデフォルト有効)
less /etc/httpd/conf.modules.d/00-dav.conf | grep mod_dav

#以下の3行がコメントアウトされずに記載されていることを確認
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_lock_module modules/mod_dav_lock.so

#PUTメソッド利用のため、davモジュールがインストールされていることも確認
grep -r dav /etc/httpd/modules

#恐らく、以下が表示されるはず
#Binary file /etc/httpd/modules/libphp5.so matches
#Binary file /etc/httpd/modules/mod_dav.so matches
#Binary file /etc/httpd/modules/mod_dav_fs.so matches
#Binary file /etc/httpd/modules/mod_dav_lock.so matches
#Binary file /etc/httpd/modules/mod_status.so matches
#Binary file /etc/httpd/modules/mod_headers.so matches

#httpd.confファイルの末尾に追加
sed -i /etc/httpd/conf/httpd.conf -e '$ a DavLockDB "/var/tmp/DavLock"\n\n<Directory "/var/www/html/dav">\n\tRequire all granted\n\tDav On\n</Directory>'

#Davディレクトリ追加
mkdir -p /var/www/html/dav
chmod 777 /var/www/html/dav

#apacheを再起動
systemctl restart httpd

OpenVasのインストール

ネットにもいろいろ書かれてあるが、実際にやってみるとエラーばかりで大変であった。
以下で実施した。
①AWSのパターン
②CentOSのパターン

■Openvasの使い方
以下に解説があるが、画面がやや違う
https://knowledge.sakura.ad.jp/342/

Scans>Tasksを開き、左上にある四角に★のところから、New Taskを実行
IPアドレスだったり、認証情報を設定する

リストが出てくるので ▶で実行する。
続きを読む

Linuxの場合、nmapをインストールする。
ポートスキャンは簡単。nmapで、IPアドレスを指定するだけ。
ただ、オプションがいくつかある。以下が詳しい。
https://www.checksite.jp/nmap-command-option/

(1)install
yum -y install nmap
※サービスの起動は不要でした。

(2)ホストスキャン
ホスト(コンピュータ)を探す。
# nmap -n -sn 192.168.1.0/24

※オプション
-n:名前解決をしない
-sn:ポートスキャンをしない

(3)ポートスキャン
指定したIPアドレスで動いているサービス(つまりポート)を探す。
①IPアドレスを指定して、単純なポートスキャン
# nmap 172.31.37.179
・・・
PORT    STATE SERVICE
21/tcp  open  ftp
22/tcp  open  ssh
80/tcp  open  http

※オプションに何もつけないと、TCPスキャンになる

②オプションをつけてみよう。
オプション一覧は、以下
https://svn.nmap.org/nmap/docs/nmap.usage.txt

代表的なオプションとして、以下がある。
-sS:ステルススキャン
-sU:UDPスキャン
-reason:理由を表示
-A:詳細なバージョン  ←結構有意義 # nmap 192.168.1.11 -A
-O OSが何かを調査
-p ポートを指定する。指定しないと、たしか代表1000ポートだったと思う。
-sU UDPのポートスキャン ←時間がかかる
-sV:ソフトのバージョン
# nmap -sV 172.16.1.5
・・・
PORT    STATE SERVICE VERSION
21/tcp  open  ftp     vsftpd 3.0.2
22/tcp  open  ssh     OpenSSH 7.4 (protocol 2.0)
80/tcp  open  http    Apache httpd 2.4.41 (() PHP/5.4.16)

(例)OSのバージョンなどを調査
# nmap -O 192.168.1.1

(4)参考
TCPでLinstenしているサービスを探す。
ssはnetstatの後継コマンドと考えればいいだろう。

ss -antup | grep tcp

また、pstree -a でも、起動しているプロセスが分かるので、参考になると思う。

■事前準備
Webサーバの起動やFWの調整
service httpd start
SELinuxははずした。※元ファイルは.orgなどをつけて保存しておきましょう。
・iptables -L でhttp(80)が開いているかをみよう。デフォルトではOFFになっていると思う
・system-config-firewall で、80を空ける

これにより、外部(ホストOS)から仮想OSのWebサイトを見ることができる。

また、8080ポートが開いていないので
# vi /etc/sysconfig/iptables を開いて以下を追加
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

# service iptables restart でサービス再起動
続きを読む

世の中にはパスワード解析ツールなるものがあります。
マシンスペックと時間が必要ですが、パスワードの解析ができますので、パスワードは長くしておく必要がある。
また、簡単なパスワード、たとえば123456とか、zxcvbn(←キーボードの一番下)は、すぐに解けてしまうので、特に気を付ける必要がある。
続きを読む

■メモリフォレンジック volatility
①インストール
https://zoomadmin.com/HowToInstall/UbuntuPackage/volatility

(1)CTFの問題を使って、フォレンジックをやってみよう
問題は以下
---------
Memory Analysis(Forensics 100)
Memory Analysis
Find the website that the fake svchost is accessing.
You can get the flag if you access the website!!

memoryanalysis.zip
The challenge files are huge, please download it first.
Hint1: http://www.volatilityfoundation.org/
Hint2: Check the hosts file
---------
 メモリダンプそのものは、容量が大きいが以下にある。
 https://github.com/SECCON/SECCON2016_online_CTF/blob/master/Forensic/100_MemoryAnalysis/files/fileurl.txt
 ダウンロ―ドして、記載されたPW「fjliejflsjiejlsiejee33cnc」で開ける

(2)解き方はこちら
http://ecoha0630.hatenablog.com/entry/2016/12/11/200127
https://qiita.com/yuu26/items/c257cc09a4535367c021

①imageinfoオプションで、メモリダンプの情報を見る 
# volatility -f ./forensic_100.raw imageinfo

Suggested Profile(s) : WinXPSP2x86, WinXPSP3x86 (Instantiated with WinXPSP2x86)

→WinXPのものらしい。
★場合によっては、ここで表示されたProfileを指定する。
# volatility -f ./forensic_100.raw --profile=WinXPSP3x86 pstree
※必須という表記もあるが、以下のようになくてもうまくいった。よくわからん。それと、複数のプロファイルが表示されたら、新しい方がいいかも

②pstreeを見てみる
# volatility -f ./forensic_100.raw pstree

...... 0x8229f7e8:IEXPLORE.EXE                       1080    380     19    397 2016-12-06 05:27:21 UTC+0000

IEなどのプロセスが見える。

③接続状況を見る connectionsまたはnetscan
# volatility -f ./forensic_100.raw connections
Volatility Foundation Volatility Framework 2.6
Offset(V)  Local Address             Remote Address            Pid
---------- ------------------------- ------------------------- ---
0x8213bbe8 192.168.88.131:1034       153.127.200.178:80        1080

接続したサーバがわかる。pid1080とあるが、先ほどのpestreeではIEが動いていた。

または、netscanコマンド。このあたりは、OS(WindowsXPなのか7なのかなど)によってコマンドが違うので、OSに合わせたコマンドを打つ

④ヒントとして「Hint2: Check the hosts file」とあったので、hostsファイルが見たい →filescanで hostsでGrepする

# volatility -f ./forensic_100.raw filescan | grep hosts
0x000000000217b748      1      0 R--rw- \Device\HarddiskVolume1\WINDOWS\system32\drivers\etc\hosts
→どうやらhostsファイルがあるようだ。

⑤そのhostsファイルのIDを指定して、ファイルを出力する。-Qでファイルを指定し、名前をわかるようにしたほうがいいので、--name -D と指定する。※このあたりは上記のサイトの通り。

# volatility -f ./forensic_100.raw dumpfiles -Q 0x000000000217b748 --name -D ./

⑥lsで見ると、以下のファイルが作成されている。
file.None.0x819a3008.hosts.dat 

⑦このhostsファイルを開くと、以下とある。
153.127.200.178    crattack.tistory.com root@user-virtual-machine:/home/user#

・・・その他のオプション
◎OSのユーザを見るには、以下で見えるはず
python vol.py hashdump -f ./xxxx --profile=xxx

⑧hivelist :レジストリ情報

#volatility -f ./forensic_100.raw hivelist
・・・・
0xe230d5e0 0x0ffa15e0 \Device\HarddiskVolume1\Documents and Settings\Administrator\NTUSER.DAT
・・・

ここで、上記のNTUSER.DATを出力してみる。

#volatility -f ./forensic_100.raw hivedump -o 0xe230d5e0
※オプションが -sなのか-yなのか、バージョンによって異なるような気もする。

⑨yarascanを使った文字列の検索
# volatility -f ./forensic_100.raw yarascan -Y "https:"
ここで、"http"などとしてもいいだろう。ただ、量が多い。pidがわかるのであれば、指定したい。

# volatility -f ./forensic_100.raw yarascan -Y "http" --pid=1080

# volatility -f ./forensic_100.raw connscan
・connscan:既に接続が終わっているもの

・cmdscan、consolesでコマンド履歴を表示
たとえば、
#volatility.exe -f ./MemoryDump_Lab1.raw --profile=Win7SP1x64 consoles


・一覧および操作方法は以下
https://github.com/volatilityfoundation/volatility/wiki/Command-Reference

・ログインパスワードを解析する
パスワードを解析するには、SYSTEMの中のシステムKEYと、実際にパスワードが格納されているSAMの両方が必要になる。
https://gomiba.co.in/blog/archives/342
ここにあるように、hivelist でSYSTEMとSAMのVirtual Addressを取得する。
# volatility -f ../Memorydump2.bin --profile=Win7SP0x86 hivelist
上記のコマンドリファレンスにあるように、以下を参照。
すると、SYSTEMは -yで、SAMは -sで指定する。どっちがSYSTEMでどっちがSAMかをわかるようにしているのだろう。

To use hashdump, pass the virtual address of the SYSTEM hive as -y and the virtual address of the SAM hive as -s, like this:

$ python vol.py hashdump -f image.dd -y 0xe1035b60 -s 0xe165cb60
→ こんな感じかな
# volatility -f ../Memorydump2.bin --profile=Win7SP0x86 hashdump -y 0x8f61c008 -s 0x9ffc03a0

すると、PWファイルが表示される。このハッシュからPWを出す。
PWハッシュは2つあり、後半の方が実際に使われているNTハッシュ。
これを解く。どうやって解くんだろう
→https://crackstation.net/に投げてみたが、表示されなかった・・。

Apache Killerという、古いApacheのWebサーバを簡単にダウンさせる攻撃がある。
いか、試してみました。
(1)攻撃方法
https://ao-zai.blogspot.com/2011/09/apache-killercve-2011-3192_90.html
脆弱性があるのは、2.0.64以下の全ての2.0系と2.2.19以下の全ての2.2系。
ここに記載があるように、以下のシェルを実行する
https://pastebin.com/NCDv9eTh

(2)2.2.19の環境を作る
※以下のようにrpmで入れるのはつらかった。途中で挫折
curl -O https://archive.apache.org/dist/httpd/binaries/rpm/x86_64/httpd-2.2.2-1.x86_64.rpm  
rpm -ivh httpd-2.2.2-1.x86_64.rpm
続きを読む

sambaの設定
1.インストール
samba-swat
samba
samba-client
samba-common

2.swatの準備
1) /etc/xinetd.d/swat を書き変え
 disable =no
 only_from=127.0,0,1 192.168.1.10 ←swatを利用するマシンを追加
2) xinetdの再起動

3.SWATの設定
1)ブラウザでSambaサーバにアクセスhttp://192.168.1.20:901/
※FW設定などはlokkit(?)ではずす

2) IDパスワードを入力 ※rootでもはいれる
3) GLOBALS workgroupをWindowsのワークグループと同じに
4) SHARES COMMENTにて新しい名前、PATHにて共有するディレクトリを指定、ReadOnlyなど
の設定を適宜行う
5) VIEWで設定を確認する。SWATでやれば文法間違いが無いから安心
6) STATUSにてsmbdとnmbdを起動
7) ユーザの設定 PASSWORDページにて、ローカルマシン側の各項目に一般ユーザの
アカウントを設定する。※Linuxサーバに事前登録したもの。[Add New User]ボタンを押す

4.LinuxサーバとPCを再起動
Linuxのsmbdとnmbdの再起動でも利用できたかも
LinuxのユーザとSambaのユーザ関係は独立しているかもしれない。

swatを使わないなら以下が参考になるかも
http://www.psg.jp/samba_server.html

LinuxブートローダにはLILO(LinuxLoader)とGRUBがあり、いまはGRUBが多いだろう。
GRUB(GRand Unified Boot loader)の設定は、/boot/grub/grub.confに記載されており、そこに記載されているOSを起動することができる。

GRUBの画面にて、e(edit)を押すと編集画面になり、パスワードを忘れたときのリカバリができるシングルユーザモードでのログインができる。

■パスワードリカバリの方法
GRUBの場合、GRUBの画面でeditを表す「e」を押して編集画面を表示します。
・最後に「single」を入力してbootを表す「b」を押してブートします。
・シングルユーザモードで起動するので、passwdコマンドで新しいパスワードを設定します。

ZIP暗号であるが、暗号方式には2つある。AES256も選べるが、多くの場合はデフォルトで簡易な暗号方式を使っている。ツールを使えば解読が簡単である。
今回はzip2john と hashcat を使った。
AWSで試してみる。

###1.環境構築
(1)AWSの以下をマーケットプレースで検索して構築
使ったのは以下のインスタンス。これは、GPUおよびそれに必要なモジュールcudaなどが準備されているので、セットアップが楽。
AWS Deep Learning AMI (Ubuntu 18.04)
インスタンスはp3.2xlargeが限界。それ以上にするには、拡張の申請が必要。
p3.2xlarge GPUs – Tesla V100を1、GPUメモリ16GB

価格であるが、p3.2xlargeの場合、$3.06/時間 →1時間330円くらい

(2)インストールおよび設定
ログインユーザはec2-userではなく、ubuntuなので注意
#1.環境準備
apt update
apt upgrade
apt install zip
apt install gcc
nvidia-smi

#2.hashcatのインストール
git clone https://github.com/hashcat/hashcat.git
cd hashcat
make && sudo make install

/usr/local/bin/hashcat -I

#3.JTR:JohnTheRipperのインストール
git clone https://github.com/magnumripper/JohnTheRipper.git
cd JohnTheRipper/src
./configure
make -s clean && make -sj$(grep processor /proc/cpuinfo | wc -l)
sudo make install
sudo ln -s $(pwd)/../run/zip2john /usr/local/bin/


https://secu.tech.blog/2019/12/30/example-post/

以下、やってみた。
続きを読む

■Ubuntu
・インストールする
・なぜか、rootユーザではなく、一般ユーザの名前をつけた。rootはつけられない。
・sudo su でrootになる(つまり、インストール時に作成したユーザがrootである
・インストール後はソフトをUpdateしておこう
# apt update
# apt upgrade
・アプリをインストールするには、以下 nmapをインストールする場合
# apt-get install nmap

# apt-get install ghex

・GUIでghexなどを動かすにはsynaptic packege managerをインストールする。
これは、GUI画面でソフトを検索すれば出てくるはず。
https://linux.just4fun.biz/?%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2/%E9%96%8B%E7%99%BA%E3%83%BB%E3%83%87%E3%83%90%E3%83%83%E3%82%B0/%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF+ghex

手探りだが、チェックを入れて、適用とかしてみた。よくわかっていないが、Aのカバンのアイコンのところで、インストールができたような気がする。

・「かな」入力 →↑のバーに「ja」とかの欄があり、ここで切り替えができる。

・画面が小さい→VMwareToolsを入れる。※OS単位。VMwareに入れるのではない。
下の方に出てくるか、VMのメニューの「Players」>「管理」>「Vmware tools」
から実行する。接続しているDVDに入っているので、一度、VMの画面でDVDのOFF/ONをするといいだろう。そうすると、DVDが上がってくると思う。
https://kb.vmware.com/articleview?docid=1022525&lang=ja

DVD上(おそらく/medhia/user名/Vmware Tools/では実行ができないので、ファイルをローカルにコピーし、vmware-install.plを実行する。なんどか質問がされるが、すべてデフォルトなので、Enterでいいだろう。

■UbuntuにSSH
#apt install ssh
#systemctl start ssh ←サービスの起動
#ufw allow 22 ←22番を開ける

設定ファイルは
/etc/ssh/sshd_config

だが、特に設定しなくても利用できる。rootでもログインできるので、そこは変更してもいいかも。

・ログは/var/log/auth.log

■IPアドレスの変更
以下のファイルを変える。
/etc/network/interfaces

■Ubuntu
・流し込みでPW変更
echo "user1:user_pass" | sudo chpasswd

シェルでやる場合、こんなんでできるはず

for i in {1..3};do
  #パスワードだったり色々質問されるので
  sudo adduser -q --gecos "" --disabled-login user${i} 
  echo "user${i}:pass_user${i}" | sudo chpasswd
done

■ufw
CentOS7の場合、firewalldによるfirewall-cmdであるが,ubuntsの場合はufwが備わっているので、結構便利。
ただ、どちらも裏ではiptablesが動いている。
https://qiita.com/hana_shin/items/a630871dce209cff04f3
fierwalldよりずいぶんと使いやすいと思う。
・起動
systemctl start ufw
・停止
systemctl stop ufw
・状態確認
ufw status numbered
・ルールの追加
ufw allow ssh
・ポート22(ssh)を拒否する
ufw deny 22

■ユーザの追加
#ユーザ(user1)を作る
adduser user1

#ユーザを削除する場合は-rをつけよう。ホームディレクトリも消してくれる
userdel -r user1

■AWSでUbunts
Ubuntu Server 18.04 LTS を選択した。
ログイン時のユーザ名は ubuntu

# rootでログイン
sudo -i

■shellinabox コマンドラインをブラウザで実行するように
・ブラウザで接続し、そこからLinuxのコマンドを打てるようにする。
・セキュリティを保つための踏み台サーバとしても使えるだろう。
・ポート番号は4200であり、https://xxxxx:4200 でアクセスする。
・CentOSでもできるはずだが、うまくいかないのでubuntsで実施した。
→いや、できた。手順は以下
https://python3.hatenadiary.com/entry/Linux

# サービスの最新化
apt update
apt upgrade
# shellinaboxのインストール
apt-get install shellinabox
# サービスの起動
systemctl start shellinabox.service

↑このページのトップヘ