VagrantのSSH config

表題の件について。何の気なしに`vagrant ssh-config`を実行してみて、普段使用している自身のものと何が違うかを見てみた。

■ 環境

  • Vagrant 2.0.3
  • macOS High Sierra

■ vagrant ssh-config

$ vagrant ssh-config
Host default
  HostName 127.0.0.1
  User vagrant
  Port 2200
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /Users/withsin/path/to/VM/.vagrant/machines/default/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATAL

$

気になるところとしては下記くらいであろうか。

  • UserKnownHostsFile /dev/null
  • PasswordAuthentication no
  • IdentitiesOnly yes
  • LogLevel FATAL

■ UserKnownHostsFile

AWSでインスタンスを再構築した際にこれが邪魔になることもあるが…社外に繋ぐ時はあってくれても問題ない。頻度は少ないのでこれといって問題にしていない。

■ PasswordAuthentication

クライアント側ではこれは記載していないな。サーバに準ずる、という感じでいる。

■ IdentitiesOnly

これは指定するとどういう動きになるのだろう?defaultは”no“であるようだが…。”IdentityFile“での接続を必須とするかどうかはサーバに準ずると思っているのだが…。とりあえず無くても問題ないだろう。

■ LogLevel

これも特に指定しなくて良い気がする。問題に感じることは今までに無い。

特に目新しいものはなかった。

以上。

ipcalc

IPの整合性チェックをしたいと思い表題を試してみることにした。

■ 環境

  • maxOS High Sierra
  • Amazon Linux

■ ipcalc

`ipcalc`でできるよ。という話を聞いて早速試してみた。ローカルで動かすスクリプトのつもりなのでMacで動いて欲しい。

■ macOS High Sierra

$ brew search ipcalc
==> Searching local taps...
ipcalc                           sipcalc
==> Searching taps on GitHub...
==> Searching blacklisted, migrated and deleted formulae...
$

sipcalc“というものもあるのか、と思ってこちらも調べてみたのだが、”sipcalc“はSubnetを計算させるもののようなので今回やりたいことにマッチしない。というわけで”ipcalc“をインストールした。

$ brew install ipcalc

実行しようと思ったところ、イメージと違う…。

$ ipcalc -h
Usage: ipcalc [options] >address< [[/]<NETMASK>] [NETMASC]

ipcalc takes an IP address and netmask and calculates the resulting broadcast, 
network, Cisco wildcard mask, and host range. By giving a second netmask, you 
can design sub- and supernetworks. It is also intended to be a teaching tool 
and presents the results as easy-to-understand binary values. 

-n --nocolor Don't display ANSI color codes. 
-b --nobinary Suppress the bitwise output. 
-c --class Just print bit-count-mask of given address. 
-h --html Display results as HTML (not finished in this version). 
-v --version Print Version. 
-s --split n1 n2 n3 
        Split into networks of size n1, n2, n3. 
-r --range Deaggregate address range. 
   --help Longer help text. 

Examples: 

ipcalc 192.168.0.1/24 
ipcalc 192.168.0.1/255.255.128.0 
ipcalc 192.168.0.1 255.255.128.0 255.255.192.0 
ipcalc 192.168.0.1 0.0.63.255 

ipcalc >ADDRESS1< - >ADDRESS2< deaggregate address range 

ipcalc >ADDRESS</>NETMASK< --s a b c 
        split network to subnets where a b c fits in. 

! New HTML support not yet finished. 

ipcalc 0.41 
$

これもSubnetやNetworkアドレスの計算とかができるものであって、IPアドレスとして正しいものかのチェックはできなさそうである。下記のようにエラーメッセージを見ればできるが、戻り値も正常で返るし少々使い勝手が自身には良くない。

$ ipcalc 192.168.33.256
INVALID ADDRESS: 192.168.33.256

Address:   192.168.1.1          11000000.10101000.00000001. 00000001
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
=>
Network:   192.168.1.0/24       11000000.10101000.00000001. 00000000
HostMin:   192.168.1.1          11000000.10101000.00000001. 00000001
HostMax:   192.168.1.254        11000000.10101000.00000001. 11111110
Broadcast: 192.168.1.255        11000000.10101000.00000001. 11111111
Hosts/Net: 254                   Class C, Private Internet

$
$ echo $?
0
$

■ Amazon Linux

$ which ipcalc
/bin/ipcalc
$
$ rpm -qf /bin/ipcalc
initscripts-9.03.58-1.39.amzn1.x86_64
$
$ ipcalc -h
ipcalc: ip address expected
Usage: ipcalc [OPTION...]
  -c, --check         Validate IP address for specified address family
  -4, --ipv4          IPv4 address family (default)
  -6, --ipv6          IPv6 address family
  -b, --broadcast     Display calculated broadcast address
  -h, --hostname      Show hostname determined via DNS
  -m, --netmask       Display default netmask for IP (class A, B, or C)
  -n, --network       Display network address
  -p, --prefix        Display network prefix
  -s, --silent        Don't ever display error messages

Help options:
  -?, --help          Show this help message
  --usage             Display brief usage message
$

こっちがお目当の`ipcalc`であったようだ…。

$ ipcalc -c 192.168.33.256
ipcalc: bad IPv4 address: 192.168.33.256
$
$ ipcalc -c 192.168.33.255
$

Macではちょっと考えることにしよう。

以上。

■ 関連

Private IP Range 確認

zcat & gzcat

Macにおいて表題のコマンド。

■ 環境

  • macOS High Sierra

■ zcat

gzipで圧縮されたファイルを`zcat`で確認しようとしたところ下記のようになった。

$ zcat example.csv.gz
zcat: can't stat: example.csv.gz (example.csv.gz.Z): No such file or directory
$

なんでだろう?と思い確認。

$ file example.csv.gz
example.csv.gz: gzip compressed data, last modified: Sun Apr  1 18:10:01 2018, from Unix

特に問題なさそうであるのだが…。

$ zless example.csv.gz

`zless`では問題なく中身を確認することができた。

■ gzcat

調べていると、`gzcat`でやるべきとの記載を見つけ試してみる。

$ gzcat example.csv.gz

`gzcat`では思い通りの結果が得られた。これでパイプで他のコマンドに渡していろいろ処理をすることができる。

以上。

Excel@Macで取り消し線

表題の通り。単なるメモである。

■ 環境

  • Microsoft Excell
  • macOS High Sierra

■ 取り消し線

文章の一部に”取り消し線“を付けたかったのだが、メニューのリボンを探しても見つからない…。さてどこにあるのだろう?と探し回ってしまったのでメモしておく。

ちなみに探していないので他にもっと速いショートカット等があるかもしれない。

取り消し線“を付けたいセルや文字列を選択後に、”command + 1“で”セルの書式設定”を開く。

フォント > 文字飾り > 取り消し線“にチェックを入れる。

以上。

exploitdb

表題について。`brew`で検索していて”exploitdb“なるものがあるのに気が付いたので触ってみる。

■ 環境

  • exploitdb
  • Homebrew
  • macOS High Sierra

■ exploitdb

$ brew info exploitdb
exploitdb: stable 2018-04-05, HEAD
The official Exploit Database
https://www.exploit-db.com/
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/exploitdb.rb
==> Options
--HEAD
    Install HEAD version
$

exploitdb“ってあれだよな?と思って`info`で表示されるURLを訪れてみたが、イメージ通りであった。インストールすると何かあるのか?

$ brew install exploitdb

さて何がインストールされたのであろう。

$ brew ls exploitdb
/usr/local/Cellar/exploitdb/2018-04-05/bin/searchsploit
/usr/local/Cellar/exploitdb/2018-04-05/share/exploit-database/ (39996 files)
$

`searchsploit`はコマンドであろうし、名前からイメージがつく。

$ searchsploit -h
  Usage: searchsploit [options] term1 [term2] ... [termN]

==========
 Examples
==========
  searchsploit afd windows local
  searchsploit -t oracle windows
  searchsploit -p 39446
  searchsploit linux kernel 3.2 --exclude="(PoC)|/dos/"

  For more examples, see the manual: https://www.exploit-db.com/searchsploit/

=========
 Options
=========
   -c, --case     [Term]      Perform a case-sensitive search (Default is inSEnsITiVe).
   -e, --exact    [Term]      Perform an EXACT match on exploit title (Default is AND) [Implies "-t"].
   -h, --help                 Show this help screen.
   -j, --json     [Term]      Show result in JSON format.
   -m, --mirror   [EDB-ID]    Mirror (aka copies) an exploit to the current working directory.
   -o, --overflow [Term]      Exploit titles are allowed to overflow their columns.
   -p, --path     [EDB-ID]    Show the full path to an exploit (and also copies the path to the clipboard if possible).
   -t, --title    [Term]      Search JUST the exploit title (Default is title AND the file's path).
   -u, --update               Check for and install any exploitdb package updates (deb or git).
   -w, --www      [Term]      Show URLs to Exploit-DB.com rather than the local path.
   -x, --examine  [EDB-ID]    Examine (aka opens) the exploit using $PAGER.
       --colour               Disable colour highlighting in search results.
       --id                   Display the EDB-ID value rather than local path.
       --nmap     [file.xml]  Checks all results in Nmap's XML output with service version (e.g.: nmap -sV -oX file.xml).
                                Use "-v" (verbose) to try even more combinations
       --exclude="term"       Remove values from results. By using "|" to separated you can chain multiple values.
                                e.g. --exclude="term1|term2|term3".

=======
 Notes
=======
 * You can use any number of search terms.
 * Search terms are not case-sensitive (by default), and ordering is irrelevant.
   * Use '-c' if you wish to reduce results by case-sensitive searching.
   * And/Or '-e' if you wish to filter results by using an exact match.
 * Use '-t' to exclude the file's path to filter the search results.
   * Remove false positives (especially when searching using numbers - i.e. versions).
 * When updating or displaying help, search terms will be ignored.

$

試しに最近話題になった”drupal“でやってみる。

$ searchsploit drupal
------------------------------------------------------------------- -------------------------------------------------------------------
 Exploit Title                                                     |  Path
                                                                   | (/usr/local/opt/exploitdb/share/exploit-database/)
------------------------------------------------------------------- -------------------------------------------------------------------
Drupal 4.0 - News Message HTML Injection                           | exploits/php/webapps/21863.txt
Drupal 4.1/4.2 - Cross-Site Scripting                              | exploits/php/webapps/22940.txt
Drupal 4.5.3 < 4.6.1 - Comments PHP Injection                      | exploits/php/webapps/1088.pl
Drupal 4.7 - 'Attachment mod_mime' Remote Command Execution        | exploits/php/webapps/1821.php
Drupal 4.x - URL-Encoded Input HTML Injection                      | exploits/php/webapps/27020.txt
Drupal 5.2 - PHP Zend Hash ation Vector                            | exploits/php/webapps/4510.txt
Drupal 5.21/6.16 - Denial of Service                               | exploits/php/dos/10826.sh
Drupal 6.15 - Multiple Persistent Cross-Site Scripting Vulnerabili | exploits/php/webapps/11060.txt
Drupal 7.0 < 7.31 - 'Drupalgeddon' SQL Injection (Add Admin User)  | exploits/php/webapps/34992.py
Drupal 7.0 < 7.31 - 'Drupalgeddon' SQL Injection (Admin Session)   | exploits/php/webapps/44355.php
Drupal 7.0 < 7.31 - 'Drupalgeddon' SQL Injection (PoC) (Reset Pass | exploits/php/webapps/34984.py
Drupal 7.0 < 7.31 - 'Drupalgeddon' SQL Injection (PoC) (Reset Pass | exploits/php/webapps/34993.php
Drupal 7.0 < 7.31 - 'Drupalgeddon' SQL Injection (Remote Code Exec | exploits/php/webapps/35150.php
Drupal 7.12 - Multiple Vulnerabilities                             | exploits/php/webapps/18564.txt
Drupal 7.x Module Services - Remote Code Execution                 | exploits/php/webapps/41564.php
Drupal < 4.7.6 - Post Comments Remote Command Execution            | exploits/php/webapps/3313.pl
Drupal < 5.1 - Post Comments Remote Command Execution              | exploits/php/webapps/3312.pl
Drupal < 5.22/6.16 - Multiple Vulnerabilities                      | exploits/php/webapps/33706.txt
Drupal < 7.34 - Denial of Service                                  | exploits/php/dos/35415.txt
Drupal Module Ajax Checklist 5.x-1.0 - Multiple SQL Injections     | exploits/php/webapps/32415.txt
Drupal Module CAPTCHA - Security Bypass                            | exploits/php/webapps/35335.html
Drupal Module CKEditor 3.0 < 3.6.2 - Persistent EventHandler Cross | exploits/php/webapps/18389.txt
Drupal Module CKEditor < 4.1WYSIWYG (Drupal 6.x/7.x) - Persistent  | exploits/php/webapps/25493.txt
Drupal Module CODER 2.5 - Remote Command Execution (Metasploit)    | exploits/php/webapps/40149.rb
Drupal Module Coder < 7.x-1.3/7.x-2.6 - Remote Code Execution      | exploits/php/remote/40144.php
Drupal Module Cumulus 5.x-1.1/6.x-1.4 - 'tagcloud' Cross-Site Scri | exploits/php/webapps/35397.txt
Drupal Module Drag & Drop Gallery 6.x-1.5 - 'upload.php' Arbitrary | exploits/php/webapps/37453.php
Drupal Module Embedded Media Field/Media 6.x : Video Flotsam/Media | exploits/php/webapps/35072.txt
Drupal Module RESTWS 7.x - PHP Remote Code Execution (Metasploit)  | exploits/php/remote/40130.rb
Drupal Module Sections - Cross-Site Scripting                      | exploits/php/webapps/10485.txt
Drupal Module Sections 5.x-1.2/6.x-1.2 - HTML Injection            | exploits/php/webapps/33410.txt
------------------------------------------------------------------- -------------------------------------------------------------------
Shellcodes: No Result
$

なるほど。`ls`の時にも見えたpathは実際のコードが入っている場所か。セキュリティ界隈の人には便利なのかな。

以上。