Nmap
TCPのconnect()システムコールを用いたスキャン手法である。実際に対象ポートへの接続を試み、接続成功ならopenと判断するもの。最大の利点は、rawパケットを送出する必要がないため、rawパケットを送出するために必要な環境、つまりUnix系OSであればroot権限、Windowsであればadministrator権限やWinPCAPを必要としないことである。欠点は、実際に対象ポートへの接続を試みるため、対象ホストで動作するサービスプログラムに接続確立を示すログが残る可能性があることや、後述のTCP SYNスキャンに比べてパケット制御の自由度が低いためにスキャン効率が低くなることなどが挙げられる。
nmapのスキャンの特徴の一つに、スキャン速度の自動調整機能が挙げられる。これは、相手サーバーからの応答状況に応じて、スキャン速度を調整するというものである。nmapでは、パケット破棄されることが前提となるような特殊なパケットを送出するケースが多い上、OSおよびバージョン検出機能などのように、単一のスキャン機能で複数のパケットを送出するケースも多くある。そのため、nmap作者は処理速度、パフォーマンスという要素を重要視している。
単にパケットを送出する間隔を短くするだけでは、相手サーバーの処理能力以上のパケットを投げてしまう可能性がある。こうなるとパフォーマンスの向上には繋がらない上に、相手の侵入検知システムによってスキャンパケットが弾かれる可能性もある。このような状況を避けつつもパフォーマンスを維持するため、相手サーバーからの応答状況に応じてスキャン速度は自動的に調整されるようになっている。また、時間に関する各種パラメータのいくつかはオプション引数で指定可能となっている。
これに準拠したシステム、それはTCP FINスキャンを発見したUriel Maimonが「bad net code in the BSD code」と表現している通り、BSDをベースとするシステムの多くでは、RSTが返ってくればclosed、応答がなければopenもしくはfilteredと判断可能である。ICMP到達不能エラー応答があればfilteredと判断可能である。加えて、ほとんどがclosedで、ごく一部がopenもしくはfilteredということであれば、そのごく一部はopenである可能性が高いとも判断可能である。この手法と同じ原理を用いたものとして、Nullスキャン(FINの代わりに、フラグを全く立てないパケットを用いる)やXmasスキャン(FINの代わりにFIN/PSH/URGの3つのビットを立てたパケットを用いる)が後のバージョンで対応されるが、その本質はTCP FINスキャンと同じである。
この手法の欠点は、応答がない場合にopenとfilteredを区別できないことである。また、RFC 793に準拠しないためにこの手法が使えないシステムが少なからず存在する(代表的にはWindowsなど)という欠点もある。