标签 扫描 下的文章

使用这个 Linux KDE 应用,将你的档案数字化。

 title=

虽然现在的世界已经大部分实现了数字化,但仍有一些时候,你还是需要打印一份表格,签字,然后把它扫描回来。有时候,我发现在手机上拍个快照就够了,但有些行业需要比草率的快照更好的复印件,因此平板扫描仪是必要的。KDE 项目提供了一个叫做 Skanlite 的应用程序,它可以帮助你导入在平板上扫描的文件,甚至是用联机相机扫描的文件。

在 Linux 上安装 Skanlite

你可以从你的软件库中安装 Skanlite。在 Fedora、Mageia 和类似的地方:

$ sudo dnf install skanlite

在 Elementary、Linux Mint 和其他基于 Debian 的发行版上:

$ sudo apt install skanlite

扫描仪驱动

市场上的大多数扫描仪都与 SANE 扫描仪 API 兼容。SANE 并不是一个真正的驱动,而是一个协议,可以接收来自图像采集设备的输入,并为希望围绕它建立一个应用的程序员提供选项。Skanlite 就是这样一个应用。

我还没有遇到过不与 SANE 接口兼容的扫描仪,但可能也有不与 SANE 接口兼容的扫描仪。在这些情况下,请在制造商的网站上寻找 SANE 或 TWAIN 的驱动,或者寻找它们专有的驱动和扫描仪接口。后者可能无法使用 Skanlite,但当你不确定你的扫描仪是否通过标准协议进行通信时,Skanlite 总是值得试试。我甚至遇到过打印机和扫描仪的二合一设备,尽管打印机需要一个额外的驱动,但扫描仪却能立即被识别。

使用 Skanlite

当你启动 Skanlite 时,它首先会在你的系统中搜索图像采集设备。在笔记本电脑上,Skanlite 通常会发现网络摄像头是一个有效的输入源(因为它是),但它也会找到连接到你机器上的平板扫描仪。选择你要使用的扫描仪,然后继续。

要看扫描的内容,点击应用程序右下角的“ 预览 Preview ”按钮。

 title=

这将在右面板上显示一个预览图像。没有任何东西被保存到你的硬盘上,这只是显示你的扫描仪上目前有什么。

选择一个扫描区域

如果你只需要扫描仪上的一部分内容,你可以选择一个你想保存的区域。要选择一个单一的区域,在你想保存的区域上点击并拖动你的鼠标。当有一个有效的选择时,当你点击“ 扫描 Scan ”按钮时,只有你选择的那部分会被保存。

你可以有一个以上的选区,当你需要扫描几个小图像或只扫描一个大文件的特定部分时,这特别有效。要添加一个选区,请点击出现在选区中心的 “+” 图标。

 title=

你可以通过点击 “-” 图标来删除选区,当你有多个活动选区时,该图标会出现。

扫描设置

图像采集设置位于左边的面板上。这些控件允许你导入彩色或灰度的图像,并对图像的亮度和对比度进行调整。这些选项是基于软件的,不影响你的扫描仪的行为方式,但它们是常见的调整,在这里做这些调整可以使你不必在 GIM 或 Gwenview 中对图像进行后期处理。

在许多情况下,你的扫描仪可能有可配置的设置,可在 Skanlite 窗口左侧的“ 扫描仪特定选项 Scanner Specific Options ”标签中找到。有些扫描仪允许你调整色温、亮度、饱和度和其他出现在固件中的属性。可用的选项根据设备和供应商的不同而不同,所以你有可能在这个面板上看到变化,这取决于你与哪种设备的对接。

扫描和保存

当你准备好导入图像(或图像的选定区域,如果你已经做了选择)时,点击 Skanlite 窗口右下角的“ 扫描 Scan ”按钮。根据你的设备,它可能需要一些时间来创建扫描,但当它完成后,会提示你保存或丢弃图像。如果你喜欢你所看到的,点击“ 保存 Save ”。

图像会被保存到你所配置的任何默认位置。要查看默认位置,点击窗口右下角的“ 设置 Settings ”按钮。在 “ Skanlite 设置 Skanlite Settings ”中,你可以设置默认保存位置、默认名称格式和图像分辨率。你还可以控制每次扫描后是否提示你保存或丢弃图像,或者你是否想要保存所有的东西并在以后进行分类。

Linux 上的扫描很容易

在 Linux 上扫描文件是如此简单,我很少考虑这个问题。通常不需要你去寻找和安装特殊的驱动或应用,因为像 Skanlite 这样的应用使用开放协议,使这个过程变得简单。下次你有一份需要数字化的拷贝时,用 Skanlite 导入它。


via: https://opensource.com/article/22/2/scan-documents-skanlite-linux-kde

作者:Seth Kenlon 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

这又是一篇关于我很喜欢的一个命令行工具的文章。

昨晚,出于官僚原因,我需要扫描一些文档。我以前从来没有在 Linux 上使用过扫描仪,我担心会花上好几个小时才弄明白。我从使用 gscan2pdf 开始,但在用户界面上遇到了麻烦。我想同时扫描两面(我知道我们的扫描仪支持),但无法使它工作。

遇到 scanimage!

scanimage 是一个命令行工具,在 sane-utils Debian 软件包中。我想所有的 Linux 扫描工具都使用 sane (“scanner access now easy”) 库,所以我猜测它和其他扫描软件有类似的能力。在这里,我不需要 OCR,所以我不打算谈论 OCR。

用 scanimage -L 得到你的扫描仪的名字

scanimage -L 列出了你所有的扫描设备。

一开始我不能让它工作,我有点沮丧,但事实证明,我把扫描仪连接到了我的电脑上,但没有插上电源。

插上后,它马上就能工作了。显然我们的扫描仪叫 fujitsu:ScanSnap S1500:2314。万岁!

用 --help 列出你的扫描仪选项

显然每个扫描仪有不同的选项(有道理!),所以我运行这个命令来获取我的扫描仪的选项:

scanimage --help -d 'fujitsu:ScanSnap S1500:2314'

我发现我的扫描仪支持 --source 选项(我可以用它来启用双面扫描)和 --resolution 选项(我把它改为 150,以减少文件大小,使扫描更快)。

scanimage 不支持输出 PDF 文件(但你可以写一个小脚本)

唯一的缺点是:我想要一个 PDF 格式的扫描文件,而 scanimage 似乎不支持 PDF 输出。

所以我写了这个 5 行的 shell 脚本在一个临时文件夹中扫描一堆 PNG 文件,并将结果保存到 PDF 中。

#!/bin/bash
set -e

DIR=`mktemp -d`
CUR=$PWD
cd $DIR
scanimage -b --format png  -d 'fujitsu:ScanSnap S1500:2314' --source 'ADF Front' --resolution 150
convert *.png $CUR/$1

我像这样运行脚本:scan-single-sided output-file-to-save.pdf

你可能需要为你的扫描仪设置不同的 -d-source

这真是太简单了!

我一直以为在 Linux 上使用打印机/扫描仪是一个噩梦,我真的很惊讶 scanimage 可以工作。我可以直接运行我的脚本 scan-single-sided receipts.pdf,它将扫描文档并将其保存到 receipts.pdf


via: https://jvns.ca/blog/2020/07/11/scanimage--scan-from-the-command-line/

作者:Julia Evans 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

使用这些开源软件之一驱动你的扫描仪来实现无纸化办公。

尽管无纸化世界还没有到来,但越来越多的人通过扫描文件和照片来摆脱纸张的束缚。不过,仅仅拥有一台扫描仪还不足够。你还需要软件来驱动扫描仪。

然而问题是许多扫描仪制造商没有与他们的设备适配在一起的软件的 Linux 版本。不过在大多数情况下,即使没有也没多大关系。因为在 Linux 桌面上已经有很好的扫描软件了。它们能够与许多扫描仪配合很好的完成工作。

现在就让我们看看四个简单又灵活的开源 Linux 扫描工具。我已经使用过了下面这些工具(甚至早在 2014 年写过关于其中三个工具的文章)并且觉得它们非常有用。希望你也会这样认为。

Simple Scan

这是我最喜欢的一个软件之一,Simple Scan 小巧、快捷、高效且易用。如果你以前见过它,那是因为 Simple Scan 是 GNOME 桌面上的默认扫描应用程序,也是许多 Linux 发行版的默认扫描程序。

你只需单击一下就能扫描文档或照片。扫描过某些内容后,你可以旋转或裁剪它并将其另存为图像(仅限 JPEG 或 PNG 格式)或 PDF 格式。也就是说 Simple Scan 可能会很慢,即使你用较低分辨率来扫描文档。最重要的是,Simple Scan 在扫描时会使用一组全局的默认值,例如 150dpi 用于文本,300dpi 用于照片。你需要进入 Simple Scan 的首选项才能更改这些设置。

如果你扫描的内容超过了几页,还可以在保存之前重新排序页面。如果有必要的话 —— 假如你正在提交已签名的表格 —— 你可以使用 Simple Scan 来发送电子邮件。

Skanlite

从很多方面来看,Skanlite 是 Simple Scan 在 KDE 世界中的表兄弟。虽然 Skanlite 功能很少,但它可以出色的完成工作。

你可以自己配置这个软件的选项,包括自动保存扫描文件、设置扫描质量以及确定扫描保存位置。 Skanlite 可以保存为以下图像格式:JPEG、PNG、BMP、PPM、XBM 和 XPM。

其中一个很棒的功能是 Skanlite 能够将你扫描的部分内容保存到单独的文件中。当你想要从照片中删除某人或某物时,这就派上用场了。

Gscan2pdf

这是我另一个最爱的老软件,gscan2pdf 可能会显得很老旧了,但它仍然包含一些比这里提到的其他软件更好的功能。即便如此,gscan2pdf 仍然显得很轻便。

除了以各种图像格式(JPEG、PNG 和 TIFF)保存扫描外,gscan2pdf 还可以将它们保存为 PDF 或 DjVu 文件。你可以在单击“扫描”按钮之前设置扫描的分辨率,无论是黑白、彩色还是纸张大小,每当你想要更改任何这些设置时,都可以进入 gscan2pdf 的首选项。你还可以旋转、裁剪和删除页面。

虽然这些都不是真正的杀手级功能,但它们会给你带来更多的灵活性。

GIMP

你大概会知道 GIMP 是一个图像编辑工具。但是你恐怕不知道可以用它来驱动你的扫描仪吧。

你需要安装 XSane 扫描软件和 GIMP XSane 插件。这两个应该都可以从你的 Linux 发行版的包管理器中获得。在软件里,选择“文件>创建>扫描仪/相机”。单击“扫描仪”,然后单击“扫描”按钮即可进行扫描。

如果这不是你想要的,或者它不起作用,你可以将 GIMP 和一个叫作 QuiteInsane 的插件结合起来。使用任一插件,都能使 GIMP 成为一个功能强大的扫描软件,它可以让你设置许多选项,如是否扫描彩色或黑白、扫描的分辨率,以及是否压缩结果等。你还可以使用 GIMP 的工具来修改或应用扫描后的效果。这使得它非常适合扫描照片和艺术品。

它们真的能够工作吗?

所有的这些软件在大多数时候都能够在各种硬件上运行良好。我将它们与我过去几年来拥有的多台多功能打印机一起使用 —— 无论是使用 USB 线连接还是通过无线连接。

你可能已经注意到我在前一段中写过“大多数时候运行良好”。这是因为我确实遇到过一个例外:一个便宜的 canon 多功能打印机。我使用的软件都没有检测到它。最后我不得不下载并安装 canon 的 Linux 扫描仪软件才使它工作。

你最喜欢的 Linux 开源扫描工具是什么?发表评论,分享你的选择。


via: https://opensource.com/article/18/9/linux-scanner-tools

作者:Scott Nesbitt 选题:lujun9972 译者:way-ww 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

SPARTA 是使用 Python 开发的 GUI 应用程序,它是 Kali Linux 内置的网络渗透测试工具。它简化了扫描和枚举阶段,并更快速的得到结果。

SPARTA GUI 工具套件最擅长的事情是扫描和发现目标端口和运行的服务。

此外,作为枚举阶段的一部分功能,它提供对开放端口和服务的暴力攻击。

延伸阅读:网络渗透检查清单

安装

请从 GitHub 上克隆最新版本的 SPARTA:

git clone https://github.com/secforce/sparta.git

或者,从 这里 下载最新版本的 Zip 文件。

cd /usr/share/
git clone https://github.com/secforce/sparta.git

sparta 文件放到 /usr/bin/ 目录下并赋于可运行权限。

在任意终端中输入 'sparta' 来启动应用程序。

网络渗透测试的范围

添加一个目标主机或者目标主机的列表到测试范围中,来发现一个组织的网络基础设备在安全方面的薄弱环节。

选择菜单条 - “File” -> “Add host(s) to scope”

Network Penetration Testing

Network Penetration Testing

上图展示了在扫描范围中添加 IP 地址。根据你网络的具体情况,你可以添加一个 IP 地址的范围去扫描。 扫描范围添加之后,Nmap 将开始扫描,并很快得到结果,扫描阶段结束。

打开的端口及服务

Nmap 扫描结果提供了目标上开放的端口和服务。

Network Penetration Testing

上图展示了扫描发现的目标操作系统、开发的端口和服务。

在开放端口上实施暴力攻击

我们来通过 445 端口的服务器消息块(SMB)协议来暴力获取用户列表和它们的有效密码。

Network Penetration Testing

右键并选择 “Send to Brute” 选项。也可以选择发现的目标上的开放端口和服务。

浏览和在用户名密码框中添加字典文件。

Network Penetration Testing

点击 “Run” 去启动对目标的暴力攻击。上图展示了对目标 IP 地址进行的暴力攻击取得成功,找到了有效的密码。

在 Windows 中失败的登陆尝试总是被记录到事件日志中。

密码每 15 到 30 天改变一次的策略是非常好的一个实践经验。

强烈建议使用强密码策略。密码锁定策略是阻止这种暴力攻击的最佳方法之一( 5 次失败的登录尝试之后将锁定帐户)。

将关键业务资产整合到 SIEM( 安全冲突 & 事件管理)中将尽可能快地检测到这类攻击行为。

SPARTA 对渗透测试的扫描和枚举阶段来说是一个非常省时的 GUI 工具套件。SPARTA 可以扫描和暴力破解各种协议。它有许多的功能!祝你测试顺利!


via: https://gbhackers.com/sparta-network-penetration-testing-gui-toolkit/

作者:Balaganesh 译者:qhwdw 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

有时,能够知道一个网络里的机器的操作系统(OS)是有一定好处的。当你知道一台机器的操作系统后,因为你可以在网上搜索专门针对该系统的安全漏洞,所以入侵系统也会更加容易。当然,安全漏洞通常都会很快被修补,但安全漏洞存在时你需要知道。

对你自己的网络进行扫描以便发现操作系统类型可以帮助你了解黑客将如何侵入你的网络。

操作系统探测数据库

NAMP 带有一个数据库,它在你安装 NAMP 的时候就会被安装。这个数据库用于操作系统的探测,但是它不会自动更新。

这个数据库位于 /usr/share/nmap/nmap-os-db。进行更新的最简单方式是首先找到数据库的版本号,用文本编辑器打开这个文件,版本号通常位于第二行。我的数据库的第二行是 # $Id: nmap-os-db 35407 2015-11-10 04:26:26Z dmiller $,即这个文件的数据库版本是 35407。

要在网上查找一个可更新版本,可以浏览 https://svn.nmap.org/nmap ,如图 1 所示:

Figure 01.jpg

图 1

你可以从图中看到版本号为 36736,与我的系统上的版本号相比,这个版本号似乎是一个更新的版本。为了对更新的操作系统进行准确的操作系统探测,当然需要对这个数据库进行更新。

保留较旧的数据库版本也是一个不错的主意。我当前和版本是 35407,我将在终端执行下面的命令:

sudo mv /usr/share/nmap/nmap-os-db /usr/share/nmap/nmap-os-db-35407

这个数据库被以包含版本号的方式重命名了,下一步就是从网站上下载新版本的数据库,在终端执行下面命令:

cd /usr/share/nmap
sudo su
wget https://svn.nmap.org/nmap/nmap-os-db

新的数据库即将开始被下载,但是你应该加上版本号,就像你在图 1 中看到的版本号 36736。使用文本编辑器打开这个数据库,然后在第二行加上版本号。当版本号变化后,你可以更新你的数据库,然后在其中加入版本号,以便在再次检查更新时做好准备。

系统探测过程

在我们开始使用实际的命令并执行系统探测之前,我们应该详细介绍扫描过程中将会发生的事情。

会执行五种不同的测试,每种测试由一个或者多个数据包组成,目标系统对每个数据包作出的响应有助于确定操作系统的类型。

五种不同的测试是:

  1. 序列生成 Sequence Generation
  2. ICMP 回显
  3. TCP 显式拥塞通知 Explicit Congestion Notification
  4. TCP
  5. UDP

现在让我们分别看看他们各自在做什么。

序列生成

序列生成测试由六个数据包组成,这六个包是每隔 100 毫秒分开发送的,且都是 TCP SYN 包。

每个 TCP SYN 包的结果将有助于 NMAP 确定操作系统的类型。

ICMP 回显

两个有着不同设置的 ICMP 请求包被送到目标系统,由此产生的反应将有助于实现验证操作系统类型。

TCP 显式拥塞通知 Explicit Congestion Notification

当生成许多包通过路由器时会导致其负载变大,这称之为拥塞。其结果就是系统会变慢以降低拥堵,以便路由器不会发生丢包。

这个包仅为了得到目标系统的响应而发送。因为不同的操作系统以不同的方式处理这个包,所以返回的特定值可以用来判断操作系统。

TCP

在这个测试中会发送六个数据包。

一些带有特定的包设置的包被发送用来到打开的或关闭的端口。结果也将会因为操作系统的不同而不同。

所有 TCP 包都是以如下不同的标志被发送:

  1. 无标志
  2. SYN、FIN、URG 和 PSH
  3. ACK
  4. SYN
  5. ACK
  6. FIN、PSH 和 URG

UDP

这个测试由一个被发送给一个关闭的端口的数据包组成。

如果目标系统上的这个端口是关闭的,而且返回一条 ICMP 端口不可达的信息,那么就说明没有防火墙。

NMAP 操作系统检测命令

现在我们开始实际动手进行系统探测。如果你已经读过一些我写的关于 NMAP 的文章,那么最好不要执行 PING 操作。为了跳过 PING,我们使用参数 Pn。为了看到详细的信息,你应该使用 -v 参数用于动态显示。为了获取系统的信息,需要使用 -O 参数。

为了使命令顺利运行和执行 TCP SYN 扫描,你需要以管理员的身份来执行这个命令。在我的例子中,我将只在一个系统上而不是整个网络上进行扫描,使用的命令是:

sudo nmap -v -Pn -O 192.168.0.63

扫描的结果如图2所示,扫描显示七个开放的端口。

Figure 02.jpg

图 2

开放的端口是:

  1. 21/tcp ftp
  2. 22/tcp ssh
  3. 111/tcp rpcbind
  4. 139/tcp netbios-ssn
  5. 445/tcp microsoft-ds
  6. 2049/tcp nfs
  7. 54045/tcp unknown

系统的 MAC 地址为为:00:1E:4F:9F:DF:7F

后面部分显示系统类型为:

Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.6
Uptime guess: 0.324 days (since Sun Apr 23 08:43:32 2017)

系统当前运行的是 Ubuntu Server 16.04,Linux 内核为 4.8,运行时间猜的较准确。

我在另一个系统了又进行了一次测试,结果如图3所示:

Figure 03.jpg

图 3

这次扫描中开放的端口与上次不同。所猜的系统为 ‘Microsoft Windows 2000|XP’,实际上是 Windows XP sp3。

端口嗅探结果

让我们来看看图 2 所示的第一次扫描中在后台发生了什么。

首先 NMAP 执行一次 TCP 隐秘扫描,在本次系统探测实例中以一个如图 4 所示的数据包 2032 开始。

Figure 04.jpg

图 4

序列生成 Sequence Generation 开始于数据包 2032/2033,第六个数据包是 2047/2048。注意每个都被发送两次,且每隔 100ms 发送下一个数据包。

发送的 ICMP 数据包是 2050 - 2053,2 个数据包重复一遍,实际上是 4 个数据包。

2056-2057 是 TCP 显式拥塞通知数据包。

对 TCP 的 6 个测试是 2059、2060、2061、2063、2065、2067。

最后的 UDP 测试是 2073。

这些就是用于确定目标系统上操作系统的类型的测试。

我希望这将有助于你理解如何更新 NMAP 系统探测数据库和执行对系统的扫描。请注意,你可以和你不在同一个网络中的系统进行扫描,所以可以对互联网上的任何系统进行扫描。


via: https://www.linux.org/threads/nmap-os-detection.4564/

作者:Jarret B 译者:zhousiyu325 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在我们之前的 NMAP 安装一文中,列出了 10 种不同的 ZeNMAP 扫描模式,大多数的模式使用了不同的参数。各种不同参数代表执行不同的扫描模式。之前我们介绍过两种扫描类型 PING 扫描 和 UDP 扫描,这篇文章将介绍最后剩下的两种常用扫描类型。

四种通用扫描类型

下面列出了最常用的四种扫描类型:

  1. PING 扫描(-sP
  2. TCP SYN 扫描(-sS
  3. TCP Connect() 扫描(-sT
  4. UDP 扫描(-sU

当我们利用 NMAP 来执行扫描的时候,这四种扫描类型是我们需要熟练掌握的。更重要的是需要知道这些命令做了什么,并且需要知道这些命令是怎么做的。在这篇文章中将介绍两种 TCP 扫描 — TCP SYN 扫描和 TCP Connect() 扫描。

TCP SYN 扫描 (-sS)

TCP SYN 扫描是默认的 NMAP 扫描方式。为了运行 TCP SYN 扫描,你需要有 Root 权限。

TCP SYN 扫描的目的是找到被扫描系统上的已开启端口。使用 NMAP 扫描可以扫描在防火墙另一侧的系统。当扫描通过防火墙时,扫描时间会延长,因为数据包会变慢。

TCP SYN 扫描的工作方式是启动一个“三次握手”。正如在另一篇文章中所述,“三次握手”发生在两个系统之间。首先,源系统发送一个包到目标系统,这是一个同步(SYN)请求。然后,目标系统将通过同步/应答(SYN/ACK)响应。接下来,源系统将通过应答(ACK)来响应,从而建立起一个通信连接,然后,可以在两个系统之间传输数据。

TCP SYN 扫描通过执行下面的步骤来进行工作:

  1. 源系统向目标系统发送一个同步请求,该请求中包含一个端口号。
  2. 如果添加在上一步中的所请求的端口号是开启的,那么目标系统将通过同步/应答(SYN/ACK)来响应源系统。
  3. 源系统通过重置(RST)来响应目标系统,从而断开连接。
  4. 目标系统可以通过重置/应答(RST/ACK)来响应源系统。

这种连接已经开始建立,所以这被认为是半开放连接。因为连接状态是由 NMAP 来管理的,所以你需要有 Root 权限。

如果被扫描的端口是关闭的,那么将执行下面的步骤:

  1. 源系统发送一个同步(SYN)请求到目标系统,该请求中包含一个端口号。
  2. 目标系统通过重置(RST)响应源系统,因为该端口是关闭的。

如果目标系统处于防火墙之后,那么 ICMP 传输或响应会被防火墙禁止,此时,会执行下面的步骤:

  1. 源系统发送一个同步(SYN)请求到目标系统,该请求中包含一个端口号。
  2. 没有任何响应,因为请求被防火墙过滤了。

在这种情况下,端口可能是被过滤、或者可能打开、或者可能没打开。防火墙可以设置禁止指定端口所有包的传出。防火墙可以禁止所有传入某个指定端口的包,因此目标系统不会接收到请求。

注:无响应可能发生在一个启用了防火墙的系统上。即使在本地网络,你也可能会发现被过滤的端口。

我将向 图片1那样执行对单一系统(10.0.0.2)的 TCP SYN 扫描。使用命令 sudo nmap -sS <IP 地址> 来执行扫描。<IP 地址>可以改为一个单一 IP 地址,像图片1那样,也可以使用一组 IP 地址。

Figure 01.jpg

图片1

你可以看到它表明 997 个被过滤端口没有显示在下面。NMAP 找到两个开启的端口:139 和 445 。

注:请记住,NMAP 只会扫描绝大多数熟知的 1000 多个端口。以后,我们会介绍可以扫描所有端口或者指定端口的其它扫描。

该扫描会被 WireShark 俘获,正如图片2所展示的那样。在这儿,你可以看到对目标系统的初始地址解析协议(ARP)请求。在 ARP 请求下面的是一长列到达目标系统端口的 TCP 请求。第 4 行是到达 http-alt 端口(8080)。源系统的端口号为 47128 。正如图片3 展示的,许多 SYN 请求只有在做出响应以后才会发送。

Figure 2.jpg

图片2

Figure 3.jpg

图片3

在图片3的第 50 行和第 51 行,你可以看到,重置(RST)包被发送给了目标系统。第 53 行和第 55 行显示目标系统的 RST/ACK(重置/应答)。第 50 行是针对 ‘microsoft-ds’ 端口(445),第 51 行是针对 ‘netbios-ssn’ 端口(135),我们可以看到,这两个端口都是打开的。(LCTT 译注:在 50 行和 51 行之前,目标系统发回了 SYN/ACK 响应,表示端口打开。)除了这些端口,没有其他 ACK(应答)是来自目标系统的。每一个请求均可发送超过 1000 次。

正如图片4所展示的,目标系统是 Windows 系统,我关闭了系统防火墙,然后再次执行扫描。现在,我们看到了 997 个已关闭端口不是 997 个被过滤端口。目标系统上的 135 端口之前被防火墙禁止了,现在也是开启的。

Figure 04.jpg

图片4

TCP Connect() 扫描 (-sT)

尽管 TCP SYN 扫描需要 Root 权限,但 TCP Connect() 扫描并不需要。在这种扫描中会执行一个完整的“三次握手”。因为不需要 Root 权限,所以在无法获取 Root 权限的网络上,这种扫描非常有用。

TCP Connect() 扫描的工作方式也是执行“三次握手”。正如上面描述过的,“三次握手”发生在两个系统之间。源系统发送一个同步(SYN)请求到目标系统。然后,目标系统将通过同步/应答(SYN/ACK)来响应。最后,源系统通过应答(ACK)来响应,从而建立起连接,然后便可在两个系统之间传输数据。

TCP Connect 扫描通过执行下面的步骤来工作:

  1. 源系统发送一个同步(SYN)请求到目标系统,该请求中包含一个端口号。
  2. 如果上一步所请求的端口是开启的,那么目标系统将通过同步/应答(SYN/ACK)来响应源系统。
  3. 源系统通过应答(ACK)来响应目标系统从而完成会话创建。
  4. 然后,源系统向目标系统发送一个重置(RST)包来关闭会话。
  5. 目标系统可以通过同步/应答(SYN/ACK)来响应源系统。

若步骤 2 执行了,那么源系统就知道在步骤 1 中的指定端口是开启的。

如果端口是关闭的,那么会发生和 TCP SYN 扫描相同的事。在步骤 2 中,目标系统将会通过一个重置(RST)包来响应源系统。

可以使用命令 nmap -sT <IP 地址> 来执行扫描。<IP 地址>可以改为一个单一 IP 地址,像图片5那样,或者使用一组 IP 地址。

TCP Connect() 扫描的结果可以在图片5中看到。在这儿,你可以看到,有两个已开启端口:139 和 445,这和 TCP SYN 扫描的发现一样。端口 80 是关闭的。剩下没有显示的端口是被过滤了的。

Figure 05.jpg

图片5

让我们关闭防火墙以后再重新扫描一次,扫描结果展示在图片6中。

Figure 06.jpg

图片6

关闭防火墙以后,我们可以看到,更多的端口被发现了。就和 TCP SYN 扫描一样,关闭防火墙以后,发现 139 端口和 445 端口是开启的。我们还发现,端口 2869 也是开启的。也发现有 996 个端口是关闭的。现在,端口 80 是 996 个已关闭端口的一部分 — 不再被防火墙过滤。

在一些情况下, TCP Connect() 扫描可以在一个更短的时间内完成。和 TCP SYN 扫描相比,TCP Connect() 扫描也可以找到更多的已开启端口


via: https://www.linuxforum.com/threads/nmap-common-scans-part-two.3879/

作者:Jarret 译者:ucasFL 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出