2月 23

NSEarchをインストールして使ってみましたよ

nsearch03
ポートスキャナ「Nmap」には、NSE(Nmap Scripting Engine)http://nmap.org/book/man-nse.htmlというものが付属しています。NSEは様々な処理を自動化したスクリプトでサービスの設定を確認するものや脆弱性が存在するかどうかをチェックするようなものなど多種多様で、自分自身で記述することも可能です。
今回はこのNSEを検索するためのツール「NSEarch」をKali Linux 1.1.0にインストールして使ってみました。

【NSEarchをダウンロード】

git clone https://github.com/JKO/nsearch.git

【設定に必要なNSEが保存されているPathを取得】

find /usr -type f -name “script.db” 2>/dev/null | awk ‘gsub(“script.db”,””)’
/usr/share/nmap/scripts/

【設定ファイルの編集】

cd nsearch
cp config.yaml.example config.yaml
vi config.yaml

(設定ファイル編集前)

#Configuration File

config:
scriptsPath: “/usr/local/share/nmap/scripts/”
filePath: “/usr/local/share/nmap/scripts/script.db”
fileBackup: ‘scriptbk.db’
scriptdb: “nmap_scripts.sqlite3”
categories: [“auth”,”broadcast”,”brute”,”default”,”discovery”,”dos”,”exploit”,”external”,”fuzzer”,”intrusive”,”malware”,”safe”,”version”,”vuln”]

(設定ファイル編集後)

#Configuration File

config:
scriptsPath: “/usr/share/nmap/scripts/”
filePath: “/usr/share/nmap/scripts/script.db”
fileBackup: ‘scriptbk.db’
scriptdb: “nmap_scripts.sqlite3”
categories: [“auth”,”broadcast”,”brute”,”default”,”discovery”,”dos”,”exploit”,”external”,”fuzzer”,”intrusive”,”malware”,”safe”,”version”,”vuln”]

【NSEarchを実行】

python nsearch.py

================================================
_ _ _____ _____ _
| \ | |/ ___|| ___| | |
| \| |\ `–. | |__ __ _ _ __ ___ | |__
| . ` | `–. \| __| / _` || ‘__| / __|| ‘_ \
| |\ |/\__/ /| |___ | (_| || | | (__ | | | |
\_| \_/\____/ \____/ \__,_||_| \___||_| |_|
================================================
Version 0.3 | @jjtibaquira
================================================

Creating Database :nmap_scripts.sqlite3
Creating Table For Script ….
Creating Table for Categories ….
Creating Table for Scripts per Category ….
Upload Categories to Categories Table …

================================================
_ _ _____ _____ _
| \ | |/ ___|| ___| | |
| \| |\ `–. | |__ __ _ _ __ ___ | |__
| . ` | `–. \| __| / _` || ‘__| / __|| ‘_ |
| |\ |/\__/ /| |___ | (_| || | | (__ | | | |
\_| \_/\____/ \____/ \__,_||_| \___||_| |_|
================================================
Version 0.3 | @jjtibaquira
================================================

nsearch>

【helpを表示】

nsearch> help

Nsearch Commands
================
clear doc exit help history last search

【各コマンドのhelpを表示】

nsearch> help clear
Clear the shell

nsearch> help doc
Usage:
doc

nsearch> help exit
Exits from the console

nsearch> help history
Print a list of commands that have been entered

nsearch> help last
Print the last Result of the Query

nsearch> help search

name : Search by script’s name
category : Search by category
Usage:
search name:http
search category:exploit

【基本的な使い方】
基本的には[search]コマンドを用いてNSEを探すことになるかと思います。
Version 0.3での検索の方法は[name]と[category]が用意されています。
[name]では指定した文字列を含んでいるNSEが列挙されます。
また、[category]では「NSEarch」の設定ファイルに定義されているカテゴリーにマッチするものを列挙されます。
Version 0.3 では「auth」「broadcast」「brute”」「default」「discovery」「dos」「exploit”」「external」「fuzzer」「intrusive」「malware」「safe」「version」「vuln」が定義されています。

以下は[name]で[ntp]、[category]で[auth]で[search]コマンドを実行したログです。

nsearch> search name:ntp
1.http-frontpage-login.nse
2.ntp-info.nse
3.ntp-monlist.nse

nsearch> search category:auth
1.ajp-auth.nse
2.creds-summary.nse
3.domcon-cmd.nse
4.domino-enum-users.nse
5.ftp-anon.nse
6.http-auth.nse
——– SNIP ——–
29.sip-enum-users.nse
30.smb-enum-users.nse
31.smtp-enum-users.nse
32.snmp-win32-users.nse
33.x11-access.nse

また、[doc]コマンドを用いることで指定したNSEを見ることができます。

nsearch> doc ntp-info.nse
local bin = require “bin”
local comm = require “comm”
local nmap = require “nmap”
local shortport = require “shortport”
local stdnse = require “stdnse”
local string = require “string”
local table = require “table”

description = [[
Gets the time and configuration variables from an NTP server. We send two
requests: a time request and a “read variables” (opcode 2) control message.
Without verbosity, the script shows the time and the value of the
—- SNIP —-
author = “Richard Sammet”

誤った文字列を指定するとエラーメッセージではなく終了してしまったり、NSEによっては[doc]コマンドの結果が正しく表示されなかったりという荒削り感はありますがその辺りは今後のバージョンアップに期待です。

Category: memo | NSEarchをインストールして使ってみましたよ はコメントを受け付けていません
2月 10

Kali Linux NetHunter “Bad USB” MITM Attack + sslstripメモ

Nexus5にインストールした「Kali Linux NetHunter」のココにある「”Bad USB” MITM Attack」を実行した上で「sslstrip」を実行しSSL通信を覗き見るということをしてみたのでそのときのメモです。

実施内容は下図の通りです。
fig01
通常では水色の経路で通信しているコンピュータにBadUSB機能を有効にした状態のNethunterをUSB接続することでそれ以後は黒色の経路の通信を行うように設定を変更してしまいます。これにより通信内容を覗き見たり、干渉したりすることが可能になります。

まず、NethunterのBadUSB機能をONにします。
下図のNethunterのメニューからの実行はうまく動作しなかったため起動スクリプトを編集した上でターミナルからスクリプトを実行しました。
menubadusb

【/sdcard/files/startbadusb.shの編集】

#dnsmasq -H /data/local/tmp/hosts -i $INTERFACE -R -S 8.8.8.8 -F 10.0.0.100,10.0..0.200 -x $TMPDIR/dnsmasq.pid
dnsmasq -C /sdcard/files/dnsmasq.conf -x $TMPDIR/dnsmasq.pid -i $INTERFACE

dnsmasq -H /data/local/tmp/hosts -i $INTERFACE -R -S 8.8.8.8 -F 10.0.0.100,10.0..0.200 -x $TMPDIR/dnsmasq.pid
#dnsmasq -C /sdcard/files/dnsmasq.conf -x $TMPDIR/dnsmasq.pid -i $INTERFACE

【/sdcard/files/startbadusb.shの実行】

/sdcard/files# ./startbadusb.sh
iptables v1.4.14
rndis,hid
1

これで準備は完了ですのでコンピュータにNexus5をUSBで接続します。
しばらくするとネットワークの設定が変更され、それ以降Nexus5を経由しての通信を行うようになります。
下図は設定を変更し、通信がNexus5を経由していることを確認するためwww.google.comにpingを送信しその内容をNexus5で表示しているものです。その左横にあるコマンドプロンプトを見ても分かる通りデフォルトゲートウェイが変更されています。また、その次に実行しているPingの内容がNexus5の画面に同様のものが表示されていることからNexus5経由の通信に変更されたことが分かるかと思います。
badusb_cap

これでMan In The Middle状態になりました。
しかし、SSL通信は暗号化されて覗き見ることができないため「sslstrip」を利用します。
「sslstrip」を実行した際に行われることは下図の通りです。
fig02

【IPTABLESのリダイレクト設定】

iptables -t nat -A PREROUTING -p tcp –destination-port 80 -j REDIRECT
–to-port 8080

【sslstripの起動】

sslstrip -l 8080

この状態でYahooのログイン画面にアクセスしてみます。
sslstrip01
URLがhttpsになっていないことが分かります。この状態でログイン処理を行います。
入力、送信した情報は存在しないアカウントのもので
ユーザ名「test@pentest.ninja」
パスワード「MIMTtest」
です。

送信後、ログファイル「/sdcard/files/sslstrip」の内容を確認したものが下図です。
sslstrip02
送信した認証情報が表示されているのが分かるかと思います。

同じ内容をNexus5上で確認したものは下図の通りです。
sslstrip03

以上です。

Category: memo | Kali Linux NetHunter “Bad USB” MITM Attack + sslstripメモ はコメントを受け付けていません