Untuk mengetahui apakah sebuah port open atau closed, attacker mengirimkan TCP probe packets dengan ACK flag, kemudian dilakukan analisa header information (TTL dan WINDOW field) dari RST packet yang diterima.

ACK flag probe mengeksploitasi vulnerabilities dari TCP/IP stact turunan BSD, jadi teknik ini hanya efektif untuk target yang menggunakan OS turunan BSD.
Terdapat 2 kategori ACK flag probe scan:
TTL Based ACK flag probe scan
Pada teknik ini, pertama dikirimkan ACK probe packet ke berbagai TCP ports kemudian dilakukan analisa TTL field value dari RST packets yang diterima.
Pada nmap digunakan opsi -ttl [time] [target] untuk melakukan TTL based ack flag probe scan.
Jika TTL value dari RST packet pada port tertentu lebih kecil dari 64, berarti port open. Pada contoh dibawah, port 22 memiliki TTL 50 (dibawah 64), berarti port 22 open.

Window based ACK flag probe scan
Sama seperti TTL, akan dikirimkan ACK probe packet ke berbagai port, namun yang akan dianalisa adalah window field value dari RST packet yang diterima.
Jika window value dari RST packets pada port tertentu bukan nol, berarti port tersebut open.

Pada gambar diatas, untuk port 22 adalah open karena memiliki nilai win bukan nol.
Jika tidak ada response dari target dan diperoleh ICMP unreachable error (type 3, code 1, 2, 3, 9, 10, atau 13), dapat disimpulkan port tersebut termasuk kedalam filtered port, artinya target network menggunakan mekanisme filtered seperti firewall.
Kelebihan dari scanning ini umumnya dapat melewati IDS. Sementara kekurangannya adalah sangat lambat, dan hanya dapat mengeksploitasi OS versi lama turunan BSD.
Pada nmap, digunakan opsi -sA untuk melakukan ACK flag probe scan.
$ nmap -sA <ip address>