首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >在网络端口扫描期间寻找速度和准确度之间的平衡点

在网络端口扫描期间寻找速度和准确度之间的平衡点

作者头像
FB客服
发布于 2019-08-30 06:47:04
发布于 2019-08-30 06:47:04
1.8K00
代码可运行
举报
文章被收录于专栏:FreeBufFreeBuf
运行总次数:0
代码可运行

介绍

侦察是每个bug bounty或渗透测试中最为重要的阶段之一。侦察工作做得到不到位,可能会对最终的结果产生直接影响。侦察可以分为两类:即主动和被动侦察。在主动侦察中端口扫描是最常用的方法之一。通过端口扫描渗透测试人员或漏洞猎人可以确定在目标主机或网络上打开的端口,以及识别在这些端口上运行的服务。

然而,有个问题就是如何在网络端口扫描期间寻找速度和准确度之间的平衡点?在渗透测试期间,他们的时间非常有限,往往需要在规定的时间内完成测试任务;而在bug bounty中,总会有人和你抢着发现并提交bug。这些原因也迫使我们在端口扫描期间优先考虑其速度而非准确性。这样做的缺点也显而易见,那就是不准确。并可能因此让我们错过某些重要的端口,并导致最终结果的改写。

这项研究的目的旨在使用开源和知名工具进行网络端口扫描时,找到速度和精准度之间的平衡点。

端口扫描概述

端口扫描是侦察阶段最常用的技术之一。通过扫描渗透测试人员或漏洞猎人可以快速识别主机上可用的开放端口,以及在这些开放端口上运行的服务。

端口扫描器可以根据其工作方式进行分类:面向连接(同步模式)和无连接(异步模式)扫描器。

面向连接(同步模式)

这种类型的扫描器会向目标端口发送一个请求并等待其响应,直至到达超时时间为止。这种类型的扫描器的缺点是其性能较慢,因为扫描器在当前连接关闭之前不会进入下一个目标端口或IP。

面向连接的扫描器的好处在于具有较高的准确性,因为它们可以识别丢弃的数据包。

面向连接的扫描器最典型的例子就是Nmap。

无连接(异步模式)

无连接扫描器不依赖于当前被探测端口的完成来启动下一个端口,因为它们具有单独的发送和接收线程。这允许他们进行高速的扫描。但这些扫描器的缺点就是不太准确,因为它们无法检测丢弃的数据包。

Masscan和Zmap是两款最流行的无连接扫描器。

Nmap vs Masscan

这项研究只包括Nmap和Masscan。虽然Zmap产生了良好的结果且速度也非常的快,但它一次只能扫描一个端口。根据经验,即使多个作业同时运行,Zmap扫描仍然很慢。

尽管Nmap和Masscan都拥有良好的性能,功能和结果,但它们仍有其自身的弱点。下表显示了这两种工具的优点和缺点。

优点

Nmap 两者之间更准确(使用同步模式) 有较多功能 接受域名和IP地址(IPv4和IPv6) Masscan 非常快(使用异步模式) 语法与Nmap非常相似

缺点

Nmap 扫描数量较大的目标时速度很慢 Masscan 高速率的扫描较大端口范围时结果不太准确 不接受域名作为目标输入 不会根据环境自动调整传输速率

研究思路

基于上述工具的优缺点,在试图找到速度和准确度之间的平衡时,我大致确定了以下解决方案和问题。

解决方案

以下是基于PROS的解决方案:

1.将Nmap的准确性及其功能与Masscan的速度相结合。 2.使用Masscan执行初始端口扫描,以识别打开的端口和具有打开端口的主机。 3.使用Masscan的结果(已识别的开放端口和主机)作为Nmap的输入以进行详细的端口扫描。

问题

虽然上面列出的想法很好,但我们仍然需要解决每个工具存在的缺点。具体来说,我们需要解决:

1.Nmap在扫描数量较大的目标时性能缓慢。 2.Masscan在高速率的扫描较大端口范围时结果不太准确[2]。

研究设置

目标网络

我选择了以下子网作为本研究的目标网络:

Targets

Subnets

A

A.A.0.0/16

B

B.B.0.0/16

C

C.C.0.0/16

D

D.D.0.0/16

扫描机器

由于预算有限,研究期间我仅使用了一台机器作为扫描机器。我使用的扫描机器是DigitalOcean 20美元的VPS,具有4GB RAM,2个vCPU和4TB的月带宽。在整个研究过程中,该机器仅使用了1个位于固定位置的IP地址。

测试用例

对于这项研究,两种工具都有自己的测试用例,这些测试用例是每种工具中可用的不同选项的变体。这些测试用例旨在解决工具存在的缺点,并利用它们的优点来找到速度和准确性之间的平衡点。

Masscan:

1.以不同速率常规扫描所有TCP端口。 2.将/16目标子网拆分为/20块,并运行X个并发Masscan作业,每个作业的速率为Y。 3.将1-65535端口范围拆分为多个范围,并运行X个并发Masscan作业,每个作业的速率为Y。

Nmap:

1.常规扫描所有TCP端口。 2.使用X个并发作业扫描所有TCP端口。 3.扫描Masscan识别的开放端口和主机的组合列表。 4.扫描Masscan识别的特定主机上的特定开放端口。

在有限的时间内,不可能涵盖选项的每一个变化/组合,因此仅涵盖上述内容。

对于使用并发作业的测试用例,使用了GNU Parallel。如果你是这个工具的新手,请查看此处的详细教程。

范围和限制

研究所使用的相关版本为:Nmap v7.70和Masscan v1.0.5-51-g6c15edc。

该研究仅涉及IPv4地址。

不包括扫描UDP端口。

只使用了最流行的开源工具。(Zmap未包括在内,因为它一次只扫描一个端口;即使运行多个作业,扫描速度也非常的慢。)

只探测了4个目标网络,它们都为/16。

端口扫描仅来自一台机器,其中一个IP地址位于固定位置。

由于扫描机器不支持PF_RING,因此Masscan速率限制为250kpps。

并非所有测试用例组合都是由于资源有限而进行的(这样做非常耗时)。

Masscan 测试用例和结果

以下部分将详细介绍使用Masscan执行的不同测试用例及其结果。

测试用例#1:使用不同的速率常规扫描所有的TCP端口

这个测试用例没有什么特别之处。只是使用Masscan的正常扫描,但速率不同。

以下命令用于启动此测试用例的扫描:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
masscan -p 1-65535 --rate RATE--wait 0 --open TARGET_SUBNET -oG TARGET_SUBNET.gnmap

使用速率:

1M 100K 50K

在实验过程中,我的VPS可以运行的最大速率仅为250kpps左右。这是因为扫描机不支持PF_RING的原因。

图表:

观察:

较慢的速率会发现更多的开放端口,但代价是扫描会花费更多的时间。

测试用例#2:将/16目标子网拆分为/20块,并运行X个并发Masscan作业,每个作业的速率为Y

为了能够运行并发作业,我决定将/16目标子网拆分为更小的子网。你可以将它们拆分为其他较小的子网,例如/24,而对于本研究我将其拆分为了/20。

要将目标网络拆分为较小的子网,可以使用以下python代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/usr/bin/python3
import ipaddress, sys
target = sys.argv[1]
prefix = int(sys.argv[2])
for subnet in ipaddress.ip_network(target).subnets(new_prefix=prefix):
    print(subnet)

运行结果如下:

每项工作所用的速率都是基于扫描机能够处理的最大化速率。在我的例子中,我的扫描机只能处理250kps,所以如果我要运行5个并发作业,每个作业都可以使用50kps的速率。

由于机器的最大速率不是“绝对的”(在这种情况下不完全是250kpps),你可以设置每个作业的速率,使总速率等于最大速率的80-90%。

对于这个测试用例,执行了下面的命令。split.py输出的较小子网被parallel用作运行并发作业的输入。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python3 split.py TARGET_SUBNET 20 | parallel -j JOBS "masscan -p 1-65535 --rate RATE--wait 0 --open {} -oG {//}.gnmap"

上述命令执行如下。在这种情况下,20个Masscan作业同时运行,每个作业的速率为10Kpps。

使用速率和作业:

5 jobs each w/ 100k rate 5 jobs each w/ 50k rate 20 jobs each w/ 10k rate

注意:

我错误计算了第一个速率和作业的差异(5 jobs each w/ 100k rate),因为它的总速率为500kpps,而我的机器只能处理250kpps。尽管如此,结果仍然是有价值的,正如你将在以下图表中看到的。

其他组合,例如10 jobs each w/ 20k rate是可行的,但由于时间和预算有限,我无法涵盖所有可能的组合。

图表:

观察:

运行concurrents作业的速度比常规扫描(测试用例#1)快2-3倍,但结果导致扫描较少的开放端口。 使用扫描机的最大速率容量将导致扫描较少的开放端口(5 jobs each w/ 100k rate)。 较少的作业使用高速率(5 jobs each w/ 50k rate),比较多作业使用低速率(20 jobs each w/ 10k rate)要好。

测试用例#3:将1-65535端口范围拆分为多个小范围,并运行x个并发Masscan作业,每个作业的速率为Y

第3个测试用例尝试解决Masscan在扫描大端口范围时的问题,尤其是针对整个1-65535端口范围的扫描。我的解决方案是将1-65535端口范围,拆分为多个小范围。

就像之前的测试用例一样,设置每个作业的速率,使总速率等于最大速率的80-90%。

以下命令用于此测试用例。PORT_RANGES包含端口范围列表,它们被作为parallel输入使用用于并发任务。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat PORT_RANGES | parallel -j JOBS "masscan -p {} --rate RATE --wait 0 --open TARGET_SUBNET -oG {}.gnmap"

1-65535端口范围的拆分有4种方式,如下所示,每个拆分包含作业和速率的组合/变化。

第一种拆分方式:5组端口范围

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1-13107
13108-26214
26215-39321
39322-52428
52429-65535

使用速率和作业:

5 jobs each w/ 50k rate 2 jobs each w/ 100k rate

图表:

第二种拆分方式:2组端口范围

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1-32767
32768-65535

使用速率和作业:

2 jobs each w/ 100k rate 2 jobs each w/ 125k rate

图表:

第三种拆分方式:8组端口范围

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1-8190
8191-16382
16383-24574
24575-32766
32767-40958
40959-49151
49152-57343
57344-65535

使用速率和作业:

4 jobs each w/ 50k rate 2 jobs each w/ 100k rate

图表:

第四种拆分方式:4组端口范围

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1-16383
16384-32767
32768-49151
49152-65535

使用速率和作业:

2 jobs each w/ 100k rate

我之所以这么做,是因为我意识到了我已经超出了每月的带宽限制。为此,我不得不多付了100美元。

图表:

观察:

以下列出的观察结果涵盖了上面提到的所有4个部分。 拆分端口范围会导致更多开放端口(这解决Masscan的问题)。 使用较少的并行作业(本例中为2个作业)会导致更多的开放端口。 在测试中5组端口范围的拆分方式结果最佳。

原始数据

下表显示了使用上述不同Masscan测试用例进行实验的原始数据。

Masscan 结论

根据Masscan测试用例的结果,得出以下结论:

以100%的CPU利用率运行扫描机会导致扫描较少的开放端口。 使用机器的最大速率容量会导致扫描较少的开放端口。 当使用parallel任务时,较少的作业会导致扫描更多的开放端口。 拆分端口范围比拆分目标子网要好。 4到5组的端口拆分方式,产生的结果最佳。

Nmap 测试用例和结果

此阶段只执行版本扫描,不包括使用Nmap的NSEs、OS guess及其他扫描功能。Nmap的线程被限制为T4相当于:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
--max-rtt-timeout=1250ms --min-rtt-timeout=100ms --initial-rtt-timeout=500ms --max-retries=6 --max-scan-delay=10ms

以下Nmap选项也用于模拟Masscan使用的选项。这些选项适用于所有Nmap测试用例。

使用的选项:

SYN scan (-sS) Version scan (-sV) Threads (-T4) Randomize target hosts order (--randomize-hosts) No ping (-Pn) No DNS resolution (-n)

测试用例#1:常规扫描所有TCP端口

该测试用例只是使用Nmap进行常规的扫描,因此并没有什么特别之处。

此测试用例的命令为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo nmap -sSV -p- -v --open -Pn -n --randomize-hosts -T4 TARGET_SUBNET -oA OUTPUT
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
观察:

扫描4.5天后,作业仍未完成。这是之前提到的缺点之一;当扫描大型目标网络时,Nmap非常的慢。 由于性能非常低,我决定取消这个测试用例。

测试用例#2:使用X个并发作业扫描所有TCP端口

在本例中,我试图通过运行并发的Nmap扫描来解决Nmap的低性能问题。这是通过将目标子网拆分成更小的块来完成的,就像我之前对Masscan所做的那样。同样,使用下面的python代码split.py来分割目标子网。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/usr/bin/python3
import ipaddress, sys
target = sys.argv[1]
prefix = int(sys.argv[2])
for subnet in ipaddress.ip_network(target).subnets(new_prefix=prefix):
    print(subnet)

此测试用例的命令如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python3 split.py TARGET_SUBNET 20 | parallel -j JOBS "sudo nmap -sSV -p- -v --open -Pn -n --randomize-hosts -T4 {} -oA {//}"

对于该测试用例,我决定运行两个并行作业实例,可以在下面找到。

使用5个并发作业:/16个目标子网拆分为/20个子网

观察:

同样非常的慢。2.8天后扫描仍未完成,所以我取消了扫描。

使用64个并发作业:/16目标子网拆分为/24个子网

观察:

五天过去了,扫描仍未完成,所以我也取消了它。

测试用例#3:扫描Masscan识别的开放端口和主机的组合列表

这个测试用例的思路是,首先获取主机列表和Masscan检测到的开放端口组合列表。这个开放端口的组合列表被用作基线(在下面的图表中显示为绿条),以确定下面的Nmap测试用例是否可以检测到更多或较少的开放端口。

例如,Masscan检测到300个开放端口,而常规Nmap扫描检测到320个开放端口。但当使用5个并发的Nmap扫描时,仅检测到了295个开放端口。这意味着常规Nmap扫描会是更好的选择。

使用以下命令从Masscan的输出中获取主机列表:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
grep "Host:" MASSCAN_OUTPUT.gnmap | cut -d " " -f2 | sort -V | uniq > HOSTS
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
下图显示了上述命令的运行情况。

以下命令用于获取Masscan检测到的所有开放端口的组合列表。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
grep "Ports:" MASSCAN_OUTPUT.gnmap | cut -d " " -f4 | cut -d "/" -f1 | sort -n | uniq | paste -sd, > OPEN_PORTS

下图显示了命令的运行情况。

以下命令用于运行常规的Nmap扫描。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo nmap -sSV -p OPEN_PORTS -v --open -Pn -n --randomize-hosts -T4 -iL HOSTS -oA OUTPUT

而下面的命令则用于运行并发的Nmap扫描。这将使用上面命令生成的主机列表和开放端口的组合列表。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat HOSTS | parallel -j JOBS "sudo nmap -sSV -p OPEN_PORTS -v --open -Pn -n --randomize-hosts -T4 {} -oA {}"
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
使用的作业:

0 (这是常规的Nmap扫描) 10 50 100

图表:

观察:

运行常规Nmap扫描时,CPU利用率仅为10%左右。 常规Nmap扫描发现了更多的开放端口,而并发Nmap扫描则发现的开放端口较少。 与基线(图表上的绿条)相比,在某些目标网络(子网A)上识别出更多的开放端口,而在其他目标网络(子网B和C)上检测到的开放端口较少,并且在某些网络( 子网D)上没有太大差异。

Nmap检测到的其他开放端口

先看下面的表格。例如,假设Masscan在每台主机上都检测到了以下的开放端口(第2列)。在运行Nmap扫描时,Masscan检测到的所有开放端口的组合将用作目标端口(第3列)。

在我们的示例中,Nmap在完成扫描后检测到新的开放端口(第4列中的粗体文本)。这是如何发生的?Masscan是一个异步扫描器,它可能错过了主机192.168.1.2和192.168.1.3上的22端口。由于我们合并了每个主机上所有检测到的开放端口,并将它们用作Nmap的目标端口,因此将再次探测错过的端口(22)。需要注意的是,无法保证Nmap能够将其检测为开放状态,因为还有其他可能影响扫描的因素。

主机

通过Masscan检测到的开放端口

Nmap扫描期间的目标端口

运行Nmap后检测到的开放端口

192.168.1.1

22,80,443

22,80,443,8080,8888

22,80,443

192.168.1.2

8080,8888

22,80,443,8080,8888

22,8080,888

192.168.1.3

80,443

22,80,443,8080,8888

22,80,443

测试用例#4:扫描Masscan识别的特定主机上的特定开放端口

这一个与前一个测试用例有点相似。在这里,我没有合并Masscan从每个主机检测到的所有打开的端口。无论Masscan在特定主机上检测到哪些开放端口,Nmap都将使用相同的端口。下表说明了为此测试用例执行的操作。

主机

通过Masscan检测到的开放端口

Nmap扫描期间的目标端口

192.168.1.1

22,80,443

22,80,443

192.168.1.2

8080,8888

8080,8888

192.168.1.3

80,443

80,443

以下命令用于获取主机列表。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat MASSCAN_OUTPUT.gnmap | grep Host | awk '{print $2,$5}' | sed 's@/.*@@' | sort -t' ' -n -k2 | awk -F' ' -v OFS=' ' '{x=$1;$1="";a[x]=a[x]","$0}END{for(x in a) print x,a[x]}' | sed 's/, /,/g' | sed 's/ ,/ /' | sort -V -k1 | cut -d " " -f1 > HOSTS

下图显示了命令的运行情况。

执行以下命令从各个主机获取开放端口的列表。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat MASSCAN_OUTPUT.gnmap | grep Host | awk '{print $2,$5}' | sed 's@/.*@@' | sort -t' ' -n -k2 | awk -F' ' -v OFS=' ' '{x=$1;$1="";a[x]=a[x]","$0}END{for(x in a) print x,a[x]}' | sed 's/, /,/g' | sed 's/ ,/ /' | sort -V -k1 | cut -d " " -f2 > OPEN_PORTS

下图显示了命令的运行情况。

可以看到,输出不同于测试用例3中使用的命令。我们没有组合所有开放的端口,而是创建了从各个主机找到的所有开放端口的列表。

然后,这两个列表被用作输入到parallel,使用::::选项,以同时运行Nmap扫描。

同样,如果你对GNU Parallel并不熟悉,可以查看此处的教程。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
parallel -j JOBS --link "sudo nmap -sSV -p {2} -v --open -Pn -n -T4 {1} -oA {1}" :::: HOSTS :::: OPEN_PORTS
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
这是一个基于以上两图,当上述parallel命令被执行启动同步扫描时会发生的情况的示例。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo nmap -sSV -p 443 -v --open -Pn -n -T4 192.168.1.2 -oA 192.168.1.2
sudo nmap -sSV -p 80,443,1935,9443 -v --open -Pn -n -T4 192.168.1.5 -oA 192.168.1.5
sudo nmap -sSV -p 80 -v --open -Pn -n -T4 192.168.1.6 -oA 192.168.1.6
sudo nmap -sSV -p 80,443 -v --open -Pn -n -T4 192.168.1.7 -oA 192.168.1.7
sudo nmap -sSV -p 08,443 -v --open -Pn -n -T4 192.168.1.9 -oA 192.168.1.9

下图显示了执行测试用例时所发生的情况的一个片段。如下所示,10个并发的Nmap扫描正在使用parallel运行。

使用的作业:

10 50 100

图表:

观察:

更多的并发作业和以100%的CPU利用率运行机器会导致较少的开放端口检测。 10到50个并发的Nmap扫描没有太大的区别,所以建议运行50个并发作业来缩短扫描时间。 此测试用例略快于测试用例3,但检测到的开放端口较少。

原始数据

下表显示了使用上述不同Nmap测试用例进行实验的原始数据。

Nmap 结论

根据Nmap测试用例的结果,得出以下结论:

使用Masscan(测试用例#3)识别的组合开放端口运行Nmap扫描可获得最佳结果。这也是推荐的方法,因为有可能发现额外的开放端口。 以100%的CPU利用率运行扫描机会导致扫描较少的开放端口。 使用parallel任务时,较少的作业会导致扫描更多的开放端口。

研究总结

推荐方法

根据对Masscan和Nmap进行的测试用例的结果,建议在网络范围的端口扫描期间采用以下方法实现速度与准确度之间的平衡:

1.首先运行2个或3个并发Masscan作业,所有65535个端口分为4-5组范围。 2.从Masscan的输出中获取主机列表和开放端口组合列表。 3.使用这些列表作为Nmap的输入并执行常规Nmap扫描。

注意事项

对于这两种工具,应避免以下行为导致的较少开放端口检测: 扫描时应避免CPU过载。 不要使用扫描机的最大速率容量。 避免运行太多的并发任务。

总结

虽然这项研究提供了一种如何在网络端口扫描期间寻找速度和准确度平衡的方法,但大家不应将此视为100%可靠。由于我个人的时间和预算有限,研究期间排除了诸多因素。最值得注意的是,在整个研究期间我仅使用了一个IP地址,显然这并不是一个严谨的设置。由于我对相同的目标网络执行了多次扫描,因此扫描机的IP地址可能会以某种形式被列入黑名单,这可能会对开放端口的检测数量带来影响。

相关文章

https://capt-meelo.github.io//pentest/2019/01/16/offsec-certs.html https://capt-meelo.github.io//pentest/2018/08/03/pwning-with-telerik.html https://capt-meelo.github.io//pentest/2018/06/26/patching-doublepulsar.html

* 参考来源:secist,FB小编secist编译,转载请注明来自FreeBuf.COM

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
2 条评论
热度
最新
推荐一个,aigcget.com 很不错,有最新最实用ai应用网址导航,以及最热文章资讯
推荐一个,aigcget.com 很不错,有最新最实用ai应用网址导航,以及最热文章资讯
回复回复点赞举报
AI前沿资讯 https://ai.seoml.com
AI前沿资讯 https://ai.seoml.com
回复回复点赞举报
推荐阅读
人工智能时代,软件工程师们将会被取代?
几年前,天猫精灵、小度等智能助手不断出现,当时作为一个程序员来说,觉得这些所谓的人工智能不过如此,不足为惧。 然而随着 2022年 11月 30 日由 OpenAI 研发的 ChatGPT 发布,一切都变了。从 GPT -3 到 GPT 3.5 到 GPT 4 ,很多方面已经超过很多专业人士,功能越发强大, 基于 GPT 研发的工具不断涌现。
明明如月学长
2023/03/20
2.1K0
人工智能时代,软件工程师们将会被取代?
13个优秀的AI人工智能工具软件导航网站推荐
人工智能(AI)是现在科技领域的热门话题,它不仅改变了我们的生活方式,也催生了许多创新的工具和应用。AI工具可以帮助我们完成各种任务,如绘画、编程、视频制作、语音合成等,让我们的工作和娱乐更加高效和有趣。
网络探索者
2023/04/01
5.9K0
13个优秀的AI人工智能工具软件导航网站推荐
人工智能赋能的编码未来近在眼前
科技公司,包括 OpenAI,正在开发新一代 AI 助手,它们不仅可以编写代码,还可以调试、组织和评论代码。
云云众生s
2024/07/20
1020
史上最牛叉的AI导航网站
最近很火的chatGPT就是出自这个公司之手,是开源的产品,这个东西需要大量的数据及算力支持,只在部分地区可以使用,当然大家也可以使用一些衍生产品使用这个对话工具。下面简单介绍一些AI导航网站,chatGPT只是导航网站收录的一个网址之一。这些网址基本都是英文,如果大家不方便使用,建议使用谷歌浏览器自带的翻译功能。
孙叫兽
2023/03/08
3.6K3
史上最牛叉的AI导航网站
什么?作为程序员你还不知道人工智能搜索引擎?
【号外】学长主导的新星计划2023【AI 助力软件开发】学习方向,旨在引导大家学习 AI 工具的使用、学习如何写出高质量的技术文章。引导学员借助 AI 工具更好地学习,更快地解决问题。火热报名中,感兴趣快来报名吧!
明明如月学长
2023/04/04
1.5K0
什么?作为程序员你还不知道人工智能搜索引擎?
Man Group | 资产管理中的人工智能
革命性的电灯花了四十年的时间才实现完全普及。要开启人工智能应用的时代需要什么?我们什么时候才能实现这一目标?我们来看看人工智能革命在资产管理领域将发挥怎样的作用。
量化投资与机器学习微信公众号
2024/07/26
1740
Man Group | 资产管理中的人工智能
什么? 你还没用过 Cursor? 智能 AI 代码生成工具 Cursor 安装和使用介绍
Cursor.so 是一个集成了 GPT-4 的国内直接可以访问的,优秀而强大的免费代码生成器,可以帮助你快速编写、编辑和讨论代码。 它支持多种编程语言,如 Python, Java, C#, JavaScript 等,并且可以根据你的输入和需求自动生成代码片段。 Cursor.so 还可以帮助你重构、理解和优化代码,提高开发效率。
明明如月学长
2023/03/20
106.1K1
什么? 你还没用过 Cursor? 智能 AI 代码生成工具 Cursor 安装和使用介绍
AI 时代的学习方式: 和文档对话
随着 ChatGPT 的出现,基于 GPT 的各种工具以及相似的大模型工具如雨后春笋一样不断涌现。 可以说,我们正处在人工智能爆发期,人工智能的应用正在对人们的生活、工作方方面面都在产生重大影响。 有些人面对这种场景非常焦虑,担心自己会被取代而失业,其实“不是人工智能淘汰人,而是会使用人工智能的人淘汰了不会使用的人”,现在如果还对人工智能排斥或者还不积极学习的人很容易被淘汰。
明明如月学长
2023/04/06
1.9K0
AI 时代的学习方式: 和文档对话
危!ChatGPT一出,这10大职业可能先丢饭碗
---- 新智元报道   编辑:David 【新智元导读】ChatGPT一出,很多人害怕自己的工作会被AI取代。最近,有外媒盘点了最可能被ChatGPT取代10大高危职位。 自从去年11月发布以来,OpenAI的ChatGPT已经被用来写求职信,创作儿童读物,甚至帮助学生作弊。 聊天机器人可能比我们想象的还要强大。谷歌发现,从理论上讲,如果该机器人在公司面试,搜索引擎会雇用它作为入门级的编码员。 测试ChatGPT的亚马逊员工说,它在回答客户支持问题方面做得「非常好」,在制作培训文件方面「很棒」,在
新智元
2023/02/24
3470
危!ChatGPT一出,这10大职业可能先丢饭碗
程序员不能不知道的13个AI开发工具
随着人工智能的进步,开发行业已经发展到了新的水平。 目前,人工智能工具在开发者中很受欢迎,因为它正在迅速重塑开发行业。
从大数据到人工智能
2023/10/18
5.6K0
程序员不能不知道的13个AI开发工具
ChatGPT可能马上取代你!这是它能做的十个工作
ChatGPT 的横空出世,在业界掀起了惊涛骇浪。专家表示,ChatGPT 和相关人工智能技术可能会威胁到一些工作岗位,尤其是白领工作。
Python编程与实战
2023/03/08
2920
ChatGPT可能马上取代你!这是它能做的十个工作
AI 时代,提示词便是生产力
2023 年可谓是 AI 元年,随着 GPT 的发布,人工智能正在影响着人们的生活。甚至有些人会焦虑是否自己将会被取代而失业。 据 36 氪,如何看待 AI 代替人类工作? 李彦宏表示,不管有多少工作被替代,这只是整个图景的一部分,另外一部分是,存在我们现在甚至无法想象的更多新机会。做一个大胆预测,十年以后,全世界有50%工作会是提示词工程(prompt engineering),不会写提示词(prompt)的人会被淘汰。
明明如月学长
2023/04/06
9630
AI 时代,提示词便是生产力
AIAGC导航(aiagc.com): 最全的AI工具导航网站
AIAGC导航是一个专注于AI人工智能工具网站推荐的导航网站,可以帮助大家发现最新、最好用、最有趣的AI绘画、AI智能写作助手、AI聊天机器人、AI配音、AI音乐、AI换脸等各种AI工具应用软件,让AI帮助你更高效的工作、学习和娱乐。
网络探索者
2023/04/19
2.2K0
AIAGC导航(aiagc.com): 最全的AI工具导航网站
直击RSAC现场:人工智能工具成为今年最热门话题
今年在旧金山举行的RSAC大会上有一个热门话题:人工智能工具。生成式人工智能在网络安全工具中的潜力引发了网络安全专业人士的兴趣。但是人们对人工智能在网络安全中的实际应用,以及用于建立人工智能模型的数据的可靠性提出了质疑。 网络安全战略顾问、GoogleCloud和Cyversity的董事会成员M.K. Palmore在采访中表示:我们目前正处于与人工智能交手的第一局,我们还不知道人工智能对网络安全行业的影响会有多大,也不知道我们最终能看到什么结果。但我们心存希望,整个公司目前也正朝着一个方向努力,这也表明我
FB客服
2023/05/12
2470
直击RSAC现场:人工智能工具成为今年最热门话题
这六种职业将因人工智能而快速崛起
市场担心人工智能(AI)技术将导致许多人失业,但AI实际上也会带动不少新工作和服务。市场研究业者高德纳公司(Gartner)预测,到2020年,AI将会创造230万个工作,此数量远远超过可能因自动化技术而遭到淘汰的工作数量。 尽管人们普遍担心人工智能自动化会导致全球各行各业大规模裁员,但技术将带来大量的新工作和服务。与社交媒体、数字出版和电子商务创造的职位冲击相似,人工智能革命已经激发了新职业的诞生。 据Gartner报告,到2020年,人工智能将创造230万个工作岗位。这个数字远远超过了自动化将取代的劳动
人工智能快报
2018/03/30
1.3K0
人工智能普及之JAVA & AI 课程第一课
未来已来,2023注定最火的是AI,大家也许听说过AI,AIGC、GPT。那么这些专业名词都是什么意思?又将对我们未来的生活产生什么影响呢?
张哥编程
2024/12/13
2220
人工智能普及之JAVA & AI 课程第一课
人工智能正在接管 DevOps 吗?
作者 | Sam Bocetta 译者 | 张健欣 对于许多开发人员来说,预测 DevOps 的下一步已经成为他们最喜欢的一种消遣。在过去的十年里,我们看到我们的行业迅速变化,在同一时期,程序员的角色也发生了根本性的变化。 事实上,尤其是那些(我们应该说)特定年龄的开发者中,“传统”开发者的角色似乎已经不复存在。与传统的软件开发生命周期(即软件的规划、构建和发布)不同,我们中的许多人现在都在多职责团队中工作,在这些团队中,开发和运维并存,并且越来越难以区分。 这种模式被称为 DevOps,但只是在最
深度学习与Python
2023/04/01
3460
人工智能正在接管 DevOps 吗?
提高编码效率的7种AI工具,让你轻松生成复杂代码!
ChatGPT是一个优秀的人工智能工具,可以根据自然语言提示自动生成代码。然而,对于程序员来说,它可能无法完全满足开发者的需求。下面我来给大家介绍7种更专注于编码的人工智能工具。
make a bug
2023/07/15
4.2K0
提高编码效率的7种AI工具,让你轻松生成复杂代码!
推荐一款全栈工具导航网站!超实用~
在这个信息爆炸、效率至上的时代,无论是职场打工人、学生党,还是自由职业者,都常常面临一个难题:在完成各类任务时,需要用到各种各样的工具,可茫茫网海,去哪里快速找到那些优质又实用的工具呢?
测试开发技术
2025/06/19
1540
推荐一款全栈工具导航网站!超实用~
生成式人工智能是DevSecOps的福音还是噩梦?
毫无疑问的是,Gen-AI并不会完全取代DevSecOps,Gen-AI确实可能成为DevSecOps的福音,但这把双刃剑一旦使用不当,也有可能会成为DevSecOps的噩梦。
FB客服
2024/06/14
1750
生成式人工智能是DevSecOps的福音还是噩梦?
推荐阅读
相关推荐
人工智能时代,软件工程师们将会被取代?
更多 >
LV.0
阿里巴巴集团高级 Java 工程师
目录
  • 介绍
  • 端口扫描概述
    • 面向连接(同步模式)
    • 无连接(异步模式)
  • Nmap vs Masscan
    • 优点
    • 缺点
  • 研究思路
    • 解决方案
    • 问题
  • 研究设置
    • 目标网络
    • 扫描机器
    • 测试用例
    • Masscan:
    • Nmap:
  • 范围和限制
  • Masscan 测试用例和结果
    • 测试用例#1:使用不同的速率常规扫描所有的TCP端口
    • 测试用例#2:将/16目标子网拆分为/20块,并运行X个并发Masscan作业,每个作业的速率为Y
    • 测试用例#3:将1-65535端口范围拆分为多个小范围,并运行x个并发Masscan作业,每个作业的速率为Y
  • 原始数据
  • Masscan 结论
  • Nmap 测试用例和结果
    • 测试用例#1:常规扫描所有TCP端口
    • 测试用例#2:使用X个并发作业扫描所有TCP端口
    • 测试用例#3:扫描Masscan识别的开放端口和主机的组合列表
    • 测试用例#4:扫描Masscan识别的特定主机上的特定开放端口
  • 原始数据
  • Nmap 结论
  • 研究总结
    • 推荐方法
    • 注意事项
  • 总结
  • 相关文章
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档