msf中的情报搜集

被动的信息搜集

​使用被动的、间接的信息搜索技巧,可以在目标不察觉的情况下挖掘目标的相关信息。

  • 公开渠道情报搜集

    • 对公开的和已知的信息进行检索筛选,获取到目标的情报集合,一系列的工具可以让被动信息搜集更加的方便,包括Yeti和Whois等方法。
    • 注意:测试中的目标主要是一个非公开的网站和192.168.2.158 是本地搭建的一个测试系统环境

Whois查询

msf > whois baidu.com
  • Whois查询后,会出现诸如以下的内容信息

    msf中的情报搜集-LMLPHP

Netcraft网站

Netcraft是一个Web页面工具,它可以发现某个网站的具体服务器IP地址和其他信息

msf中的情报搜集-LMLPHP

​从挖掘到的数据信息,我们得知目标的IP地址为:104.193.88.77;如此我们就可以进一步的使用Whois查询该IP地址的信息。【如下图】

msf中的情报搜集-LMLPHP

  • 从上述的搜集信息中可以看出了该网站的注册结构、地理位置等信息。

nslookup命令

​nslookup命令可以获得服务器的附加信息,

msf中的情报搜集-LMLPHP

主动的信息搜集

Nmap端口扫描

​确定目标的IP范围后,就可以启动Nmap对目标的IP端口开放情况进行扫描,得知对方的开放端口有哪些。

​Nmap是目前最流行的端口扫描工具,Nmap的扫描结果可以输出在后端数据库中供后续使用。

root > nmap -sS -Pn [IP]
root > nmap -sS -Pn -A [IP]

Metasploit与数据库连接使用

  • 启动PostgreSQL数据库
apt-get install postgresql  # 安装数据库
service postgresql start # 启动数据库
apt-get install metasploit-framework #安装msf
  • msf控制数据库

    msf > msfdb init #初始化数据库

msf中的情报搜集-LMLPHP

  • 登陆PostgreSQL数据库

    msf > switch user[/su] postgres #登陆数据库

msf中的情报搜集-LMLPHP

msf中的情报搜集-LMLPHP

  • 连接数据库/数据表
msf > db_connect postgres:[user]@[IP]/[库名]

msf中的情报搜集-LMLPHP

  • 确认数据库和表的MSF之间的连接
msf > db_status #确认连接状态

msf中的情报搜集-LMLPHP

  • MSF-help中的数据库操作方法

    msf中的情报搜集-LMLPHP

Nmap扫描结果写入Metasploit的数据库中

  • 执行Nmap并保存为.xml文件
root > nmap -sS -Pn -A -oX [文件名] [目标IP]

msf中的情报搜集-LMLPHP

  • 打开DB并确认连接、导入XML文件到数据库中
msf > db_status	#确认连接
msf > db_import [文件名] #向数据库中导入文件
msf > db_hosts -c address #显示库中的所有主机address列

msf中的情报搜集-LMLPHP

高级的Nmap扫描技巧:TCP空闲扫描

​TCP空闲扫描相当于网络上”冒充“另一台IP主机,对目标进行更加”秘密“的扫描。我们需要在网络上定位一台使用递增IP帧标识(IP ID:用于跟踪IP包的次序的一种技术方法)机制的空闲主机(空闲主机指主机在一段特定的时间内不想网络发送数据包)

​MSF中的scanner/ip/ipidseq模块,来寻找满足TCP空闲扫描要求的空闲主机

msf中的情报搜集-LMLPHP

  • 执行扫描任务
msf auxiliary(ipidseq) > set RHOSTS 192.168.2.0/24 #[IP]
msf auxiliary(ipidseq) > set THREAD 50 #[线程]
msf auxiliary(ipidseq) > run #执行

msf中的情报搜集-LMLPHP

  • Nmap-TCP空闲扫描
msf auxiliary(ipidseq) > nmap -PN -sI [空闲主机的IP] [目标主机的IP]

使用空闲扫描,本机的IP地址不会向目标主机发送任何的数据包,但是空闲扫描方法就是这样利用被的主机IP访问,本机获得目标IP主机上开放的端口信息。

在MSF终端运行Nmap

msf > db_connect postgres:[email protected]/msfbook

​成连接数据库后,在msf中的nmap扫描结果都会被数据库所记录在表中;之后在msf中nmap想被存进库中,则可以使用”db_nmap“命令进行nmap扫描。

msf > db_nmap -sS -A [目标ip]

msf中的情报搜集-LMLPHP

  • 查看数据库中的结果
msf > db_services

msf中的情报搜集-LMLPHP

Metasploit进行端口扫描

​举例:假设攻陷一个位于防火墙之后使用网络地址转换NAT协议的主机,这台主机没有办法从Internet中获得连接的私有IP地址,只有内网的地址;如果想要使用MSF对位于NAT之后的主机进行攻击,那么就需利用已被攻陷的主机作为跳板,将流量传送到网络内部的主机上。使用msf内建的端口扫描工具

msf > search portscan

msf中的情报搜集-LMLPHP

​使用msf的SYN端口扫描器对单个主机进行一次简单的扫描

msf > use scanner/portscan/syn
msf auxiliary(syn) > set RHOSTS [目标主机IP]
msf auxiliary(syn) > set THREADS [线程数<=128]
msf auxiliary(syn) > run # 执行

msf中的情报搜集-LMLPHP

针对性的扫描

服务器消息块协议扫描

​Metasploit可以利用它的smb_version模块来遍历一个网络,并获取系统的版本号。

msf > use scanner/smb/smb_version
msf auxiliary(smb_version) > show options
msf auxiliary(smb_version) > set RHOSTS 192.168.2.158
msf auxiliary(smb_version) > run

msf中的情报搜集-LMLPHP

搜索配置不当的SQL Server

​配置不当的SQL Server通常是一个进入目标系统的第一个后门;安装后默认是在监听TCP-1433或使用动态端口,如果是随机的端口号,只需要简单的对UDP端口1433进行查询,便可以获得随机的TCP端口号。(msf中的mssqp_ping模块就是用来查询随机tcp端口的)

msf > use scanner/mssql/mssql_ping
msf auxiliary(mssql_ping) > show options
msf auxiliary(mssql_ping) > set RHOSTS [IP]
msf auxiliary(mssql_ping) > set THREADS [线程]
msf auxiliary(mssql_ping) > run

msf中的情报搜集-LMLPHP

msf中的情报搜集-LMLPHP

SSH服务[器]扫描

​如果相对一些主机运行着SSH服务扫描发现,对版本号进行识别。SSH是一种非常安全的协议,但任何协议都是必有漏洞的。msf的ssh_version模块可以来识别目标上运行的SSH版本。

msf > use scanner/ssh/ssh_version
msf auxiliary(ssh_version) > set RHOSTS [IP]
msf auxiliary(ssh_version) > set THREADS [线程]
msf auxiliary(ssh_version) > run

msf中的情报搜集-LMLPHP

FTP扫描

msf > use scanner/ftp/ftp_version
msf auxiliary(ftp_version) > show options
msf auxiliary(ftp_version) > set RHOSTS [ip]
msf auxiliary(ftp_version) > set THREADS [线程]
msf auxiliary(ftp_version) > run

msf中的情报搜集-LMLPHP

简单网络管理协议扫描

​简单网络管理协议SNMP,用来报告带宽利用率、冲突率以及其他信息。

​SNMP是渗透测试者的金矿,可访问的SNMP服务器能够泄露关于特定系统的更多信息,甚至会导致设备被远程攻陷。(得到具有读写权限的Cisco路由器的SNMP团体字符串,便可以下载整个路由器的配置,对其进行修改并回传到路由器中)

​MSF中snmp_enum模块,是为了SNMP扫描专门设计的:

msf > use scanner/snmp/snmp_enum
msf auxiliary(snmp_enum) > show options
msf auxiliary(snmp_enum) > set RHOSTS [IP]
msf auxiliary(snmp_enum) > set THREADS [线程]
msf auxiliary(snmp_enum) > run

msf中的情报搜集-LMLPHP

  • 猜解:

    msf中的snmp_login模块,可以尝试对一个IP或一段IP使用字典来猜解SNMP团体字符串。

msf中的情报搜集-LMLPHP

互联网中存在大量的不变更出厂设置就投入生产的设备。

自编扫描器

​在MSF中拥有自定义扫描器的功能,自定义的扫描器可以使用msf框架中的全部类和方法,内建了代理服务器、安全套接字层SSL支持、报告生成以及线程设置等。

​msf框架软件的扫描器模块包括各种mixin(混入类),如用作TCP、SMB的mixin,以及集成在MSF中的辅助扫描mixin;Mixin预定义的函数和调用的代码模块。

05-26 08:32