java扫描局域网的端口
直接上代码:
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Date;
public class PortScanner extends Thread {
private int[] p;
Socket ss = null;
public PortScanner(int[] p) {
this.p = p;
}
public static void main(String[] args) {
for (int i = 0; i 65535; i = i + 100) {
new PortScanner(new int[] { i + 1, i + 100 }).start();
}
}
@Override
public void run() {
for (int i = p[0]; i p[1]; i++) {
try {
ss = new Socket("8.8.8.8", i);
System.out.println("扫描到端口: " + i);
} catch (Exception e) {
// System.out.println("关闭端口: " + i);
}
}
}
}
如何扫描局域网内计算机的端口?
用扫描器扫描你要的端口,只要输入局域网IP段,还有自定义端口,就可以了
端口扫描器的用法?
扫描器使用方法大家好很高兴你能进如我们的第四课!由先在起所有的课将由我来主讲,由于课程涉及
的是网络最高安全问题,所以我不得不警告各位,你要清楚的认识到你在干什么,其实
第四课的内容我们换了又换,有很多是一些攻击性很强的,我不得不CUT,所以次文才迟
迟出来!!同时我也希望进入这一课时的学友能多多的帮助其它人!
在INTERNET安全领域,扫描器可以说是黑客的基本武器,
一个好的TCP端口扫描器相当与几百个合法用户的口令及
密码是等同的,这样说一点也不过分!
1,什么是扫描器
扫描器是一种自动检测远程或本地主机安全性弱点的程序,
通过使用扫描器你可一不留痕迹的发现远程服务器的各种TCP
端口的分配及提供的服务!和它们的软件版本!这就能让我们
间接的或直观的了解到远程主机所存在的安全问题。
2,工作原理
扫描器通过选用远程TCP/IP不同的端口的服务,并记录目标
给予的回答,通过这种方法,可以搜集到很多关于目标主机的
各种有用的信息(比如:是否能用匿名登陆!是否有可写的FTP
目录,是否能用TELNET,HTTPD是用ROOT还是nobady在跑!)
3,扫描器的运行平台!
尽管大多数的工作站是用UNIX的,由于UNIX的应用软件的可移殖
性,如今的扫描器以有了支持各种平台,这一点大大方便了许多
单机的用户!但同时也带来了更多的网络安全问题,这句老话我想
大家一定是听到过很多次!------网络安全刻不容缓!!!
4,扫描器能干什么?
扫描器并不是一个直接的攻击网络漏洞的程序,它不同于第二课中
的许多NUCK程序!它仅仅能帮助我们发现目标机的某些内在的弱点
而这些现存的弱点可能是(请看清楚可能是,并非一定)破坏目标
机安全关键,但是我想说明的是对于一个刚刚入们的黑客人来说
这些数据对他来说无疑是一个毫无价值的数据集合!,而对一个
掌握和精通各种网络应用程序的漏洞的黑客来说这就不仅仅是一个简单
的数据集合!他的价值远超过几百个有用的帐号!-------知识需要
积累!!!
5,种类
1。NNS(网络安全扫描器)
用PERL编写,工作在Sunos4.1.3
进行下面的常规的扫描
Sendmail ,TFTP,匿名FTP,Hosts.equive,Xhost
增强扫描
Apple Talk,
Novell
LAN管理员网络
取得指定域的列表或报告!
用PING命令确定指定主机是否是活性的,
扫描目标机端口
报告指定地址的漏洞
你可以到这个地址下载
2.STROBE(超级优化TCP端口检测程序)
它是一个TCP端口的扫描器,能快速的识别指定机器上正运行
什么服务,
用于扫描网络漏洞
SATAN(安全管理员的网络分析工具)
扫描远程主机的许多已知的漏洞
FTPD中可写的目录
NFS
NIS
PSH
SENDMAIL
X服务
Jakal(秘密扫描器)
可以不留痕迹的扫描
IdenTCPscan
CONNECT 扫描TFTP服务器子网
ESPScan 扫描FSP服务器
XSCAN
实例扫描
或用关键字搜寻!你能了解到更多的情况!
1,UNIX平台的SAFEsuite
safesuite的组成,INTERNET,WEB,防火墙扫描!
safesuite的攻击,sendmail,FTP,NNTP,TELNET,RPC,NFS.
ISS的开发小组在最新的版本里还增设了IP欺骗和拒绝服务的攻击,用以支持对主机安全
性的分析。
可以运行的平台:Sun OS 4.1.3 up,SoLaris 2.0 up,HP/UX9.05 up,IBM AIIX 3.2.5 u
p
Linux 1.2.x,Linux1.3.x,Linux 1.3.76+
安装:
解压后拷贝到指定的目录,你可用下面的命令来解!
tar -xvf ISS_XXX.tar
运行ISS.install开始安装!
由于扫描的结果太长我就不一一写出来了!!大家可以多试试!很多有用的安全信息都
在这些扫描结果里!!通过MIT的X窗口系统标准配置运行如SAVEsuite,X窗口的管理程
序是FVWM。
Network Toolbox
用于WINDOWS 95上的TCP/IP的应用程序,
默认扫描端口是!14个TCP/IP端口,
port 9,13,21,25,,37,79,80,110,111,512,513,514,
你可以通过设置属性来改变默认的配置!!
我不知道我上述的下载地址是否还有效!但我想你可一到一些国外著名的黑客站找到你
想要的一切!!
课后作业,请把你扫描的信息告诉我们,我们将在下一课拿出一些信息来加以分析,安
全漏洞出在哪里!并对各种可能发生的漏洞加以分析!!
局域网内扫描80端口命令
2、扫锚工具:xscan.exe
基本格式
xscan -host 起始IP[-终止IP] 检测项目 [其他选项] 扫锚"起始IP到终止IP"段的所有主机信息
xscan -file 主机列表文件名 检测项目 [其他选项] 扫锚"主机IP列表文件名"中的所有主机信息
检测项目
-active 检测主机是否存活
-os 检测远程操作系统类型(通过NETBIOS和SNMP协议)
-port 检测常用服务的端口状态
-ftp 检测FTP弱口令
-p 检测FTP服务匿名用户写权限
-pop3 检测POP3-Server弱口令
-smtp 检测SMTP-Server漏洞
-sql 检测SQL-Server弱口令
-smb 检测NT-Server弱口令
-iis 检测IIS编码/解码漏洞
-cgi 检测CGI漏洞
-nasl 加载Nessus攻击脚本
-all 检测以上所有项目
其它选项
-i 适配器编号 设置网络适配器, 适配器编号可通过"-l"参数获取
-l 显示所有网络适配器
-v 显示详细扫描进度
-p 跳过没有响应的主机
-o 跳过没有检测到开放端口的主机
-t 并发线程数量,并发主机数量 指定最大并发线程数量和并发主机数量, 默认数量为100,10
-log 文件名 指定扫描报告文件名(后缀为:TXT或HTML格式的文件)
用法示例
xscan -host 192.168.1.1-192.168.255.255 -all -active -p 检测192.168.1.1-192.168.255.255网段内主机的所有漏洞,跳过无响应的主机
xscan -host 192.168.1.1-192.168.255.255 -port -smb -t 150 -o 检测192.168.1.1-192.168.255.255网段内主机的标准端口状态,NT弱口令用户,最大并发线程数量为150,跳过没有检测到开放端口的主机
xscan -file hostlist.txt -port -cgi -t 200,5 -v -o 检测“hostlist.txt”文件中列出的所有主机的标准端口状态,CGI漏洞,最大并发线程数量为200,同一时刻最多检测5台主机,显示详细检测进度,跳过没有检测到开放端口的主机
渗透测试之端口扫描
端口扫描:端口对应网络服务及应用端程序
服务端程序的漏洞通过端口攻入
发现开放的端口
更具体的攻击面
UDP端口扫描:
如果收到ICMP端口不可达,表示端口关闭
如果没有收到回包,则证明端口是开放的
和三层扫描IP刚好相反
Scapy端口开发扫描
命令:sr1(IP(dst="192.168.45.129")/UDP(dport=53),timeout=1,verbose=1)
nmap -sU 192.168.45.129
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虚拟机:192.168.45.128
Linux虚拟机:192.168.45.129
windows虚拟机:192.168.45.132
发送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 192.168.45.129 -p 80,21,110,443 #扫描固定的端口
nmap -sS 192.168.45.129 -p 1-65535 --open #扫描该IP地址下1-65535端口扫描,并只显示开放的端口
nmap -sS 192.168.45.129 -p --open #参数--open表示只显示开放的端口
nmap -sS -iL iplist.txt -p 80
由抓包可知,nmap默认使用-sS扫描,发送SYN数据包,即nmap=nmap -sS
hping3做隐蔽端口扫描:
hping3 192.168.45.129 --scan 80 -S #参数--scan后面接单个端口或者多个端口.-S表示进行SYN扫描
hping3 192.168.45.129 --scan 80,21,25,443 -S
hping3 192.168.45.129 --scan 1-65535 -S
由抓包可得:
hping3 -c 100 -S --spoof 192.168.45.200 -p ++1 192.168.45.129
参数-c表示发送数据包的数量
参数-S表示发送SYN数据包
--spoof:伪造源地址,后面接伪造的地址,
参数-p表示扫描的端口,++1表示每次端口号加1,那么就是发送SYN从端口1到端口100
最后面跟的是目标IP
通过抓包可以得知地址已伪造,但对于linux系统(192.168.45.129)来说,它收到了192.168.45.200的SYN数据包,那么就会给192.168.45.200回复SYN+ACK数据包,但该地址却是kali伪造的地址,那么要查看目标系统哪些端口开放,必须登陆地址为kali伪造的地址即(192.168.45.200)进行抓包
hping3和nmap扫描端口的区别:1,hping3结果清晰明了
2,nmap首先对IP进行DNS反向解析,如果没成功,那么便会对其端口发送数据包,默认发送SYN数据包
hping3直接向目标系统的端口发送SYN数据包,并不进行DNS反向解析
全连接端口扫描:如果单独发送SYN数据包被被过滤,那么就使用全连接端口扫描,与目标建立三次握手连接,结果是最准确的,但容易被入侵检测系统发现
response=sr1(IP(dst="192.168.45.129")/TCP(dport=80,flags="S"))
reply=sr1(IP(dst="192.168.45.129")/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 192.168.45.129 #参数-p表示执行TCP端口扫描
dmitry -p 192.168.45.129 -o output #参数-o表示把结果保存到一个文本文档中去
使用nc进行全连接端口扫描:
nc -nv -w 1 -z 192.168.45.129 1-100: 1-100表示扫描1-100号端口
参数-n表示不对Ip地址进行域名解析,只把其当IP来处理
参数-v表示显示详细信息
参数-w表示超时时间
-z表示打开用于扫描的模式
0条大神的评论