多线程端口扫描器_tcp多线程端口扫描

hacker|
277

python中如何去学习那些socket

这个星期刚刚用Python写了几个 ping,dns(UDP 53)扫描以及tcp端口扫描的程序,总结有以下几点:

1. 多线程,一个线程负责发,一个线程负责收

2. 使用raw socket,需要有root权限,其中ICMP的raw socket需要设置参数告诉kernel IP头有你的程序添加。我在check sum这里卡了点时间,手里最好有本网络参考书,《TCP/IP illustrated》最好,在写代码之前必须对报文格式以及各字段做到心中有数。

3. 看看Python的struct/array文档看看怎么组包,解包

4. 除非你异常牛逼,否则还是需要debug工具,比如wireshark/tcpdump等工具配合让你看看自己发出来的包那里出了问题。如果用GUI的wireshark记得将option中的tcp/ip部分checksum option打开

把代码贴给你就让你失去自己动手的乐趣了!呵呵have fun!

Asynchronous socket error 10061

服务器错误,

端口扫描的问题

在写端口扫描时 ,如果与某主机特定端口无法通信 ,

就此主机而言 ,我想应该有以下两种情况 :

1 。此地址上无任何主机存在

2 。有主机但被扫描的特定端口不存在 ( 也可能是被 firewall 过滤了 )

如何得知某端口一打开

给你来个简单的吧!

procedure TForm1.Timer1Timer(Sender: TObject);

var

I : integer;

begin

Memo1.Clear;

for I := 0 to 1000 do begin

ServerSocket1.Close;

ServerSocket1.Port := I;

try

ServerSocket1.Open;

except

Memo1.Lines.Add(IntToStr(I) + ' 端口被打开 !');

end;

end;

end;

对不起 ,我指的是别人机器上的 PORT

你是说 PORT 只能被一个程序打开么 ?

可是 ,我用 OICQ 时在打开 4000 没问题呀

我把上面的程序改了一下 ,也可以用的。你就去试图连接对方 ,如果通了 ,说明此端口被打

开。

procedure TForm1.ClientSocket1Connect(Sender: TObject;

Socket: TCustomWinSocket);

begin

Memo1.Lines.Add(' 端口 '+IntToStr(Socket.RemotePort)+' 被打开! ');

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

ClientSocket1.Close;

ClientSocket1.Port := PortID;

try

ClientSocket1.Open;

except

end;

Inc(PortID);

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

PortID := 1;

end;

procedure TForm1.ClientSocket1Error(Sender: TObject;

Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;

var ErrorCode: Integer);

begin

try

ClientSocket1.Close;

except

end;

Memo2.Lines.add(IntToStr(Socket.remotePort));

end;

吕雪松你的方法我试过了可是抱错 :asynchronous socket error 10061

--------------------------------------------------------------------------------

来自 :xueminliu 时间 :01-3-3 17:26:47 ID:464312

要区分 tcp 和 udp

oicq 用 udp 协议 ,connect 没有用 ,但是 tcp 可以这样

另外 ,如果你写扫描程序可千万不要这样 ,应该使用别的链接方法 ,否则你的踪迹会被别人

发现 .例如使用 sys 扫描或者 fin 扫描 :

我给你异步 socket 的 api 代码 :

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls,WInSock, ExtCtrls;

const WM_SOCKET=WM_USER+1; //socket 消息

type

TForm1 = class(TForm)

Button1: TButton;

Edit1: TEdit;

Panel1: TPanel;

Memo1: TMemo;

procedure FormCreate(Sender: TObject);

procedure FormDestroy(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

Sockhd : integer; //socket 句柄

Serv_Addr : Tsockaddr;// 目标地址

procedure SockEvent(var msg: Tmessage);message WM_SOCKET; // 处理 cocket 消息

procedure DspMsg(msg : string); // 显示信息

{ Private declarations }

public

{ Public declarations }

end;

Form1: TForm1;

implementation

{$R *.DFM}

function lookup_hostname(const hostname:string):longint; // 把域名转化成 IP 地址

var

RemoteHost : PHostEnt; (* no, don't free it! *)

ip_address: longint;

begin

ip_address:=-1;

try

if hostname='' then

begin (* no host given! *)

lookup_hostname:=ip_address;

EXIT;

end

else

begin

ip_address:=Winsock.Inet_Addr(PChar(hostname)); (* try a xxx.xxx.xxx.xx first *)

if ip_address=SOCKET_ERROR then begin

RemoteHost:=Winsock.GetHostByName(PChar(hostname));

if (RemoteHost=NIL) or (RemoteHost^.h_length=0) then

begin

lookup_hostname:=ip_address;

EXIT; (* host not found *)

end

else

ip_address:=longint(pointer(RemoteHost^.h_addr_list^)^);

end;

end;

except

ip_address:=-1;

end;

lookup_hostname:=ip_address;

end;

procedure TFOrm1.DspMsg(msg: string);

begin

memo1.Lines.Add(msg+'...');

if Memo1.Lines.Count200 then Memo1.Lines.Delete(0);

end;

procedure TForm1.SockEvent(var msg : tmessage); // 处理 socket 消息

begin

case msg.LParam of

FD_READ: begin // 标识可以读数据 ,当然肯定已经链接上了

dspmsg(' 可以读取数据 ');

//do what you want do

end;

FD_WRITE: begin

dspmsg(' 可以发送数据 ');

//do what you want do

end;

FD_ERROR: begin

dspmsg(' 发生错误 ');

// 如果你是客户端 ,则应该是连接不上 ,即端口没有开

end;

FD_CLOSE: Begin

dspmsg(' 服务器断开连接 ');

// 对方关闭连接

end;

FD_CONNECT: begin

dspmsg(' 连结上服务器 ');

// 表示对方端口开放

end;

FD_ACCEPT: begin

dspmsg(' 接收一个请求 ');

// 这个消息只有服务端可能出现

end;

end;

end;

procedure TForm1.FormCreate(Sender: TObject);

var wsaData:TwsaData;

begin // 启动 winsock 动态链接库

if WSAStartup (makeword(2,2), wsaData)0 then begin

messagebox(application.handle,' 无法启动 winsock 动态连接库 !',' 警告 ',MB_OK or MB_APPLMODAL or MB_ICONWARNING);

Application.Terminate;

end;

end;

procedure TForm1.FormDestroy(Sender: TObject);

begin // 关闭 dll

WSACleanup;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

Sockhd := socket(AF_INET,SOCK_STREAM,0); // 创建 socket 句柄

if Sockhd0 then begin

messagebox(application.handle,' 无法创建句柄 !',' 警告 ',MB_OK or MB_APPLMODAL or MB_ICONWARNING);

exit;

end;

Serv_addr.sin_addr.s_addr:= lookup_hostname(edit1.Text); // 主机名

Serv_addr.sin_family := PF_INET;

Serv_addr.sin_port := htons(23); //any port you want to connect

if WSAAsyncSelect(Sockhd,Form1.handle,WM_SOCKET,FD_ACCEPT or FD_CONNECT or FD_CLOSE or FD_READ or FD_WRITE)=SOCKET_ERROR

then begin

messagebox(application.handle,' 无法创建句柄 !',' 警告 ',MB_OK or MB_APPLMODAL or MB_ICONWARNING);

exit;

end; // 异步 socket

connect(sockhd,serv_addr,sizeof(serv_addr)); // 连接 ,结果会在前面的处理函数处理

end;

end.

相信应该可以满足你的要求

请问如何编程区分这两种情况

最好详细一点喔 ( 我很笨的 )

如果在此地址上无主机存在 ,则发出的数据包得不到回应 ,应用程序会等待超时才

认为连接失败 ( 被 firewall 过滤时情况一样 ),若有主机但被扫描的特定端口不存在时 ,

该主机会发出目的端口不存在的应答

至于如何编程实现 ,应该可以由错误码来判断 ,在 OnError 事情中判定 ErrorCode 是多

小 ,再分别处理 ,ErrorCode 的详情参见 Help

这么高深的问题才 50 分 ,少了

端口扫描不是这么简单 ,否则大家都做

首先你扫描人家的端口会留下自己的痕迹 ,系统有日志可以察看

因此我们做端口扫描的的时候绝对不会直接连接别人 ,而是通过地层的接口编程

例如在 TCP 三次握手的第三次放弃 ,对方就不会有日志 ,这称为 sys 扫描

给对方端口发断开连接的请求称为 fin 扫描 .

通过这两种扫描方式都可以得知对方的端口是否开 ,而且不会留下痕迹 .

总之端口扫描里面有很多学问 ,不是这里可以说清除的

怎么做呀 ,如你所说的话好象要直接调用 socket api?

我现在首先关心的是我提出的问题 ,如何编程区分这两种情况 :

1 。此地址上无任何主机存在

2 。有主机但被扫描的特定端口不存在 ( 也可能是被 firewall 过滤了 )

还有 ,为什么我把 clientsocket 的 onread 里的 errorcode 设为 0 了 ,

还是常常会出现 delphi 自己的错误消息提示 ,象 10061,10057 什么的 ,

这好象是另外一种 error code,如能把它屏蔽我想就不会出现提示了 .

是吗?如果是 ,该怎么做呢。

最后 : 如果能给我一个多线程的端口扫描源码 ,我再给 100 分 ( 真的很穷啊 )

我找到了 help 里的有关说明 ( 是在索引中 Error TCP Event 里找到的 )

WinSock Error Codes

The following error codes apply to the WinSock ActiveX Controls.

Error Code Error Message

10004 The operation is canceled.

10013 The requested address is a broadcast address, but flag is not set.

10014 Invalid argument.

10022 Socket not bound, invalid address or listen is not invoked prior to accept.

10024 No more file descriptors are available, accept queue is empty.

10035 Socket is non-blocking and the specified operation will block.

10036 A blocking Winsock operation is in progress.

10037 The operation is completed. No blocking operation is in progress.

10038 The descriptor is not a socket.

10039 Destination address is required.

10040 The datagram is too large to fit into the buffer and is truncated.

10041 The specified port is the wrong type for this socket.

10042 Option unknown, or unsupported.

10043 The specified port is not supported.

10044 Socket type not supported in this address family.

10045 Socket is not a type that supports connection oriented service.

10047 Address Family is not supported.

10048 Address in use.

10049 Address is not available from the local machine.

10050 Network subsystem failed.

10051 The network cannot be reached from this host at this time.

10052 Connection has timed out when SO_KEEPALIVE is set.

10053 Connection is aborted due to timeout or other failure.

10054 The connection is reset by remote side.

10055 No buffer space is available.

10056 Socket is already connected.

10057 Socket is not connected.

10058 Socket has been shut down.

10060 The attempt to connect timed out.

10061 Connection is forcefully rejected.

10201 Socket already created for this object.

10202 Socket has not been created for this object.

11001 Authoritative answer: Host not found.

11002 Non-Authoritative answer: Host not found.

11003 Non-recoverable errors.

11004 Valid name, no data record of requested type.

我想只要对它进行有关操作就能完全屏蔽 winsocket 错误消息 ( 至少

能屏蔽很多 onerror 里的 errorcode 参数无法屏蔽的消息 )

我终于找到原因所在了

在打开 Socket 时也要捕获异常

try

ClientSocket.Open;

except

MessageBox(MainForm.Handle,'Error connecting to this address','Connect',MB_ICONEXCLAMATION);

end;

在 OnError 中最后要将 ErrorCode 置为 0

if ErrorEvent=eeConnect then

begin

Socket.Close;

MessageBox(MainForm.Handle,'Error connecting to this address','Connect',MB_ICONEXCLAMATION);

end

else if ErrorEvent=eeSend then

Socket.Close;

ErrorCode:=0;

你可能无做第一步

而这样也可以区分你所说的两种情况

1 。第二步 OnError 就是此地址上无任何主机存在 ,到超时就触发 OnError 事件

2 。第一步捕捉到异常就是有主机但被扫描的特定端口不存在

北京哪个公司做停车场管理系统

北京,停车场 管理,公司 VB001 AC售楼管理系统 VB002无纸化考试系统 VB003小区物业管理系统 VB004航空公司管理信息系统 VB005计算机机房管理系统 VB006房地产评估系统VB+SQL2000 VB007光盘信息管理系统VB+SQL VB008火车售票系统 VB009计算机等级考试管理系统VB6.0+ACECSS VB010酒店客房管理VB+SQL VB011期刊信息管理系统VB+SQL VB012书店管理系统(VB+access) VB013图书借阅管理系统 VB014合同管理系统 VB015学生公寓管理系统 VB016学生管理系统1(VB+sql) VB017医院门诊管理系统 VB018银行设备管理(VB+sql) VB019大学社团管理系统 VB020餐饮管理系统(SQL) VB021报警系统 VB022用VB开发交互式cad系统 VB023用Visual Basic 开发交互式CAD系统 VB024音像管理系统 VB025自动排课系统 VB026图书管理系统源程序(论文+代码)VB+access VB027宿舍管理系统 VB028车辆管理系统 VB029户籍管理系统 VB030人事考勤管理系统 VB031自动点歌系统 VB032教材管理系统 VB033电脑销售系统 VB034房屋租凭管理系统 VB035光盘管理系统 VB036学生档案毕业设计原代码和论文 VB037身份证管理系统 VB038个人邮件处理系统 VB039车辆管理系统 VB040计算机维修管理系统 VB041汽车美容管理系统 VB042大型机房学生上机管理系统 VB043干部档案管理系统AC VB044固定资产管理系统AC VB045兼职中介管理系统AC VB046考试分析评价系统AC VB047失业保险管理信息系统AC VB048水费管理系统AC VB049网吧计费系统AC VB050物流管理系统AC VB051学生成绩管理系统VC VB052药品公司进销售存管理系统VC VB053住院处信息管理系统VC VB054超市管理系统VC VB055科研项目管理系统VC. VB056人口登记管理系统VC VB057设备管理信息系统VC VB058学校用电收费管理系统AC VB059招生管理系统 VB060流动资金贷款业务系统 VB061社会福利保障系统 VB062机动车租赁管理系统 VB063自动出题题库系统 VB064全套建材管理销售系统 VB065 IC卡管理系统 VB066超市配送运输管理系统 VB067校园一卡通 VB068银行代扣代发工资系统 VB069工资管理系统 VB070停车场管理 VB071医院血库管理系统 VB072文档管理信息系统 VB073企业人事管理系统 VB074学校田径运动会管理系统 VB075电脑租赁系统 VB076珠宝首饰店管理系统ACCESS VB076学生交费管理系统 VB077毕业论文管理系统 VB078服装专卖店管理系统ACCESS VB079点对点聊天文件传输系统 VB080多层防火墙技术的研究-状态检测 VB081计算机高级语言多媒体教学演示系统 VB082供应链管理系统---销售子系统 VB083健身中心会员管理系统 VB084连锁店信息管理系统 VB085医疗纠纷检索系统 VB086食品公司进销存管理系统 VB087AC城市公交查询系统 VB88AC烟花爆竹经销管理 VB089商场管理系统 VB090ACCTI电话语音应答系统 VB091AC自动组卷系统 VB092酒店服务管理系统 VB092人事管理系统 VB093车间调度系统 VB094保单 VB095绩效评价系统 VB096旅游资源及线路管理系统 VB097企业投资价值分析系统 VB098网吧管理系统=网络计时管理系统 VB099计算机高级语言多媒体教学演示系统 VB100通讯录系统 VB101试题库系统 VB102汽车训练场收费系统 VB103打字系统 VB104教材管理系统 VB105简单小游戏设计 VB106工作备忘录 VB107药品供销存贮系统 VB108汽车销售系统ACCESS VB109社区人口资源管理系统设计与实现 VB110仓库管理系统 Vf VFP001学籍管理系统 VFP002超市售货管理系统VF6.0. VFP003工资管理系统 VFP004某医疗部门总务信息管理系统VF VFP005企业人事档案管理系统 VFP006基于VFP6职员信息管理系统 VF007教师信息管理系统 VFP008党员管理系统 VFP009企业考勤管理系统 VFP010汽车销售系统 VFP011人力资源系统 VFP012现代物流企业管理系统C VFP013学生办证管理系统 VFP014学生管理系统 VFP015学生综合素质管理系统 VFP016员工培训管理系统 VFP017小说租阅管理系统 VFP018药品销售系统 VFP019航空售票模拟系统的设计与实现 VFP020学生档案管理6.0 VFP021商业汇票(支票管理) VFP022家政服务管理系统 VFP023成本费用计算系统 VFP024航班信息查询系统 VFP025房屋按揭贷款管理系统 VFP026成绩计算 VFP027银行帐目管理系统 VFP028病房管理系统 VFP029工程预算系统 VFP030客房收费 VFP031模拟电话资费系统 VFP032空调售后服务系统 VFP033教学设备管理系统 VFP034邮政编码系统 VFP035个人理财系统 VFP036图书租赁管理系统 VFP037工资查询系统 VFP038资料信息管理系统 VFP039电脑公司财务管理系统 VC VC001游戏程序设计(五子棋) VC002题库管理系统 VC003局域网即时聊天程序的设计与实现 VC004人脸识别系统设计 VC005指纹识别系统 VC00624点游戏的开发和实现 VC007中国象棋软件 VC008可视化图像处理系统 C#.net 网络办公助理 网上选课系统C#.NET.SQL2000 网上选课系统C#+SQL 用socket实现局域网办公助理 销售情况,会员卡再发行数据生成 教务信息管理系统的设计与实现 高校学生宿舍管理系统的设计与实现 网络商店销售管理系统的设计与实现 商品分类,交易状况统计 猜数游戏的设计与开发 仓库货物管理系统的设计与实现 长途汽车信息管理系统的设计与实现 超市收费系统的设计与实现 大随机数生成器算法的研究与实现 大型中断接口器件的功能演示的可视化设计 大学生德育工程思想道德评价系统的开发与实现 asp+SQL Sever2000 大学英语疑难解答系统的设计与实现 asp+SQL Sever2000 代理服务器测试程序的设计与实现 档案管理系统的设计与实现 迪迪毛绒玩具厂网站设计与实现 asp.NET+ Oracle 9i 第二代木马的研究与实现. 电子论坛系统 电子商城——电子购物系统的设计与实现 asp.NET+SQL Sever2000 动态口令认证的网上选课系统的设计与实现 端口扫描与检测技术的实现 端口信息工具的设计与实现 多多超市管理系统 Power Builder+SQL Sever2000 多功能聊天软件的设计与开发——文字聊天文件传输模块 多功能聊天软件的设计与开发——音频视频聊天模块 多时区时钟软件的设计与实现 多线程的TCP端口扫描程序的设计与实现 多线程断点续传下载软件的研究和开发 JAVA 二手房租售管理系统的设计与实现 Delphi +SQL server 2000 反弹端口木马的设计与实现 分形图形绘图软件的设计与实现 VB+Access 服装连锁店管理系统的设计与开发 港城房地产网站的设计与实现 asp+SQL Sever2000 港城房地产虚拟样板房展示系统的设计与实现 Virtools Dev3.5+ 3DMAX8.0 高校化学实验室信息管理系统 Power Builder+SQL Sever2000 高校教师教学文档管理系统的设计与实现 Delphi +SQL server 2000 高校网上教材征订系统的设计与实现 高校校医院管理信息系统的设计与实现 asp.NET+SQL Sever2000 高校学生工作管理系统的设计与开发 个人日志系统的设计与实现 工资管理系统的设计与实现 公交车管理系统的实现与设计 公交路线查询系统的设计和实现 公司内部管理系统——工资及报销管理子系统的设计与实现 VB.NET+SQL Sever2000 公司员工考勤管理信息系统的设计与实现 PowerBuilder 公文管理系统的设计与实现 购物中心物流管理系统设计与实现 广告管理程序 asp.NET+SQL 国家公路交通GPS导航可视化系统的研究和实现 VC+++SQL Sever2000 国民经济高原工程高原病防控系统的研究与实现 asp.NET+SQL Sever2000 国内传染病疫情分布预报系统的研究与实现 asp.NET+SQL Sever2000 航空公司管理信息系统 论文格式化系统——后台模块的设计与实现 互联网论坛监测系统的设计与实现 华宏科技股份公司库存管理系统 asp.NET+SQL Sever2000 华夏文化交流平台的设计与实现 会计电算化系统的设计与实现——财务管理子系统 会务管理系统的研究与开发 (会场设施管理、会议管理、公告管理) JSP+SQL Server 2000 会务管理系统的研究与开发 (用户管理、 在线会议、系统管理) JSP+SQL Server 2000 货运信息网的设计开发 asp.NET+SQL Sever2000 机房监控系统的设计与实现 机主留言在“全时通”系统上的实现 积分点更新生成以及通票回收处理 基于.NET的城市公交查询系统的设计与实现 基于.NET的电子商务网站的设计 asp.NET+SQL Server 2000 基于.NET的房屋销售信息管理系统的设计与实现 基于.NET的工资绩效管理系统的开发 基于.NET的公务员考试模拟系统的设计 基于.NET的火车联网售票系统的设计 基于.NET的驾校理论考试模拟系统 基于.NET的酒店预订信息管理系统的设计 基于.NET的门诊药品查询系统的设计与实现 基于.net的内部邮件系统实现 基于.NET的企业内部办公系统的设计与实现 asp.NET+SQL Sever2000 基于.NET的视频点播系统的设计与实现 asp.NET+SQL Sever2000 基于.NET的数据共享网站的设计 基于.NET的网上购物系统的设计与实现 基于.NET的网上售书系统的设计与实现 基于.NET的网上图书销售系统的设计与实现 基于.net电子相册的开发 基于.NET技术的猎头公司管理软件的设计与实现——内部事务部分 基于.NET技术的猎头公司管理软件的设计与实现——外部事务部分 基于.net企业订单管理系统的开发 基于Ajax+Lucene构建搜索引擎的设计和实现 基于Apriori算法的关联规则挖掘系统的设计与实现 基于asp.NET的班级风采网站的设计 基于asp.NET的公司网站的设计与实现 基于ASP.NET的企业网站的研究与开发 asp.NET+SQL Sever2000 基于ASP.NET的网上书店的设计与实现 asp.NET+SQL Sever2000 基于ASP.NET的校友录管理系统的研究与实现 asp.NET+SQL Sever2000 基于ASP.NET的学生成绩报表系统的设计与实现 asp.NET+SQL Sever2000 基于ASP.NET的学生成绩管理系统的设计与实现 asp.NET+SQL Sever2000 基于ASP.NET的学生成绩合成系统的设计与实现 asp.NET+SQL Sever2000 基于asp.NET简易博客网站的设计与实现 基于asp.NET教学辅助系统设计与实现 基于asp的笔记本销售网站的设计与实现 基于ASP的博客网站设计与实现 asp+Access 基于asp的反垃圾邮件管理系统的设计 基于asp的房屋租售信息管理系统的设计 基于asp的公交查询系统的设计与实现 基于ASP的淮工学生购物网的设计与实现 asp+SQL Sever2000 基于asp的旅游网站的设计与实现 基于asp的某学校校园BBS的设计与实现 基于asp的企业人事管理系统的设计与实现 基于asp的搜索引擎开发 基于asp的网络聊天室的设计和实现 基于asp的学生信息管理系统的设计与实现 基于asp技术的电子产品销售网站的设计与实现 基于asp网站的安全性研究与实现 基于BS的工艺品展示系统的设计与实现 基于BS的计算机等级考试系统的设计与实现 基于BS的家教交流平台的实现 基于BS的人才交流网站的设计与实现 基于BS的图书销售管理系统的设计与实现

求:网络端口扫描器的算法

闪电1.0 是一个多线程的端口扫描工具,用于进行狂速端口扫描。它具有极快的速度 和方便友好的操作界面,能快速地对大网段范围进行 Connect方式端口扫描。同时具有获取端口标识的功能,可以用来快速地获取端口标识(Banner),能对80端口标识进行特别处理,能方便地获取Web Server类型。当扫描到木马程序端口时,可以提示常见木马。 主要功能如下 ( 1) 发现因特网上的一个网络或者一台主机。 (2) 一旦发现一台主机,就能扫描到开放端口号和提供的服务, 能对常见木马端口返回标识。 (3)可以进行域名正向解析和反向解析。 (4)可以获取局域网在线主机的MAC地址和主机名。 (5)提供了基于窗口Ping功能和局域网信使服务。 (6)可以获取本机网络配制相关信息,如本机IP, 子网掩码,MAC地址,网卡类型和网关IP和DNS的IP。

你可以到 去下载

x-scan 是怎么用的?

X-Scan

是一个很好的扫描工具。但是你想进入别人的电脑,光靠他是不行的,你得有个侵入工具,还需要做了免杀的木马。

分析X-Scan,写出它的使用方法以及配置方法,同时抓包分析其扫描原理。如果有兴趣分析一下其脚本

一. 系统要求:Windows NT/2000/XP/2003

理论上可运行于Windows NT系列操作系统,推荐运行于Windows 2000以上的Server版Windows系统。

二. 功能简介:

采用多线程方式对指定IP地址段(或单机)进行安全漏洞检测,支持插件功能。扫描内容包括:远程服务类型、操作系统类型及版本,各种弱口令漏洞、后门、应用服务漏洞、网络设备漏洞、拒绝服务漏洞等二十几个大类。对于多数已知漏洞,我们给出了相应的漏洞描述、解决方案及详细描述链接,其它漏洞资料正在进一步整理完善中,您也可以通过本站的“安全文摘”和“安全漏洞”栏目查阅相关说明。

3.0及后续版本提供了简单的插件开发包,便于有编程基础的朋友自己编写或将其他调试通过的代码修改为X-Scan插件。另外Nessus攻击脚本的翻译工作已经开始,欢迎所有对网络安全感兴趣的朋友参与。需要“Nessus攻击脚本引擎”源代码、X-Scan插件SDK、示例插件源代码或愿意参与脚本翻译工作的朋友,可通过本站“X-Scan”项目链接获取详细资料:“”。

三. 所需文件:

xscan_gui.exe -- X-Scan图形界面主程序

checkhost.dat -- 插件调度主程序

update.exe -- 在线升级主程序

*.dll -- 主程序所需动态链接库

使用说明.txt -- X-Scan使用说明

/dat/language.ini -- 多语言配置文件,可通过设置“LANGUAGE\SELECTED”项进行语言切换

/dat/language.* -- 多语言数据文件

/dat/config.ini -- 当前配置文件,用于保存当前使用的所有设置

/dat/*.cfg -- 用户自定义配置文件

/dat/*.dic -- 用户名/密码字典文件,用于检测弱口令用户

/plugins -- 用于存放所有插件(后缀名为.xpn)

/scripts -- 用于存放所有NASL脚本(后缀名为.nasl)

/scripts/desc -- 用于存放所有NASL脚本多语言描述(后缀名为.desc)

/scripts/cache -- 用于缓存所有NASL脚本信息,以便加快扫描速度(该目录可删除)

四. 准备工作:

X-Scan是完全免费软件,无需注册,无需安装(解压缩即可运行,自动检查并安装WinPCap驱动程序)。若已经安装的WinPCap驱动程序版本不正确,请通过主窗口菜单的“工具”-“Install WinPCap”重新安装“WinPCap 3.1 beta4”或另行安装更高版本。

五. 图形界面设置项说明:

“检测范围”模块:

“指定IP范围” - 可以输入独立IP地址或域名,也可输入以“-”和“,”分隔的IP范围,如“192.168.0.1-20,192.168.1.10-192.168.1.254”,或类似“192.168.100.1/24”的掩码格式。

“从文件中获取主机列表” - 选中该复选框将从文件中读取待检测主机地址,文件格式应为纯文本,每一行可包含独立IP或域名,也可包含以“-”和“,”分隔的IP范围。

“全局设置”模块:

“扫描模块”项 - 选择本次扫描需要加载的插件。

“并发扫描”项 - 设置并发扫描的主机和并发线程数,也可以单独为每个主机的各个插件设置最大线程数。

“网络设置”项 - 设置适合的网络适配器,若找不到网络适配器,请重新安装WinPCap 3.1 beta4以上版本驱动。

“扫描报告”项 - 扫描结束后生成的报告文件名,保存在LOG目录下。扫描报告目前支持TXT、HTML和XML三种格式。

“其他设置”项:

“跳过没有响应的主机” - 若目标主机不响应ICMP ECHO及TCP SYN报文,X-Scan将跳过对该主机的检测。

“无条件扫描” - 如标题所述

“跳过没有检测到开放端口的主机” - 若在用户指定的TCP端口范围内没有发现开放端口,将跳过对该主机的后续检测。

“使用NMAP判断远程操作系统” - X-Scan使用SNMP、NETBIOS和NMAP综合判断远程操作系统类型,若NMAP频繁出错,可关闭该选项。

“显示详细信息” - 主要用于调试,平时不推荐使用该选项。

“插件设置”模块:

该模块包含针对各个插件的单独设置,如“端口扫描”插件的端口范围设置、各弱口令插件的用户名/密码字典设置等。

六. 常见问题解答:

Q:如果没有安装WinPCap驱动程序是否能正常使用X-Scan进行扫描?

A:如果系统未安装WinPCap驱动,X-Scan启动后会自动安装WinPCap 3.1;如果系统已经安装了WinPCap更高版本,X-Scan则使用已有版本。

Q:扫描一个子网,进程里同时出现10个checkhost.exe的进程是什么原因?

A:检测每个主机都会单独起一个Checkhost.exe进程,检测完毕会自动退出。并发主机数量可以通过图形界面的设置窗口设定,命令行程序通过“-t”参数设定。

Q:扫描过程中机器突然蓝屏重启是什么原因?

A:扫描过程中系统蓝屏是有可能的,AtGuard、天网等防火墙的驱动程序在处理特殊包的时候有可能出错导致系统崩溃,另外很多防火墙驱动与WinPCap驱动本身也存在冲突,建议先禁止或卸载防火墙程序再试试。

Q:操作系统识别不正确是什么原因?

A:操作系统识别方面确实不能保证100%的准确率,目前是综合NMAP、P0F的指纹库、NETBIOS信息和SNMP信息进行识别,如果目标机器没有开放NETBIOS和SNMP协议,TCP/IP堆栈指纹也不在数据库中,就需要使用者根据其他信息综合分析了。

Q:为什么在一次扫描中我选择了“SYN”方式进行端口扫描,但X-Scan实际采用的是“TCP”方式,而且也没有被动识别出目标操作系统?

A:端口扫描中的“SYN”方式在NT4或XP+SP2系统下无法使用,在windows 2000等系统下使用时必须拥有管理员权限,否则将自动改用“TCP”方式进行端口扫描。

Q:新版本是否兼容2.3版本的插件?

A:X-Scan 3.0以上版本的插件接口做了少量修改,不兼容2.3以前版本的插件,需要原作者做相应修改。3.0以上版本提供了简单的开发库,插件开发方面要比2.3版本轻松许多。

Q:我看到Scripts目录下有很多nessus的脚本,是否可以自己从nessus的网站上下载最新的plugin,然后解压到scripts目录中,实现扫描最新漏洞?

A:X-Scan移植了nessus的nasl引擎,目前对应于nessus2.2.4,但不包含对本地检测脚本的支持。所以只要是这个版本nessus支持的非本地检测脚本,都可以复制到Scripts目录下加载。

Q:X-Scan中各项弱口令插件检测范围都很有限,能否自己加入其他需要检测的帐号或口令?

A:在“X-Scan”中内置的密码字典仅为简单示范,使用者如果希望软件有更强的密码猜解能力,可以自己编辑密码字典文件。

Q:为什么nasl脚本扫描结果中存在大量英文,将来有没有可能会对这些英文信息进行汉化?

A:目前已有将近2000个NASL脚本,里面的描述信息大都是英文,需要翻译的内容可以在本站“焦点项目”中的X-Scan下看到。欢迎大家一起帮忙翻译,通过审核后会直接加入在线升级库供大家下载。

Q:用xscan.exe在命令行方式下进行扫描时,如何暂停或终止扫描?

A:命令行方式检测过程中,按“[空格]”键可查看各线程状态及扫描进度,按“[回车]”可暂停或继续扫描,按“q”键可保存当前数据后提前退出程序,按“ctrl+c”强行关闭程序。

Q:X-Scan如何安装,是否需要注册?

A:X-Scan是完全免费软件,无需注册,无需安装(解压缩即可运行,自动安装WinPCap驱动)。

七. 版本发布:

X-Scan v3.3 -- 发布日期:07/18/2005,优化主程序及NASL库;修正已知BUG;更新攻击测试脚本及中文描述。

感谢wlj、killer、coolc协助测试,感谢通过各种方式提供反馈信息及建议的朋友。

X-Scan v3.2 -- 发布日期:04/08/2005,升级NASL库,优化主程序及NASL库;增加HTTP/TELNET/SSH/VNC/CVS/IMAP等弱口令检测插件;修正已知BUG。

感谢wlj提供大量改进建议及相关资料,感谢安全焦点全体成员和coolc、killer等朋友协助测试。

X-Scan v3.1 -- 发布日期:03/25/2004,修改“存活主机”插件,加入2.3版本中SNMP、NETBIOS插件,优化主程序及NASL库。

X-Scan v3.02 -- 发布日期:03/08/2004,“WinPCap 3.1 beta”中存在BUG,可能导致CheckHost.exe异常。X-Scan中改用“WinPCap 2.3”,建议卸载“WinPCap 3.1 beta”后再使用X-Scan进行扫描。

X-Scan v3.0 -- 发布日期:03/01/2004,修正beta版本中已知BUG,对主程序及所有插件进行优化,升级NASL库,支持2.0.10a版本以前的所有NASL脚本;提供简单的开发包方便其他朋友共同开发插件;其他插件正在开发中。

感谢悟休、quack帮忙精选nasl脚本列表,感谢san为支持X-Scan项目编写相关页面程序。再次感谢安全焦点论坛上所有提供优秀思路和协助测试的朋友们。

X-Scan v3.0(beta) -- 发布日期:12/30/2003,对主程序结构进行调整,加入移植的NASL插件,支持2.0.9版本以前的所有NASL脚本;对插件接口做少量修改,方便由其他朋友共同开发插件;对远程操作系统识别功能进行了加强,并去掉了一些可由脚本完成的插件。

感谢isno和Enfis提供优秀插件,感谢悟休、quack帮忙精选nasl脚本列表,也感谢其他提供优秀思路和协助测试的朋友。

X-Scan v2.3 -- 发布日期:09/29/2002,新增SSL插件,用于检测SSL漏洞;升级PORT、HTTP、IIS插件;升级图形界面并对界面风格作细微调整。

感谢ilsy提供优秀插件。

X-Scan v2.2 -- 发布日期:09/12/2002,修正PORT插件中线程同步BUG;修正RPC插件字符显示BUG;扩充RPC漏洞数据库;调整扫描结果索引文件风格。

感谢xundi、quack、stardust搜集并整理漏洞数据库。

X-Scan v2.1 -- 发布日期:09/08/2002,将SNMP插件扫描项目改为可选;将HTTP、IIS、RPC插件中的“漏洞描述”链接到xundi整理的漏洞数据库;修正2.0以前版本中已知BUG。

X-Scan v2.0 -- 发布日期:08/07/2002,新增路由信息检测、SNMP信息检测插件;升级NETBIOS插件,新增远程注册表信息检测;升级IIS插件,新增对IIS.ASP漏洞的检测;对插件接口做细微修改;更新图形界面,新增“在线升级”功能;扩充CGI漏洞数据库;修正1.3以前版本中已知BUG。

感谢quack、stardust、sinister、ilsy、santa、bingle、casper提供宝贵资料或优秀插件,感谢san、xundi、e4gle协助测试,也感谢所有来信反馈和提出建议的热心朋友。

X-Scan v1.3 -- 发布日期:12/11/2001,修正PORT插件中关于远程操作系统识别的BUG。

X-Scan v1.2 -- 发布日期:12/02/2001,升级HTTP、IIS插件,新增对HTTP重定向错误页面识别功能;升级PORT插件,在无法创建Raw Socket时改为使用标准TCP连接方式检测开放端口。

X-Scan v1.1 -- 发布日期:11/25/2001,将所有检测功能移入插件,使主程序完全成为“容器”;提供多语言支持;更新图形接口程序;修改多线程模式,所有插件共享最大线程数量,提高并发检测速度;新增SMTP、POP3弱口令用户检测;新增IIS UTF-Code漏洞检测;扩充CGI漏洞列表。

感谢xundi、quack、casper、wollf、黄承等朋友提供的宝贵资料,感谢echo、力立等朋友协助测试,再次向付出了重体力劳动的xundi和quack致谢,涕零.....

X-Scan v1.0(beta) -- 发布日期:07/12/2001,新增对远程操作系统类型及版本识别功能;新增对远程主机地理位置查询功能;在“-iis”选项中,新增对IIS “.ida/.idq”漏洞的扫描,同时更新漏洞描述;在“-port”参数中,允许指定扫描的端口范围(通过修改“dat\config.ini”文件中的“[PORT-LIST]\port=”);在“-ntpass”参数中,允许用户在编辑密码字典时通过“%”通配所有用户名;更新CGI漏洞列表,并对CGI漏洞进行分类,以便根据远程主机系统类型扫描特定CGI漏洞,加快扫描速度。

感谢“天眼”软件作者--watercloud提供“被动识别远程操作系统”模块;感谢“追捕”软件作者--冯志宏提供“IP-地理位置”数据库;感谢quack提供漏洞资料、程序资料、无数有价值的建议还有感情和......

X-Scanner v0.61 -- 发布日期:05/17/2001,在“-iis”选项中新增对IIS CGI文件名二次解码漏洞的检测。

X-Scanner v0.6 -- 发布日期:05/15/2001,新增“-iis”参数,专门用于扫描IIS服务器的“unicode”及“remote .printer overflow”漏洞;更新漏洞描述;调整CGI扫描的超时时间,尽量避免因超时导致的“扫描未完成”情况出现;为避免“RedV”插件被恶意利用,将自动更换主页功能改为自动向“C:\”目录上传包含警告信息的文本文件。

X-Scanner v0.5 -- 发布日期:04/30/2001,修改了命令行参数,使参数含义更加直观;扩充CGI漏洞数据库;对NT弱口令扫描功能进行扩充--允许用户使用用户名及密码字典;增加插件功能,并公布插件接口。

感谢“santa”和“老鬼(colossus)”提供插件。

X-Scanner v0.42b -- 发布日期:03/07/2001,修正了“-b”选项在特定情况导致系统overflow的BUG。

X-Scanner v0.42 -- 发布日期:03/02/2001,允许用户对SQL-SERVER帐户进行扩充,而不局限于扫描“sa”空口令。

X-Scanner v0.41 -- 发布日期:02/19/2001,修正了以前版本中对FTP弱口令检测的BUG;重新优化代码,将xscan.exe与xscan98合二为一。

X-Scanner v0.4 -- 发布日期:02/15/2001,加入对SQL-SERVER默认“sa”帐户的扫描;在充分认识了某些人的惰性之后,临时制作了傻瓜式图形界面(一切操作按序号点击即可)。

X-Scanner v0.31 -- 发布日期:01/17/2001,对端口扫描方式和输出文件的格式做了细微调整;对Unicode解码漏洞进行了扩充;提供了for win98的版本和一个简单的CGI列表维护工具。

X-Scanner v0.3 -- 发布日期:12/27/2000,加入线程超时限制;增加代理功能;扩充CGI漏洞数据库,加入对Unicode解码等漏洞的检测及描述;修正内存泄露问题。内部测试版。

X-Scanner v0.2 -- 发布日期:12/12/2000,内部测试

0条大神的评论

发表评论