日々のあれやこれやの詰め合わせ

KOSEN SECCON2019Write Up~Forensic編~

はじめに

参加した方はお疲れ様でした。でんしワイバーンというチーム名で参加してた六助と申します。
結果は去年と同じく5位安定でした。もう少し時間あればもう3問くらい解けたかな〜というのが感想でしょうか。


それでは本題ですが、Forensicの250点問題のメモリダンプの問題の解説(?)みたいのを書きます。
バイナリとネットワークに関してはつよつよの人がチームにいるのでまかせてた感じなので個人的にはCryptとForensicとその他お手伝いみたいなのをしていました。


最近フォレンジックを体験する機会がありなんか楽しかったので、今回はこの問題をとりあえず解説していこうと思います。正直正しい解き方とかよくわからんので、何となくこんな感じで解いたよー的なドキュメントです。

実行実行環境はMacbook pro(Catalina)です。
一部Windowsを使用しています。

Step-1

とりあえずファルが置いてあるので、それをダウンロードして展開します。

memory.zip

というファイルですね。これを展開すると

memory_win7.dmp

というファイルが出てきます。

fileコマンドでとりあえず表層解析でもしてみましょうか。

>file memory_win7.dmp
memory_win7.dmp: MS Windows 64bit crash dump, full dump, 65422 pages

まぁ、ファイル名から何となく察せますが64bitのWindowsのダンプのようですね。
とりあえず何となくファイルの概要がわかったところで中身の解析をしてみましょう。

Step-2

Volatilityというソフトを使って解析していこうと思います。
まずここでは下準備をしていきます。
Pythonファイルを使う方法もありますがすぐに動かせる環境が欲しかったので今回は、スタンドアローンで実行できるものをダウンロードしました。
ダウンロードはこちらから

ダウンロードしてくると

volatility_2.6_mac64_standalone

的なファイルが出てくると思うので、パスを通すなり、直接指定するなり、エイリアスでどうこうするなり方法でコマンドラインから実行できるようにしておいてください。

とりあえず下準備はこんな感じです。

Step-3

では実際に解析していきましょう。

正直こっからはかなり勘というか察する能力が必要となってきます。ぶっちゃけ全部総当たりで解析すれば出てくるとは思いますが、あの限られた時間ではかなり勘が大事になってきます。

まぁ、何のこっちゃって感じだと思うので実際に解析しながら解説していきます。

まず、何となくファイル名から察せるとは思いますがOSの情報などを取得してみましょう。この後の詳しい解析でプロファイルを指定する必要があるので正しいOSを見極めることがここでは重要となってきます。
まぁ、結論から先に述べるとこれはあまり意味なかった。。。。まぁ、とりあえずやってみましょう。
コマンドラインで先でダウンロードしたvolatilityの実行ファイルを指定して実行していきます。僕の場合は色々ゴニョゴニョして[volatility]で実行できるようにしてあります。

  • f オプション:メモリダンプのファイルを指定します。
  • imageinfo:メモリダンプの情報を取得します
volatility -f memory_win7.dmp imageinfo

以下結果です。

Suggested Profile(s) : Win8SP0x64, Win81U1x64, Win10x64_14393, Win2012R2x64_18340, Win10x64, Win2016x64_14393, Win2012R2x64, Win2012x64, Win8SP1x64_18340, Win10x64_10586, Win8SP1x64 (Instantiated with Win8SP1x64)
                     AS Layer1 : WindowsAMD64PagedMemory (Kernel AS)
                     AS Layer2 : WindowsCrashDumpSpace64 (Unnamed AS)
                     AS Layer3 : FileAddressSpace (/Users/****/Downloads/memory_win7.dmp)
                      PAE type : No PAE
                           DTB : 0x187000L
                          KDBG : 0xf800031fd070L
          Number of Processors : 1
     Image Type (Service Pack) : 0
                KPCR for CPU 0 : 0xfffff800031fed00L
             KUSER_SHARED_DATA : 0xfffff78000000000L
           Image date and time : 2018-12-19 05:10:08 UTC+0000
     Image local date and time : 2018-12-19 14:10:08 +0900

はい、Windows7がないだとぉ!!ってなってました。まぁ、実行してる環境が悪いのかもしれませんがよくわからんかったのでWindows7のプロファイルを探してくることにしました。
デフォルトで入ってるといいなーと思いつつ調べると公式にこんなページが
github.com

Win7SP1x64

というものがどうやらあるようです。まぁ、ほんとにWindows7なのかどうかはさておきとりあえずこのプロファイルを使って解析を進めていきましょう。

次は、問題文に「怪しいプログラムを開いている」的な記述があったので開いてるプロセスでもみにいきましょうか。

  • pstree:プロセスの情報を表示する
  • --profile=[profile_name]:プロファイルを定義する
volatility -f memory_win7.dmp --profile=Win7SP1x64 pstree

プロファイルには先ほど調べて見つけたものを使います。実行結果は以下のような感じ。

Name                                                  Pid   PPid   Thds   Hnds Time

 0xfffffa8000b0d870:csrss.exe                         324    308      9    350 2018-12-19 05:08:58 UTC+0000
 0xfffffa80003b3060:wininit.exe                       372    308      4     81 2018-12-19 05:08:58 UTC+0000
. 0xfffffa8001360200:services.exe                     464    372     12    192 2018-12-19 05:08:59 UTC+0000
.. 0xfffffa800143f710:svchost.exe                     768    464     19    368 2018-12-19 05:08:59 UTC+0000
... 0xfffffa80014a9b30:audiodg.exe                    944    768      5    125 2018-12-19 05:08:59 UTC+0000
.. 0xfffffa8001571b30:svchost.exe                    1156    464     25    305 2018-12-19 05:09:00 UTC+0000
.. 0xfffffa800150ab30:svchost.exe                     280    464     12    232 2018-12-19 05:09:00 UTC+0000
.. 0xfffffa8001359060:svchost.exe                     260    464     14    333 2018-12-19 05:09:00 UTC+0000
.. 0xfffffa80013ac630:svchost.exe                     684    464      7    250 2018-12-19 05:08:59 UTC+0000
.. 0xfffffa8001465b30:svchost.exe                     824    464     21    394 2018-12-19 05:08:59 UTC+0000
... 0xfffffa80016bab30:dwm.exe                       1804    824      5     73 2018-12-19 05:09:33 UTC+0000
.. 0xfffffa8001774060:SearchIndexer.                 1652    464     13    640 2018-12-19 05:09:40 UTC+0000
... 0xfffffa80017cc510:SearchFilterHo                1972   1652      5     81 2018-12-19 05:09:40 UTC+0000
... 0xfffffa80016f5b30:SearchProtocol                1904   1652      7    225 2018-12-19 05:09:40 UTC+0000
.. 0xfffffa80013d6910:svchost.exe                     576    464     12    357 2018-12-19 05:08:59 UTC+0000
... 0xfffffa800184f060:dllhost.exe                   2184    576      6    102 2018-12-19 05:10:06 UTC+0000
... 0xfffffa8001899b30:WmiPrvSE.exe                  2268    576      8    115 2018-12-19 05:10:07 UTC+0000
... 0xfffffa80018867c0:dllhost.exe                   2136    576      6    104 2018-12-19 05:10:06 UTC+0000
.. 0xfffffa8000400b30:taskhost.exe                   1740    464      9    157 2018-12-19 05:09:33 UTC+0000
.. 0xfffffa80015d32a0:svchost.exe                    1236    464     13    159 2018-12-19 05:09:00 UTC+0000
.. 0xfffffa8001469b30:svchost.exe                     860    464     30    718 2018-12-19 05:08:59 UTC+0000
.. 0xfffffa80015469e0:spoolsv.exe                    1128    464     14    293 2018-12-19 05:09:00 UTC+0000
.. 0xfffffa80013f1750:VBoxService.ex                  632    464     11    114 2018-12-19 05:08:59 UTC+0000
. 0xfffffa8001376b30:lsass.exe                        480    372      8    489 2018-12-19 05:08:59 UTC+0000
. 0xfffffa800135d060:lsm.exe                          488    372     11    151 2018-12-19 05:08:59 UTC+0000
 0xfffffa80016e4b30:explorer.exe                     1832   1788     42    915 2018-12-19 05:09:33 UTC+0000
. 0xfffffa80017f9750:svch0st.exe                      784   1832      5    155 2018-12-19 05:09:49 UTC+0000
. 0xfffffa8001768b30:VBoxTray.exe                    2008   1832     14    154 2018-12-19 05:09:34 UTC+0000
. 0xfffffa8001859b30:DumpIt.exe                      2216   1832      5     93 2018-12-19 05:10:06 UTC+0000
. 0xfffffa8000a8c8d0:taskmgr.exe                     1704   1832      8    137 2018-12-19 05:09:51 UTC+0000
 0xfffffa8001325060:winlogon.exe                      408    364      6    117 2018-12-19 05:08:58 UTC+0000
 0xfffffa80003af250:csrss.exe                         380    364      8    223 2018-12-19 05:08:58 UTC+0000
. 0xfffffa8001872b30:conhost.exe                     2224    380      3     97 2018-12-19 05:10:06 UTC+0000
 0xfffffa8000338740:System                              4      0     77    371 2018-12-19 05:08:58 UTC+0000
. 0xfffffa8000b7c7b0:smss.exe                         248      4      2     29 2018-12-19 05:08:58 UTC+0000

まぁ、なんかいっぱい出てきましたね。でも実際普段使っている環境だともっといっぱいプロセス走ってると思うので問題として出すためにかなり優しくなっている感じですかね。
ここで必要なのが先ほど言った「勘」というやつです。あまり多くないとはいえ、これだけ全てを試すのは時間がかかってしまいます。なのでここから怪しいプログラムを見つけ出す必要があります。

僕の場合はここで一発で怪しいプログラムを見つけ出せましたが正直ここはなんともいえないところ。間違えたものに目をつけるとドツボにはまります。
僕が目を付けたのはこのプロセスです。

. 0xfffffa80017f9750:svch0st.exe                      784   1832      5    155 2018-12-19 05:09:49 UTC+0000

根拠としてはsvchost.exeという、プログラムも存在しておりパッと見怪しそうと思ったと言ったところでしょうか。

. 0xfffffa8001859b30:DumpIt.exe                      2216   1832      5     93 2018-12-19 05:10:06 UTC+0000

というのも目には着きましたが
www.aldeid.com
というものを見つけたり、volatolityにはコマンドプロンプトなどの入力履歴を見れたりするものもあるのですが、それを見た際にダンプをとるものだなと判断したのでパスしました。
一応メモ程度に

volatility -f memory_win7.dmp --profile=Win7SP1x64 consoles

実行結果は以下のような感じ

ConsoleProcess: conhost.exe Pid: 2224
Console: 0xffd96200 CommandHistorySize: 50
HistoryBufferCount: 1 HistoryBufferMax: 4
OriginalTitle: C:\Users\assafnativ\Desktop\x64\DumpIt.exe
Title: C:\Users\assafnativ\Desktop\x64\DumpIt.exe
AttachedProcess: DumpIt.exe Pid: 2216 Handle: 0x58

CommandHistory: 0x361670 Application: DumpIt.exe Flags: Allocated
CommandCount: 0 LastAdded: -1 LastDisplayed: -1
FirstCommand: 0 CommandCountMax: 50
ProcessHandle: 0x58

Screen 0x302e80 X:80 Y:300
Dump:

  DumpIt 3.0.20181116.2
  Copyright (C) 2007 - 2017, Matthieu Suiche http://www.msuiche.net
  Copyright (C) 2012 - 2014, MoonSols Limited http://www.moonsols.com
  Copyright (C) 2015 - 2017, Comae Technologies FZE http://www.comae.io
  Copyright (C) 2017 - 2018, Comae Technologies DMCC http://www.comae.io

    Destination path:           \??\C:\Users\assafnativ\Desktop\x64\URESHINO-PC-
20181219-051007.dmp

    Computer name:              URESHINO-PC


    --> Proceed with the acquisition ? [y/n] y

    [+] Information:
    Dump Type:                   Microsoft Crash Dump


    [+] Machine Information:
    Windows version:             6.1.7600
    MachineId:                   314D1AE0-E007-5142-A12B-A9EF97BE7517
    TimeStamp:                   131896698080253906
    Cr3:                         0x187000
    KdDebuggerData:              0xfffff800031fd070

    Current date/time:          [2018-12-19 (YYYY-MM-DD) 5:10:08 (UTC)]
    + Processing...

何となく目星がついたところで、このファイルのあるアドレスやディレクトリなどを調査していきましょう。アドレスはこの後このファイルのダンプを取ってきて解析したかったので必要になります。
filescanというものを使うとダンプの中に含まれるファイルを探してきてくれます。grepを使って先ほどのファイルに絞って検索していきます

volatility -f memory_win7.dmp --profile=Win7SP1x64 filescan | grep svch0st

結果は以下のような感じ。

0x000000000002b860      6      0 R--r-d \Device\HarddiskVolume2\Users\assafnativ\Desktop\svch0st.exe

デスクトップにあるファイルのようですね。。。ますます怪しい。

続いてこのファイルを解析するためにダンプを取っていきたいと思います。

dunpfilesを使用すると指定したファイルのダンプをとることができます。今回は先ほどファイルのあるメモリのアドレスがわかったのでアドレスを指定していきたいと思います。

  • dumpfiles:ファイルのダンプを取得
  • --dump-dir [dir]:書き出す場所の指定
  • -Q [address]:アドレスを指定
volatility -f memory_win7.dmp --profile=Win7SP1x64 dumpfiles --dump-dir ~/Desktop -Q 0x000000000213e680

これを実行するとデスクトップに

file.None.0xfffffa80017ebaa0.img

なるファイルが書き出されます。

Step-4

それでは先ほど書き出したファイルからsvch0st.exeのファイルを抜き出します。imgファイルで書き出されてしまうのでその中から該当部分のみを抜き出していきます。
今回はFTK Imagerを使用しました。

ですが、ここに関してはMacでやるのは少しめんどくさく手持ちに良さげな環境がなかったので、競技中はチームメイトに託しました。
何をやったかはわからないですが、後からWindows機でやってみたのは以下のような感じです。

FTK imagerを起動しFile->Add Evidence Itemを選択します。
f:id:rokusuke345:20191029200925p:plain

続いてImage Fileを選択し、先ほど書き出したファイルを指定します。
f:id:rokusuke345:20191029201153p:plain

指定できたらFinishを押して完了します。

正しく読み込まれるとこのような画面になると思います。
f:id:rokusuke345:20191029201254p:plain

読み込めていたら次に進みます。左上にあるEvidence Treeというタブに先ほど読み込まれたファイルがあると思いますが、ファイル名の左にあるプラスマークをクリックします。

すると次のような画面になります。
f:id:rokusuke345:20191029201517p:plain

unallocated spaceというのが出てきてますね。これを右クリックしてExport Filesからこれを書き出します。そうすると同じ名前のファイルが書き出されましたね。

ダンプファイルからなんかそれっぽいものが抽出できたので、さっそくこの中身を解析していきましょう。

とりあえず使うのはfileコマンドでしょうか

file unallocated_space

結果は以下のような感じ

unallocated_space: data

まぁ、そうなりますよね。。。ファイル名からなんとなく察せると思いますがうまくデータを整形できてない模様。

じゃあ、stringsコマンドでフラグのようなものを中から見つけていきたいと思います。

strings unallocated_space

かなりいっぱい出力が出てきますがパッと目に着いたのはここら辺

lSystem.Resources.ResourceReader, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089#System.Resources.RuntimeResourceSet
PADPADP
lSystem.Resources.ResourceReader, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089#System.Resources.RuntimeResourceSet
PADPADP
ーQ1RGS0lUe29pcmFfaGFfZmxhZ19qeWFuZWVlZX0=

あー、なんか公開鍵とかあるなーと思っていたところチームメイトからbase64怪しくねとの一言。確かに怪しい。。。。

Q1RGS0lUe29pcmFfaGFfZmxhZ19qeWFuZWVlZX0=

ということでこれをデコードしてみると

CTFKIT{oira_ha_flag_jyaneeee}

ん?これはフラグか?と思いつつ入力してみると正解でした。フラグ名に関してはどうなのだろう。。。と思いつつもなんとか解くことができました!

最後に

まとめになりますが、こんな感じでかなりのステップを踏んでフラグにたどり着くことができました。多分3人目だったと思うのでFTK Imagerで解析するとこでつまづかなければもっと早く解けたかな〜と少し悔しいところではあります。
ただ、とてもフォレンジックと言うテーマに相応しいいい問題だったと思うので解いていてとても楽しかったです。
今回は6時間という短い時間でしたが皆さんお疲れ様でした。
時間があればもう少しほかの問題のも書こうかなと思います。

mod_securityのログをrsyslogで転送してみた話

初めに

mod_securityのログをrsyslogで転送する方法です。
検索してもあまり出てこなかったのでメモ程度に書いておきます。
mod_securityのインストールと設定、syslogの設定はできていることを前提とします。

環境

  • CentOS 7.5.1804 64bit Minimal
  • mod_security.x86_64 0:2.9.2-1
  • mod_security_crs.noarch 0:2.2.9-1
  • Apache/2.4.6

設定-mod_security

WAFの話とかインストール方法とかは省略します。
コンフィグファイルを編集しloggerにログを渡すような設定をします。

vi /etc/httpd/conf.d/mod_security.conf
#変更前
SecAuditLog /var/log/httpd/modsec_audit.log
#変更後
SecAuditLog "|/usr/bin/logger -p local1.info -t mod_security"

syslogにはlocal0~7までの比較的自由に使えるファシリティがあるので、今回はlocal1に設定しています。
これでsyslogにログを渡すことができます。

設定-syslog

syslogにログを渡せるようになったので、rsyslogでログを転送する設定を行います。

vi /etc/rsyslog.conf
#追記(local7がデフォで設定されてるので、その前くらいがわかりやすい?)
local1.*                                  @@[宛先ホスト]

@@の後に書いた宛先ホストの設定に従ってログが収集されるはずです。

CentOS 7でSSH接続する方法

初めに

CentOS 7でパスワード認証を用いてSSH接続を行う方法を紹介します。

鍵認証を用いて接続する方法はこちらで紹介しています。

環境

  • クライアント:Windows 10 Home
  • サーバー:CentOS 7.5.1804 64bit Minimal

サーバー側の設定

インストール

まずは、openssh-serverがインストールされているかどうか確認します。基本的にopenssh-serverはプリインストールされているのでインストールは不要ですが、念のため確認します。

# yum list installed | grep ssh

を実行しopenssh-serverがインストールされていない場合はインストールします。

# yum install openssh-server

SSHの設定

/etc/ssh/sshd_configの設定ファイルを編集します。

# vi /etc/ssh/sshd_config
#rootユーザーのログインを許可しない
PermitRootLogin no
#パスワード認証を許可する
PasswordAuthentication
#パスワードなしを許可しない
PermitEmptyPasswords no

サービスの起動

サービスを起動します。

# systemctl start sshd

サービスが起動されているか確認します。

# systemctl status sshd

active (running)と表示されれば起動できています。

IPアドレスの確認

ip a show [インターフェース名]
ip a show enp0s3
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:4d:1e:46 brd ff:ff:ff:ff:ff:ff
    inet 192.168.12.17/24 brd 192.168.12.255 scope global noprefixroute dynamic

inetと書かれているところにあるのがIPアドレスです。

ユーザーの作成

rootユーザーのログインを禁止したので、ログインするためのユーザーを作成します。

# useradd [ユーザー名]

作成したユーザーにパスワードを設定します。

# passwd [ユーザー名]

パスワードの入力を二回求められるので入力します。

New password: パスワードを入力
Retype new password:もう一度確認のため同じパスワードを入力

クライアント側の設定

Macならばターミナル、Windowsならコマンドプロンプトを開きます。TeraTermなどのアプリケーションを用いても構いません。
コマンドプロンプトから接続していきます。

$ ssh [ユーザー名]@[IPアドレス]

切断するときは

$ exit

と入力すると切断することができます。

CentOS 7でSSHの認証を公開鍵認証で行う方法

初めに

パスワード認証でSSH接続する方法をこちらで紹介しました。しかし、第三者がアクセスできるシステムでパスワード認証するのはセキュリティ上望ましくないので、公開鍵認証を用いてSSH認証する方法を紹介します。

環境

  • クライアント:Windows 10 Home
  • サーバー:CentOS 7.5.1804 64bit Minimal

前提条件

  • openssh-serverがインストールされていること
  • sudoできるユーザーでログインしていること

クライアント側の作業

鍵ペアの作成

公開鍵と秘密鍵のペアを作成します。Macを使用している場合はターミナルから、Windowsの場合はGit bashから作成します。
秘密鍵と公開鍵はサーバー側でも作成することができますが、秘密鍵をクライアント側に転送する際に秘密鍵が漏れてしまう危険性があるためクライアント側で作成するのが望ましいです。

鍵ペアはssh-keygenコマンドで作成することができます。
公開鍵暗号方式では主にRSA暗号が使用されるため、RSA鍵を作成します。また、鍵のサイズは2048bit以上の強度を持っている鍵ならば問題ないですが、より強固な鍵を生成するために今回は4096bitで作成します。

$ ssh-keygen -t rsa -b 4096
  • -tオプション:作成する鍵の種類を指定します。
  • -bオプション:作成する鍵のサイズを指定します。
  • -fオプション:作成した鍵の保存場所を指定します。指定しないと/c/Users/[ユーザー名]/.ssh/に作成されます。

-fオプションで保存場所を指定しない場合デフォルトのパスでいいか聞かれるので、よければEnterキーを押して次に進みます。

Enter file in which to save the key (/c/Users/[ユーザー名]/.ssh/id_rsa):

パスフレーズの入力を求められるので、パスフレーズを2回入力します。このパスフレーズは秘密鍵でSSHログインする際に必要になります。

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

公開鍵のアップロード

まず、秘密鍵(id_rsa)と公開鍵(id_rsa.pub)が指定した場所に生成されているか確認します。
確認ができたらサーバへ公開鍵を転送します。転送する方法は何でも構いませんが、今回はscpを使用して/tmpフォルダにアップロードします。

$ scp ~/.ssh/id_rsa.pub [ユーザー名]@[ホスト名]:/tmp

サーバー側の作業

SSHの設定

SSHの設定ファイルを下記のように編集します。(SSHで接続して作業している場合は、先に公開鍵の登録を行ってください)

$ sudo vi /etc/ssh/sshd_config
#rootユーザのログインを許可するか
PermitRootLogin no
#パスワード認証を許可するか
PasswordAuthentication no
#パスワードなしを許可するか
PermitEmptyPasswords no

設定の反映

起動している場合は再起動します。

$ sudo systemctl restart sshd

起動していない場合は起動させます。

$ sudo systemctl start sshd

起動しているか確認します。

$ sudo systemctl status sshd

active (running)と表示されていれば、起動しています。

自動起動を有効にしていない場合は自動起動を有効化します。

$ sudo systemctl enable sshd

公開鍵の登録

転送した公開鍵を登録します。公開鍵は~/.ssh/authorized_keysに書き込むことで登録することができます。
~/.ssh/が存在しない場合はまず作成します。

$ mkdir ~/.ssh

~/.ssh/authorized_keysに鍵の内容を書き込みます。鍵は複数登録することもできるのでmvではなくcatで書き込みます。

$ cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys

/tmpに保存したファイルを削除します。

$ sudo rm /tmp/id_rsa.pub

鍵へのアクセス権を変更して、ログインしているユーザ以外のアクセスを禁止します。

$ chmod 700 ~/.ssh/
$ chmod 600 ~/.ssh/authorized_keys

クライアントからの接続

$ ssh -i ~/.ssh/id_rsa [ユーザー名]@[ホスト名]
  • -iオプション:公開鍵とペアになっている秘密鍵を指定します。

パスフレーズの入力を求められるので、鍵の作成時に設定したパスフレーズを入力してEnterキーを押します。

Enter passphrase for key '/c/Users/[ユーザー名]/.ssh/id_rsa':

CentOSのバージョンを確認する方法

初めに

Linuxではバージョンによって仕様が違ったりすることが多々あり、たびたび苦戦します…
ここではCentOSのバージョンをファイルから確認する方法と、コマンドから確認する方法を紹介します

CentOSのバージョン確認

ファイルから確認

CentOSのバージョンは/etc/redhat-releaseを確認することで知ることができます。

$ cat /etc/redhat-release 
$ cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

コマンドから確認

lsb_releaseコマンドを使用することで確認することができます。

$ lsb_release -a
LSB Version:    :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: CentOS
Description:    CentOS Linux release 7.5.1804 (Core)
Release:        7.5.1804
Codename:       Core

lsb_releaseコマンドを使用するためにはredhat-lsbパッケージが必要なので、入ってない場合はyumでインストールします。

# yum install redhat-lsb

カーネルのバージョンの確認

コマンドから確認

unameコマンドを使用することで確認することができます。

$ uname -a
$ uname -a
Linux localhost.localdomain 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux