端口扫描的防范措施_主机端口扫描与防范实验

hacker|
265

通过端口侵入到我的电脑怎么办

作为一个被广泛使用的系统,现在已经受到了越来越多攻击者的“青睐”。当然最简单的防范方法是装个网络防火墙,不过在没有防火墙时,我们有什么办法呢?关闭WindowsXP中的无用端口可以让系统安全很多。

一、找出自身开放的端口

扫描端口,然后找漏洞是攻击者入侵的基本思路。可以说,机器上开放的端口越多,攻击者入侵的机会就越大,因此我们可以通过关闭一些我们不用的端口来提高电脑的安全性。

那如何知道我们的WindowsXP开放了哪些端口呢?我们可以用命令“Netstat”来查看系统中开放的端口。

我们需要用到这个命令的两个参数:-a、-n。参数-a显示当前所有连接和侦听端口,而参数-n以数字格式显示地址和端口号(而不是尝试查找名称),两者可以结合起来使用:Netstatan(如图1),就能查看当前端口的开放情况。

通过这个命令,如果我们发现一个异常的端口号在监听,可以先去网上查找常见木马的端口号对照一下,如果发现有木马使用的端口,就应该用杀除木马的软件检查系统了。

二、关闭无用端口

知道怎么查看机器的端口情况之后,接下来一个问题是,哪些端口是必需的,哪些端口是可以关闭的?这个问题稍微复杂一点,因为除了Windows XP默认开放的135、137、138、139和445,有些跟网络有关的软件需要使用到一些端口,最常用的比如QQ使用4000端口。这里笔者把情况想像成最简单:一台只需要浏览网页的电脑。那么针对这个系统,我们自己来配置一下以提高安全性。

1、关闭软件开启的端口。可以打开本地连接的“属性→Internet协议(TCP/IP)→属性→高级→选项→TCP/IP筛选属性”,然后都选上“只允许”(如图2)。请注意,如果发现某个常用的网络工具不能起作用的时候,请搞清它在你主机所开的端口,然后在“TCP/IP筛选”中添加相应的端口。

2、禁用NetBIOS。打开本地连接的“属性→Internet协议(TCP/IP)→属性→高级→WINS→禁用TCP/IP上的NetBIOS”(如图3)。这样一来就关闭了137、138以及139端口,从而预防IPC$入侵。

3、开启Windows XP自带的网络防火墙。打开本地连接的“属性→高级”(如图4),启用防火墙之后,单击设置可以设置系统开放关闭哪些服务。一般来说,这些服务都可以不要,关闭这些服务后,这些服务涉及的端口就不会被轻易打开了。

4、禁用445端口。向注册表“HKEY_LO-CAL_MACHINE\SYSTEM\CurrentControlSet\Servi ces\NetBT\Parameters”中追加名为“SMBDeviceEnabled”的DWORD值,并将其设置为0,就好了。

通过以上设置,你的WindowsXP系统的安全性将大大提高。要补充的是,文章是针对那些直接拨号上网的机器,而不包括通过网关代理上网的机器

参考资料:

旗鱼云梯Linux端口扫描防护

端口扫描是指某些别有用心的人发送一组端口扫描消息,试图以此侵入某台计算机,并了解其提供的计算机网络服务类型(这些网络服务均与端口号相关)。端口扫描是计算机攻击的第一步,攻击者可以通过它了解到从哪里可探寻到攻击弱点。实质上,端口扫描包括向每个端口发送消息,一次只发送一个消息。接收到的回应类型表示是否在使用该端口并且可由此探寻弱点。

在Linux上每个通过网络访问的程序都要监听一个端口,并通过此端口去访问。比如常用的端口: 22,80,443,3306,6379分别对应的是ssh服务,http服务,https服务,mysql服务,redis服务的默认端口。比如我们访问旗鱼云梯的网站 其实访问的是 或者 443. 比如MySQL开放远程权限允许远程访问的话,那么我们将通过ip:3306去访问mysql服务,redis同样如此 通过ip:6379访问redis服务。如果密码设置简单的话几下就被爆破了,mysql密码设置为123456,一下就爆破了。。。

对于常用服务除了80,443以外非常建议修改默认端口号,

说这么多,那跟端口扫描有什么关系呢?

当我们把SSH默认端口22修改为其他端口比如23456端口, 那么黑客想要继续对我服务器进行SSH爆破那怎么办呢?

演示的我就直接指定端口扫描了,不然扫描全端口扫描太慢了。黑客一般用的都是端口扫描工具进行全端口扫描。

旗鱼云梯根据客户反馈和需求,推出端口防扫描安全防护,自动检测非法端口扫描IP,超过阈值自动封禁,从源头加固主机安全。保护服务器不受端口扫描的危害,坚守第一道防线。

渗透测试之端口扫描

端口扫描:端口对应网络服务及应用端程序

服务端程序的漏洞通过端口攻入

发现开放的端口

更具体的攻击面

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表示打开用于扫描的模式

信息探测之SuperScan端口扫描实验

uperScan具有以下功能:

1.通过Ping来检验IP是否在线;

2.IP和域名相互转换;

3.检验目标计算机提供的服务类别;

4.检验一定范围目标计算机的是否在线和端口情况;

5.工具自定义列表检验目标计算机是否在线和端口情况;

6.自定义要检验的端口,并可以保存为端口列表文件;

7.软件自带一个木马端口列表trojans.lst,通过这个列表我们可以检测目标计算机是否有木马;同时,我们也可以自己定义修改这个木马端口列表

进入

换至“Scan”选项卡,点击左下的开始按钮开始进行第一次扫描。 扫描结果如图6。

第一次扫描完毕之后,点击“View Html Results”查看扫描报告

再次切换至“Host and Service Discovery”选项卡,同样仅选中“TCP Port Scan”复选框,但将“Scan Type”设置为“SYN”

同上,扫出

再次切换至“Host and Service Discovery”选项卡,仅选中“UDP Port Scan”

进行第三次扫描

0条大神的评论

发表评论