渗透测试之端口探测实验
- 实验目的
- 一、实验原理
- 1.1 端口
- 1.2 服务
- 二、实验环境
- 2.1 操作机器
- 2.2 实验工具
- 三、实验步骤
- 1. 使用netstat手动探测指定服务
- 2. 使用namp工具进行端口扫描
- 2. 使用ssh命令
- 总结
实验目的
- 了解端口、服务的基本概念
- 熟悉手工探测方式netstat命令的使用
- 掌握扫描工具nmap的原理及使用
一、实验原理
1.1 端口
在网络技术中,端口有多种含义。集线器、交换机、路由器的端口指的是连接其他网络设备的接口,如RJ-45端口、Serial端口等。我们所关注的端口不是指物理意义上的端口,而是特指TCP/IP协议中的端口,是逻辑意义上的端口。一个IP地址的端口可以有65536(2^16)个之多。端口是通过端口号来标记的,端口号只有整数,范围是从0到65536。(可以这样理解端口:
你的电脑和别人的电脑进行通信,你们通信的内容通过计算机端口进出
),端口分为如下三类:
- 公认端口(WellKnownPorts):端口号0到1023,它们紧密绑定于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:各个端口代表的服务
- 注册端口(RegisteredPorts):端口号1024到49151.它们松散地绑定于一些服务,也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它的目的。例如:许多系统处理动态端口从1024左右开始;
- 动态/私有端口(Dynamic/PrivatePorts):端口号49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。
1.2 服务
服务是指执行指定系统功能的程序、例程或进程,以便支持其他程序,尤其是低层(接近硬件)程序。服务是一种应用程序类型,它在后台运行。服务应用程序通常可以在本地和通过网络为用户提供一些功能,例如客户端/服务器应用程序、Web服务器、数据库服务器以及其他基于服务器的应用程序。典型的网络服务有:DHCP、DNS、FTP、Telnet、WINS、SMTP等。DHCP的全名是“Dynamic Host Configuration Protocol”即动态主机配置协议。服务分为如下两类:
- 面向连接服务(Connection-Oriented)。面向连接服务要经过三个阶段:数据传输前,先建立连接,连接建立后再传输数据,数据传送完后,释放连接。面向连接服务可确保数据传送的次序和传输的可靠性。
- 无连接服务(Connectionless)。无连接服务的特点是:无连接服务只有传输数据阶段,消除了除数据通信外的其它开销。只要发送实体是活跃的,无须接收实体也是活跃的。它的优点是灵活方便、迅速,特别适合于传送少量零星的报文。但无连接服务不能防止报文的丢失、重复或失序。
类似tcp连接和udp连接
二、实验环境
2.1 操作机器
- 操作机:Linux_Kali
- 目标机:Linux_Ubuntu
- 目标机用户密码:root,123456
2.2 实验工具
- Nmap
Nmap使用教程
netstat使用教程
三、实验步骤
1. 使用netstat手动探测指定服务
netstat -anlp
:命令查看本机开放的端口。查看结果分为四列,协议,本地地址,外部地址,状态。
1. 协议:表示连接所使用的协议名称(TCP 或 UDP)。
- 本地地址:代表本地计算机的 IP 地址和正在使用的端口号。
如果不指定 -anlp 参数,就显示与 IP 地址和端口的名称对应的本地计算机名称
。如果端口尚未建立,端口以星号 (*) 显示。
127.0.0.1是本地回环地址
,0.0.0.0是不能被ping通的。在服务器中,0.0.0.0并不是一个真实的的IP地址,它表示本机中所有的IPV4地址。监听0.0.0.0的端口,就是监听本机中所有IP的端口。(0.0.0.0不要把这个地址当作ip地址,看后面显示的端口号就行了
)
-
外部地址:代表该连接的远程计算机的 IP 地址和端口号码。如果不指定 -anlp 参数,就显示与 IP 地址和端口对应的名称。如果端口尚未建立,端口以星号 (*) 显示。
-
状态:表明 TCP 连接的状态。
2. 使用namp工具进行端口扫描
按照正常情况我先进行端口扫描发现端口开放情况:
nmap -sP -Pn 192.168.0.246
,然后再使用ssh 192.168.0.246
进行远程连接
- sP:探测端口
- sV:探测服务/版本信息
- Pn:将所有指定的主机视作已开启,跳过主机发现的过程。
2. 使用ssh命令
- 选定两台Linux机器,一般来说Linux不开发22号端口,所以使用如下命令开发和关闭22号端口:
开22号端口:iptables -A INPUT -ptcp --dport 22-j ACCEPT
关22号端口:iptables -A OUTPUT -p tcp --dport 22-j DROP
然后ssh远程连接
总结
netstat命令查看本机端口的开放情况,nmap查看目标机器的端口开放情况,Nmap使用教程