metasploit 读书笔记-信息收集
三、信息收集
被动信息收集
在不接触目标系统时进行的信息收集,包括使用工具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团体字符串。
最新文章
- 【BZOJ-3122】随机数生成器 BSGS
- List<;T>;Contains, Exists, Any之间的优缺点对比
- 提高Linux安全性--hosts.allow, hosts.deny 文件修改方法
- Java基础知识强化82:Random类概述和方法使用
- 二叉查找树的Find,FindMin,FindMax的递归和非递归实现
- iOS 之 线性布局
- java 8 Hashmap深入解析 —— put get 方法源码
- 一个使用openGL渲染的炫丽Android动画库
- C语言基础 - 输出1-100万之间的素数
- AFN中请求序列化的设置
- 使用bootstrap的dropdown部件时报错:error:Bootstrap dropdown require Popper.js
- TypeError: Fetch argument 0.484375 has invalid type <;class &#39;numpy.float32&#39;>;, must be a string or Tensor. (Can not convert a float32 into a Tensor or Operation.)
- JAXB注解 @XmlRootElement 及XML文件解析详解
- PreparedStatement与Statement区别
- maven-assembly-plugin
- 知识点:Mysql 基本用法之事务
- Linux下Shell元字符的释义
- 【大数据系列】Hadoop DataNode读写流程
- 1.如何修改oracle的密码
- transient解释
热门文章
- 在系统学习javaEE开发的颠覆者Springboot时遇到的localhost无法访问的问题
- (转)C#程序开发中经常遇到的10条实用的代码
- Tex 括号的反思
- 机器学习:模型泛化(岭回归:Ridge Regression)
- Java-API:java.util.list
- ABP模块配置
- js中的toString
- Webview离线功能(优先cache缓存+cache缓存管理)
- oracle创建完实例删除的时候报ORA-01031:insufficient privileges错误,解决办法
- c++的单例模式及c++11对单例模式的优化