端口扫描

在收集到网络地址后,对网络中所有主机进行存活扫描与端口扫描,以此来发现内网中的服务或者可能存在的漏洞。

(1)nmap

安装好nmap软件,直接按下一步的话,会在本地的C:\Program Files (x86)下生成nmap目录,然后打开cmd,进入该目录,使用nmap -sP ip地址/子网掩码,即可对该ip网段进行扫描,主要是扫描内网ip。直接使用nmap+ip地址是对该ip地址的端口扫描,而加上-sY -p 1-6000是指对1-6000这个端口范围进行扫描,-sT是对tcp进行扫描,p针对端口。

(2)S扫描器

S.exe扫描使用的时cmd命令,S TCP 10.1.1.1 10.1.1.254 135 445时对这个ip范围内的135和445两个端口进行扫描,S TCP 10.1.1.1 10.1.1.254 1-500 500对10.1.1.1-254这个ip范围内的1-500端口范围内进行以500线程速度扫描。S TCP 10.1.1.1 1-6000 /Save,扫描10.1.1.1这IP中的1到6000端口,将结果写入Result.txt。S TCP 10.1.1.1 10.1.1.255 135 /Save,扫描10.1.1.1到10.1.1.255这IP段中的135端口,将结果写入Result.txt。

(3)proxychains代理扫描

使用kali的proxychains对这个端口进行扫描,将tunnel.aspx放到win8的web目录下,然后在kali远程打开它,打开终端进入reGeorg目录下,使用命令python reGeorgSocksProxy.py -u http://目标机的ip/tunnel.aspx对它挂代理,然后将proxychains.conf文件修改代理端口,然后挂代理使用nmap对10.1.1.1进行扫描,但是该扫描由于是socks5代理只支持tcp/udp,所以要针对性的扫描,不能使用-sp参数。

(4)nc扫描

nc进行扫描,使用命令nc -nvv -w2 -z 10.1.1.1 1-6000,不过速度太慢,一个一个端口扫的。

(5)御剑无字典大小限制版

御剑扫描端口呢,大范围扫描的时候,其中有内网ip的端口会忽略的跳过了,而且端口开放需要自己输入,不过时间够快。

(6)查找终端工具

终端检测工具,扫描时大范围扫描的,而且确确实实知道ip地址,扫描的端口过于大,速度非常慢

(7)ScanPort

工具简单易用,但是扫描端口容易不全,而且还是只能扫出开放端口。

(8)portscanruanjian

工具是有点简单,不过扫描端口只能扫出开放端口,扫不出监听端口。

(9)自写脚本

php,python,perl,ruby,java,c等程序都可以用来做端口扫描,同时还可以使用bat或者shell脚本来做扫描。
 python
 #!/usr/bin/env python
 import socket
 def get_ip_status(ip,port):
 server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 try:
 server.connect((ip,port))
 print(’{0} port {1} is open’.format(ip, port))
 except Exception as err:
 print(’{0} port {1} is not open’.format(ip,port))
 finally:
 server.close()
 if name == ‘main’:
 host = ‘10.0.0.11’
 for port in range(20,100):
 get_ip_status(host,port)
 php
arr as $port) {
port,errstr,0.1);
 if (!$fp) {
 echo $port." closed\n";
 }else{
 echo $port." Opend\n";
 }
 }
 ruby1. require ‘socket’ #socket library
2. def open_port(host, port)
3. sock = Socket.new(:INET, :STREAM)
4. raw = Socket.sockaddr_in(port, host)
5. puts “#{port} open.” if sock.connect(raw)
6. rescue (Errno::ECONNREFUSED)
7. rescue(Errno::ETIMEDOUT)
8. end
9. def main(host, start_port, end_port)
10. until start_port == end_port do
open_port(host, start_port)start_port += 11. end
2. end
3. main ARGV[0], ARGV[1].to_i, ARGV[2].to_i
 ruby scanner.rb localhost 1 100