三、信息收集

  1. 被动信息收集

    在不接触目标系统时进行的信息收集,包括使用工具Yeti、Whois

    (1)Whois

    msf > whois secmaniac.net

(2)Netcraft:find the IP address of a server hosting a particular website

(3)nslookup

2.主动信息收集:与目标系统主动交互

(1)使用nmap进行端口扫描

推荐选项-sS,执行一次隐秘的TCP扫描

推荐选项-Pn,告诉nmap不要使用ping命令判断主机是否存活,而默认所有主机都是存活状态,因为在internat上大多数网络均不允许ping命令所使用的ICMP协议通行,如果预先使用了ping进行判断,那么会漏掉很多真实存在的主机。但是,如果在内网里,进行nmap扫描,可以忽略这个选项以加快扫描速度。

-A,尝试进行深入的服务枚举和旗标获取

3.在metasploit中使用数据库:记录操作

metasploit支持MySQL、PostgreSQL和SQLite3数据库,默认为PostgreSQL。

4.高级Nmap扫描,TCP空闲扫描:冒充网络上的另一个主机进行扫描

msf > use auxiliary/scanner/ip/ipidseq

msf auxiliary(ipidseq) > set RHOSTS 192.168.1.0/24

RHOSTS => 192.168.1.0/24

msf auxiliary(ipidseq) > set THREADS 50

THREADS => 50

msf auxiliary(ipidseq) > run

msf auxiliary(ipidseq) > nmap -PN -sI 192.168.1.109 192.168.1.155

5.使用Metasploit内置工具进行端口扫描

查看内置的端口扫描工具msf > search portscan

6.针对性扫描

(1)服务器消息块协议扫描(SMB):可以使用smb_version来遍历一个网络,查看Windows系统版本号

msf > use scanner/smb/smb_version

(2)配置不当的Microsoft SQL Server:通常是进入主机的第一个后门,很多人不知道自己的主机上安装了SQL,因为在其他程序安装时装载到系统里面的,也很少安装补丁

MS SQL安装后,默认监听TCP1433端口或使用随机的动态TCP端口,Metasploit的模块mssql_ping可以获取随机的TCP端口号。

msf > use scanner/mssql/mssql_ping

由于mssql_ping使用UDP协议,速度可能会很慢,在局域网里将线程数设为255将很大的提高扫描速度。

(3)SSH服务器扫描:一些主机运行着SSH(安全shell),应对对SSH版本进行扫描,因为SSH存在漏洞。

可以利用Metasploit的ssh_version模块来识别目标服务器上运行的SSH版本。

(4)FTP扫描:FTP服务器经常是进入一个目标网络最便捷的途径。

模块scanner/ftp/ftp_version可以对FTP服务进行扫描;

模块scanner/ftp/anonymous可以检查FTP服务器是否允许匿名用户登录;

(5)简单网管协议SNMP扫描

SNMP通常用于网络设备中,用来报告带宽利用率、冲突率等信息。

内置模块scanner/snmp/snmp_enum,为SNMP扫描专门设计。开始扫描之前请注意,如果能够获取只读(RO)或者读/写(RW)权限的团体字符串,将对你从设备中提取信息发挥重要作用。基于Windows操作系统的设备中,如果配置了SNMP,通常可以使用RO或RW权限的团体字符串,提取目标的补丁级别、运行服务、用户名、持续时间、路由等信息。团体字符串(Community strings)基本等同于查询设备信息或写入设备配置参数时所需的口令。

SNMP的v1和v2天生便有安全权限,SNMP的v3中添加了加密功能增强了安全性。为了获取管理一台交换机的权限,首先要找到它的SNMP团体字符串,利用Metasploit框架中的scanner/snmp/snmp_login模块,可以尝试对一个IP(段)使用字典猜解SNMP团体字符串。

最新文章

  1. 【BZOJ-3122】随机数生成器 BSGS
  2. List<T>Contains, Exists, Any之间的优缺点对比
  3. 提高Linux安全性--hosts.allow, hosts.deny 文件修改方法
  4. Java基础知识强化82:Random类概述和方法使用
  5. 二叉查找树的Find,FindMin,FindMax的递归和非递归实现
  6. iOS 之 线性布局
  7. java 8 Hashmap深入解析 —— put get 方法源码
  8. 一个使用openGL渲染的炫丽Android动画库
  9. C语言基础 - 输出1-100万之间的素数
  10. AFN中请求序列化的设置
  11. 使用bootstrap的dropdown部件时报错:error:Bootstrap dropdown require Popper.js
  12. TypeError: Fetch argument 0.484375 has invalid type <class 'numpy.float32'>, must be a string or Tensor. (Can not convert a float32 into a Tensor or Operation.)
  13. JAXB注解 @XmlRootElement 及XML文件解析详解
  14. PreparedStatement与Statement区别
  15. maven-assembly-plugin
  16. 知识点:Mysql 基本用法之事务
  17. Linux下Shell元字符的释义
  18. 【大数据系列】Hadoop DataNode读写流程
  19. 1.如何修改oracle的密码
  20. transient解释

热门文章

  1. 在系统学习javaEE开发的颠覆者Springboot时遇到的localhost无法访问的问题
  2. (转)C#程序开发中经常遇到的10条实用的代码
  3. Tex 括号的反思
  4. 机器学习:模型泛化(岭回归:Ridge Regression)
  5. Java-API:java.util.list
  6. ABP模块配置
  7. js中的toString
  8. Webview离线功能(优先cache缓存+cache缓存管理)
  9. oracle创建完实例删除的时候报ORA-01031:insufficient privileges错误,解决办法
  10. c++的单例模式及c++11对单例模式的优化