Portspoof程序旨在通过在原本封闭的端口上模拟仿真合法的服务签名,加强操作系统的安全性。它本来就是一个轻便、快速、便携、安全的附件,可以添加到任何防火墙系统或安全基础设施上。

这款程序的基本目的就是,让端口扫描软件(Nmap/Unicornscan/等)进程运行缓慢,让输出结果非常难以解读,从而使***侦察阶段成为一项难度大又麻烦的任务。

我发觉这个小程序背后的概念很有意思:不是用防火墙堵住所有端口,而是欺骗真实端口,因而让针对你的服务器/计算机运行端口扫描的那些家伙无功而返。

Portspoof程序的主要目的是,通过***者对你系统进行侦察的过程中减缓***者***速度,并阻止***者保持低调的一系列技巧,加强操作系统的安全性。

默认情况下,***者的侦察阶段应该很费时,而且很容易被你的***检测系统所发现。

主动(进攻性)防御的艺术

Portspoof还可以用作”漏洞框架前端”(Exploitation Framework Frontend),这可以将你的系统变成一台反应迅即、具有***性的机器。实际上,这意味着你的服务器能够自动利用***者的工具和漏洞。这种方法纯粹基于主动(进攻性)防御理念。

一、特点

  • 快速:多线程(默认情况下10个线程处理新的入站连接)。

  • 轻便:所需的系统资源数量极少。

  • 便携:可以在Linux和BSD(直到版本0.3)上运行。

  • 灵活:你可以轻松使用防火墙规则,定义将被欺骗的端口。

  • 对付流行的端口扫描工具很有效。

  • 超过8000多个假签名可以骗倒端口扫描工具。

  • 采用开源技术。

二、安装

Portspoof是一款免费的软件,采用GNU GPL版本2许可证发行,它并不以任何软件库中程序包的方式出现,或者至少我还没有发现这种方式,所以想安装它,你就得从官方网站下载zip文件(https://github.com/drk1wi/portspoof/archive/master.zip),或者从Github(https://github.com/drk1wi/portspoof)克隆源软件库,然后遵循下面这些简单的操作步骤:

1.编译软件,进入到你解压缩/放置源文件的目录,然后运行这些命令:

$ wget https://github.com/drk1wi/portspoof/archive/master.zip -O master.zip$ unzip master.zip$ cd portspoof-master$ ./configure$ make$ make install

2.配置防火墙规则(portspoof预设端口为4444)

$ iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 1:65535 -j REDIRECT --to-ports 4444

注意:Portspoof默认情况下会侦听所有网络接口的tcp4444端口。这条防火墙规则会导致服务骗过端口1至端口65535。如果你想访问合法服务,就得将这些服务的端口排除在REDIRECT语句之外!

  • 如需开放22端口

方法一

$ iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp ! --dport  22 -j REDIRECT --to-ports 4444

方法二

#开放系統服务端口$ iptables -t nat -A PREROUTING -p tcp -m multiport --dports 22,25,993,995 -j ACCEPT#其它所有端口转向portspoof的4444端口$ iptables -t nat -A PREROUTING -p tcp --dport 1:65535 -j REDIRECT --to-ports 4444

注: 当封包走向系统真实服务的端口(tcp 22,25,993,995)符合第一条規則, 可被系统正常接受处理; 走向其他端口则会被转向到tcp 4444 端口由portspoof处理。

  • 安装包带了一个配置的例子,可以参考下

$ cat portspoof-master/system_files/iptables-config# Generated by iptables-save v1.4.4 on Tue Apr 23 14:26:41 2013*nat:PREROUTING ACCEPT [5992:539002]:INPUT ACCEPT [347451:16935290]:OUTPUT ACCEPT [477:45868]:POSTROUTING ACCEPT [0:0]# Portspoof everything except the sshd service# Remember to change the iface name-A PREROUTING -i eth0 -p tcp -m tcp --dport 1:21 -j REDIRECT --to-ports 4444-A PREROUTING -i eth0 -p tcp -m tcp --dport 23:65535 -j REDIRECT --to-ports 4444COMMIT# Completed on Tue Apr 23 14:26:42 2013# Generated by iptables-save v1.4.4 on Tue Apr 23 14:26:42 2013*filter:INPUT ACCEPT [1931192:104113948]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [1606583:151106362]-A FORWARD -j ACCEPTCOMMIT# Completed on Tue Apr 23 14:26:42 2013

三、运行Portspoof

  • 后台方式运行(默认输出日志在/var/log/messages)

    $ portspoof -D
  • 自定义日志路径

    $ portspoof -s /usr/local/etc/portspoof_signatures -c /usr/local/etc/portspoof.conf -l /var/log/portspoof.log

    注:自定义日志路径不能在后台运行,加了-D参数后,测试portspoof进程会自动退出。

四、将portspoof添加到你系统的启动脚本

安装包里提供了两个的init.d管理脚本,你可以在system_files目录中找到这个脚本。你可根据自己情况复制到/etc/init.d目录下,使用很简单,这里就不详述了。

$ ls portspoof-master/system_files/init.d/portspoofportspoof.sh  portspoof_simple.sh$ cp portspoof.sh /etc/init.d/

五、测试

1.本地测试

$ nmap -sV -v 192.168.34.160Starting Nmap 6.40 (http://nmap.org ) at 2014-05-07 11:47 CSTNmap scan report for (192.168.34.160)Host is up (0.00012s latency).PORT      STATE SERVICE1/tcp     open  tcpmux3/tcp     open  compressnet4/tcp     open  unknown6/tcp     open  unknown7/tcp     open  echo9/tcp     open  discard13/tcp    open  daytime17/tcp    open  qotd19/tcp    open  chargen...146/tcp   open  iso-tp0161/tcp   open  snmp163/tcp   open  cmip-man179/tcp   open  bgp199/tcp   open  smux211/tcp   open  914c-g212/tcp   open  anet222/tcp   open  rsh-spx254/tcp   open  unknown...61532/tcp open  unknown61900/tcp open  unknown62078/tcp open  iphone-sync63331/tcp open  unknown64623/tcp open  unknown65389/tcp open  unknownMAC Address: 00:E0:81:DB:0C:29 (Tyan Computer)Nmap done: 1 IP address (1 host up) scanned in 0.28 seconds

2.在线演示

你想不想根本不用安装就能试一下Portspoof?

检查一下:针对portspoof.org地址,运行你常用的端口扫描工具,看看结果:nmap -sV -v portspoof.org。


©著作权归作者所有:来自51CTO博客作者mb5fe94c9f04536的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 如何解决Firefox&Chrome下无法访问特定端口
  2. Hping使用方法详解
  3. CentOS 7下使用FirewallD构建动态防火墙
  4. 使用Mosh来优化SSH连接
  5. 搭建php环境以及运行原理-php与html混编方式-常用数据类型
  6. PHP入门:集成环境、php运行原理、php使用方式和常见数据类型
  7. php学习小结(php程序的运行原理、短标签的使用与html混编、常用数
  8. PHP本地环境搭建|PHP运行原理|PHP与html混编|PHP常用数据类型
  9. php运行原理、混编方式、常用数据类型

随机推荐

  1. c++引用和指针的区别是什么?
  2. scanf在c语言中的作用是什么?
  3. c语言中数据结构是什么?常见数据结构有哪
  4. 虚函数和纯虚函数的区别是什么?
  5. c语言的输入输出语句有哪些?
  6. windows.h有哪些函数
  7. c语言中字符常量是什么?
  8. C语言中的指针有什么作用
  9. c语言程序中的基本功能模块为什么?
  10. C语言的三种基本程序结构是什么