Kali linux 学习笔记(十五)主动信息收集——操作系统识别(TTL、SNMP、SMB、SMTP) 2020.2.25

前言

操作系统安装后默认会有些端口开放
通过识别操作系统
可以根据其版本的自带的漏洞进行攻击

1、TTL起始值

  • win:128
  • linux:64
  • 某些unix:255

可以通过TTL值来判断系统是什么
一些方法如下

scapy

脚本
ttl_os.py

#!/usr/bin/python
import logging
from scapy.all import *
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
import sys
if len(sys.argv)!=2:
 print("Example: ./ttl_os.py 1.1.1.1")
 sys.exit()
ip=sys.argv[1]
ans=sr1(IP(dst=str(ip))/ICMP(),timeout=1,verbose=0)
if ans==None:
 print("No reponse")
elif int(ans[IP].ttl)<=64:
 print("Host is Linux/Unix")
else:
 print("Host is Windows")

nmap

nmap 1.1.1.1 -O #可以得到及其详细的系统信息

xprobe

xprobe2 1.1.1.1 

2、snmp

经常被错误配置
树形网络设备管理功能数据库MIBTree (management information base)
1.3.6.1.4.1.77.1.2.25

161

onesixtyone 1.1.1.1 public #信息不多,但是会有一些神奇的信息
onesixtyone -c dict.txt -i hosts -o my.log -w 100 #-c指定字典,-i指定hosts

snmpwalk

snmpwalk 1.1.1.1 -c public -v 2c #-v指定version
snmpwalk 1.1.1.1 -c public -v 2c 1.3.6.1.4.1.77.1.2.25

snmpcheck

snmpcheck -t 1.1.1.1 #可读性比snmpwalk好
snmpcheck -t 1.1.1.1 -c private -v 2 #-c指定不同的community
cnmpcheck -t 1.1.1.1 -w #-w是write权限

3、SMB扫描

server message block协议

  • 微软默认开放的协议
  • 用来文件共享
  • 实现过程复杂
  • 历史上出现安全问题最多

可以用来判断是否windows系统

nmap -v -p139,445 1.1.1.1-24 --open #--open筛选出开放的139和445端口,来判断是不是windows,但结果不一定准确
nmap -v -p139,445 1.1.1.1 --script=smb-os-discovery.nse #用脚本来发现更准确
nmap -v -p139,445 --script=smb-check-culns --script-args=unsafe=1 1.1.1.1 #用已知的smb的漏洞来扫描,unsafe参数会对系统造成破坏
#建议自己查看脚本,熟悉脚本
nbtscan -r 192.168.1.0/24 #兼容性好,win95/win98
enum4linux -a 192.168.1.133 #不支持子网掩码,但比上面信息详细

4、SMTP扫描

来发现目标系统的邮箱账号

nc -nv 1.1.1.1 25
nmap smtp.163.com -p25 --script=smtp-enum-users.nse --script-args=smip-enum-users.methods=[VRFY] #VRFY是扫描方式
nmap smtp.163.com -p25 --script=smtp-open-relay.nse
smtp-user-enum -M VRFY -U users.txt -t 10.0.0.1

脚本
smtp.py(这个脚本不完善,缺少开头打招呼)

#!/usr/bin/python
import socket
import sys
if len(sys.argv)!=2:
 print("Example: ./smtp.py <username>")
 sys.exit(0)
s=socket.socker(socket.AF_INET,socket.SOCK_STREAM)
connect=s.connect(("smtp.163.com",25))
banner=s.recv(1024)
print(banner+"aaaaaa")
s.send("VRFY"+sys.argv[1]+"\r\n")
result=s.recv[1024]
print(result)
s.close()

结语

识别操作系统可以根据操作系统的漏洞进行攻击
尤其是SMB,非常好用

下一节是防火墙识别

发布了28 篇原创文章 · 获赞 2 · 访问量 1035

猜你喜欢

转载自blog.csdn.net/weixin_44604541/article/details/104501162
今日推荐