fscan:一键自动化、全方位漏洞扫描的开源工具
fscan 是一个内网综合扫描工具,方便一键自动化、全方位漏洞扫描。
它支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写公钥、计划任务反弹shell、读取win网卡信息、web指纹识别、web漏洞扫描、netbios探测、域控识别等功能。
源码链接:
1.信息搜集:
2.爆破功能:
3.系统信息、漏洞扫描:
4.Web探测功能:
5.漏洞利用:
6.其他功能:
简单用法
其他用法
编译命令
完整参数
这个项目的开发者参考的开源项目有这些:
怎么制作一个BAT的端口扫描器
@echo off
setlocal enabledelayedexpansion
title 端口扫描器 by 风旋碧浪
color 4fMODE con: COLS=50 LINES=12
echo.echo 开始扫描,需要时间,请稍候……
(echo.echo 端口号 进程名称
echo.echo TCP协议: )端口查看.txt
echo.echo 正在扫描TCP协议……
for /f "skip=4 tokens=2,5" %%a in ('netstat -ano -p TCP') do (
for /f "tokens=2 delims=:" %%A in ("%%a") do set TCP端口=%%A
for /f "skip=2 delims=, tokens=1" %%A in ('tasklist /fi "PID eq %%b" /FO CSV') do set TCP进程=%%~A
echo !TCP端口! !TCP进程!端口查看.txt
)
echo UDP协议: 端口查看.txt
echo.echo 正在扫描UDP协议……
for /f "skip=4 tokens=2,4" %%a in ('netstat -ano -p UDP') do (
for /f "tokens=2 delims=:" %%A in ("%%a") do set UDP端口=%%A
for /f "skip=2 delims=, tokens=1" %%A in ('tasklist /fi "PID eq %%b" /FO CSV') do set UDP进程=%%~A
echo !UDP端口! !UDP进程!端口查看.txt
)
echo.echo.echo 扫描结束!请查看《端口查看.txt》文件!
pausenul
Python 实现端口扫描
一、常见端口扫描的原理
0、秘密扫描
秘密扫描是一种不被审计工具所检测的扫描技术。
它通常用于在通过普通的防火墙或路由器的筛选(filtering)时隐藏自己。
秘密扫描能躲避IDS、防火墙、包过滤器和日志审计,从而获取目标端口的开放或关闭的信息。由于没有包含TCP 3次握手协议的任何部分,所以无法被记录下来,比半连接扫描更为隐蔽。
但是这种扫描的缺点是扫描结果的不可靠性会增加,而且扫描主机也需要自己构造IP包。现有的秘密扫描有TCP FIN扫描、TCP ACK扫描、NULL扫描、XMAS扫描和SYN/ACK扫描等。
1、Connect()扫描
此扫描试图与每一个TCP端口进行“三次握手”通信。如果能够成功建立接连,则证明端口开发,否则为关闭。准确度很高,但是最容易被防火墙和IDS检测到,并且在目标主机的日志中会记录大量的连接请求以及错误信息。
TCP connect端口扫描服务端与客户端建立连接成功(目标端口开放)的过程:
① Client端发送SYN;
② Server端返回SYN/ACK,表明端口开放;
③ Client端返回ACK,表明连接已建立;
④ Client端主动断开连接。
建立连接成功(目标端口开放)
TCP connect端口扫描服务端与客户端未建立连接成功(目标端口关闭)过程:
① Client端发送SYN;
② Server端返回RST/ACK,表明端口未开放。
优点:实现简单,对操作者的权限没有严格要求(有些类型的端口扫描需要操作者具有root权限),系统中的任何用户都有权力使用这个调用,而且如果想要得到从目标端口返回banners信息,也只能采用这一方法。
另一优点是扫描速度快。如果对每个目标端口以线性的方式,使用单独的connect()调用,可以通过同时打开多个套接字,从而加速扫描。
缺点:是会在目标主机的日志记录中留下痕迹,易被发现,并且数据包会被过滤掉。目标主机的logs文件会显示一连串的连接和连接出错的服务信息,并且能很快地使它关闭。
2、SYN扫描
扫描器向目标主机的一个端口发送请求连接的SYN包,扫描器在收到SYN/ACK后,不是发送的ACK应答而是发送RST包请求断开连接。这样,三次握手就没有完成,无法建立正常的TCP连接,因此,这次扫描就不会被记录到系统日志中。这种扫描技术一般不会在目标主机上留下扫描痕迹。但是,这种扫描需要有root权限。
·端口开放:(1)Client发送SYN;(2)Server端发送SYN/ACK;(3)Client发送RST断开(只需要前两步就可以判断端口开放)
·端口关闭:(1)Client发送SYN;(2)Server端回复RST(表示端口关闭)
优点:SYN扫描要比TCP Connect()扫描隐蔽一些,SYN仅仅需要发送初始的SYN数据包给目标主机,如果端口开放,则相应SYN-ACK数据包;如果关闭,则响应RST数据包;
3、NULL扫描
反向扫描—-原理是将一个没有设置任何标志位的数据包发送给TCP端口,在正常的通信中至少要设置一个标志位,根据FRC 793的要求,在端口关闭的情况下,若收到一个没有设置标志位的数据字段,那么主机应该舍弃这个分段,并发送一个RST数据包,否则不会响应发起扫描的客户端计算机。也就是说,如果TCP端口处于关闭则响应一个RST数据包,若处于开放则无相应。但是应该知道理由NULL扫描要求所有的主机都符合RFC 793规定,但是windows系统主机不遵从RFC 793标准,且只要收到没有设置任何标志位的数据包时,不管端口是处于开放还是关闭都响应一个RST数据包。但是基于Unix(*nix,如Linux)遵从RFC 793标准,所以可以用NULL扫描。 经过上面的分析,我们知道NULL可以辨别某台主机运行的操作系统是什么操作系统。
端口开放:Client发送Null,server没有响应
端口关闭:(1)Client发送NUll;(2)Server回复RST
说明:Null扫描和前面的TCP Connect()和SYN的判断条件正好相反。在前两种扫描中,有响应数据包的表示端口开放,但在NUll扫描中,收到响应数据包表示端口关闭。反向扫描比前两种隐蔽性高些,当精确度也相对低一些。
用途:判断是否为Windows系统还是Linux。
4、FIN扫描
与NULL有点类似,只是FIN为指示TCP会话结束,在FIN扫描中一个设置了FIN位的数据包被发送后,若响应RST数据包,则表示端口关闭,没有响应则表示开放。此类扫描同样不能准确判断windows系统上端口开发情况。
·端口开放:发送FIN,没有响应
·端口关闭:(1)发送FIN;(2)回复RST
5、ACK扫描
扫描主机向目标主机发送ACK数据包。根据返回的RST数据包有两种方法可以得到端口的信息。方法一是: 若返回的RST数据包的TTL值小于或等于64,则端口开放,反之端口关闭。
6、Xmas-Tree扫描
通过发送带有下列标志位的tcp数据包。
·URG:指示数据时紧急数据,应立即处理。
·PSH:强制将数据压入缓冲区。
·FIN:在结束TCP会话时使用。
正常情况下,三个标志位不能被同时设置,但在此种扫描中可以用来判断哪些端口关闭还是开放,与上面的反向扫描情况相同,依然不能判断windows平台上的端口。
·端口开放:发送URG/PSH/FIN,没有响应
·端口关闭:(1)发送URG/PSH/FIN,没有响应;(2)响应RST
XMAS扫描原理和NULL扫描的类似,将TCP数据包中的ACK、FIN、RST、SYN、URG、PSH标志位置1后发送给目标主机。在目标端口开放的情况下,目标主机将不返回任何信息。
7、Dump扫描
也被称为Idle扫描或反向扫描,在扫描主机时应用了第三方僵尸计算机扫描。由僵尸主机向目标主机发送SYN包。目标主机端口开发时回应SYN|ACK,关闭时返回RST,僵尸主机对SYN|ACK回应RST,对RST不做回应。从僵尸主机上进行扫描时,进行的是一个从本地计算机到僵尸主机的、连续的ping操作。查看僵尸主机返回的Echo响应的ID字段,能确定目标主机上哪些端口是开放的还是关闭的。
二、Python 代码实现
1、利用Python的Socket包中的connect方法,直接对目标IP和端口进行连接并且尝试返回结果,而无需自己构建SYN包。
2、对IP端口进行多线程扫描,注意的是不同的电脑不同的CPU每次最多创建的线程是不一样的,如果创建过多可能会报错,需要根据自己电脑情况修改每次扫描的个数或者将seelp的时间加长都可以。
看完了吗?感觉动手操作一下把!
python学习网,免费的在线学习python平台,欢迎关注!
本文转自:
在unix环境下常用的端口扫描工具是
InternetScanner。在unix环境下常用的端口扫描工具是InternetScanner,它容易配置,扫描速度快,并且能产生综合报告。InternetScanner是可得到的最快和功能最全的安全扫描工具,用于UNIX和WindowsNT。
什么是端口扫描器?它有什么作用?
s 扫描器是一款命令行下高速扫描利器,通过最新的瑞星杀毒软件测试
命令: s.exe syn ip1 ip2 端口号 /save
s.exe tcp ip1 ip2 端口号 线程数 /save
s.exe扫描器的使用说明
首先我解释下什么是S扫描器,S扫描器是针对微软ms04045漏洞出的一个扫描,原来作者出这东西
的目的是为了扫描这个漏洞,但现在已经变成我们黑客手中的兵器了,大家也许看过很多如何找肉鸡的
动画或刷QB的动画,那些动画里面很多都是用S扫描器来扫描肉鸡或别人电脑所开放的端口及一些漏洞,
都用这工具的好处是它的扫描速度实在是一个字---强! 今天我就来教下大家如何使用S扫描器。
简单说明下它的用处:
S扫描器是一个简单的使用两种常用的扫描方式进行端口扫描的端口扫描器程序.
可实现的功能是:
1.两种不同的扫描方式(SYN扫描和一般的connect扫描)
2.可以扫描单个IP或IP段所有端口
3.可以扫描单个IP或IP段单个端口
4.可以扫描单个IP或IP段用户定义的端口
5.可以显示打开端口的banner
6.可将结果写入文件
7.TCP扫描可自定义线程数
用法:scanner TCP/SYN StartIP [EndIP] Ports [Threads] [/Banner] [/Save]
参数说明:
TCP/SYN - TCP方式扫描或SYN方式扫描(SYN扫描需要在win 2k或以上系统才行),SYN扫描对本机无效
StartIP - 起始扫描的IP
EndIP - 结束扫描的IP,可选项,如果这一项没有,就只是对单个IP扫描
Ports - 可以是单个端口,连续的一段端口或非连续的端口
Threads - 使用最大线程数去扫描(SYN扫描不需要加这一项),不能超过1024线程
/Banner - 扫描端口时一并将Banner显示出来,这一选项只对TCP扫描有效
/Save - 将结果写入当前目录的Result.txt文件中去
打开S扫描器,下面我举几个例子演示下S扫描器的主要几个作用。
例子一:
S TCP 218.80.12.1 218.80.12.123 80 512
TCP扫描218.80.12.1到218.80.12.123这IP段中的80端口,最大并发线程是512
例子二:
S TCP 218.80.12.1 218.80.12.123 21,5631 512 /Banner
TCP扫描218.80.12.1到218.80.12.123这IP段中的21和5631端口,最大并发线程是512,并显示Banner
例子三:
S TCP 218.80.12.1 218.80.12.12 1-200 512
TCP扫描218.80.12.1到218.80.12.12这IP段中的1到200端口,最大并发线程是512
例子四:
S TCP 218.80.12.7 1-200 512
TCP扫描218.80.12.7这IP中的1到200端口,最大并发线程是512
例子五:
S SYN 218.80.12.7 1-65535 /Save
SYN扫描218.80.12.7这IP中的1到65535端口,将结果写入Result.txt
扫描结束后Result.txt就存放在你的S扫描器所在的目录里。刚才扫描的东西都在里面。
例子六:
S SYN 218.80.12.1 218.80.12.255 21 /Save
SYN扫描218.80.12.1到218.80.12.255这IP段中的21端口,将结果写入Result.txt
这个我重点说明一下,因为这条命令就是专门用来找肉鸡的,扫描一个IP段有没有开3389的或1433的
我示范下:S SYN 218.80.1.1 218.80.255.255 3389 /Save
注意:
1.SYN扫描是很依赖于扫描者和被扫描者的网速的,如果你是内网的系统,那你不一定可以使用SYN扫描的
,因为你的网关的类型会决定内网系统是否能进行SYN扫描.如果你的配置较低的话,我也不推荐使用
SYN扫描.SYN扫描速度是比TCP扫描的速度快很多的,但在稳定性方面却不是太好,所以自己决定使用
哪种模式进行扫描。
2.SYN扫描不需要线程那个参数,请看上面例子5和6
3.TCP扫描的最大并发线程不能超过1024.
4.使用SYN模式扫描,不能扫描Banner,具体为什么不能,请查看有关SYN的资料
5.内网用户的朋友可以用tcp扫描
关于S.exe 的用法和错误解释
S扫描器扫描命令是:
文件名 参数 起始IP 结束IP 要扫描的端口 保存
s SYN 61.0.0.0 61.255.255.255 1433 save
1433是SQL server 服务器端口
8080是代理服务器端口
站长工具 端口扫描?
一.我在家里玩游戏上网以及下载东西,从来没有被禁止过啊!所以搞不懂家用路由器上的端口映射有什么意义!答:玩游戏不需要管端口映射的问题,因为你是客户端,需要做端口映射的是服务端。二.有些说如果是在单位上网管封了端口,这个端口映射就能发挥作用了,我就奇怪了,网管把端口都封了,你还怎么映射?再映射也没用啊答:看封什么端口,如果是出口的话,就没用了。如果是入口,那么就可以用端口映射解决。三.朋友说在路由器上做了映射后,用站长工具扫描端口,会发现该端口打开了,我扫描后发现无论是映射还是不映射,扫描都是关闭的,这是怎么回事。答:因为你不了解端口映射,所以我猜测可能是你映射没成功。举例给你说明吧。你一台路由器中接了2台PC。每台都从路由器中获取一个内网IP地址。但是他们却公用同一个公网IP地址。如果两台PC都做了网站服务器,且都用80端口。因为公用外网IP只有一个,所以从外网访问的话,路由器不知道80端口到底该访问的是第一台PC还是第二台PC。所以要通过端口映射来指定其中一台PC的端口为80。仅仅是端口映射中的一个小例子,帮助楼主理解下。
0条大神的评论