服务端程序的漏洞通过端口攻入
发现开放的端口
更具体的攻击面
UDP端口扫描:
如果收到ICMP端口不可达,表示端口关闭
如果没有收到回包,则证明端口是开放的
和三层扫描IP刚好相反
Scapy端口开发扫描
命令:sr1(IP(dst="192.168.45.129")/UDP(dport=53),timeout=1,verbose=1)
nmap -sU 192.168.45.129
TCP扫描:基于连接的协议
三次握手:基于正常的三次握手发现目标是否在线
隐蔽扫描:发送不完整的数据包,不建立完整的连接,如ACK包,SYN包,不会在应用层访问,
僵尸扫描:不和目标系统产生交互,极为隐蔽
全连接扫描:建立完整的三次握手
所有的TCP扫描方式都是基于三次握手的变化来判断目标系统端口状态
隐蔽扫描:发送SYN数据包,如果收到对方发来的ACK数据包,证明其在线,不与其建立完整的三次握手连接,在应用层日志内不记录扫描行为,十分隐蔽,网络层审计会被发现迹象
僵尸扫描:是一种极其隐蔽的扫描方式,实施条件苛刻,对于扫描发起方和被扫描方之间,必须是需要实现地址伪造,必须是僵尸机(指的是闲置系统,并且系统使用递增的IPID)早期的win xp,win 2000都是递增的IPID,如今的LINUX,WINDOWS都是随机产生的IPID
1,扫描者向僵尸机发送SYN+ACY,僵尸机判断未进行三次握手,所以返回RST包,在RST数据包内有一个IPID,值记为X,那么扫描者就会知道被扫描者的IPID
2,扫描者向目标服务器发送SYN数据包,并且伪装源地址为僵尸机,如果目标服务器端口开放,那么就会向僵尸机发送SYN+ACK数据包,那么僵尸机也会发送RST数据包,那么其IPID就是X+1(因为僵尸机足够空闲,这个就为其收到的第二个数据包)
3,扫描者再向僵尸机发送SYN+ACK,那么僵尸机再次发送RST数据包,IPID为X+2,如果扫描者收到僵尸机的IPID为X+2,那么就可以判断目标服务器端口开放
使用scapy发送数据包:首先开启三台虚拟机,
kali虚拟机:192.168.45.128
Linux虚拟机:192.168.45.129
windows虚拟机:192.168.45.132
发送SYN数据包:
通过抓包可以查看kali给linux发送syn数据包
linux虚拟机返回Kali虚拟机SYN+ACK数据包
kali系统并不知道使用者发送了SYN包,而其莫名其妙收到了SYN+ACK数据包,便会发RST包断开连接
也可以使用下列该命令查看收到的数据包的信息,收到对方相应的SYN+ACK数据包,scapy默认从本机的80端口往目标系统的20号端口发送,当然也可以修改
如果向目标系统发送一个 随机端口:
通过抓包的获得:1,kali向linux发送SYN数据包,目标端口23456,
2,Linux系统由自己的23456端口向kali系统的20号端口返回RST+ACK数据包,表示系统端口未开放会话结束
使用python脚本去进行scapy扫描
nmap做隐蔽端口扫描:
nmap -sS 192.168.45.129 -p 80,21,110,443 #扫描固定的端口
nmap -sS 192.168.45.129 -p 1-65535 --open #扫描该IP地址下1-65535端口扫描,并只显示开放的端口
nmap -sS 192.168.45.129 -p --open #参数--open表示只显示开放的端口
nmap -sS -iL iplist.txt -p 80
由抓包可知,nmap默认使用-sS扫描,发送SYN数据包,即nmap=nmap -sS
hping3做隐蔽端口扫描:
hping3 192.168.45.129 --scan 80 -S #参数--scan后面接单个端口或者多个端口.-S表示进行SYN扫描
hping3 192.168.45.129 --scan 80,21,25,443 -S
hping3 192.168.45.129 --scan 1-65535 -S
由抓包可得:
hping3 -c 100 -S --spoof 192.168.45.200 -p ++1 192.168.45.129
参数-c表示发送数据包的数量
参数-S表示发送SYN数据包
--spoof:伪造源地址,后面接伪造的地址,
参数-p表示扫描的端口,++1表示每次端口号加1,那么就是发送SYN从端口1到端口100
最后面跟的是目标IP
通过抓包可以得知地址已伪造,但对于linux系统(192.168.45.129)来说,它收到了192.168.45.200的SYN数据包,那么就会给192.168.45.200回复SYN+ACK数据包,但该地址却是kali伪造的地址,那么要查看目标系统哪些端口开放,必须登陆地址为kali伪造的地址即(192.168.45.200)进行抓包
hping3和nmap扫描端口的区别:1,hping3结果清晰明了
2,nmap首先对IP进行DNS反向解析,如果没成功,那么便会对其端口发送数据包,默认发送SYN数据包
hping3直接向目标系统的端口发送SYN数据包,并不进行DNS反向解析
全连接端口扫描:如果单独发送SYN数据包被被过滤,那么就使用全连接端口扫描,与目标建立三次握手连接,结果是最准确的,但容易被入侵检测系统发现
response=sr1(IP(dst="192.168.45.129")/TCP(dport=80,flags="S"))
reply=sr1(IP(dst="192.168.45.129")/TCP(dport=80,flags="A",ack=(response[TCP].seq+1)))
抓包情况:首先kali向Linux发送SYN,Linux回复SYN+ACK给kali,但kali的系统内核不清楚kali曾给linux发送给SYN数据包,那么kali内核莫名其妙收到SYN+ACK包,那么便会返回RST请求断开数据包给Linux,三次握手中断,如今kali再给Linux发ACK确认数据包,Linux莫名其妙收到了ACK数据包,当然也会返回RST请求断开数据包,具体抓包如下:
那么只要kali内核在收到SYN+ACK数据包之后,不发RST数据包,那么就可以建立完整的TCP三次握手,判断目标主机端口是否开放
因为iptables存在于Linux内核中,通过iptables禁用内核发送RST数据包,那么就可以实现
使用nmap进行全连接端口扫描:(如果不指定端口,那么nmap默认会扫描1000个常用的端口,并不是1-1000号端口)
使用dmitry进行全连接端口扫描:
dmitry:功能简单,但功能简便
默认扫描150个最常用的端口
dmitry -p 192.168.45.129 #参数-p表示执行TCP端口扫描
dmitry -p 192.168.45.129 -o output #参数-o表示把结果保存到一个文本文档中去
使用nc进行全连接端口扫描:
nc -nv -w 1 -z 192.168.45.129 1-100: 1-100表示扫描1-100号端口
参数-n表示不对Ip地址进行域名解析,只把其当IP来处理
参数-v表示显示详细信息
参数-w表示超时时间
-z表示打开用于扫描的模式
问题一:如何查看服务器所开放的端口 不论是windows机器或者是Linux机器,你都可以是用netstat命令来进行查看。参数我一般使用的是:netstat -tunlp
问题二:怎样查看本机的开放端口 可以使用 Windows 自带的 “netstat ” 命令来查看系统开放的端口 ,另外 ,它的主要参数有 “ -a 表示显示所有连接和检测端口 , -n ”表示以数字格式来显示地址和端口号 绩操作方法 :进入到命令行下面 ,输入 :netstat -an 然后回车 ,这样就会出现了很多的本机开放系统的端口了 ,其中 :Active Connections 口是指 :当前的本机连接状态 ,Proto 是指连接使用的协议名称 ,Local Address 是指本地计算机的地址和连接正在使用的端口号 ,而Foreing Address 是指 :连接该端口的远程计算机的IP地址和其端口号 ,State 就是表明 TCP 的连接状态了 。你可以通过查找看到后面几行的监听端口是 UDP 协议的 ,所以它也就就没有状态显示了 。最后 ,如果我们在今后使用电脑中知道木马使用的端口号 ,而在这里发现该端口号是打开的 ,并且其处于监听状态 ,那么 ,你就可以判断是中了什么木马了 ,比如说 :7626 -是冰河木马默认监听端口等等 。我的命令提示符中没有 :Foreing Address 这一远程计算机端口这一项 ,因为我已经将它通过注册表远程等禁用了 。 不对之处还望指正啦 。好了 ,再见 !
问题三:win7版系统中怎样查看系统开放的端口? netstat (空格)-a(空格) -n。。你没加空格
问题四:根据IP如何查看别人开放的所有端口? 用一个什么scan锭什么~~ 抱歉我忘记了 ~~你去什么黑客网站上看看 ~ 不过你说别骂人 但我还是想说 别干坏事 拿它玩玩不要紧~~~~
问题五:如何查看本机开放的网络端口 依次点击“开始→运行”,键入“cmd”并回车,打开命令提示符窗口。在命令提示符状态下键入“netstat -a -n”,按下回车键后就可以看到以数字形式显示的TCP和UDP连接的端口号及状态。
Netstat -a -e -n -o -s-an
-a 表示显示所有活动的TCP连接以及计算机监听的TCP和UDP端口。
-e 表示显示以太网发送和接收的字节数、数据包数等。
-n 表示只以数字形式显示所有活动的TCP连接的地址和端口号。
-o 表示显示活动的TCP连接并包括每个连接的进程ID(PID)。
-s 表示按协议显示各种连接的统计信息,包括端口号。
-an 查看所有开放的端口
问题六:如何查看端口+如何关闭开放端口 一、查看已开放的端口:
1、借助系统自带MS-DOS命令查看开放的端口(Win2000/XP/server2003)
在开始-运行-输入cmd,打入netstat -an(注意-前有个小空格),在IP地址“,”后面就是端口号了。(-a表示显示当前所有连接和侦听端口,-n表示以数字格式显示地址和端口号)
小常识:TCP(Tran *** ission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据包协议)都是网络上传输数据的通信协议,UDP协议面向非连接,而TCP协议面向连接,他们各自的端口号是相互独立的,列如 TCP可以有个255端口,UDP也可以有个255端口,他们两者并不冲突的。
2、借助第三方软件查看开放的端口
(1)例如:Active Ports(SmartLine出品):可以用来监视所有打开的TCP/IP/UDP端口,将你所有端口显示出来,还显示所有端口以及对应的程序所在的路径,查看本地IP和远端IP(试图连接你电脑的IP)是否正在活动。
(2)列如:fpor命令行工具:特点小巧,但功能不亚于Active Ports哦,同样可以查看端口与相应程序路径。显示模式为:Pid Process Port Proto Path ,392 svchost ->113 TCP,C:\WINNT\system32\vhos.exe 。
(3)例如:防火墙或反毒工具的网络活动显示:比如瑞星防火墙就能及时刷新开放的端口和相关进程,反间谍专家也有此功能,这样的软件很多,就不一一举出了。
二、限制或关闭端口的方法:
1、通过系统自带功能“限制开放”需要的端口(Win2000/XP/server2003)
通过系统自有的“TCP/IP筛选功能”限制服务器端口,控制面板-网络连接-“本地连接”-右键-属性,然后选择internet(tcp/ip)- 属性-高级-选项-选中TCP/IP筛选-属性,在这里分为3项,分别是TCP、UDP、IP协议,假设我的系统只想开放21、80、25、110这4个端口(qq为4000端口),只要在“TCP端口”上勾选“只允许”然后点击“添加”依次把这些端口添加到里面,然后确定,重新启动后生效。
2、通过系统自带防火墙增加“允许通过”的端口
(1)未升级SP2的WINXP/Server2003
控制面板-网络连接-本地连接-属性-高级,把“Inernet连接防火墙”下面的选项勾选上,这样防火墙就自动启动了,点击“设置”,我们可以在“高级设置”窗口的“服务”选项卡中点击“添加”按钮,在“服务设置”对话框中,把服务描述、计算机名或IP地址、端口号、是TCP or UDP,填完后打勾确认,如果不需要了去掉勾确认。(防火墙启动以后“本地连接”图标会出现一个可爱的小锁头。)
(2)升级WIin XP SP2的Windows XP
控制面版-windows防火墙-例外-添加端口,在取名后,输入端口号,确认TCP或者UDP协议,然后确认,在你取名的这个设置前打勾,表示允许通过此端口,不打勾表示不例外。
3、利用带有的“本地安全策略”功能关闭端口(WINXP HOME版本无此功能)
关闭TCP:135(Win2000、WinXP防止RPC135溢出漏洞)、139、445(注册表 “HKEY_LOC......>>
问题七:怎么查看电脑开了哪些端口 查看电脑开了哪些端口
一、如何查看电脑开放了哪些端口
1、利用netstat命令
Windows提供了netstat命令,可以显示当前的 TCP/IP 网络连接情况。
XP 方法:开始――程序――附件――命令提示符,进入DOS窗口,输入命令 netstat -na 回车,就可以显示本机连接情况及打开的端口。
(win 7 方法:开始―点―运行,在运行窗口里输入 CMD 回车,进入DOS窗口,输入命令 netstat -na 回车,就可以显示本机连接情况及打开的端口。)其中Local Address代表本机IP地址和打开的端口号,Foreign Address是远程计算机IP地址和端口号,State表明当前TCP的连接状态。
2.使用端口监视软件如安全监视工具VStat,它除了展示所有的网络活动之外,还可以标明系统路径、查询属性,以便寻找文件。允许你关闭任何现有 TCP 和 UDP 连接的建立和终止活动。
二、如何永久关闭一些危险木马端口
每一项服务都对应相应的端口,一般默认所用服务都是开启的――对于个人用户来说确实没有必要。
端口就像一所房子(服务器)的几个门一样,不同的门通向不同的房间(服务器提供的不同服务)。我们常用的 FTP默认端口为21,而网页一般默认端口是80。但是我们往往打开一些容易被侵入的端口服务,比如139等;还有一些木马程序,比如冰河、BO、广外等都是自动开辟一个您不察觉的端口。那么,只要我们把自己用不到的端口全部封锁起来,不就杜绝了这些非法入侵吗?
1、“控制面板”的“管理工具”中的“服务”中来配置,禁用不需要的服务,对应的端口也就关闭了。
提醒:对于个人用户强烈建议关闭sever服务(可以禁止空连接)
2、利用“TCP/IP筛选”功能限制服务器的端口。
方法:本地连接属性――Internet协议(TCP/IP)――属性――高级――高级TCP/IP设置――项选――TCP/IP筛选
在弹出的对话框里选择“启用TCP/IP筛选”的复选框,然后把左边“TCP端口”上的“只允许”选上。
3、运行gpedit.msc,在计算机配置――windows设置――安全设置――IP安全策略中进行手动设置。
提醒:其中有多个策略,只能指派当前的一种策略。
4、使用ipseccmd屏蔽不安全的端口。
它的主要作用是设置你的筛选规则,为它指定一个名称,同时指定一个策略名称,所谓策略不过是一组筛选规则的 *** 而已。比如你要封闭TCP3333端口的数据双向收发,使用命令:
ipseccmd -w REG -p Block default ports -r Block TCP/3333 -f *+0:3333:TCP -n BLOCK -x
常用的参数如下:
-w reg 表明将配置写入注册表,重启后仍有效。
-p 指定策略名称,如果名称存在,则将该规则加入此策略,否则创建一个。
(注意最好使用同一策略名,因为系统的IP安全策略以最后添加的为准)
-r 指定规则名称。
-n 指定操作,可以是BLOCK、PASS或者INPASS,必须大写。
-x 激活该策略。
-y 使之无效。
-o 删除。
-p 指定的策略。
-f 设置过滤规则。
-y 删除规则。
方法:把程序ipseccmd拷贝到C:/WINDOWS/system32目录下,直接使用命令提示附执行就可以了。
有帮助请采纳下,选为满意答案,谢谢!...>>
问题八:如何查看主机所开放的端口运行的服务 如何查看Windows服务所对应的端口
一、查看端口号:这里我们以win8下的任务管理器为例。 打开任务管理器(在桌面最下面的“任务栏”右击鼠标):
在任务管理器界面中,选择“详细信息”。这时“PID”对应的一列即为自己电脑已开放的端口号,除此之外,我们还可以看到这个开放的端口所对应的程序。二、添加新的端口号:在“控制面板”下打开“windows防火墙”设置,选择“高级设置”:
选择“入站规则”,在窗口的右侧单击“新建规则”:
在“协议和端口”一项中,选择“端口”:
最后,根据我们所开放的端口的类型(TCP还是UDP),然后在“特定本地端口”中输入我们要增加的端口号的数值即可。
问题九:如何查看对方某个端口是否开放 1、百度”站长工具“,点击打开。
2、然后点击导航里的”其他工具“,选择”端口扫描“。
3、输入IP地址或者川名,点击”查询“即可。
问题十:如何查看本机开放的所有端口? 依次点击“开始→运行”,键入“cmd”并回车,打开命令提示符窗口。在命令提示符状态下键入“netstat -a -n”,按下回车键后就可以看到以数字形式显示的TCP和UDP连接的端口号及状态。Netstat -a -e -n -o -s-an-a 表示显示所有活动的TCP连接以及计算机监听的TCP和UDP端口。-e 表示显示以太网发送和接收的字节数、数据包数等。-n 表示只以数字形式显示所有活动的TCP连接的地址和端口号。-o 表示显示活动的TCP连接并包括每个连接的进程ID(PID)。-s 表示按协议显示各种连接的统计信息,包括端口号。-an 查看所有开放的端口
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)