通过TCP/IP堆栈特征探测远程操作系统

《云计算全栈》-python篇:创建TCP时间戳服务器、创建TCP时间戳客户端 2 案例2:创建TCP时间戳服务器 2.1 问题 创建tcp_time_serv.py脚本,要求编写一个TCP服务器: 服务器监听在0.0.0.0的21567端口上 收到客户端数据后,将其加上时间戳后回送给客户端 如果客户端发过来的字符全是空白字符,则终止与客户端的连接 2.2 方案 服务器进程首先要绑定一个端口并监听来自其他客户端的连接。如果某个客户端连接过来了,服务器就与该客户端建立Sock... 阅读详情
本文主要讨论如何通过探测远程主机的TCP/IP堆栈来收集宝贵的主机系统。首先讲述几种没有包括堆栈探测技术的“传统”的主机操作系统扫描方法。接着是现在较为常见的堆栈特征扫描工具的基本原理。然后讨论一些能使远程主机“在不知不觉间”泄露其信息的技术。最后主要是nmap扫描工具的一些实现细节。

动机

我想谁都已经非常清楚知道远程主机操作系统有多么重要,因此这里只是作一简单叙述。首先最有用的一点在于绝大多数安全漏洞都是针对特定操作系统的。例如你在作端口扫描时发现端口53打开了,而且其守护服务器是有安全漏洞的BIND版本,这时你只要找到相应的漏洞攻击程序就可轻而易举地使守护进程崩溃。依靠优秀的TCP/IP特征探测器,你可以很快知道主机是运行'Solaris 2.5.1'还是'Linux 2.0.35',然后使用相应的漏洞程序和shellcode代码。

这个工具也可能被不正当地使用。有些人喜欢一次对多台机器(例如50000台)进行操作系统和端口扫描,例如如果Suncomsat守护服务器的一个安全漏洞被公布了,他们就会特意地去寻找‘Solaris 2.6'操作系统和'UDP/512'端口,然后不厌其烦地去攻击这些机器。我们通常将这种人称为"SCRIPT KIDDIE"(注:就象是只会抄袭别人的小孩)。这种人并没有什么技术,也不能说明他能够发现漏洞或修补漏洞。而对于那些即使自己发现了漏洞,但却只会通过攻击他人网页来企图证明自己如何出色而系统管理员如何愚蠢的人,人们更会嗤之以鼻。

我们称之为“社交工程(social engineering)”也是另一种可能的不正当用途。例如当骇客扫描到目标公司网络时nmap报告发现了一台'Datavoice TxPORT PRISM 3000 T1 CSU/DSU6.22/2.06‘,他就会以“Datavoice技术支持”的身份给这间公司打电话:“我们正准备公布一个安全漏洞,但我们希望在此之
前为我们的客户安装补丁程序。这个补丁程序我刚刚给您寄出去。……”某些天真的管理员会真的以为只有真正来自Datavoice公司的技术工程师才知道那么多关于他们的CSU/DSU设备的资料,从而……

另一个可能的用途是评价你准备有合作的公司。当在选择一个新的ISP时,扫描一下该网络看看在使用设备。如果是一大堆的低档路由器和用Windows机器提供PPP服务,那即使是"¥99/年"的价格你也会觉得不值。:)

传统技术

利用堆栈特征探测操作系统是一种独特的方法。我想它会满足大多数的要求,虽然目前也还流行有其它方法。不过下面这种方法可能仍然是迄今为止最有效的:

playground~> telnet hpux.u-aizu.ac.jp
Trying 163.143.103.12...
Connected to hpux.u-aizu.ac.jp.
Escape character is '^]'.

HP-UX hpux B.10.01 A 9000/715 (ttyp2)

login:

如此公开地宣布本机运行的是什么系统根本就是一种商业炒作!现在的大多数系统都还带有这种banner,而管理员们也没有意识到应该去掉它们。虽然是存在许多探测主机操作系统的方法,但这绝对不能成为为公开主机操作系统这种愚蠢行为辩护的理由。

随着这个问题的严重性被广泛意识到,越来越多的人已经开始将banner去掉,许多系统的banner也不再泄露重要的信息,这种通过查找banner获得操作系统类型和版本的方法会遇到许多困难,变得不那么可行了。但是,至少目前版本的昂贵商业扫描器(如ISS)仍然只使用这种古老的方法来试图获取主机操作系统类型和版本。相比之下,下载nmap和queso会节约你大量的金钱。

即使关闭了banner,许多应用程序却仍然乐于向访问者提供这类信息。例如,当登录到某台FTP服务器时:

payfonez> telnet ftp.netscape.com 21
Trying 207.200.74.26...
Connected to ftp.netscape.com.
Escape character is '^]'.
220 ftp29 FTP server (UNIX(r) System V Release 4.0)
ready.
SYST
215 UNIX Type: L8 Version: SUNOS

首先,它在缺省的banner里告诉你系统的信息。然后当输入'SYST'命令时,它会更乐意地向你提供更多的信息。如果支持匿名FTP,我们可以下载/bin/ls或其它二进制文件来(至少)确定主机的硬件平台。其它许多应用程序也能提供类似信息。例如WEB服务器:

playground> echo 'GET / HTTP/1.0/n' | nc hotbot.com 80 |
egrep '^Server:'
Server: Microsoft-IIS/4.0
playground>

嗯。。。现在我们知道这台机器运行的是什么破操作系统了。:)其它“传统”的技术还包括DNS主机记录(INFO)、社交工程(social engineering)和SNMP等。这里就不再多说了。

几个操作系统特征探测程序

Nmap不是第一个使用TCP/IP堆栈特征探测操作系统类型的程序。Johan编写的IRC欺骗器sirc从第三版(或更早)就已经包含了很基本的特征探测技术。这个程序使用了一些简单的TCP标记位测试来区分"Linux"、"4.4BSD"、"Win95"或"Unknown"操作系统。

另一个类似的程序是checkos,由Shok编写并于1998年1月在"Confidence Remains High Issue #7"上发表。它采用了与sirc完全相同的技术,甚至某些代码也完全一致。其实checkos在公开发表前就已在私底下流传了很久,因此我不知道是哪个程序抄袭了另一个程序。在传播过程中,checkos增加了telnet banner检查功能(虽然这是一项很老的技术)。据Shok说,checkos从来就没打算公开,因此他并没有考虑过版权问题。

Su1d也写了一个操作系统检测程序。程序名为SS,版本3.11能够检测12种不同操作系统类型。我这个程序使用了nmap的某些网络代码。

然后是queso。这个很新的程序比起以前的其它程序有了很大的飞跃。它不但增加了不少新的测试,还是第一个(我所知道的)将操作系统特征与代码分离的程序。其它扫描程序的代码与下面相似:

/* from ss */
if ((flagsfour & TH_RST) && (flagsfour & TH_ACK) &&
(winfour == 0) && (flagsthree & TH_ACK))
reportos(argv[2],argv[3],"Livingston Portmaster
ComOS");

而queso将这些操作系统特征都单独存放到一个配置文件中,这样只需将新的操作系统特征添加到配置文件中即可,从而极大地增强了程序的可扩展性。

Queso由Apostols.org的Savage编写。

以上谈到的所有程序都存在一个问题,那就是仍然局限于依靠为数不多的测试和响应来确定系统类型。我们不但希望仅仅知道“这台机器运行的是OpenBSD、FreeBSD或者NetBSD。”,还想知道如具体版本和其它更多的信息。例如,'Solaris 2.6'比'Solaris'包含有更多的信息。为了能达到这种更高的探测要求,在nmap中使用了更多的操作系统特征技术。下面就让我们一起讨论吧。

特征探测方法

目前有许多的网络堆栈特征探测技术。最简单的就是寻找各种操作系统间的不同并写出探测程序。当使用了足够的不同特征时,操作系统的探测精度就有了很大保证。例如nmap能够可靠地区分出Solaris 2.4、Solaris 2.5-2.5.1和Solaris 2.6,也能区分2.0.30、2.0.31-34或2.0.35版本的Linux内核。以下是一些这
方面的技术:

FIN探测 -- 通过发送一个FIN数据包(或任何未设置ACK或SYN标记位的数据包)到一个打开的端口,并等待回应。RFC793定义的标准行为是“不”响应,但诸如MS Windows、BSDi、CISCO、HP/UX、MVS和IRIX等操作系统会回应一个RESET包。大多数的探测器都使用了这项技术。

BOGUS(伪造)标记位探测 -- 据我所知,Queso是第一个使用这种更聪明技术的探测器。它原理是在一个SYN数据包TCP头中设置未定义的TCP“标记”(64或128)。低于2.0.35版本的Linux内核会在回应包中保持这个标记,而其它操作系统好象都没有这个问题。不过,有些操作系统当接收到一个SYN+BOGUS数据包时会复位连接。所以这种方法能够比较有效地识别出操作系统。

TCP ISN 取样 -- 其原理是通过在操作系统对连接请求的回应中寻找TCP连接初始化序列号的特征。目前可以区分的类别有传统的64K(旧UNIX系统使用)、随机增加(新版本的Solaris、IRIX、FreeBSD、Digital UNIX、Cray和其它许多系统使用)、真正“随机”(Linux 2.0.*及更高版本、OpenVMS和新版本的AIX等操作系统使用)等。Windows平台(还有其它一些平台)使用“基于时间”方式产生的ISN会随着时间的变化而有着相对固定的增长。不必说,最容易受到攻击的当然是老式的64K方式。而最受我们喜爱的当然是“固定”ISN!确实有些机器总是使用相同的ISN,如某些3Com集线器(使用0x83)和Apple LaserWriter打印机(使用0xC7001)。

根据计算ISN的变化、最大公约数和其它一些有迹可循的规律,还可以将这些类别分得更细、更准确。

“无碎片”标记位 -- 许多操作系统逐渐开始在它们发送的数据包中设置IP“不分片(无碎片)”位。这对于提高传输性能有好处(虽然有时它很讨厌 -- 这也是为什么nmap不对Solaris系统进行碎片探测的原因)。但并不是所有操作系统都有这个设置,或许并不并总是使用这个设置,因此通过留意这个标记位的设置可以收集到关于目标主机操作系统的更多有用信息。

TCP 初始化“窗口” -- 就是检查返回数据包的“窗口”大小。以前的探测器仅仅通过RST数据包的非零“窗口”值来标识为“起源于BSD 4.4”。而象queso和nmap这些新的探测器会记录确切的窗口值,因为
该窗口随操作系统类型有较为稳定的数值。这种探测能够提供许多有用的信息,因为某些系统总是使用比较特殊的窗口值(例如,据我所知AIX是唯一使用0x3F25窗口值的操作系统)。而在声称“完全重写”的NT5的TCP堆栈中,Microsoft使用的窗口值总是0x402E。更有趣的是,这个数值同时也被OpenBSD和FreeBSD使用。

ACK值 -- 也许你认为ACK值总是很标准的,但事实上操作系统在ACK域值的实现也有所不同。例如,假设向一个关闭的TCP端口发送一个FIN|PSH|URG包,许多操作系统会将ACK值设置为ISN值,但Windows和某些愚蠢的打印机会设置为seq+1。如果向打开的端口发送SYN|FIN|URG|PSH包,Windows的返回值就会非常不确定。有时是seq序列号值,有时是S++,而有时回送的是一个似乎很随机性的数值。我们很怀疑为什么MS总是能写出这种莫名其妙的代码。

ICMP错误信息查询 -- 有些(聪明的)操作系统根据RFC 1812的建议对某些类型的错误信息发送频率作了限制。例如,Linux内核(在net/ipv4/icmp.h)限制发送“目标不可到达”信息次数为每4秒80次,如果超过这个限制则会再减少1/4秒。一种测试方法是向高端随机UDP端口发送成批的数据包,并计算接收到的“目标不可到达”数据包的数量。在nmap中只有UDP端口扫描使用了这个技术。这种探测操作系统方法需要稍微长的时间,因为需要发送大量的数据包并等待它们的返回。这种数据包处理方式也会对网络性能造成某种程度
的影响。

ICMP信息引用 -- RFC定义了一些ICMP错误信息格式。如对于一?端口不可到达信息,几乎所有操作系统都只回送IP请求头+8字节长度的包,但Solaris返回的包会稍微长一点,Linux则返回更长的包。这样即使操作系统没有任何监听任何端口,nmap仍然有可能确定Linux和Solaris操作系统的主机。

ICMP错误信息回显完整性 -- 我们在前面已谈到,机器必须根据接收到的数据包返回“端口不可到达”(如果确实是这样)数据包。有些操作系统会在初始化处理过程中弄乱了请求头,这样当你接收到这种数据包时会出现不正常。例如,AIX和BSDI返回的IP包中的“总长度”域会被设置为20字节(太长了)。某些BSDI、FreeBSD、OpenBSD、ULTRIX和VAX操作系统甚至会修改请求头中的IP ID值。另外,由于TTL值的改变导致校验和需要修改时,某些系统(如AIX、FreeBSD等)返回数据包的检验和会不正确或为0。有时这种情况也出现在UDP包检验和。总的说来,nmap使用了九种不同的ICMP错误信息探测技术来区分不同的操作系统。

服务类型(TOS) -- 对于ICMP的“端口不可到达”信息,经过对返回包的服务类型(TOS)值的检查,几乎所有的操作系统使用的是ICMP错误类型0,而Linux使用的值是0xC0。

片段(碎片)处理 -- 不同操作系统在处理IP片段重叠时采用了不同的方式。有些用新的内容覆盖旧的内容,而又有些是以旧的内容为优先。有很多探测方法能确定这些包是被如何重组的,从而能帮助确定操作系统类型。

TCP选项 -- 这是收集信息的最有效方法之一。其原因是:

1)它们通常真的是“可选的”,因此并不是所有的操作系统都使用它们。
2)向目标主机发送带有可选项标记的数据包时,如果操作系统支持这些选项,会在返回包中也设置这些标记。
3)可以一次在数据包中设置多个可选项,从而增加了探测的准确度。

Nmap在几乎每一个探测数据包中都设置了如下选项:

Window Scale=10; NOP; Max Segment Size = 265;
Timestamp; End of Ops;

当接收到返回包时,检查返回了哪些选项,它们就是目标操作系统支持的选项。有些操作系统(如较新版本的FreeBSD)支持以上所有选项,而有些(如Linux 2.0.x)则几乎都不支持。Linux 2.1.x内核支持以上所有选项。

如果有几个操作系统支持相同的选项,可以通过选项的值来进行区分。例如,如果向Linux机器发送一个很小的MSS值,它一般会将此MSS值返回,而其它系统则会返回不同数值。

如果支持相同的选项,返回值也相同,又怎么办呢?仍然可以通过返回选项的顺序进行区分。如Solaris系统返回‘NNTNWME’,而如果是Linux 2.1.122系统,相同的选项,相同的返回值,但顺序却有所不同:MENNTNW。

目前还没有其它操作系统探测工具利用TCP选项,但它确实非常有效!另外还有其它一些选项也可用于进行探测,如T/TCP支持等。

译者注:还有至少两种颇具攻击性的探测方法。由于它们能导致拒绝服务攻击,而这也是在nmap中没有实现这些方法的主要原因。

NMAP探测细节和结果

上面我们讨论了操作系统类型探测的多种技术(除了某些攻击性方法外)。这些技术都在nmap扫描器中实现。Nmap扫描器收集了众多操作系统端口打开和关闭时的特征,支持目前流行的Linux、*BSD和Solaris 2.5.1/2.6多种操作系统。

目前版本的nmap扫描器从一个文件中读取操作系统特征模板。下面是一个实例:

FingerPrint IRIX 6.2 - 6.4 # Thanks to Lamont Granquist
TSeq(Class=i800)
T1(DF=N%W=C000|EF2A%ACK=S++%Flags=AS%Ops=MNWNNT)
T2(Resp=Y%DF=N%W=0%ACK=S%Flags=AR%Ops=)
T3(Resp=Y%DF=N%W=C000|EF2A%ACK=O%Flags=A%Ops=NNT)
T4(DF=N%W=0%ACK=O%Flags=R%Ops=)
T5(DF=N%W=0%ACK=S++%Flags=AR%Ops=)
T6(DF=N%W=0%ACK=O%Flags=R%Ops=)
T7(DF=N%W=0%ACK=S%Flags=AR%Ops=)
PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E)

让我们来看一下每一行的含义:

> FingerPrint IRIX 6.2 - 6.3 # Thanks to Lamont
Granquist

它说明这是一个IRIX 6.2 - 6.3操作系统特征,注释指出该特征由Lamont Granquist提供。

> TSeq(Class=i800)

它说明ISN特征是"i800 class",即每一个新序列号比上一个序列号大800的整数倍。

> T1(DF=N%W=C000|EF2A%ACK=S++%Flags=AS%Ops=MNWNNT)

T1代表test1。这个测试是向打开的端口发送带有多个TCP选项的SYN数据包。DF=N说明返回包的"Don't fragment"位必须没有设置。W=C000|EF2A说明返回包的窗口值必须为0xC000或0xEF2A。ACK=S++说明返回包的ACK值必须为初始化序列号加1。Flags=AS说明返回包的ACK和SYN标记位必须被设置。Ops=MNWNNT说明返回包的TCP选项及其顺序必须为:

> T2(Resp=Y%DF=N%W=0%ACK=S%Flags=AR%Ops=)

Test 2(第二个测试)向打开端口发送带有相同TCP选项的NULL(空)数据包。Resp=Y说明必须接收到返回包。Ops= 说明返回包中的所有TCP选项必须都没有被设置。‘%Ops=’匹配任意TCP选项。

> T3(Resp=Y%DF=N%W=400%ACK=S++%Flags=AS%Ops=M)

Test 3(第三个测试)向打开端口发送带有TCP选项的SYN|FIN|URG|PSH数据包。

> T4(DF=N%W=0%ACK=O%Flags=R%Ops=)

这是向打开端口发送ACK数据包。注意这里没有Resp=字符串。说明返回包不是必须的(例如数据包被丢弃或有防火墙)。

> T5(DF=N%W=0%ACK=S++%Flags=AR%Ops=)
> T6(DF=N%W=0%ACK=O%Flags=R%Ops=)
> T7(DF=N%W=0%ACK=S%Flags=AR%Ops=)

以上测试是针对关闭端口的SYN、ACK和FIN|PSH|URG数据包测试,并设置了相同的TCP选项。

>
PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E)

这个是对“端口不可到达”信息的测试。DF=N前面已经介绍过了。TOS=0说明IP服务类型域应为0。接着的两个是IP包头总长度和返回IP包总长度(16进制值)。RID=E说明期望返回包RID值与发送的UDP包的值相同。RIPCK=E说明校验和应该正常(如果不正常则RIPCK=F)。UCK说明UDP包校验和也应该正常。ULEN=134是
UDP包长度为0x134。DAT=E说明正确返回UDP数据,这个是大多数情况下的缺省设置。

一些较为著名站点的扫描结果

注:这些都是以前的扫描结果,仅供参考。不保证它现在仍然有效或准确。

# "Hacker" sites or (in a couple cases) sites that think
they are
www.l0pht.com => OpenBSD 2.2 - 2.4
www.insecure.org => Linux 2.0.31-34
www.rhino9.ml.org => Windows 95/NT # No comment :)
www.technotronic.com => Linux 2.0.31-34
www.nmrc.org => FreeBSD 2.2.6 - 3.0
www.cultdeadcow.com => OpenBSD 2.2 - 2.4
www.kevinmitnick.com => Linux 2.0.31-34 # Free Kevin!
www.2600.com => FreeBSD 2.2.6 - 3.0 Beta
www.antionline.com => FreeBSD 2.2.6 - 3.0 Beta
www.rootshell.com => Linux 2.0.35 # Changed to
OpenBSD after
# they got owned.

# Security vendors, consultants, etc.
www.repsec.com => Linux 2.0.35
www.iss.net => Linux 2.0.31-34
www.checkpoint.com => Solaris 2.5 - 2.51
www.infowar.com => Win95/NT

# Vendor loyalty to their OS
www.li.org => Linux 2.0.35 # Linux
International
www.redhat.com => Linux 2.0.31-34 # I wonder what
distribution :)
www.debian.org => Linux 2.0.35
www.linux.org => Linux 2.1.122 - 2.1.126
www.sgi.com => IRIX 6.2 - 6.4
www.netbsd.org => NetBSD 1.3X
www.openbsd.org => Solaris 2.6 # Ahem :)
www.freebsd.org => FreeBSD 2.2.6-3.0 Beta

# Ivy league
www.harvard.edu => Solaris 2.6
www.yale.edu => Solaris 2.5 - 2.51
www.caltech.edu => SunOS 4.1.2-4.1.4 # Hello! This
is the 90's :)
www.stanford.edu => Solaris 2.6
www.mit.edu => Solaris 2.5 - 2.51 # Coincidence
that so many good
# schools seem
to like Sun?
# Perhaps it
is the 40%
# .edu
discount :)
www.berkeley.edu => UNIX OSF1 V 4.0,4.0B,4.0D
www.oxford.edu => Linux 2.0.33-34 # Rock on!

# Lamer sites
www.aol.com => IRIX 6.2 - 6.4 # No wonder they
are so insecure :)
www.happyhacker.org => OpenBSD 2.2-2.4 # Sick of being
owned, Carolyn?
# Even the most
secure OS is
# useless in the
hands of an
# incompetent
admin.

# Misc
www.lwn.net => Linux 2.0.31-34 # This Linux news
site rocks!
www.slashdot.org => Linux 2.1.122 - 2.1.126
www.whitehouse.gov => IRIX 5.3
sunsite.unc.edu => Solaris 2.6 
NMAP网络探测工具:从基础扫描到高级实战 端口扫描是网络安全中的核心技术,用于识别网络中的开放端口和服务。NMAP作为开源网络探测工具,通过多种扫描技术(如SYN、ACK、UDP等)和模块化设计,能够高效发现存活主机、识别服务版本及操作系统类型。其核心价值在于提供精确的网络拓扑图谱和漏洞评估能力,广泛应用于渗透测试、合规审计和应急响应等场景。NMAP的NSE脚本引擎支持500+脚本,可扩展漏洞检测和后渗透功能。在企业级应用中,结合分布式扫描和优化策略,能够显著提升扫描效率和准确性。 阅读详情

相关推荐

【软件系统架构】系列九:系统安全—信息安全的抗攻击技术

本文系统梳理了网络信息安全领域的常见攻击类型及防御措施。重点分析了拒绝服务攻击(DoS/DDoS)的工作原理、攻击模式及流量清洗等防御策略;详细介绍了ARP欺骗、DNS欺骗和IP欺骗等网络欺骗攻击的检测与防范方法;阐述了端口扫描技术及其防御对策。文章还提供了TCP/IP堆栈强化建议和信息安全最佳实践,强调采用"预防>检测>响应>恢复"的防御思路,并推荐了Wireshark、Snort等实用安全工具。通过分层防御和持续监控,可有效提升信息系统安全性。

moton2017的博客 1813

TCP timestamp

TCP timestamp | 天赋 无与伦比的坚持tcp_timestamps是在RFC 1323中定义的一个TCP选项。这篇wiki介绍一下timestamps的设计目的和相关原理,尤其强调一些比较tricky的地方。https://perthcharles.github.io/2015/08/27/timestamp-intro/ tcp_timestamps是在RFC 1323中定义的一个TCP选项。 这篇wiki介绍一下timestamps的设计目的和相关原理,尤其强调一些比较tricky的地方

maimang1001的专栏 1771

影石嵌入式面试题及参考答案(7万字长文)

在底盘速度融合中,外环通常是指车辆的运动控制环,它根据车辆的速度、加速度等信息,计算出车辆的期望加速度,并将其作为控制量施加到车辆的动力系统中。可以通过在系统中加入外部干扰,观察系统的输出曲线来判断抗干扰能力,如果系统在受到外部干扰后,能够快速地恢复到稳定状态,则系统的抗干扰能力较强。然后,通过观察系统的响应曲线,对 PID 参数进行调整,直到得到满意的控制效果。在解决这个问题的过程中,我学会了如何在资源受限的环境下进行算法优化和任务调度,如何提高系统的实时性能和稳定性,以及如何进行无线通信的调试和优化。

大模型大数据攻城狮的专栏 6068

根据IP获取对方机器的操作系统方案

FIN探测 --  通过发送一个FIN数据包(或任何未设置ACK或SYN标记位的数据包)             到一个打开的端口,并等待回应。RFC793定义的标准行为是“不”响             应,但诸如MS Windows、BSDi、CISCO、HP/UX、MVS和IRIX等操作系             统会回应一个RESET包。大多数的探测器都使用了这项技术。 BOG

lijunwyf的专栏 6322

10、网络攻击技术与漏洞扫描全解析

本文深入解析了网络攻击技术与漏洞扫描方法,涵盖端口扫描技术、堆栈指纹识别、漏洞扫描工具及系统渗透攻击技术等内容,旨在帮助安全人员全面了解威胁并采取有效防护措施。

jj890的博客 46

ENSP实战:从零搭建企业级路由交换网络(附完整拓扑图+配置代码)

本文详细介绍了如何使用ENSP从零搭建企业级路由交换网络,包括拓扑设计、IP规划、交换机与路由器配置、路由互通测试及常见故障排查。通过完整的拓扑图和配置代码,帮助读者掌握VLAN隔离、静态路由配置等核心技能,解决实际部署中的典型问题。

weixin_29306875的博客 280

【Azure 应用服务】Azure Web App的服务(基于Windows 操作系统部署)在被安全漏洞扫描时发现了TCP timestamps漏洞

问题背景爱购物 https://www.cqfenfa.com/ 什么是TCP timestamps(TCP 时间戳)? The remote host implements TCP Timestamps, as defined by RFC1323(https://www.ietf.org/rfc/rfc1323.txt).A side effect of this feature is that the uptime of the remote host can be sometimes be c...

weixin_48967543的博客 1440

银河麒麟V10-ARM架构-postgresql安装与部署指南

本文详细介绍应用源码进行pgsql的安装步骤,本文以postgresql-12.0为例。提示:以下是本篇文章正文内容,下面案例可供参考银河麒麟系统安装程序比较繁琐,潜在问题比较多,个人建议均通过源码自定义编译安装。国产系统还需努力啊!

idols_man的博客 1万+

速读原著-TCP/IP(时间戳选项)

第24章 TCP的未来和性能 24.5 时间戳选项 时间戳选项使发送方在每个报文段中放置一个时间戳值。接收方在确认中返回这个数值,从而允许发送方为每一个收到的 A C K计算RT T(我们必须说“每一个收到的 A C K”而不是“每一个报文段”,是因为T C P通常用一个A C K来确认多个报文段)。我们提到过目前许多实现为每一个窗口只计算一个 RT T,对于包含8个报文段的窗口而言这是正确的。然...

逍遥云恋 1229

如何优化Silvaco二极管仿真网格?这些参数设置技巧让你的结果更精确

本文详细介绍了如何优化Silvaco二极管仿真网格,通过精细调整网格参数提升仿真精度。重点解析了网格密度与计算精度的权衡、关键区域识别与网格强化策略,以及掺杂分布与网格适配技术,帮助工程师在半导体器件仿真中获得更准确的结果。

t8u9v0w1x的博客 660

vos如何对接okcc(保姆级教程)

1.添加账户 点击 系统->账户管理 [图片] 2.创建费率 系统->费率管理 点击添加

qq_46333281的博客 3453

[转载]通过TCP/IP堆栈特征探测远程操作系统

来源:https://forum.eviloctal.com/read-htm-tid-26143.html本文主要讨论如何通过探测远程主机的TCP/IP堆栈来收集宝贵的主机系统。首先讲述几种没有包括堆栈探测技术的“传统”的主 机操作系统扫描方法。接着是现在较为常见的堆栈特征扫描工具的基本原理。然后讨论一些能使远程主机“在不知不觉间”泄露其信息的技术。最后主要是nmap 扫描工具的一些实现细节。动

www.pingfi.com 1154

TI 实时操作系统SYS/BIOS使用总结

1:概述: SYS/BIOS 是一个可扩展的实时的操作系统。具有非常快速的响应时间(在中断和任务切换时达到较短的延迟),响应时间的确定性,强壮的抢占系统,优化的内存分配和堆栈管理(尽量少的消耗和碎片)。能够实现系统的模块化并可裁剪。 最大的特点就是:实时。 2:XDCtools: XDCtools 是SYS/BIOS引用的一种实时的软件组件技术(RTSC),它包括一些有用的工具,标准的AP

带头奋青的博客 5万+

操作系统指纹探测实验

操作系统指纹 作为网络操作系统,系统的指纹实际上来源于TCP/IP协议栈。TCP/IP协议栈技术只是在RFC文档中描述,并没有一个统一的行业标准,各个公司在编写应用于自己的操作系统的TCP/IP协议栈时,对RFC文档做出了不尽相同的诠释,造成了各个操作系统在TCP/IP协议的实现上有所不同。好比人类的指纹,每个普通人都有指纹,但是没有两个人的指纹是一模一样的。通过比较不同的操作系统的TCP/IP协议栈的细微差异,就可以判定操作系统类型及版本,这种方式也称为“指纹方法学”。 TCP/IP协议栈指纹以独特的

lalalalala~~ 2379

FPGA实战:基于Basys3的多功能数字钟设计与实现

本文详细介绍了基于Basys3开发板的多功能数字钟设计与实现过程,涵盖FPGA开发、SystemVerilog编程及7段数码管驱动等关键技术。通过模块化设计实现时钟分频、时间计数、按键处理等功能,并提供了优化显示驱动和调试技巧,帮助开发者快速掌握数字电路设计核心概念。

weixin_29186249的博客 659

YOLOv8 交通违规检测各个场景的实际应用

本文介绍了基于YOLOv8的交通违规检测系统在不同场景下的应用实现。系统可检测闯红灯、超速、违停和不系安全带等多种违规行为,针对每种场景提供了具体的技术方案和Python实现代码。其中闯红灯检测结合信号灯状态分析,超速检测通过距离时间计算速度,违停检测采用长时间跟踪策略,安全带检测则需更高精度识别。文章还展示了如何整合各功能构建综合交通监管系统,并总结了不同应用场景的技术要点和优化方向,为智能交通管理提供了实用解决方案。

u010117029的博客 299

网安学习 | Kail安全渗透测试系统之【主机存存活及指纹探测】工具学习实践

微信改版了,现在看到我们全凭缘分,为了不错过【全栈工程师修炼指南】重要内容及福利,大家记得按照上方步骤设置「接收文章推送」哦~关注回复【学习交流群】加入【SecDevOps】学习交流群!本文为作者原创文章,为尊重作者劳动成果禁止非授权转载,若需转载请在【全栈工程师修炼指南】公众号留言,或者发送邮件到 [master@weiyigeek.top] 中我将及时回复。免责申明:本文分享旨在给网络安全从业...

全栈工程师修炼指南-IT知识分享 742

基于 FastAPI + LangGraph + LLM 大语言模型的通用 Agent 多智能体系统架构设计与开发实战、产业应用

FastAPI是一个现代、快速(高性能)的Python Web框架,专门用于构建API。它由Sebastián Ramírez(@tiangolo)创建,基于Starlette(用于Web部分)和Pydantic(用于数据部分)构建。性能优先:FastAPI是当前最快的Python Web框架之一,性能与NodeJS和Go相当。这得益于其基于Starlette的异步架构,能够充分利用Python 3.6+的async/await特性。开发效率。

AI天才研究院 230

网安学习 | Kali安全渗透测试系统之【主机存活及指纹探测】工具学习实践

讲解在Kali系统下针对目标存活检测以及目标的系统指纹探测工具的介绍使用。在渗透测试前期或者后期,主机存活的探测以及系统指纹的探测尤为重要,它可以让我们明确可以向那些机器发起测试,以及明确不同的操作系统,我们应该扫描不同的特征端口,以及对应系统服务的0Day漏洞以及exploit poc。

全栈工程师修炼指南-IT知识分享 1077

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

被动操作系统指纹识别的强大功能可实现准确的物联网设备识别

每个互连设备都可能为网络攻击和安全漏洞创造新的途径。

网络研究观 9116

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

渗透测试实战:操作系统与应用程序指纹识别技术详解

在网络安全领域,信息搜集与指纹识别是渗透测试和漏洞评估的基础环节。其核心原理在于通过网络协议交互、服务响应特征以及系统行为差异,主动或被动地识别目标的操作系统类型、版本及运行的应用程序。这项技术的价值在于为后续的攻击路径规划、漏洞利用和防御规避提供精准的决策依据,广泛应用于红队评估、CTF竞赛、企业安全测试等场景。掌握Nmap、Wireshark等工具的组合使用,并理解TCP/IP协议栈指纹、Banner抓取、TTL反推等关键技术,是构建有效侦察能力的关键。本文深入解析了**操作系统指纹识别**与**应用程

weixin_30727835的博客 401

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

nmap安全审计

Nmap是一款强大的网络安全审计工具,可以帮助我们快速地对目标主机进行端口扫描、操作系统识别、服务版本探测、漏洞扫描等操作,以发现目标主机上可能存在的安全漏洞和风险。其中,基于Banner的识别是最常用的一种,它通过分析目标主机上服务返回的Banner信息,猜测出服务的版本号和名称等信息。其中,基于脚本的漏洞利用是最常用的一种,它通过执行Nmap内置的漏洞利用脚本,攻击目标主机上存在的漏洞和风险。其中,基于脚本的漏洞扫描是最常用的一种,它通过执行Nmap内置的漏洞扫描脚本,检测目标主机上存在的漏洞和风险。

Kali与编程 1023

网络攻击与防范技术

2018-06-24 1.攻击:只指一切针对计算机的非授权行为 2.TCP/IP的几个漏洞:   因为是明文传输 ,很容易被在线窃听,篡改,和伪造   可通过直接修改Ip的地址,来冒充某个可信节点的IP地址进行攻击   无法鉴别用户身份的有效性 3.网络攻击可以怎么分类:   攻击的位置     远程攻击     本地攻击   攻击的层次     窃听     欺骗   ...

weixin_30347009的博客 1775

【期末复习】北京邮电大学《网络安全》课程期末复习笔记(6. 网络安全扫描)

1. 定义: 发现主机或网络、发现正在运行的服务进而发现**潜在的漏洞**、能够为漏洞提出解决方案 2. 网络安全扫描技术包括: 端口扫描,漏洞扫描,操作系统探测,探测访问控制规则

weixin_46440934的博客 829

SCSA-S:(实验)Nmap的使用(1-2)

例如,对于 HTTP 服务,Nmap 会尝试获取返回的 HTTP 头信息,来推测所使用的 Web 服务器软件和版本。Nmap 会分析目标主机返回的数据包、TCP/IP 堆栈的行为特征等,从而推测其操作系统的类型、版本及其他相关信息。,它是一种隐蔽的 TCP 扫描方法,通常用于检测开放的 TCP 端口。SYN 扫描通过发送 SYN 数据包(即连接的初步请求)来探测端口,而不会完成 TCP 三次握手,因此相对较难被防火墙和入侵检测系统发现。命令),来检查目标主机是否在线,或者是否启用了 ICMP 响应。

m0_63091204的博客 801
上一篇: Understanding the HTTP Protocol(了解HTTP协议)
下一篇: Advanced spoofing (Blind)
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值