端口扫描(TCP)

 1 #include <string.h>
 2 #include <WinSock.h>
 3 #include <stdio.h>
 4 #pragma comment(lib,"ws2_32.lib")
 5 int main(int argc, _TCHAR* argv[]) {
 6     int i=0;
 7     int portArr[]={21,23,25,53,67,68,69,79,80,99,109,110,111,113,119,135,137,139,143,161,443,554,1024,3389,4489,8080,8088};
 8     int portArrLen=sizeof(portArr)/sizeof(portArr[0]);
 9     //初始化Windows Sockets 动态
10     WSADATA wsaData;
11     if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0) {
12         printf("找不到可使用的WinSock dll!\n");
13         return 1;
14     }
15
16     SOCKET sClient = NULL;//Linux 中ocket为 int类型
17
18     struct sockaddr_in addrServ;//套接字地址结构
19     addrServ.sin_family=AF_INET;
20     addrServ.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");//对本机进行扫描
21
22     for (i = 0; i<portArrLen; i++) {
23
24         addrServ.sin_port=htons(portArr[i]);//设置端口
25         sClient = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);//赋值套接字
26
27         //连接服务器, 若connect失败则该套接字不可再用,必须关闭
28         if( (connect(sClient,(struct sockaddr_in *)&addrServ,sizeof(addrServ))) ==0) {
29             printf("%d pen!\n",portArr[i]);
30         }else{
31              printf("%d not pen!\n",portArr[i]);
32         }
33         //无论是否连接成功,我们都关闭套接字
34         closesocket(sClient);
35         sClient=NULL;
36     }
37     puts("扫描结束!");
38     getchar();
39     //终止Winsock 2 DLL (Ws2_32.dll) 的使用.
40     WSACleanup();
41     return 0;
42 }
时间: 2024-08-07 04:14:22

端口扫描(TCP)的相关文章

小白日记10:kali渗透测试之端口扫描-UDP、TCP、僵尸扫描、隐蔽扫描

端口扫描 二三四层发现的目的只是为了准确发现所有活着主机IP,确定攻击面,端口扫描即发现攻击点,发现开放端口.端口对应网络服务及应用端程序,服务端程序的漏洞通过端口攻入.[所有的扫描结果,都不要完全相信] 一个端口就是一个潜在的通信通道,也就是一个入侵通道.对目标计算机进行端口扫描,能得到许多有用的信息.进行扫描的方法很多,可以是手工进行扫描,也可以用端口扫描软件进行扫描.在手工进行扫描时,需要熟悉各种命令.对命令执行后的输出进行分析.用扫描软件进行扫描时,许多扫描器软件都有分析数据的功能.通过

Python3实现TCP端口扫描

在渗透测试的初步阶段通常我们都需要对攻击目标进行信息搜集,而端口扫描就是信息搜集中至关重要的一个步骤.通过端口扫描我们可以了解到目标主机都开放了哪些服务,甚至能根据服务猜测可能存在某些漏洞. TCP端口扫描一般分为以下几种类型: TCP connect扫描:也称为全连接扫描,这种方式直接连接到目标端口,完成了TCP三次握手的过程,这种方式扫描结果比较准确,但速度比较慢而且可轻易被目标系统检测到. TCP SYN扫描:也称为半开放扫描,这种方式将发送一个SYN包,启动一个TCP会话,并等待目标响应

NS3网络仿真(14): TCP连接与端口扫描

快乐虾 http://blog.csdn.net/lights_joy/ 欢迎转载,但请保留作者信息 本节学习一下使用NS3构造一个TCP包,再利用构造好的TCP包进行最简单的TCP端口扫描. 1.    TCP协议数据报头 下图中给出了TCP协议数据报头的格式. 源端口.目的端口:16位长.标识出远端和本地的端口号. 顺序号:32位长.表明了发送的数据报的顺序. 确认号:32位长.希望收到的下一个数据报的序列号. TCP协议数据报头DE 头长:4位长.表明TCP头中包含多少个32位字. 接下来

告别脚本小子【编写端口扫描工具】

前言Windows系统默认开放了很多端口,通常这些端口意味着该主机运行着大家都知道的服务,比如TCP端口21-FTP服务,TCP端口80-HTTP服务,有些服务就有可能存在公开的漏洞,因此可以说主机上每一个开放的端口都可能成为一条入侵的捷径.当然,网上存在很多端口扫描工具,但是我们总不能只知道使用别人的工具,一是这些工具别人编写的时候有没有加入后门,二是如果只会用别人的工具,最终也只能是一个脚本小子,所以我们自己来编写一款实用的端口扫描工具. 一.基础知识 1.1.线程 线程,有时被称为轻量级进

kali学习记录之端口扫描

端口扫描的目的是识别目标系统中哪些端口是开启状态,哪些服务可以使用.比如FTP/SSH/TELNET/打印服务/web服务等等.计算机系统中共有65536个端口,因此连接这些端口并扫描出可用的端口就变的有意义了. 1.网络连接 kali的网络默认是 设备未托管状态,因此需要开启.开启方法: 修改/etc/NetworkManager/下的NetworkManger.conf文件, managed = false修改为true 重启机子 2.FPing工具 [email protected]:~#

Android NDK学习之第一个实例---端口扫描

为什么要写一个端口扫描的程序,Java来写不是很方便吗?因为我也没有想到什么例子能够方便的来练习.于是想到以前找到的端口扫描的C代码,于是想用他们来练习.扫描服务端端口的方式有许多种,最简单的就是直接去连接该端口,复杂一些的就是看SYN的应答.其他方式就不说了.下面的portScan.c位于jni目录下:(原本可在linux下运行,修改部分代码,使之能够返回结果给Java层的调用.)#include<stdio.h> #include<stdlib.h> #include<j

nmap端口扫描工具使用

(一)Port scan简介 port Scan的方法介绍 port Scan就是一种通过检测对方服务器的开放端口,侦测对方服务器服务的方法.一般可分为主动式和被动式两种. 主动式就是通过向对方服务器的特定端口发送数据包,根据应答来判断,以nmap 为代表. 被动式,不主动发出数据包,而是在网络上长时侦听,分析网上的transaction,来分析,严格的来被动式不应该被称作是端口扫描.以nwatch为代表 (二)优缺点比较  (1)主动式的优点 主动式只要在对方没有把通信阻断的情况下,可以在较短

★Kali信息收集★8.Nmap :端口扫描

★Kali信息收集~ 0.Httrack 网站复制机 http://www.cnblogs.com/dunitian/p/5061954.html ★Kali信息收集~ 1.Google Hacking + Github Hacking http://www.cnblogs.com/dunitian/p/5074765.html ★Kali信息收集~2.Whois :域名信息 http://www.cnblogs.com/dunitian/p/5074768.html ★Kali信息收集~3.子

端口扫描

一 摘要 端口是个网络应用中很重要的东西,相当于"门".二 什么是端口        端口在计算机网络中是个非常重要的概念,他不是硬件,不同于计算机中的插槽,可以说是个软插槽.如果有需要,一台计算机中可以由上万个端口. 端口是由计算通信协议TCP/IP协议定义的.其中规定,用IP地址和端口作为套接字,它代表TCP链接的一个连接端,一般称为socket,具体来说,就是用[ip:端口]来定位一台主机中的进程.可以做这样的比喻,端口相当于两台计算机进程间的大门,可随便定义,其目的只是为了让两