端口服务收集
在已经获取到企业对应的IP之后,便可以对其进行端口扫描查看对应开放的服务。
1、扫描器
速度相对于直接搜素引擎查询速度慢,但是更全面。
可以自己使用扫描器进行扫描开发服务,最常见的是用nmap:
nmap常用组合
快速检测一个网段中的存活主机
nmap -sP x.x.x.x/24
从文本中读取相关IP,进行端口扫描,同时识别服务
nmap -p80,22 -sV -iL ip.txt
只显示开放该端口的主机
nmap -p80 --open 1.1.1.0/24
不使用反向解析,扫描80端口开放的主机,同时保存为xml文件
nmap -n -p80 -iL ip.txt -sV --open -oX 80.xml
识别一台主机的操作系统
nmap -O 1.1.1.1
在不检测一个存活主机的情况下,进行全端口扫描,识别服务
nmap -Pn -p1-65535 -A -sV 1.1.1.1
扫描mysql的空口令:
nmap -p3306 --script=mysql-empty-password.nse 192.168.5.1
暴力破解mssql的账户密码
nmap -p1433 --script=ms-sql-brute --script-args=userdb=/var/passwd,passdb=/var/passwd 192.168.5.1
具体原理性的东西可以参考以下的文章
快速扫描某一个端口建议使用masscan:
github地址:https://github.com/robertdavidgraham/masscan
全网扫描:
masscan 0.0.0.0/0 -p0-65535
扫描对应IP开放的对应端口:
masscan -p80,8000-8100 10.0.0.0/8
把扫描的信息保存:
masscan 0.0.0.0/0 -p0-65535 -oX scan.xml
2、搜索引擎
这里使用搜索引擎就不是指Google、百度,而是shodan,zoomeye和fofa。
2.1 shodan
基础语法: City:用于寻找位于指定城市的设备。例:
iis city:beijing
County:用于寻找位于指定国家的设备。例:
iis country: China
os:用于查询指定系统
Apache os:Linux
Net:用于寻找指定ip地址和子网掩码的设备。例:
iis net:216.0.0.0/16
Hostname:用于搜索包含指定域名的主机。例
#误报较高 qq hostname:.com
exp搜索地址:
https://exploits.shodan.io/welcome
测试的例子:
查找redis:
port:6379
也可以直接搜索,会根据banner来匹配
redis
网络摄像头:
Android Webcam Server -Authenticate
查找openssl版本为1.0.0服务器
openssl/1.0.0
由于Shodan搜索出来的数据是之前扫描存储的,而非实时扫描,所以搜索到的结果不一定100%准确。
2.2 zoomeye(钟馗之眼)
网址:
常用语法 组件名称:
#组件名 app:"Apache httpd" #组件版本 ver:"2.2.16"
端口:
#ssh的22端口 port:22
操作系统:
#linux操作系统 os:linux
服务:
#公网摄像头 service:webcam
IP地址:
#google的DNS ip:8.8.8.8
子网搜索:
cidr:8.8.8.8/24
网站域名:
site:google.com
关键字:
#<meta name="Keywords">定义的页面关键词 keywords:Nginx
描述:
#<meta name="description">定义的页面说明 desc:Nginx
标题:
#页面标题,在<title> title:Nginx
更完整的语法手册:
常见的一些搜索组合都列在这里:
2.3 fofa
网址:
查询语法
标题中搜索:
title=test
http头部中搜索:
header=linux
从html中搜索:
host=".gov.cn"
根据IP搜索:
ip="1.1.1"
同时支持括号和&& || !=等等,可以灵活的自由组合
常用的组件识别列表:
网站识别:
常见的可利用端口
21 ftp文件传输协议 22 SSH远程登录协议 23 telnet终端仿真协议 25 smtp 110 Pop3 1433 Microsoft SQL Server远程端口 3306 MySQL远程端口 3389 win远程登入 7500-10000 常用的web后台端口