OverTheWire:Bandit

Bandit Level 0

The goal of this level is for you to log into the game using SSH. The host to which you need to connect isbandit.labs.overthewire.org, on port 2220. The username is bandit0and the password is bandit0. Once logged in, go to the Level 1page to find out how to beat Level 1.

 

sshでサーバにに接続 サーバ名:bandit.labs.overthewire.org / ログイン名:bandit0 / パスワード:bandit0

 

% ssh bandit0@bandit.labs.overthewire.org -p 2220

This is a OverTheWire game server. More information on http://www.overthewire.org/wargames

bandit0@bandit.labs.overthewire.org's password: bandit0

 

Bandit Level 0 → Level 1

The password for the next level is stored in a file calledreadmelocated in the home directory. Use this password to log into bandit1 using SSH. Whenever you find a password for a level, use SSH (on port 2220) to log into that level and continue the game.

 

◼readmeファイルを表示

bandit0@bandit:~$ ls -l

total 4

-rw-r----- 1 bandit1 bandit0 33 Dec 28 14:34 readme

bandit0@bandit:~$ cat readme

boJ9jbbUNNfktd78OOpsqOltutMc3MY1

 

Bandit Level 1 → Level 2

The password for the next level is stored in a file called -located in the home directory

 

◼"-"ファイルを表示

bandit1@bandit:~$ ls -l

total 4

-rw-r----- 1 bandit2 bandit1 33 Dec 28 14:34 -

bandit1@bandit:~$ cat ./-

CV1DtqXWVFXTvM2F0k09SHz0YwRINYA9

 

Bandit Level 2 → Level 3

The password for the next level is stored in a file called spaces in this filenamelocated in the home directory

 

◼スペースの有るファイル名を指定し表示

bandit2@bandit:~$ ls -l

total 4

-rw-r----- 1 bandit3 bandit2 33 Dec 28 14:34 spaces in this filename

bandit2@bandit:~$ cat "spaces in this filename" 

UmHadQclWmgdLOKQ3YNgjWxGoRMb5luK

 

Bandit Level 3 → Level 4

The password for the next level is stored in a hidden file in theinheredirectory.

 

◼"."で始まるファイル名を指定し表示

bandit3@bandit:~$ ls -la inhere/

total 12

drwxr-xr-x 2 root    root    4096 Dec 28 14:34 .

drwxr-xr-x 3 root    root    4096 Dec 28 14:34 ..

-rw-r----- 1 bandit4 bandit3   33 Dec 28 14:34 .hidden

bandit3@bandit:~$ cat inhere/.hidden 

pIwrPrtPN36QITSp3EQaw936yaFoFgAB

 

Bandit Level 4 → Level 5

The password for the next level is stored in the only human-readable file in the inheredirectory. Tip: if your terminal is messed up, try the “reset” command.

 

◼human-readable file を探してファイルを表示

bandit4@bandit:~$ ls -l

total 4

drwxr-xr-x 2 root root 4096 Dec 28 14:34 inhere

bandit4@bandit:~$ ls -l inhere/

total 40

-rw-r----- 1 bandit5 bandit4 33 Dec 28 14:34 -file00

-rw-r----- 1 bandit5 bandit4 33 Dec 28 14:34 -file01

-rw-r----- 1 bandit5 bandit4 33 Dec 28 14:34 -file02

-rw-r----- 1 bandit5 bandit4 33 Dec 28 14:34 -file03

-rw-r----- 1 bandit5 bandit4 33 Dec 28 14:34 -file04

-rw-r----- 1 bandit5 bandit4 33 Dec 28 14:34 -file05

-rw-r----- 1 bandit5 bandit4 33 Dec 28 14:34 -file06

-rw-r----- 1 bandit5 bandit4 33 Dec 28 14:34 -file07

-rw-r----- 1 bandit5 bandit4 33 Dec 28 14:34 -file08

-rw-r----- 1 bandit5 bandit4 33 Dec 28 14:34 -file09

bandit4@bandit:~$ file inhere/-file0*

inhere/-file00: data

inhere/-file01: data

inhere/-file02: data

inhere/-file03: data

inhere/-file04: data

inhere/-file05: data

inhere/-file06: data

inhere/-file07: ASCII text

inhere/-file08: data

inhere/-file09: data

bandit4@bandit:~$ cat inhere/-file07

koReBOKuIDDepwhWk7jZC0RTdopnAYKh

 

Bandit Level 5 → Level 6

The password for the next level is stored in a file somewhere under the inheredirectory and has all of the following properties:

  • human-readable
  • 1033 bytes in size
  • not executable

 

◼inhereディレクト配下で1033bytesのファイルを検索し表示

bandit5@bandit:~$ find inhere/ -size 1033c

inhere/maybehere07/.file2

bandit5@bandit:~$ cat inhere/maybehere07/.file2

DXjZPULLxYr17uwoI01bNLQbtFemEgo7

 

Bandit Level 6 → Level 7

The password for the next level is stored somewhere on the serverand has all of the following properties:

  • owned by user bandit7
  • owned by group bandit6
  • 33 bytes in size

 

◼全ディレクトリから user:bandit7 / group:bandit6 / size:33bytsを検索し表示

bandit6@bandit:~$ find / -user bandit7 -group bandit6 -size 33c | grep bandit7

find: '/etc/ssl/private': Permission denied

find: '/etc/polkit-1/localauthority': Permission denied

find: '/run/lxcfs': Permission denied

find: '/run/user/11002': Permission denied

find: '/run/user/11019': Permission denied

find: '/run/user/11004': Permission denied

find: '/run/user/11021': Permission denied

find: '/run/user/11008': Permission denied

find: '/run/user/11001': Permission denied

find: '/run/user/11010': Permission denied

find: '/run/user/11023': Permission denied

find: '/run/user/11024': Permission denied

find: '/run/user/11012': Permission denied

find: '/run/user/11022': Permission denied

find: '/run/user/11020': Permission denied

find: '/run/user/11015': Permission denied

find: '/run/user/11025': Permission denied

find: '/run/user/11016': Permission denied

find: '/run/user/11014': Permission denied

find: '/run/user/11011': Permission denied

find: '/run/user/11017': Permission denied

find: '/run/user/11013': Permission denied

find: '/run/user/11000': Permission denied

find: '/run/user/11005': Permission denied

find: '/run/sudo': Permission denied

find: '/run/log/journal/0d8e66480c320675a338622759f86ace': Permission denied

find: '/run/lvm': Permission denied

find: '/run/systemd/inaccessible': Permission denied

find: '/run/lock/lvm': Permission denied

find: '/dev/mqueue': Permission denied

find: '/dev/shm': Permission denied

find: '/lost+found': Permission denied

find: '/root': Permission denied

find: '/opt/splunkforwarder/etc/auth': Permission denied

find: '/opt/splunkforwarder/etc/apps/learned/local': Permission denied

find: '/opt/splunkforwarder/var': Permission denied

find: '/home/bandit5/inhere': Permission denied

find: '/var/log': Permission denied

find: '/var/lib/puppet': Permission denied

find: '/var/lib/apt/lists/partial': Permission denied

/var/lib/dpkg/info/bandit7.password

find: '/var/lib/polkit-1': Permission denied

find: '/var/spool/rsyslog': Permission denied

find: '/var/spool/bandit24': Permission denied

find: '/var/spool/cron/atspool': Permission denied

find: '/var/spool/cron/atjobs': Permission denied

find: '/var/spool/cron/crontabs': Permission denied

find: '/var/crash': Permission denied

find: '/var/tmp': Permission denied

find: '/var/cache/apt/archives/partial': Permission denied

find: '/var/cache/ldconfig': Permission denied

find: '/tmp': Permission denied

find: '/sys/fs/fuse/connections/39': Permission denied

find: '/sys/kernel/debug': Permission denied

find: '/proc/tty/driver': Permission denied

find: '/proc/31197/task/31197/fd/6': No such file or directory

find: '/proc/31197/task/31197/fdinfo/6': No such file or directory

find: '/proc/31197/fd/5': No such file or directory

find: '/proc/31197/fdinfo/5': No such file or directory

bandit6@bandit:~$ cat /var/lib/dpkg/info/bandit7.password 

HKBPTKQnIay4Fw76bEy8PVxKEDQRKTzs

 

Bandit Level 7 → Level 8

The password for the next level is stored in the file data.txtnext to the word millionth

 

◼word:"millionth"をdata.txtから検索

bandit7@bandit:~$ grep millionth data.txt 

millionth cvX2JJa4CFALtqS87jk27qwqGhBM9plV

 

Bandit Level 8 → Level 9

The password for the next level is stored in the file data.txtand is the only line of text that occurs only once

 

◼1回だけ出現するテキスト行を表示

bandit8@bandit:~$ sort data.txt | uniq -u

UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR

 

Bandit Level 9 → Level 10

The password for the next level is stored in the file data.txtin one of the few human-readable strings, beginning with several ‘=’ characters.

 

◼human-readable で"="で始まる

bandit9@bandit:~$ strings data.txt | grep "^="

=-VW+

========== theP`

========== password

========== truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk

 

Bandit Level 10 → Level 11

The password for the next level is stored in the file data.txt, which contains base64 encoded data

 

base64エンコードされたデータをデコード

bandit10@bandit:~$ base64 -d data.txt 

The password is

 

Bandit Level 11 → Level 12

The password for the next level is stored in the file data.txt, where all lowercase (a-z) and uppercase (A-Z) letters have been rotated by 13 positions

 

◼ROT13(シーザ暗号)を解く

bandit11@bandit:~$ cat data.txt

Gur cnffjbeq vf 5Gr8L4qetPEsPk8htqjhRK8XSP6x2RHh

bandit11@bandit:~$ python3

Python 3.5.2 (default, Nov 23 2017, 16:37:01)

[GCC 5.4.0 20160609] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>> import codecs

>>> codecs.decode('Gur cnffjbeq vf 5Gr8L4qetPEsPk8htqjhRK8XSP6x2RHh', 'rot13')

'The password is 5Te8Y4drgCRfCx8ugdwuEX8KFC6k2EUu'

 

Bandit Level 12 → Level 13

The password for the next level is stored in the file data.txt, which is a hexdump of a file that has been repeatedly compressed. For this level it may be useful to create a directory under /tmp in which you can work using mkdir. For example: mkdir /tmp/myname123. Then copy the datafile using cp, and rename it using mv (read the manpages!)

 

◼繰り返し圧縮された16進ダンプされたファイルを変換、解凍

*xxd -r :16進ダンプからバイナリ形式に変換
*file:形式を確認
*mv:でファイル名を変更する
*gzip / bzip2 / tar / bz2 圧縮・解凍

bandit12@bandit:~$ mkdir/tmp/pass

bandit12@bandit:~$ cp -p data.txt /tmp/pass/data.txt

bandit12@bandit:~$ cd /tmp/pass

bandit12@bandit:/tmp/pass$ ls -l

total 4

-rw-r----- 1 bandit12 bandit12 2646 Dec 28 14:34 data.txt

bandit12@bandit:/tmp/pass$ xxd -r data.txt > data1

bandit12@bandit:/tmp/pass$ ls

data.txt  data1

bandit12@bandit:/tmp/pass$ file data1

data1: gzip compressed data, was "data2.bin", last modified: Thu Dec 28 13:34:36 2017, max compression, from Unix

bandit12@bandit:/tmp/pass$ mv data1 data1.gz

bandit12@bandit:/tmp/pass$ gzip -d data1.gz

bandit12@bandit:/tmp/pass$ ls

data.txt  data1

bandit12@bandit:/tmp/pass$ file data1

data1: bzip2 compressed data, block size = 900k

bandit12@bandit:/tmp/pass$ ls -l  

total 8

-rw-r----- 1 bandit12 bandit12 2646 Dec 28 14:34 data.txt

-rw-rw-r-- 1 bandit12 bandit12  585 May 21 15:16 data1.gz2

bandit12@bandit:/tmp/pass$ bzip2 -d data1.gz2

bzip2: Can't guess original name for data1.gz2 -- using data1.gz2.out

bandit12@bandit:/tmp/pass$ ls

data.txt  data1.gz2.out

bandit12@bandit:/tmp/pass$ mv data4.gzip data4.gz

bandit12@bandit:/tmp/pass$ ls

data.txt  data4.gz

bandit12@bandit:/tmp/pass$ gzip -d data4.gz 

bandit12@bandit:/tmp/pass$ ls

data.txt  data4

bandit12@bandit:/tmp/pass$ file data4

data4: POSIX tar archive (GNU)

bandit12@bandit:/tmp/pass$ mv data4 data4.tar

bandit12@bandit:/tmp/pass$ tar -xvf data4.tar 

data5.bin

bandit12@bandit:/tmp/pass$ file data5.bin

data5.bin: POSIX tar archive (GNU)

bandit12@bandit:/tmp/pass$ mv data5.bin data5.tar

bandit12@bandit:/tmp/pass$ tar -xvf data5.tar 

data6.bin

bandit12@bandit:/tmp/pass$ file data6.bin

data6.bin: bzip2 compressed data, block size = 900k

bandit12@bandit:/tmp/pass$ mv data6.bin data6.bz2

bandit12@bandit:/tmp/pass$ bzip2 -d data6.bz2

bandit12@bandit:/tmp/pass$ ls

data.txt  data4.tar  data5.tar  data6

bandit12@bandit:/tmp/pass$ file data6

data6: POSIX tar archive (GNU)

bandit12@bandit:/tmp/pass$ mv data6 data6.tar

bandit12@bandit:/tmp/pass$ tar -xvf data6.tar

data8.bin

bandit12@bandit:/tmp/pass$ file data8.bin 

data8.bin: gzip compressed data, was "data9.bin", last modified: Thu Dec 28 13:34:36 2017, max compression, from Unix

bandit12@bandit:/tmp/pass$ mv data8.bin data8.gz

bandit12@bandit:/tmp/pass$ gzip -d data8.gz 

bandit12@bandit:/tmp/pass$ ls

data.txt  data4.tar  data5.tar  data6.tar  data8

bandit12@bandit:/tmp/pass$ file data8

data8: ASCII text

bandit12@bandit:/tmp/pass$ cat data8

The password is 8ZjyCRiBWFYkneahHwxCv3wb2a1ORpYL

 

Bandit Level 13 → Level 14

The password for the next level is stored in/etc/bandit_pass/bandit14 and can only be read by user bandit14. For this level, you don’t get the next password, but you get a private SSH key that can be used to log into the next level.Note:localhostis a hostname that refers to the machine you are working on

 

sshコマンド -iオプション:接続に使用する公開鍵ファイルを指定する

bandit13@bandit:~$ ssh -i sshkey.private bandit14@localhost

 

bandit14@bandit:~$ cat /etc/bandit_pass/bandit14

4wcYUJFw0k0XLShlDzztnTBHiqxU3b3e

 

Bandit Level 14 → Level 15

The password for the next level can be retrieved by submitting the password of the current level to port 30000 on localhost.

 

◼対象ホストに対しポートを指定して、クライアントと疎通確認

bandit14@bandit:~$ nc  localhost 30000 < /etc/bandit_pass/bandit14

Correct!

BfMYroe26WYalil77FoDi9qh59eK5xNr

 

Bandit Level 15 → Level 16

The password for the next level can be retrieved by submitting the password of the current level to port 30001 on localhostusing SSL encryption.

Helpful note: Getting “HEARTBEATING” and “Read R BLOCK”? Use -ign_eof and read the “CONNECTED COMMANDS” section in the manpage. Next to ‘R’ and ‘Q’, the ‘B’ command also works in this version of that command…

 

SSLで指定サーバに接続 openssl s_client:sslで指定サーバに接続 / -connect:サーバへ接続 / -quiet:SSL/TLSを省略し、HTTPリクエスト・レスポンスを中心に見る セッションと認証情報の表示を抑止する

bandit15@bandit:~$ cat /etc/bandit_pass/bandit15 | openssl s_client -quiet -connect localhost:30001

depth=0 CN = bandit

verify error:num=18:self signed certificate

verify return:1

depth=0 CN = bandit

verify return:1

Correct!

cluFn7wTiGryunymYOu4RcffSxQluehd

 

Bandit Level 16 → Level 17

The credentials for the next level can be retrieved by submitting the password of the current level to a port on localhost in the range 31000 to 32000. First find out which of these ports have a server listening on them. Then find out which of those speak SSL and which don’t. There is only 1 server that will give the next credentials, the others will simply send back to you whatever you send to it.

 

◼サーバの空きポートを探し、SSL接続可能なポートを探す

bandit16@bandit:~$ nmap -p 31000-32000 localhost

 

Starting Nmap 7.01 ( https://nmap.org ) at 2018-05-21 15:37 CEST

Nmap scan report for localhost (127.0.0.1)

Host is up (0.00018s latency).

Other addresses for localhost (not scanned): ::1

Not shown: 996 closed ports

PORT      STATE SERVICE

31046/tcp open  unknown

31518/tcp open  unknown

31691/tcp open  unknown

31790/tcp open  unknown

31960/tcp open  unknown

 

bandit16@bandit:~$ cat /etc/bandit_pass/bandit16 | nc localhost 31046

cluFn7wTiGryunymYOu4RcffSxQluehd

bandit16@bandit:~$ cat /etc/bandit_pass/bandit16 | nc localhost 31518

bandit16@bandit:~$ cat /etc/bandit_pass/bandit16 | nc localhost 31691

cluFn7wTiGryunymYOu4RcffSxQluehd

bandit16@bandit:~$ cat /etc/bandit_pass/bandit16 | nc localhost 31790

bandit16@bandit:~$ cat /etc/bandit_pass/bandit16 | nc localhost 31960

cluFn7wTiGryunymYOu4RcffSxQluehd

 

bandit16@bandit:~$ cat /etc/bandit_pass/bandit16 | openssl s_client -quiet -connect localhost:31518

depth=0 CN = bandit

verify error:num=18:self signed certificate

verify return:1

depth=0 CN = bandit

verify return:1

cluFn7wTiGryunymYOu4RcffSxQluehd

^C

bandit16@bandit:~$ cat /etc/bandit_pass/bandit16 | openssl s_client -quiet -connect localhost:31790

depth=0 CN = bandit

verify error:num=18:self signed certificate

verify return:1

depth=0 CN = bandit

verify return:1

Correct!

-----BEGIN RSA PRIVATE KEY-----

MIIEogIBAAKCAQEAvmOkuifmMg6HL2YPIOjon6iWfbp7c3jx34YkYWqUH57SUdyJ

imZzeyGC0gtZPGujUSxiJSWI/oTqexh+cAMTSMlOJf7+BrJObArnxd9Y7YT2bRPQ

Ja6Lzb558YW3FZl87ORiO+rW4LCDCNd2lUvLE/GL2GWyuKN0K5iCd5TbtJzEkQTu

DSt2mcNn4rhAL+JFr56o4T6z8WWAW18BR6yGrMq7Q/kALHYW3OekePQAzL0VUYbW

JGTi65CxbCnzc/w4+mqQyvmzpWtMAzJTzAzQxNbkR2MBGySxDLrjg0LWN6sK7wNX

x0YVztz/zbIkPjfkU1jHS+9EbVNj+D1XFOJuaQIDAQABAoIBABagpxpM1aoLWfvD

KHcj10nqcoBc4oE11aFYQwik7xfW+24pRNuDE6SFthOar69jp5RlLwD1NhPx3iBl

J9nOM8OJ0VToum43UOS8YxF8WwhXriYGnc1sskbwpXOUDc9uX4+UESzH22P29ovd

d8WErY0gPxun8pbJLmxkAtWNhpMvfe0050vk9TL5wqbu9AlbssgTcCXkMQnPw9nC

YNN6DDP2lbcBrvgT9YCNL6C+ZKufD52yOQ9qOkwFTEQpjtF4uNtJom+asvlpmS8A

vLY9r60wYSvmZhNqBUrj7lyCtXMIu1kkd4w7F77k+DjHoAXyxcUp1DGL51sOmama

+TOWWgECgYEA8JtPxP0GRJ+IQkX262jM3dEIkza8ky5moIwUqYdsx0NxHgRRhORT

8c8hAuRBb2G82so8vUHk/fur85OEfc9TncnCY2crpoqsghifKLxrLgtT+qDpfZnx

SatLdt8GfQ85yA7hnWWJ2MxF3NaeSDm75Lsm+tBbAiyc9P2jGRNtMSkCgYEAypHd

HCctNi/FwjulhttFx/rHYKhLidZDFYeiE/v45bN4yFm8x7R/b0iE7KaszX+Exdvt

SghaTdcG0Knyw1bpJVyusavPzpaJMjdJ6tcFhVAbAjm7enCIvGCSx+X3l5SiWg0A

R57hJglezIiVjv3aGwHwvlZvtszK6zV6oXFAu0ECgYAbjo46T4hyP5tJi93V5HDi

Ttiek7xRVxUl+iU7rWkGAXFpMLFteQEsRr7PJ/lemmEY5eTDAFMLy9FL2m9oQWCg

R8VdwSk8r9FGLS+9aKcV5PI/WEKlwgXinB3OhYimtiG2Cg5JCqIZFHxD6MjEGOiu

L8ktHMPvodBwNsSBULpG0QKBgBAplTfC1HOnWiMGOU3KPwYWt0O6CdTkmJOmL8Ni

blh9elyZ9FsGxsgtRBXRsqXuz7wtsQAgLHxbdLq/ZJQ7YfzOKU4ZxEnabvXnvWkU

YOdjHdSOoKvDQNWu6ucyLRAWFuISeXw9a/9p7ftpxm0TSgyvmfLF2MIAEwyzRqaM

77pBAoGAMmjmIJdjp+Ez8duyn3ieo36yrttF5NSsJLAbxFpdlc1gvtGCWW+9Cq0b

dxviW8+TFVEBl1O4f7HVm6EpTscdDxU+bCXWkfjuRb7Dy9GOtt9JPsX8MBTakzh3

vBgsyi/sN3RqRBcGU40fOoZyfAMT8s1m/uYv52O6IgeuZ/ujbjY=

-----END RSA PRIVATE KEY-----

 

bandit16@bandit:~$ cat /etc/bandit_pass/bandit16 | openssl s_client -quiet -connect localhost:31790 > /tmp/key/bandit16key

depth=0 CN = bandit

verify error:num=18:self signed certificate

verify return:1

depth=0 CN = bandit

verify return:1

bandit16@bandit:~$ cat /tmp/key/bandit16key 

Correct!

-----BEGIN RSA PRIVATE KEY-----

MIIEogIBAAKCAQEAvmOkuifmMg6HL2YPIOjon6iWfbp7c3jx34YkYWqUH57SUdyJ

imZzeyGC0gtZPGujUSxiJSWI/oTqexh+cAMTSMlOJf7+BrJObArnxd9Y7YT2bRPQ

Ja6Lzb558YW3FZl87ORiO+rW4LCDCNd2lUvLE/GL2GWyuKN0K5iCd5TbtJzEkQTu

DSt2mcNn4rhAL+JFr56o4T6z8WWAW18BR6yGrMq7Q/kALHYW3OekePQAzL0VUYbW

JGTi65CxbCnzc/w4+mqQyvmzpWtMAzJTzAzQxNbkR2MBGySxDLrjg0LWN6sK7wNX

x0YVztz/zbIkPjfkU1jHS+9EbVNj+D1XFOJuaQIDAQABAoIBABagpxpM1aoLWfvD

KHcj10nqcoBc4oE11aFYQwik7xfW+24pRNuDE6SFthOar69jp5RlLwD1NhPx3iBl

J9nOM8OJ0VToum43UOS8YxF8WwhXriYGnc1sskbwpXOUDc9uX4+UESzH22P29ovd

d8WErY0gPxun8pbJLmxkAtWNhpMvfe0050vk9TL5wqbu9AlbssgTcCXkMQnPw9nC

YNN6DDP2lbcBrvgT9YCNL6C+ZKufD52yOQ9qOkwFTEQpjtF4uNtJom+asvlpmS8A

vLY9r60wYSvmZhNqBUrj7lyCtXMIu1kkd4w7F77k+DjHoAXyxcUp1DGL51sOmama

+TOWWgECgYEA8JtPxP0GRJ+IQkX262jM3dEIkza8ky5moIwUqYdsx0NxHgRRhORT

8c8hAuRBb2G82so8vUHk/fur85OEfc9TncnCY2crpoqsghifKLxrLgtT+qDpfZnx

SatLdt8GfQ85yA7hnWWJ2MxF3NaeSDm75Lsm+tBbAiyc9P2jGRNtMSkCgYEAypHd

HCctNi/FwjulhttFx/rHYKhLidZDFYeiE/v45bN4yFm8x7R/b0iE7KaszX+Exdvt

SghaTdcG0Knyw1bpJVyusavPzpaJMjdJ6tcFhVAbAjm7enCIvGCSx+X3l5SiWg0A

R57hJglezIiVjv3aGwHwvlZvtszK6zV6oXFAu0ECgYAbjo46T4hyP5tJi93V5HDi

Ttiek7xRVxUl+iU7rWkGAXFpMLFteQEsRr7PJ/lemmEY5eTDAFMLy9FL2m9oQWCg

R8VdwSk8r9FGLS+9aKcV5PI/WEKlwgXinB3OhYimtiG2Cg5JCqIZFHxD6MjEGOiu

L8ktHMPvodBwNsSBULpG0QKBgBAplTfC1HOnWiMGOU3KPwYWt0O6CdTkmJOmL8Ni

blh9elyZ9FsGxsgtRBXRsqXuz7wtsQAgLHxbdLq/ZJQ7YfzOKU4ZxEnabvXnvWkU

YOdjHdSOoKvDQNWu6ucyLRAWFuISeXw9a/9p7ftpxm0TSgyvmfLF2MIAEwyzRqaM

77pBAoGAMmjmIJdjp+Ez8duyn3ieo36yrttF5NSsJLAbxFpdlc1gvtGCWW+9Cq0b

dxviW8+TFVEBl1O4f7HVm6EpTscdDxU+bCXWkfjuRb7Dy9GOtt9JPsX8MBTakzh3

vBgsyi/sN3RqRBcGU40fOoZyfAMT8s1m/uYv52O6IgeuZ/ujbjY=

-----END RSA PRIVATE KEY-----

 

bandit16@bandit:~$ ls -l /tmp/key

total 4

-rw-rw-r-- 1 bandit16 bandit16 1685 May 21 15:47 bandit16key

bandit16@bandit:~$ chmod 600 /tmp/key/bandit16key 

bandit16@bandit:~$ ls -l /tmp/key

total 4

-rw------- 1 bandit16 bandit16 1685 May 21 15:47 bandit16key

bandit16@bandit:~$ ssh -i /tmp/key/bandit16key bandit17@localhost

 

bandit17@bandit:~$ cat /etc/bandit_pass/bandit17

xLYVMN9WE5zQ5vHacb0sZEVqbrp7nBTn

 

Bandit Level 17 → Level 18

There are 2 files in the homedirectory: passwords.old and passwords.new. The password for the next level is inpasswords.newand is the only line that has been changed betweenpasswords.old and passwords.new

 

◼2つのファイルの違うところを探す

bandit17@bandit:~$ ls

passwords.new  passwords.old

bandit17@bandit:~$ diff passwords.new passwords.old 

42c42

< kfBf3eYk5BPBRzwjqutbbfE887SVc5Yd

---

> 6vcSC74ROI95NqkKaeEC2ABVMDX9TyUr

bandit17@bandit:~$ 

 

Bandit Level 18 → Level 19

The password for the next level is stored in a file readmein the homedirectory. Unfortunately, someone has modified .bashrc to log you out when you log in with SSH.

 

仮想環境 [VirtualBOX] ショートカット

MAC OSVirtualBox環境下ショートカットキー

 

-ゲストOSからホストOSへの切り替え

  [Command]キー

 

-コンソール上でのスクロール

  [shift] + [fn] + [矢印キー]

CentOS コンソールの配色変更

複数方法は有るようだけれど、今回は下記の方法を採用

 

$ /etc/DIR_COLORS

ファイルを編集。

今回変更したかったのは、ディレクトリ表示なので、

DIR 01;34 ←ここ変更 [属性;色]

*色はDIR_COLORS内にコメントされている。

 

変更後、下記コマンドで反映

$ eval `dircolors /etc/DIR_COLORS -b`

PythonのVersionをpyenvで切り替える (Mac)

Macには最初からpythonが入っている。

# python --version
Python 2.7.10

Pythonでは、バージョン2.x系と3.x系に互換性がないので、切り替えて使いたい。

・Homebrew(パッケージマネージャー)
・pyenv(python管理ツール)      をインストール

・virtualenv(python環境管理ツール) をインストール
・pyenvでPython3          をインストール

・pip(pythonパッケージ管理システム)をインストール

 

■Homebrewのインストール 
# /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 

■pyenvをインストール
pyenvは、複数バージョンのPython環境を管理したり切り替えるためのツール

pyenvインストール
# brew install pyenv

■virtualenvをインストール

virtualenvは、独立したPython環境を指定した時のみ使えるようにする

# brew install pyenv-virtualenv


pyenvのバージョン確認
# pyenv -v

pyenbにパスを通す

zshを使用しているので、~/.zshrcに追記

pyenv_ROOT=~/.pyenv

export p¥PATH=$PATH:PYENV_ROOT/bin

eval "$(pyenv init -)"

eval "$(pyenv virtualenv-init -)"

 

# source ~/.zshe *設定ファイルを再読込

 

pyenvでインストールできるPythonの確認
# pyenv install -l

pyenvでPython3をインストール
# pyenv install バージョン (2.7.12 or 3.6.1)
# pyenv rehash

pyenvでインストールされているバージョンを確認
# pyenv versions

デフォルトで使用するバージョンを指定
# pyenv global 3.6.1

 

**pyenvは、ディレクトリによりバージョンを変更できる**

カレントディレクトリでバージョンを設定する時はlocalコマンド

loaclコマンドでバージョンを設定すると、python-versionでバージョンが指定される

■ローカルのバージョンを指定

# pyenv local 2.7.12

■ローカルのバージョン設定を削除

pyenv local --unset 

 

■pipをインストール

# easy_install pip

CentOS7 初期設定

■一般ユーザの作成

# useradd USERNAME  ##ユーザの作成

# passwd USERNAME  ##パスワードの設定

*ユーザの削除

# userdel -r USERNAME ##ユーザの削除

 

■rootになれるユーザを管理者のみにする

# usermod -G wheel USERNAME

# vi /etc/pam.d/su

auth    required    pam_wheel.xo.user_uid  ##コメント解除

 

■ネットワークを有効にする

# nmcli device  ##Deviceの一覧表示

# nmcli device show DEVICENAME  ##Deviceの状態を確認

# nmcli connection  ##Ethernetの接続一覧

# nmcli connection up DEVICENAME  ##インターフェイスを有効

# nmcli connection down DEVICENAME  ##インターフェイスを無効

# vi /etc/sysconfig/network-scripts/ifcfg-enp3s0

ONBOOT = yes  ##'yes'へ変更

 

yumの初期設定

# yum -y update  ##インストール済みのパッケージを一括でupdate

#yum -y install yum-cron  ##yum-cronインストール

 

#vi /etc/yum/yum-cron.conf  ##yum-cronの設定

# Whether updates should be applied when they are available. Note

# that download_dpdates must also be yes for the uodate to be applied

applu_updates = yes  ##'yes'でdownload&updateを自動で行う

 

# systemctl start yum-cron  ##パッケージ自動更新起動

# systemctl enable yum-cron ##パッケージ自動更新自動起動設定

# yum -y groupinstall base "Development tools"  #Base、開発ツールパッケージ群インストール

 

SELinuxの無効化

# getenforce  ##SELinuxの状態確認

Enforcing  ##SELinux有効

# Setenforce 0  ##SELinux無効化

#getenforce  ##SELinuxの状態確認

Permissive  ##SELinux無効

 

# vi /etc/sysconfig/selinux

SELINUX=enforcing

 ↓

SELINUX=disabled  ##システム起動時にSELinuxを無効化

 

ファイアウォール停止

# systemctl stop firewalld  ##ファイアウォール停止

#systemctl disable firewalld  ##ファイアウォール自動起動解除

 

nkfコマンドインストール *日本語処理に必要なnkfコマンドをインストール

# wget "http://sourceforge.jp/frs/redir.php?m=jaist&f=%2Fnkf%2F59912%2Fnkf-***.tar.gz" -0 nkf-***.tar.gz

https://ja.osdn.net/projects/nkf/releases/ から最新のパッケージをインストール


# tar zxvf nkf-***.tar.gz   ##nkf展開
# cd nkf-***/  ##展開先ディレクトリへ移動
# make && make install  ##nkfインストール
# cd
# rm -rf nkf-***  ##展開先ディレクトリを削除
# rm -f nkf-***  ##ダウンロードしたnkfを削除
# ln -s /usr/local/bin/nkf /usr/bin/nkf ##/usr/local/bin/nkfから/usr/bin/nkfへリンクをはる

■システムの停止/再起動
# halt ##システムを停止
# reboot #システムを再起動

CentOS6 初期設定

【CentOS6 初期設定】

■一般ユーザの作成

# useradd userx   ##一般ユーザUSERNAMEの作成

# passwd USERNAME   ##USERNAMEのパスワードを設定

PASSWORD入力   ##passwd

 

■rootになれるユーザを管理者のみにする

# usermod -G wheel USERNAME ##管理者ユーザをwheelグループに追加

 

■sudoの許可

# visudo

Allows people in group wheel to run all command

%wheel ALL=(ALL) ALL ##ここのコメントを外す

 

# vi /etc/pam.d/su

auth   required   pam_wheel.so use_uid   ##コメント解除

 

■OS起動時IPアドレスを取得する

# vi /etc/sysconig/network-screpts/ifcfg-eth0

ONBOOT=no

 ↓

ONBOOT=yes

 

SELinuxの無効化

# getenforce Enforcing   ##SELinuc有効

# setenforce 0   ##SELinux無効化

# getenforce   ##SELinux状態確認

Permissive   ##SELinux無効

 

# vi /etc/sysconfig/selinux   ##SELinux設定ファイル編集

SELINUX=enforcing

   ↓

SELINUX=disabled   ##システム起動時にSELinuxを無効化

 

ファイアウォール停止

*ルータでブロックするためファイアウォールが不要な場合は停止する

# /etc/rc.d/init.d/iptables stop   ##ファイアウォール停止

# chkconfig iptables off   ##ファイアウォール自動起動解除

 

nkfコマンドインストール

*日本語処理に必要なnkfコマンドをインストール

# yum install nkf

CentOS6にWordPressをインストール

WordPressインストール

■必要なパッケージをインストールApache/MySQL/PHP/wget)

Apacheの起動と動作確認

PHPの設定

PHPの動作確認

MySQLの起動と動作確認

WordPress用のデータベースとユーザ作成

WordPressのインストール

 

■必要なパッケージをインストールApache/MySQL/PHP/wget)

# yum install httpd mysql-server php php-mysql wget

 

---------------------------------------------------------------

Apache初期設定では外部からサーバのHTTPポート(80番)にアクセスできない。 /etc/sysconfig/iptablesを編集し、HTTPポートを開放

**今回は、ファイアウォール自動起動解除しているので不要**

# cp -p /etc/sysconfig/iptables /etc/sysconfig/iptables.org  ##BackUp

# vi /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT   ##80番ポートを追加

 

ファイアウォールの設定を反映

# /etc/nit.d/iptables restart

 

*ファイアウォールが不要な場合iptablesを停止

# /etc/rc.d/init.d/iptables stop  ##ファイアウォール停止

# chkconfig iptables off   ##ファイアウォール自動起動解除

----------------------------------------------------------------

 

Apacheの起動と動作確認 Apacheを起

# /etc/init.d/httpd start   ##Apacheの起動

# chkconfig httpd on   ##Apache自動起動設定

 

PHPの設定 *タイムゾーンの設定/DocumentRootの設定

PHPの設定ファイル(/etc/php.ini)を編集

#cp -p /etc/php.init /etc/php.init.org   ##BackUp

# vi /etc/php.init

; Defines the default timezone used by the date functions

; http://www.php.net/manual/en/datetime.configration.php#ini.date.timezone

date.timezone = "Asia/Tokyo"   ##"Asia/Tokyo"追加

 

Apacheをrestartして、php.iniの設定を反映

# /etc/init.d/httpd restart

 

PHPの動作確認 phpinfo.phpファイルを作成、編集

# touch /var/www/html/phpinfo.php

# vi /var/www/html/phpinfo.php

# cat /var/www/html/phpinf.php

<?php

phpinfo();

?>

ブラウザでアクセスし、PHPの情報が確認出来ればOK

 

MySQLの起動と動作確認

MySQLを起動

# /etc/init.d/mysqld start   ##MySQLの起動

# chkconfig mysqld on   ##MySQL自動起動設定

 

[MySQLが起動しているか確認する方法]

1.psコマンドでMySQLのプロセスが動いているかを確認

# ps axf | grep [m]ysqld

*grepコマンドのパターンで利用している[m]ysqldの[]角括弧は、grep自信を除外するために利用

 

2.mysqladminコマンドでMySQLpingで生存確認

# mysqladmin -u root ping mysqld is alive   ##aliveになればOK

 

[MySQLのパスワードを設定]

1.MySQLにログインしてパスワードを設定

# mysql -u root

mysql> update mysql.user set password=password('root用のパスワード') where user = 'root';

mysql> flush privileges;   ##設定を反映

mysql> exit;

 

2.mysqladminコマンドを使ってパスワードを設定

~/.bash_historyに平文でパスワードが記載されてしまうので推奨されない

#  mysqladmn -u root password 'root用のパスワード'

 

設定したパスワードでログインできるか確認

# mysql -u root -p

Enter PAssword:

 

WordPress用のデータベースとユーザ作成

MySQLWordPress用のデータベース(WP_DB)とユーザ(wp:passwd)を作成

# mysql -u root -p

Enter password:

mysql> create database WP_DB;

mysql> grant all privileges on wp.* to wp@localhost identified by 'wp用のパスワード';

 

Apacheの設定

#cp -p /etc/httpd/conf /httpd.conf.org

DocumntRoot "/var/www/wordpress"   ##DocumentRootをWordPressのディレクトリに変更

<Directory "/var/www/wordpress">   ##Documentrootと同じディレクトリに変更

AllowOverride All   ##.htaccessによるディレクティブの上書きを許可

 

Apacheの設定を反映

# /etc/init.d/httpd restart

 

WordPressのインストール WordPressのダウンロードと解凍  

wgetでダウンロード  JA.WordPress URL: https://ja.wordpress.org/releases/

# wget http://ja.wordpress.org/wordpress-***-ja.tar.gz

 

ファイルを解凍

# tar zxvf wordpress-***-ja.tar.gz # cp -r wordpress /var/www/ # chown -R apache.apache /var/www/wordpress