Portspoof
Go to file
2017-10-02 21:31:41 +02:00
auto updated config.guess and config.sub to newer autotools version to support aarch64 2016-08-26 14:34:49 -04:00
docs github pages 2017-10-02 21:31:41 +02:00
src Fixed Reverse Regular Expressions bug 2017-01-21 19:26:02 +01:00
system_files Tweak exit codes 2015-07-28 17:19:10 -04:00
tools 1.2 release 2014-04-25 09:13:52 +02:00
.travis.yml Merge branch 'master' of https://github.com/drk1wi/portspoof into GITHUB_master 2013-08-06 14:49:59 +02:00
aclocal.m4 autoreconf 2013-12-31 09:19:04 -05:00
AUTHORS Fix permissions on some files 2013-09-22 04:45:26 +03:00
ChangeLog fixed POSIX sockets 2014-06-26 10:57:50 +02:00
configure 1.2 release 2014-04-25 09:13:52 +02:00
configure.in 1.2 2014-04-25 10:06:42 +02:00
COPYING Fix permissions on some files 2013-09-22 04:45:26 +03:00
COPYRIGHT.GPL Fix permissions on some files 2013-09-22 04:45:26 +03:00
CREDITS updated docs 2014-06-26 09:19:24 +02:00
FAQ updated docs 2014-06-26 09:19:24 +02:00
INSTALL minor adj. 2013-08-06 14:46:13 +02:00
Makefile.am Fix permissions on some files 2013-09-22 04:45:26 +03:00
Makefile.in autoreconf 2013-12-31 09:19:04 -05:00
NEWS FIXED! 2013-07-16 16:06:26 +02:00
README Fix docs 2017-09-12 12:05:17 +02:00
README.md github pages 2017-10-02 21:30:59 +02:00

Portspoof software overview (http://drk1wi.github.io/portspoof/)

Short description:

The Portspoof program primary goal is to enhance OS security through a set of new techniques:

-  All TCP ports are always open

Instead of informing an attacker that a particular port isa CLOSED or FILTERED state Portspoof will return SYN+ACK for every port connection attempt.

As a result it is impractical to use stealth (SYN, ACK, etc.) port scanning against your system, since all ports are always reported as OPEN.

	**`nmap -p 1-20 127.0.0.1`**
    Starting Nmap 6.47 ( http://nmap.org )
    Nmap scan report for 127.0.0.1
    Host is up (0.0018s latency).
    PORT   STATE SERVICE
    1/tcp  open  tcpmux
    2/tcp  open  compressnet
    3/tcp  open  compressnet
    4/tcp  open  unknown
    5/tcp  open  unknown
    6/tcp  open  unknown
    7/tcp  open  echo
    8/tcp  open  unknown
    9/tcp  open  discard
    10/tcp open  unknown
    11/tcp open  systat
    12/tcp open  unknown
    13/tcp open  daytime
    14/tcp open  unknown
    15/tcp open  netstat
    16/tcp open  unknown
    17/tcp open  qotd
    18/tcp open  unknown
    19/tcp open  chargen
    20/tcp open  ftp-data


-  Every open TCP port emulates a services

Portspoof has a huge database of dynamic service signatures, that will be used to fool scanners to believe there's a legitimate service running.

Scanning software usually tries to determine a service version that is running on an open port. 
Portspoof will respond to every service probe with a valid service signature, that is dynamically generated based on a service signature regular expression database.
As a result an attacker will not be able to determine which port numbers your system is truly using. 	

 	**`nmap -F -sV 127.0.0.1`**
    Starting Nmap 6.47 ( http://nmap.org )
    Stats: 0:00:30 elapsed; 0 hosts completed (1 up), 1 undergoing Service Scan
    Nmap scan report for 127.0.0.1
    Host is up (0.21s latency).
    PORT      STATE SERVICE          VERSION
    7/tcp     open  http             Milestone XProtect video surveillance http interface (tu-ka)
    9/tcp     open  ntop-http        Ntop web interface 1ey (Q)
    13/tcp    open  ftp              VxWorks ftpd 6.a
    21/tcp    open  http             Grandstream VoIP phone http config 6193206
    22/tcp    open  http             Cherokee httpd X
    23/tcp    open  ftp              MacOS X Server ftpd (MacOS X Server 790751705)
    25/tcp    open  smtp?
    26/tcp    open  http             ZNC IRC bouncer http config 0.097 or later
    37/tcp    open  finger           NetBSD fingerd
    53/tcp    open  ftp              Rumpus ftpd
    79/tcp    open  http             Web e (Netscreen administrative web server)
    80/tcp    open  http             BitTornado tracker dgpX
    81/tcp    open  hosts2-ns?
    88/tcp    open  http             3Com OfficeConnect Firewall http config
    106/tcp   open  pop3pw?
    110/tcp   open  ipp              Virata-EmWeb nbF (HP Laserjet 4200 TN http config)
    111/tcp   open  imap             Dovecot imapd
    113/tcp   open  smtp             Xserve smtpd
    119/tcp   open  nntp?
    135/tcp   open  http             netTALK Duo http config
    139/tcp   open  http             Oversee Turing httpd kC (domain parking)
    143/tcp   open  crestron-control TiVo DVR Crestron control server
    144/tcp   open  http             Ares Galaxy P2P httpd 7942927
    179/tcp   open  http             WMI ViH (3Com 5500G-EI switch http config)
    199/tcp   open  smux?
    389/tcp   open  http-proxy       ziproxy http proxy
    427/tcp   open  vnc              (protocol 3)
    443/tcp   open  https?
    444/tcp   open  snpp?
    445/tcp   open  http             Pogoplug HBHTTP QpwKdZQ
    465/tcp   open  http             Gordian httpd 322410 (IQinVision IQeye3 webcam rtspd)
    513/tcp   open  login?
    514/tcp   open  finger           ffingerd
    515/tcp   open  pop3             Eudora Internet Mail Server X pop3d 4918451
    543/tcp   open  ftp              Dell Laser Printer z printer ftpd k
    544/tcp   open  ftp              Solaris ftpd
    548/tcp   open  http             Medusa httpd Elhmq (Sophos Anti-Virus Home http config)
    554/tcp   open  rtsp?
    587/tcp   open  http-proxy       Pound http proxy
    631/tcp   open  efi-webtools     EFI Fiery WebTools communication
    646/tcp   open  ldp?
    873/tcp   open  rsync?
    990/tcp   open  http             OpenWrt uHTTPd
    993/tcp   open  ftp              Konica Minolta bizhub printer ftpd
    995/tcp   open  pop3s?
    1025/tcp  open  sip-proxy        Comdasys SIP Server D
    1026/tcp  open  LSA-or-nterm?
    1027/tcp  open  IIS?
    1028/tcp  open  rfidquery        Mercury3 RFID Query protocol
    1029/tcp  open  smtp-proxy       ESET NOD32 anti-virus smtp proxy
    1110/tcp  open  http             qhttpd
    1433/tcp  open  http             ControlByWeb WebRelay-Quad http admin
    1720/tcp  open  H.323/Q.931?
    1723/tcp  open  pptp?
    1755/tcp  open  http             Siemens Simatic HMI MiniWeb httpd
    1900/tcp  open  tunnelvision     Tunnel Vision VPN info 69853
    2000/tcp  open  telnet           Patton SmartNode 4638 VoIP adapter telnetd
    2001/tcp  open  dc?
    2049/tcp  open  nfs?
    2121/tcp  open  http             Bosch Divar Security Systems http config
    2717/tcp  open  rtsp             Darwin Streaming Server 104621400
    3000/tcp  open  pop3             Solid pop3d
    3128/tcp  open  irc-proxy        muh irc proxy
    3306/tcp  open  ident            KVIrc fake identd
    3389/tcp  open  ms-wbt-server?
    3986/tcp  open  mapper-ws_ethd?
    4899/tcp  open  printer          QMC DeskLaser printer (Status o)
    5000/tcp  open  http             D-Link DSL-eTjM http config
    5009/tcp  open  airport-admin?
    5051/tcp  open  ssh              (protocol 325257)
    5060/tcp  open  http             apt-cache/apt-proxy httpd
    5101/tcp  open  ftp              OKI BVdqeC-ykAA VoIP adapter ftpd kHttKI
    5190/tcp  open  http             Conexant-EmWeb JqlM (Intertex IX68 WAP http config; SIPGT TyXT)
    5357/tcp  open  wsdapi?
    5432/tcp  open  postgresql?
    5631/tcp  open  irc              ircu ircd
    5666/tcp  open  litecoin-jsonrpc Litecoin JSON-RPC f_
    5800/tcp  open  smtp             Lotus Domino smtpd rT Beta y
    5900/tcp  open  ftp
    6000/tcp  open  http             httpd.js (Songbird WebRemote)
    6001/tcp  open  daap             mt-daapd DAAP TGeiZA
    6646/tcp  open  unknown
    7070/tcp  open  athinfod         Athena athinfod
    8000/tcp  open  amanda           Amanda backup system index server (broken: libsunmath.so.1 not found)
    8008/tcp  open  http?
    8009/tcp  open  ajp13?
    8080/tcp  open  http             D-Link DGL-4300 WAP http config
    8081/tcp  open  http             fec ysp (Funkwerk bintec R232B router; .h.K...z)
    8443/tcp  open  smtp
    8888/tcp  open  smtp             OpenVMS smtpd uwcDNI (OpenVMS RVqcGIr; Alpha)
    9100/tcp  open  jetdirect?
    9999/tcp  open  http             Embedded HTTPD 3BOzejtHW (Netgear MRd WAP http config; j)
    10000/tcp open  http             MikroTik router http config (RouterOS 0982808)
    32768/tcp open  filenet-tms?
    49152/tcp open  unknown
    49153/tcp open  http             ASSP Anti-Spam Proxy httpd XLgR(?)?
    49154/tcp open  http             Samsung AllShare httpd
    49155/tcp open  ftp              Synology DiskStation NAS ftpd
    49156/tcp open  aspi             ASPI server 837305
    49157/tcp open  sip              AVM FRITZ!Box |


By using those two techniques together:
 
- your attackers will have a tough time while trying to identify your real services.
- the only way to determine if a service is emulated is through a protocol probe (imagine probing protocols for 65k open ports!).
- it takes more than 8hours and 200MB of sent data in order to properly go through the reconessaince phase for your system ( nmap -sV -p - equivalent).

*Art of Active (Offensive) Defense*

Portspoof can be used as an 'Exploitation Framework Frontend', that turns your system into responsive and aggressive machine. In practice this usually means exploiting your attackers' tools and exploits. 
At the moment there are few example exploits in the configuration file (portspoof.conf)


Portspoof is meant to be a lightweight, fast, portable and secure addition to the any firewall system or security system.
The general goal of the program is to make the reconessaince phase slow and bothersome for your attackers as much it is only possible.
This is quite a change to the standard 5s Nmap scan, that will give a full view of your systems running services.

 The most important features that this software has:

- it will add some real pain to your attackers reconessaince phase.
- it is a userland software and does not require root privileges ! 
- it binds to just ONE tcp port per a running instance !
- it is easily customizable through your iptables rules 
- marginal CPU and memory usage (multithreaded) 
- more than 9000 dynamic service signatures to feed your attackers scanning software ! 


Author: Piotr Duszynski (piotr [at] duszynski.eu) #

License

Consult the COPYING file.

Compile instructions

Consult the DOC file.

Other important files

AUTHORS		File with Author contact info
Changelog       What I have implemented
FAQ		Bug reporting and frequently asked questions
DOCS 		Documentation file