渗透测试之信息采集

渗透测试流程

  • 确定目标:首先你要有一个渗透测试的目标,或者是攻击的目标。
  • 信息采集:通过各种信息搜集工具,如目标的域名、IP、端口、后台应用运行的平台等等了解,只有当对后台的应用框架有了一定的了解我们才能有针对性的使用某一方面的技术或者漏洞进行攻破。
  • 漏洞扫描:在对目标应用的运行平台有了一定的了解之后,我们可以搜集相关组件的所存在的漏洞进行预判可能存在的漏洞,或者通过漏洞扫描工具来发现错在的漏洞。
  • 漏洞验证:发现漏洞之后便是对漏洞的一个验证,简单来说就是进行对目标的攻击,攻击目标便是对漏洞的利用登入设备然后进行提权,这样便可“为所欲为”。
  • 权限维持:在攻破系统之后,会在创建一个权限较高的隐藏用户亦或者放置后门程序,以便下一次的登陆,而不用再次去攻击。
  • 文档记录:在每一次攻击之后建议都用文档记录下来,以后对知识的总结与积累

信息采集

  • 网站的域名相关信息
  • 网站的服务器相关信息
  • 网站的组件常见漏洞(如 Nginx、tomcat 等等,通过社会工程学与 Google Hacking 查找、猜测可能存在的一些问题和信息)

1、使用whois查询域名注册信息,包括DNS服务器和创建时间单位等

2、使用host查询DNS信息

域名记录类别

与 host 功能类似的功能的工具还有 digdnsenumdnsdict6fiercedmitry 等等。

利用dig工具查询

常用端口号列表

端口扫描工具SNMP

-sn:ping扫描,测试目标主机是否是开机状态,原理是利用命令在局域网中广播ARP请求。

拥有类似功能的工具还有 netdiscover,arping,scapy。他们大多都是直接针对 ARP(scapy 较为强大,可以针对网络层,甚至是传输层的探测,但是使用起来也相对复杂一点),针对数据链路层发现主机的工具

-PA:针对TCP的ACK数据包进行探测

三次握手:

  • 客户端向服务端发送建立连接的请求数据包(SYN 数据包);
  • 服务端收到客户端的数据包,便会同意建立连接,发送确认数据包(ACK 数据包),同时发送服务端向客户端的连接请求数据包(SYN);
  • 客户端收到服务端的请求,便回复发送确认数据包(ACK 数据包)。

-sS:端口扫描

S:表示TCP握手中的SYN数据包,查询UDP使用-sU参数

-O:对操作系统的检测

nmap -O target

-sV:查看主机开放的端口以及端口运行的协议和组件

nmap -sV target

-A:启用操作系统检测和版本检测

nmap -A target

漏洞信息:

例如在 Linux kernel >= 2.6.22 ,并且在 2016 年 10 月 18 日打补丁之前的版本都会遭受到 Dirty COW 的漏洞影响,若是检测目标的操作系统的版本较为老旧,我们便可使用该漏洞来提权获得目标主机的掌控权了。

-sA:查询是否被防火墙过滤

不指定端口查询1000个端口都没有被防火墙过滤
查询22端口没有被防火墙过滤

三次握手的不同响应

端口的状态与类型

nmap常用的参数

利用Metasploit框架进行扫描

启动服务:

启动数据库和初始化数据库
启动服务
使用use来调用模块

set可以来设置使用该模块所使用的参数,可以使用show options来查看哪些参数可以设置,哪些参数必要设置

名字、参数值、是否必要设置、说明
  • RHOSTS:设置目标主机
  • THREADS:设置进程数

run运行

发表评论

后才能评论