Kali渗透测试------信息收集-------识别服务,操作系统

一,识别操作系统

原理和思路:通过向目标发送探针,根据回应来推测操作系统。不同的操作系统的回应不同。

  • 1.TTL
    Linux <–64–>Window

  • 2.利用Windows不区分大小写
    admin | AdMIN 进入一个页面 --> Windows系统
    【不区分大小写】


1.nmap

1.1 -O

nmap -O IP

  • 在这里插入图片描述
  • nmap会创建操作系统的指纹数据库文件(Nmap-os-db),在对目标扫描时,将结果与数据库文件中数据对比得出目标的操作系统类型。
  • 用TCP/IP协议栈fingerprinting进行远程操作系统探测,Nmap发送一系列TCP和UDP报文到远程主机,检查响应中的每一个比特。 在进行一打测试如TCPISN采样,TCP选项支持和排序,IPID采样,和初始窗口大小检查之后, Nmap把结果和数据库nmap-os-fingerprints中超过 1500个已知的操作系统的fingerprints进行比较,如果有匹配,就打印出操作系统的详细信息。每个fingerprint包括一个自由格式的关于OS的描述文本,和一个分类信息,它提供供应商名称(如Sun),下面的操作系统(如Solaris),OS版本(如10),和设备类型(通用设备,路由器,switch,游戏控制台等
1.1 -osscan-guesss 猜测模式
  • 在这里插入图片描述

2. Xprobe2

专门用于识别操作系统,但不是很准确

  • 在这里插入图片描述

3. p0f (被动扫描)

一款典型的被动扫描工具 , 基于抓包实现

  • 在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

二,识别服务

服务扫描的作用:

不能简单的通过端口号来识别服务,目标系统开放80端口不一定开放着http服务,要通过对目标系统进行服务扫描,来识别开放的端口后面到底是什么服务,运行什么样的应用;

  • 服务 ------对应漏洞

一般的扫描工具只是列出服务名且对应默认端口号

  • 缺点1. 易错,服务使用的端口可用修改
  • 缺点2 信息少,只知道服务名,不知道版本号,不知道具体的软件无从下手漏洞点。

扫描思路:

  • way1. 采取抓取软件的banner方法,很多软件在连接之后提供自己的banner表,可用抓取banner获取软件的信息。
  • way2. 向目标开放的端口发送探针数据包,然后将返回的数据包和数据库的数据对比,找出服务信息。(eg:nmap的Nmap-service-probe数据库)

扫描(获取banner)的常见的问题:

  • 通过连接服务器的端口,使其返回的banner信息,可能查不到,也可能是管理员伪造的;
  • 通过软件开发商,软件名称,服务类型,版本号(直接发现已知的漏洞和弱点);
  • 对于Banner信息的捕获,需要建立完整的TCP连接
  • 另类服务识别方法:1. 特征行为和响应字段; 2. 不同的响应可用于识别底层操作系统;

例如改变web服务器的http端口为82
在这里插入图片描述
使用nmap扫描
在这里插入图片描述

1. ?? nmap -sV?

打开版本探测功能,对应数据库Nmap-service-probe的文件进行服务识别

  • 在这里插入图片描述

在这里插入图片描述在这里插入图片描述

–version-intensity 强度

默认为7
2:打开轻量级模式
9:最高强度

  • 在这里插入图片描述

2. amap -B IP 端口

没有nmap好用

  • 在这里插入图片描述

3. python-socket模块

连接网络服务时判断

root@kali:~# python3
Python 3.7.4 (default, Jul 11 2019, 10:43:21) 
Type "help", "copyright", "credits" or "license" for more information.


>>> import socket
>>> s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
>>> s.connect(("192.168.44.5",22))         #连接192.168.44.5的22端口
>>> s.recv(1024)	                        #成功连接后会回复自己的banner信息
b'SSH-2.0-OpenSSH_5.3\r\n'
>>> s.close()


!!!在很多情况下,系统的banner信息不允许抓取,recv函数无返回将会被挂

4. nc(netcat)【瑞士军刀】

对nc使用的优秀博客 https://blog.csdn.net/xysoul/article/details/52270149
-nc 获取信息–>得到banner

root@kali:~# nc -nv 192.168.44.5 82
(UNKNOWN) [192.168.44.5] 82 (?) : Connection refused
root@kali:~# nc -nv 192.168.44.5 80
(UNKNOWN) [192.168.44.5] 80 (http) open
get
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>501 Method Not Implemented</title>
</head><body>
<h1>Method Not Implemented</h1>
<p>get to /index.html not supported.<br />
</p>
</body></html>


root@kali:~# nc -nv 192.168.44.5 22
(UNKNOWN) [192.168.44.5] 22 (ssh) open
SSH-2.0-OpenSSH_5.3

5. dmitry -pb

  • 在这里插入图片描述
发布了49 篇原创文章 · 获赞 33 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Z_Grant/article/details/99476271
今日推荐