226 lines
9.2 KiB
Markdown
226 lines
9.2 KiB
Markdown
+++
|
|
date = "2018-07-30"
|
|
tags = ["nmap","mac"]
|
|
title = "macでnmapを試してみよう"
|
|
slug = "nmap"
|
|
+++
|
|
|
|
|
|
この前、nmapでport scanする機会があったので、その時の話。
|
|
|
|
portというのは、ネットワークの通信番号のことで、通常はこの番号を指定して通信のやり取りが行われる。firewallは、どの番号を閉じ、どの番号を開けるのか指定できたりする。
|
|
|
|
で、nmapでscanすると、どのportが開いてるのかを調べられたりするんですけど、不要なportは閉じておいたほうがいいし、backdoorなどが設置されてる場合、管理者に覚えがないportが勝手に開けられてたりすることがある。
|
|
|
|
この前、macをnmapしてみると、こんな感じだった。
|
|
|
|
```sh
|
|
$ nmap localhost
|
|
PORT STATE SERVICE
|
|
111/tcp open rpcbind
|
|
631/tcp open ipp
|
|
1021/tcp open exp1
|
|
1023/tcp open netvenuechat
|
|
2049/tcp open nfs
|
|
49163/tcp open unknown
|
|
|
|
$ sudo nmap -sU localhost
|
|
```
|
|
|
|
portを使ってるアプリを調べてみると、macの起動時に動作するプロセスのことが色々把握できた。
|
|
|
|
具体的には、macは`/System/Library/{LaunchDaemons,LaunchAgents}`で起動プロセスが設定されてるらしい。ちなみに、管理者とユーザーでは異なるprocが起動するので、両方チェックする必要がある。
|
|
|
|
使わないアプリが勝手に起動し、特定のportを開けている現状は望ましくない。この辺は商用OS?なので、archlinuxなどとは違い、面倒くささがあるなと思った。自分でそういったprocをkillしていかないといけないわけですね。
|
|
|
|
procについて調べるには以下のようなコマンドでやる。
|
|
|
|
```sh
|
|
$ lsof -i tcp:49163
|
|
rapportd 402 syui 3u xxxx TCP *:49158 (LISTEN)
|
|
# proc 402をkill
|
|
$ lsof -p 402
|
|
|
|
$ codesign -dv --verbose=4 /usr/libexec/rapportd
|
|
$ otool -L /usr/libexec/rapportd
|
|
|
|
$ launchctl list | grep 402
|
|
$ launchctl stop com.apple.rapportd
|
|
```
|
|
|
|
macは、こんな感じのコマンドでprocをdisable, stopできる。
|
|
|
|
```sh
|
|
$ launchctl unload -w /System/Library/LaunchAgents/com.apple.rapportd-user.plist
|
|
$ launchctl stop com.apple.rapportd
|
|
|
|
.
|
|
.
|
|
.
|
|
$ launchctl unload -w /System/Library/LaunchDaemons/com.apple.jetsamproperties.Mac.plist
|
|
$ launchctl unload -w /System/Library/LaunchAgents/com.apple.sharingd.plist
|
|
$ launchctl unload -w /System/Library/LaunchDaemons/com.apple.netbiosd.plist
|
|
# これunloadすると名前解決できなくなるので注意
|
|
$ sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
|
|
```
|
|
|
|
`$ open -a Network\ Utility.app`を実行して、portscanしてみたけど、こちらのほうが`namp`より正確。
|
|
|
|
ここで`BetterTou`がportを開けてたので、macのfirewallでブロックした上で、appを削除した。しかし、ショートカットキーが困ったので、`karabiner`に一本化することにした。
|
|
|
|
> ~/.config/karabiner/karabiner.json
|
|
|
|
```json
|
|
"rules": [
|
|
{
|
|
"description": "Command+1でFinderを開く",
|
|
"manipulators": [
|
|
{
|
|
"from": {
|
|
"key_code": "1",
|
|
"modifiers": {
|
|
"mandatory": [
|
|
"command"
|
|
],
|
|
"optional": [
|
|
"any"
|
|
]
|
|
}
|
|
},
|
|
"to": [
|
|
{
|
|
"shell_command": "open -a 'finder'"
|
|
}
|
|
],
|
|
"type": "basic"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "Command+Shift+zでiTermを開く",
|
|
"manipulators": [
|
|
{
|
|
"from": {
|
|
"key_code": "z",
|
|
"modifiers": {
|
|
"mandatory": [
|
|
"command",
|
|
"shift"
|
|
],
|
|
"optional": [
|
|
"any"
|
|
]
|
|
}
|
|
},
|
|
"to": [
|
|
{
|
|
"shell_command": "open -a 'iTerm'"
|
|
}
|
|
],
|
|
"type": "basic"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "ESCキーを押したら強制的にIMEをオフにする",
|
|
"manipulators": [
|
|
{
|
|
"from": {
|
|
"key_code": "j",
|
|
"modifiers": {
|
|
"mandatory": [
|
|
"control"
|
|
],
|
|
"optional": [
|
|
"any"
|
|
]
|
|
}
|
|
},
|
|
"to": [
|
|
{
|
|
"key_code": "escape"
|
|
},
|
|
{
|
|
"key_code": "japanese_eisuu"
|
|
}
|
|
],
|
|
"type": "basic"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "Escを押したら強制的にIMEをオフにする",
|
|
"manipulators": [
|
|
{
|
|
"from": {
|
|
"key_code": "escape"
|
|
},
|
|
"to": [
|
|
{
|
|
"key_code": "escape"
|
|
},
|
|
{
|
|
"key_code": "japanese_eisuu"
|
|
}
|
|
],
|
|
"type": "basic"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "Command+Alt+GでChromeを開く",
|
|
"manipulators": [
|
|
{
|
|
"from": {
|
|
"key_code": "g",
|
|
"modifiers": {
|
|
"mandatory": [
|
|
"command",
|
|
"control"
|
|
],
|
|
"optional": [
|
|
"any"
|
|
]
|
|
}
|
|
},
|
|
"to": [
|
|
{
|
|
"shell_command": "open -a 'Google Chrome'"
|
|
}
|
|
],
|
|
"type": "basic"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "Command+Alt+KでKeepassXを開く",
|
|
"manipulators": [
|
|
{
|
|
"from": {
|
|
"key_code": "k",
|
|
"modifiers": {
|
|
"mandatory": [
|
|
"command",
|
|
"control"
|
|
],
|
|
"optional": [
|
|
"any"
|
|
]
|
|
}
|
|
},
|
|
"to": [
|
|
{
|
|
"shell_command": "open -a 'KeePassX'"
|
|
}
|
|
],
|
|
"type": "basic"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
こんな感じで色々書いてく。
|
|
|