当前位置: 首页 > news >正文

信息收集:端口扫描原理,端口扫描分类,端口扫描工具,手动判断操作系统,操作系统识别工具

「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「专栏简介」:此文章已录入专栏《网络安全自学教程》

在这里插入图片描述

端口&系统版本

  • 一、端口扫描
    • 1、telnet
    • 2、Nmap
    • 3、Masscan
    • 4、端口扫描原理及分类
  • 二、操作系统识别
    • 1、改变大小写
    • 2、TTL
    • 3、Nmap
    • 4、p0f

一、端口扫描

知道主机开放了哪些端口,就能根据「端口」找到对应的「服务」,再根据服务的已知漏洞进行渗透。

1、telnet

格式:telnet IP 端口

Windows系统:进入「黑窗口」表示端口开放;提示「连接失败」表示端口关闭。
Linux系统:返回「Connected」表示端口开放;返回「Connection refused」表示端口关闭。

2、Nmap

nmap(Network Mapper)是一个「网络扫描」和嗅探工具,-p参数指定扫描的端口。

nmap -sV -p 1-65535 206.119.105.9

在这里插入图片描述

3、Masscan

masscan是一个快速「端口扫描」工具,-p参数指定扫描的端口。

masscan -p 0-65535 206.119.105.9

在这里插入图片描述

4、端口扫描原理及分类

端口扫描本质上就是向主机的指定端口发送连接请求,收到响应,就说明端口开放;没有响应,就说明没开。

常用的扫描方式有全连接和半链接:

1)完全链接扫描

使用TCP三次握手建立一次完整的链接,从系统调用 connect()开始,端口开放则建立链接,端口不开放则返回-1。
在这里插入图片描述
2)半链接扫描

就是我们常说的SYN扫描,只建立TCP的前两次链接,发送一个SYN后,就停止建立链接,等待对方的响应。
如果返回一个ACK,就说明端口开放;如果返回一个RESET,就说明端口没开放。

在这里插入图片描述

这种不完整的链接,产生的日志较少,但需要超级管理员权限。

  • Telnet 使用完整的三次握手建立链接,常用于单个端口的测试。
  • Masscan 只发送SYN包,如果对方返回 ACK+SYN 就说明端口开放。
  • Nmap 默认使用SYN扫描,可以通过修改参数来修改扫描的方式。

二、操作系统识别

知道了「操作系统」,就可以针对已知漏洞进行渗透。

1、改变大小写

Windows系统不区分大小写,Linux区分大小写。

在网站的地址栏中,改变 url 的大小写,如果网页没有变化,就是Windows;如果网页404,就是Linux。

2、TTL

TTL(Time To Live)是IPv4请求包的一个字段,用来表示IP数据包在网络中可以转发的最大跳数(最大 255)。

Linux 系统的默认TTL是 64 Windows 系统的默认TTL是 128

ping目标网站,观察返回的ttl。

1~64 是Linux:

在这里插入图片描述

65~128 是Windows:

在这里插入图片描述
由于TTL的默认值可以修改,这个判断方式存在误差。

3、Nmap

Nmap根据特征行为「指纹」匹配特征库,来判断操作系统及版本;

语法:nmap -O IP

比如下面这个网站,是Linux,版本在2.4到2.6之间。

在这里插入图片描述

提示:Nmap的扫描结果可信度更高,但也并不不是100%准确。

4、p0f

p0f是kali自带的,「被动」指纹识别工具,抓取经过的流量,根据数据包判断操作系统。

在命令行输入 p0f 后回车,进入被动检测状态,然后使用浏览器访问目标网站。

如下图所示,os 这一栏展示 p0f 识别出的操作系统。

在这里插入图片描述

p0f 工具也不能保证100%的准确率,大部分识别工具的结果,都只能提供一定的参考价值。

http://www.lryc.cn/news/317614.html

相关文章:

  • 【Tauri】(5):本地运行candle和 qwen 大模型,并测试速度
  • 基于udp协议的cs网络通信代码(echo版+命令行输入版+执行指令版),netstat指令
  • centos7网络命令:ping、dig、nsloopup、tcpdump
  • Excel判断CD两列在EF两列的列表中是否存在
  • 基于斑翠鸟优化算法(Pied Kingfisher Optimizer ,PKO)的无人机三维路径规划(MATLAB)
  • 同程旅行前端面试汇总
  • 小美的平衡矩阵_dp思路
  • json展示curl 请求接口返回结果
  • 2024 年排名前 5 名的 Mac 数据恢复软件分享
  • 请描述一下Spring MVC的工作流程。在Spring MVC中,DispatcherServlet的作用是什么?
  • 2023年终总结——跌跌撞撞不断修正
  • OPPO后端二面,凉了!
  • Unity3d版白银城地图
  • 【PCL】(二十八)点云超体素分割
  • Socket通信Demo(Unity客户端和C#)
  • Lucene 自定义词库
  • 【LeetCode热题100】73. 矩阵置零(矩阵)
  • 使用Barrier共享鼠标键盘,通过macos控制ubuntu系统
  • c++:类和对象中:拷贝构造和赋值运算符重载详解
  • Day33:安全开发-JavaEE应用SQL预编译Filter过滤器Listener监听器访问控制
  • Log4j如何支持多线程环境?你如何优化Log4j的性能?
  • golang sync.Pool 指针数据覆盖问题
  • VUE+内置iframe传值失效问题解决
  • Day31:安全开发-JS应用WebPack打包器第三方库JQuery安装使用安全检测
  • Go Zero微服务个人探究之路(十六)回顾api服务和rpc服务的本质
  • 基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的夜间车辆检测系统(深度学习代码+UI界面+训练数据集)
  • Spring体系架构
  • 【PLC】现场总线和工业以太网汇总
  • 【吊打面试官系列】Java虚拟机JVM篇 - 关于JVM分析
  • Mysql锁与MVCC