一、服务端口介绍
在渗透测试中对服务端口的收集非常重要,通过扫描服务开放的端口可判断对应开启的服务,通过所提供的这些服务的已知漏洞就可进行攻击。知名端口(0-1023)固定分配给某些服务的,动态端口(1023-65535)不固定分配给某些服务。
端口大全
https://nsrc.org/workshops/2009/summer/presentations/day3/common-ports.pdf
常见端口:
21:ftp文件传输协议(匿名访问、弱密码等)
22:ssh专门为远程登录会话和其他网络服务提供的安全性协议,基本出现在liunx服务器、网络设备上(弱口令、防火墙ssh后门等)
23:telnet远程管理服务(弱口令探测、溢出等)
25:smtp邮件接收服务(溢出)
53:dns提供域名解析(dns域传送信息泄露、dns劫持、dns缓存投毒、dns欺骗、dns隧道技术刺穿防火墙等等)
80:http协议(sql注入、文件上传、文件包含、xss、xxe、csrf、ssrf等等)
110:pop3邮件发送服务器(溢出)
443:https服务的web浏览端口、能提供加密和通过安全端口传输的另一种http(心脏出血)
445:smb用在计算机间共享文件、打印机、串口等(永恒之蓝漏洞)
1433:oracle
3306:mysql数据库(弱口令)
3389:远程桌面
5432:postgresql
6379:redis
8080:连接代理
"端口"是英文port的意译,可以认为是设备与外界通讯交流的出口。端口可分为虚拟端口和物理端口。
我们此文所指的端口特指TCP/IP协议中的端口,是逻辑意义上的端口。
一些特定端口默认会开启一些特定服务。
端口信息收集可以帮助我们找到更多目标网站的功能点,更全面地对目标网站进行测试。
二、 端口分类
第一类
公认端口(Well Known Ports):从0到1023,它们紧密绑定(binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议,例如:80端口实际上总是HTTP通讯。
第二类
注册端口(Registered Ports):从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。
第三类
动态和/或私有端口(Dynamic and/or Private Ports):从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。
按功能分类
三、收集方式
1.使用nmap
Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具。软件名字Nmap是Network Mapper的简称。Nmap最初是由Fyodor在1997年开始创建的。随后在开源社区众多的志愿者参与下,该工具逐渐成为最为流行安全必备工具之一。
Nmap的优点:
灵活。支持数十种不同的扫描方式,支持多种目标对象的扫描。
强大:Nmap可以用于扫描互联网上大规模的计算机。
可移植:支持主流操作系统:Windows/Linux/Unix/MacOS等等;源码开放,方便移植。
简单:提供默认的操作能覆盖大部分功能,基本端口扫描nmap targetip,全面的扫描nmap –A targetip。
自由:Nmap作为开源软件,在GPL License的范围内可以自由的使用。
文档丰富:Nmap官网提供了详细的文档描述。Nmap作者及其他安全专家编写了多部Nmap参考书籍。
社区支持:Nmap背后有强大的社区团队支持。
Nmap包含四项基本功能:
主机发现 (Host Discovery)
端口扫描 (Port Scanning)
版本侦测 (Version Detection)
操作系统侦测 (Operating System Detection)
内置大量脚本
支持防火墙等设备绕过
nmap常用命令
-A 综合扫描,包括系统探测,版本探测,脚本探测
-e 指定网络接口,扫描使使用哪个网卡
-iL 扫描指定文件中的ip
-iR 全网扫描
-O 扫描探测主机操作系统
-oN 将扫描的信息标准输出写到指定文件中
-p 指定端口扫描
-PO 有些主机关闭了ping检测所以使用这条命令可以跳过ping的探测加快扫描
-PS 探测目标主机开放的端口,可以指定一个以逗号分隔的端口 (SYN)
-PU 探测目标主机开放的端口,可以指定一个以逗号分隔的端口 (UDP)
-sA 向目标主机的端口发送ACK包,如果收到RST包,说明该端口没有被防火墙屏。该方式 只能用于确定防火墙是否屏蔽某个端口
-sF tcp的扫描一种,发送一个FIN标志的数据包
-sL 仅列出指定网段上的每台主机,不发送任何报文到目录 主机
-sn 探测网段主机的在线情况返回主机ip和MAC地址
-sO 探测主机支持哪些IP协议
-sP 对对应主机端的主机发送ICMP报文,查询哪些主机是存活的
-sS 使用SYN半开放扫描(隐蔽扫描)
-sT 扫描开放了TCP端口的设备 三次握手方式的TCP扫描
-sU 扫描开放了UDP端口的设备
-sV 用于扫描目标主机服务版本号和端口运行的软件的版本 (版本检测)
-sW 窗口扫描,得出一些端口信息
-v 表示显示冗余信息,在扫描过程中显示扫描的细节,从而让用户了解当前的扫描状态
我个人比较常用
-sV:版本检测(sV) 版本检测是用来扫描目标主机和端口上运行的软件的版本,
可以看到开放了ftp,ssh,apache http,mysql,weblogic等服务以及他们的版本。
nmap常用语句
具体见:Nmap使用技巧总结.pdf
2.使用工具Routescan
Router Scan 是一款路由器安全测试工具,它是由俄国的一位安全测试人员所开发的,他叫Stas‘M。
几个重要模块:
1、ip模块, 输入你想要进行测试的IP地址或地址段
2、端口模块,输入想要扫描的端口
3、扫描模块
扫描模块中共有六个功能选项,分别是:1、Router Scan(main);2、Detect proxy servers ;3、Use HNAP 1.0 ;4、SQLite Manager RCE; 5、Hudson Java Servlet;6、phpMyAdminRCE.
Router Scan(main),默认选择运行的模块,
Detect proxy servers,检测代理服务器,
Use HNAP 1.0,使用HNAP协议里的漏洞对路由器进行安全检测。
SQLite Manager RCE,利用SQLite Manager 远程连接设备中的数据库,进行配置信息的检索,以达到爆破的目的。
Hudson Java Servlet java服务模块
phpMyAdminRCE,phpadminMy RCE漏洞扫描模块
4、结果模块
显示扫描ip,端口,耗时,状态,服务等情况
还有一些不错的端口扫描工具,例如