1

Nmapスキャンからのデータがいくつかあります。こんな感じです。

Nmap scan report for 10.16.17.34
Host is up (0.011s latency).
Not shown: 65530 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
23/tcp   open  telnet
80/tcp   open  http
| http-headers: 
|   Date: THU, 30 AUG 2012 22:46:11 GMT
|   Expires: THU, 30 AUG 2012 22:46:11 GMT
|   Content-type: text/html
|   
|_  (Request type: GET)
443/tcp  open  https
| ssl-enum-ciphers: 
|   SSLv3
|     Ciphers (11)
|       TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA - unknown strength
|       TLS_RSA_EXPORT1024_WITH_RC4_56_SHA - unknown strength
|       TLS_RSA_EXPORT_WITH_DES40_CBC_SHA - unknown strength
|       TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 - unknown strength
|       TLS_RSA_EXPORT_WITH_RC4_40_MD5 - unknown strength
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA - strong
|       TLS_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_RSA_WITH_AES_256_CBC_SHA - unknown strength
|       TLS_RSA_WITH_DES_CBC_SHA - unknown strength
|       TLS_RSA_WITH_RC4_128_MD5 - unknown strength
|       TLS_RSA_WITH_RC4_128_SHA - strong
|   TLSv1.0
|     Ciphers (10)
|       TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA - unknown strength
|       TLS_RSA_EXPORT1024_WITH_RC4_56_SHA - unknown strength
|       TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 - unknown strength
|       TLS_RSA_EXPORT_WITH_RC4_40_MD5 - unknown strength
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA - strong
|       TLS_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_RSA_WITH_AES_256_CBC_SHA - unknown strength
|       TLS_RSA_WITH_DES_CBC_SHA - unknown strength
|       TLS_RSA_WITH_RC4_128_MD5 - unknown strength
|       TLS_RSA_WITH_RC4_128_SHA - strong
|     Compressors (1)
|       NULL
|_  Least strength = unknown strength
2023/tcp open  xinuexpansion3

Nmap scan report for 10.16.40.0
Host is up (0.00062s latency).
All 65535 scanned ports on 10.16.40.0 are closed

Nmap scan report for 10.16.40.1
Host is up (0.00071s latency).
All 65535 scanned ports on 10.16.40.1 are closed

私がやろうとしているのは、Awk、Sed、Grepなどを使用して、Nmap Scanで始まり、空白の新しい行で終わり、ssl-enum-ciphersを含むセクションを抽出することです。各セクションを印刷する方法をAwkで理解しましたが、ssl行を確認することができません。私はこれで私のリーグから外れています。
ありがとう

4

2 に答える 2

0

あなたが持っているのは空白行で区切られたレコードです。awkssl-enum-ciphersをチェックするために使用できます。

awk -v RS='' '/ssl-enum-ciphers/' file.txt

これにより、レコードに「hostdown」というフレーズが含まれていないことが確認されます。

awk -v RS='' '/ssl-enum-ciphers/ && !/host down/' file.txt

フィールド区切り文字を改行文字に変更することで、これをより厳密にすることができます。

awk 'BEGIN { RS=""; FS="\n" } /ssl-enum-ciphers/ && $1 !~ /host down/' file.txt

レコード間に改行を追加します。

awk 'BEGIN { RS=""; FS="\n" } /ssl-enum-ciphers/ && $1 !~ /host down/ { printf "%s\n\n", $0 }' file.txt
于 2012-09-05T01:24:51.447 に答える
0

Nmapテキスト出力の処理は、バージョンごとに変わる可能性があるため、注意が必要で危険が伴います。Nmap出力を解析するには、または引数を指定してXML出力を使用します。次に、XML解析ライブラリまたはユーティリティを使用して、必要な情報を抽出します。-oX-oA

たとえば、xmlstarletを使用して、属性が「ssl-enum-ciphers」に設定さhostれた要素を含む要素を抽出します。この例では、ターゲットのIPアドレスを出力し、その後にスクリプトからの出力を出力します。scriptidssl-enum-ciphers

xmlstarlet sel -t -m '//script[@id="ssl-enum-ciphers"]' \
-v '../../../address[@addrtype="ipv4"]/@addr' -v '@output' output.xml

Nmapの次のリリースでは、スクリプト出力自体がさらにXML構造に分割され、使用中の弱い暗号のみのリストを出力するなどの作業が容易になります。

于 2012-09-05T14:46:38.737 に答える