渗透测试之端口扫描,第1张

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

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

发现开放的端口

更具体的攻击面

UDP端口扫描:

如果收到ICMP端口不可达,表示端口关闭

如果没有收到回包,则证明端口是开放的

和三层扫描IP刚好相反

Scapy端口开发扫描

命令:sr1(IP(dst="19216845129")/UDP(dport=53),timeout=1,verbose=1)

nmap -sU 19216845129

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虚拟机:19216845128

Linux虚拟机:19216845129

windows虚拟机:19216845132

发送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  19216845129 -p 80,21,110,443 #扫描固定的端口

nmap -sS 19216845129 -p 1-65535 --open  #扫描该IP地址下1-65535端口扫描,并只显示开放的端口

nmap -sS 19216845129 -p --open  #参数--open表示只显示开放的端口

nmap -sS -iL iplisttxt -p 80

由抓包可知,nmap默认使用-sS扫描,发送SYN数据包,即nmap=nmap  -sS

hping3做隐蔽端口扫描:

hping3 19216845129 --scan 80 -S  #参数--scan后面接单个端口或者多个端口-S表示进行SYN扫描

hping3 19216845129 --scan 80,21,25,443 -S

hping3 19216845129 --scan 1-65535 -S

由抓包可得:

hping3 -c 100  -S  --spoof 19216845200 -p ++1 19216845129

参数-c表示发送数据包的数量

参数-S表示发送SYN数据包

--spoof:伪造源地址,后面接伪造的地址,

参数-p表示扫描的端口,++1表示每次端口号加1,那么就是发送SYN从端口1到端口100

最后面跟的是目标IP

通过抓包可以得知地址已伪造,但对于linux系统(19216845129)来说,它收到了19216845200的SYN数据包,那么就会给19216845200回复SYN+ACK数据包,但该地址却是kali伪造的地址,那么要查看目标系统哪些端口开放,必须登陆地址为kali伪造的地址即(19216845200)进行抓包

hping3和nmap扫描端口的区别:1,hping3结果清晰明了

  2,nmap首先对IP进行DNS反向解析,如果没成功,那么便会对其端口发送数据包,默认发送SYN数据包

hping3直接向目标系统的端口发送SYN数据包,并不进行DNS反向解析

全连接端口扫描:如果单独发送SYN数据包被被过滤,那么就使用全连接端口扫描,与目标建立三次握手连接,结果是最准确的,但容易被入侵检测系统发现

response=sr1(IP(dst="19216845129")/TCP(dport=80,flags="S"))

reply=sr1(IP(dst="19216845129")/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 19216845129  #参数-p表示执行TCP端口扫描

dmitry -p 19216845129 -o output  #参数-o表示把结果保存到一个文本文档中去

使用nc进行全连接端口扫描:

nc -nv -w 1 -z 19216845129 1-100:      1-100表示扫描1-100号端口

参数-n表示不对Ip地址进行域名解析,只把其当IP来处理

参数-v表示显示详细信息

参数-w表示超时时间

-z表示打开用于扫描的模式

代理服务器常用以下端口:

(1) HTTP协议代理服务器常用端口号:80/8080/3128/8081/9080

(2) SOCKS代理协议服务器常用端口号:1080

(3) FTP(文件传输)协议代理服务器常用端口号:21

(4) Telnet(远程登录)协议代理服务器常用端口:23

HTTP服务器,默认的端口号为80/tcp(木马Executor开放此端口);

HTTPS(securely transferring web pages)服务器,默认的端口号为443/tcp 443/udp;

Telnet(不安全的文本传送),默认端口号为23/tcp(木马Tiny Telnet Server所开放的端口);

FTP,默认的端口号为21/tcp(木马Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所开放的端口);

TFTP(Trivial File Transfer Protocol ),默认的端口号为69/udp;

SSH(安全登录)、SCP(文件传输)、端口重定向,默认的端口号为22/tcp;

SMTP Simple Mail Transfer Protocol (E-mail),默认的端口号为25/tcp(木马Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都开放这个端口);

POP3 Post Office Protocol (E-mail) ,默认的端口号为110/tcp;

WebLogic,默认的端口号为7001;

Webshpere应用程序,默认的端口号为9080;

webshpere管理工具,默认的端口号为9090;

JBOSS,默认的端口号为8080;

TOMCAT,默认的端口号为8080;

WIN2003远程登陆,默认的端口号为3389;

Symantec AV/Filter for MSE ,默认端口号为 8081;

Oracle 数据库,默认的端口号为1521;

ORACLE EMCTL,默认的端口号为1158;

Oracle XDB( XML 数据库),默认的端口号为8080;

Oracle XDB FTP服务,默认的端口号为2100;

MS SQLSERVER数据库server,默认的端口号为1433/tcp 1433/udp;

MS SQLSERVER数据库monitor,默认的端口号为1434/tcp 1434/udp;

QQ,默认的端口号为1080/udp

如果

出现的提示如下:

中断远程桌面连接

客户端无法建立跟远程计算机的连接。

导致这个错误的可能的原因是:

1) 远程计算机上的远程连接可能没有启用。

2) 已超出远程计算机上的连接最大数。

3) 建立连接时出现了一个网络错误。

确定 帮助

具体的解决办法:

有时候是这个错误提示:由于网络错误,连接被中断,请重新连接到远程计算机

远程连接我肯定是开启了的,防火墙里面3389端口也是打开的,并且连接其他的服务器就可以连接上,说明我本机没问题,用扫描软件,扫描了一下这个服务器,显示IP和端口都是存在的,说明这个服务器网络也没问题,实在没办法,只有不断的测试,后来在系统日志里面看到很多条系统错误信息。其中:严重错误“RDP 协议组件 "DATA ENCRYPTION" 在协议流中发现一个错误并且中断了客户端连接。”引起了我的主要。

几经周折得知这是因为Certificate子键负责终端服务通信中数据信息的认证和加密,它一旦被损坏,终端服务的协议组件就会检测到错误,中断客户机与终端服务器之间的通信。导致Certificate子键损坏的原因很多,如管理员安装和卸载某些系统软件、对终端服务参数的不合理配置等。这时我们需要重置该键值中的内容,才能修复终端服务。

进入注册表编辑器窗口,展开“HKEY_LOCAL_MA CHINE\ SYSTEM\CurrentCon trolSet\Services\TermService\ Parame ters”,找到名为 “Cer tificate”的子键,将它删除,重新启动XP系统或Windows 2000 Server服务器,系统就会重新生成 “Certificate”子键,这样客户端就能正常连接到终端服务器了。

在终端服务器出现无法连接的问题后,我们首先要判断这是不是网络故障引起的,检测远程客户端和XP系统(Windows 2000 Server服务器)是否能够正常连接到网络;然后就要检查终端服务器的加密级别是否设置过高。排除上述原因后,就有可能是“Certificate”子键损坏了。此外,“HKEY_LOCAL _MACHINE\ SYSTEM\Cur rentControlSet\Services\Term Service\Parameters”下的 “X509 Certificate”和“X509 Certificate ID”损坏了也有可能导致终端服务出现问题,它们的修复方法与“Certificate”子键损坏后的修复方法相同。

讲开了,另外将其他几种远程连接的错误解决方法也附上,以方便需要的朋友:

提示“本地计算机客户端访问许可不能升级或更新”的解决方法

1、打开被控机的注册表编辑器,定位到HKLM\SOFTWARE\Microsoft\MSLicensing。

2、备份MSLicensing键。

3、删除MSLicensing键,重启系统。

提示“客户端无法连接到远程计算机”。

远程计算机不可到达(ping不通或者被中途的园区网防火墙挡住),或是被控机防火墙没有开相应的端口,或是根本没有开启服务端。

提示“远程计算机已结束连接”。的解决方法

1、打开被控机的注册表编辑器,定位到HKLM\SYSTEM\ControlSet001\Enum\Root\RDPDR,备份该项;右键单击该项,选择“权限”,为当前登录的用户增添“完全控制”的权限。

2、新建key文件,将以下内容写入,双击导入注册表后重启计算机即可。

Windows Registry Editor Version 500

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\RDPDR\0000]

"ClassGUID"="{4D36E97D-E325-11CE-BFC1-08002BE10318}"

"Class"="System"

"HardwareID"=hex(7):52,00,4f,00,4f,00,54,00,5c,00,52,00,44,00,50,00,44,00,52,\

00,00,00,00,00

"Driver"="{4D36E97D-E325-11CE-BFC1-08002BE10318}\\0030"

"Mfg"="(标准系统设备)"

"Service"="rdpdr"

"DeviceDesc"="终端服务器设备重定向器"

"ConfigFlags"=dword:00000000

"Capabilities"=dword:00000000

提示“客户端无法连接到远程计算机”的解决方法

远程计算机不可到达(ping不通或者被中途的园区网防火墙挡住),或是被控机防火墙没有开相应的端口,或是根本没有开启服务端。

另外几个杂碎的解决办法:

terminal services 服务未启动,启动此服务即可(在“运行”里输入servicesmsc可以打开服务管理器);

系统属性里“远程”页面里的“远程桌面”未打勾或没有使用有远程登陆权限的用户;前者,可以直接打上勾即可;后者,则需要在“选择远程用户”里添加相关账号即可;

termsrvdll文件可能损坏,可以从其它相同系统的system32目录下拷贝一个后,进安全模式(正常模式无法覆盖,除非此服务未启动),再把此文件覆盖;

如果服务启动了,用户也设好了,文件也覆盖过了,几种方法都试过了,还是不行,那么你恐怕只有重装系统了。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 渗透测试之端口扫描

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情