端口扫描实验报告_端口扫描实验总结

hacker|
86

信息探测之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”

进行第三次扫描

端口扫描的原理

端口扫描的基本原理就是依次与每一个可能存在的主机尝试建立连接。如果对方有回复就说明这个主机存在且端口开放。

连接的方式有:标准TCP连接(三次握手),但这种连接方式很容易被目标主机发现;直接用SYN包试探(看目标主机是不是回SYN=1、ACK=1,一旦试探到要马上用RST拒绝连接);直接用FIN包试探(看目标主机是不是回RST包);代理扫描。

C++ TCP端口扫描

差不多就是这样的吧

#include stdio.h

#include winsock.h

#pragma comment(lib,"wsock32.lib")

int main(int argc, char **argv)

{

SOCKET sd_client;

u_short iPortStart, iPortEnd, port;

struct sockaddr_in addr_srv;

char *pszHost;

WSADATA wsaData;

WORD wVersionRequested;

int err;

switch(argc)

{

case 2:

iPortStart = 0;

iPortEnd = 65535;

pszHost =argv[1];

break;

case 3:

iPortStart = iPortEnd = atoi(argv[2]);

pszHost =argv[1];

break;

case 4:

iPortStart = atoi(argv[2]);

iPortEnd = atoi(argv[3]);

pszHost =argv[1];

break;

default:

printf("正确的命令行参数:\n");

printf("[IP] 扫描所有端口\n");

printf("[IP] [端口]:扫描单个端口\n");

printf("[IP] [端口1] [端口2]:扫描端口1到端口2\n");

return 1;

}

wVersionRequested = MAKEWORD( 1, 1 );

err = WSAStartup( wVersionRequested, wsaData );

if ( err != 0 )

{

printf("Error %d: Winsock not available\n", err);

return 1;

}

for(port=iPortStart; port=iPortEnd; port++)

{

sd_client = socket(PF_INET, SOCK_STREAM, 0);

if (sd_client == INVALID_SOCKET)

{

printf("no more socket resources\n");

return 1;

}

addr_srv.sin_family = PF_INET;

addr_srv.sin_addr.s_addr=inet_addr(pszHost);

addr_srv.sin_port = htons(port);

err = connect(sd_client, (struct sockaddr *) addr_srv, sizeof(addr_srv));

if (err == INVALID_SOCKET)

{

printf("不能连接此端口:%d\n", port);

closesocket(sd_client);

continue;

}

printf("扫描此端口成功:%d\n", port);

closesocket(sd_client);

}

WSACleanup();

return 0;

}

简述端口扫描原理

扫描器通过选用远程TCPIP不同的端口的服务,并记录目标给予的回答,通过这种方法可以搜集到很多关于目标主机的各种有用的信息;

指发送一组端口扫描消息,试图以此侵入某台计算机,并了解其提供的计算机网络服务类型。端口扫描是计算机解密高手喜欢的一种方式,攻击者可以发现可探寻到的攻击弱点。实质上端口扫描包括向每个端口发送消息,一次只发送一个消息,接收到的回应类型表示是否在使用该端口并且可由此探寻弱点;

扫描器是一种自动检测远程或本地主机安全性弱点的程序,通过使用扫描器你可以不留痕迹的发现远程服务器的各种TCP端口的分配及提供的服务和软件版本,这就能间接的或直观的发现到远程主机所存在的安全问题。

采用tcp syn扫描的方法进行端口扫描,存在哪些优点和缺点

呵呵,我来简单回答一下吧!

首先你搞错了一个问题,就是没有syn扫描这种东西,只有tcp扫描和udp扫描。而tcp扫描一般是使用tcp的syn数据包来进行的,也就是不严格地说,你说的这两个是同一个东西,呵呵!

所以我在这里详细地解释一下tcp扫描和udp扫描以及它们的区别,希望能对你有所帮助。

tcp端口扫描是通过syn数据包进行的,用于扫描目标机器的端口上是否存在程序监听,通常意义上,普通个人机器上的某个端口如果有程序监听的话,那么它一般是系统漏洞。由于tcp是一个有连接的可靠协议,所以要使用三次握手来建立连接,三次握手的报文分别是(syn)、(ack

syn)和(ack)。进行端口扫描时,首先向对方主机的某一端口发送(syn)报文,如果对方这一端口上有程序在监听(或者说存在漏洞),则回复(syn

ack)报文,否则回复(rst)报文。据此就可以判断对方端口上是否有程序在监听了,或者是否存在漏洞了。

udp端口扫描是通过普通数据包进行的,也是用于扫描对方端口上是否有程序在运行,就像上面所说的,如果普通个人机器上存在这样的端口,那一般也是系统漏洞。但对于udp来说,不存在监听这个概念,因为它是无连接不可靠的协议,发送数据包过去以后,通常也不会有任何的对等回应。因此,udp端口扫描主要是检测是否存在icmp端口不可达数据包。若该数据包出现,则说明对方这一端口上没有程序在监听,或者说该端口不存在漏洞,否则就说明该端口上有程序在监听,或者说存在漏洞。

呵呵,现在可以总结一下他们的区别了,主要是以下几点:

1.

tcp是有连接的协议,而udp是无连接的;

2.

tcp扫描检测(ack

syn)或者是(rst)报文,而udp检测icmp端口不可达报文;

3.

tcp协议是可靠但低效的,可以有效进行端口扫描,范围广,效率低,可以应用于任何网络中;udp协议时不可靠但高效的,范围小,效率高,一般应用于局域网内部,随着网络规模的增大,udp端口扫描的结果准确度会越来越差,极端情况是,如果对internet使用udp端口扫描,所得到的结果一定不准确。

呵呵,回答完毕,希望能对你有所帮助!

描述使用Nmap对系统进行网络端口扫描的过程

【实验过程]】

将实验指导书的实验过程缩写,重点在于写出实验执行的具体步骤,以下是一个实验的书写实例:

1、 运行实验工具目录下的Nmap安装程序,安装Nmap到系统中的默认路径

2、 主机发现:运行如下命令:Nmap –sP 192.168.80.201,来判断目标主机Windows

Server A是否可连通

3、 使用常规扫描方式对目标主机进行TCP端口扫描,运行如下命令:Nmap –sT

192.168.80.201

4、 使用SYN半扫描方式,对目标主机进行TCP端口扫描,运行如下命令:Nmap –sS

192.168.80.201

5、 对主机进行UDP端口扫描,运行如下命令:Nmap –sV 192.168.80.201

6、 探测目标主机的操作系统类型,运行如下命令:Nmap –O –P0 192.168.80.201

7、 运行Namp的图形化前端程序Nmap,在“Target”中输入扫描目标的IP地址

(192.168.80.201),然后在Profile预定义配置下拉框中选择配置“Intense Scan , no Ping”,然后点击菜单项“Profile”-“Edit Selected Profile”,切换到“Scan”选项卡,勾选上“Operation system detection”和“Version detection”,然后点击“Save Changes”按钮保存扫描配置,最后点击“Scan”按钮开始扫描。

具体参考

0条大神的评论

发表评论