前言
无论是渗透内网还是外网,信息收集都非常重要,只有探测出目标系统(操作系统/Web程序)、安装程序/APP等才有资格去找相应的EXP或漏洞工具对目标进行尝试利用,你连目标IP都不知道,靠运气一通乱扫描?所有漏洞都扫?人家用的是MAC或LINUX,看到开放445,你用MS17010去打?要搞清楚MS是微软的缩写MS17010只针对Windows,LNX也有SMB漏洞但不是这个编号。所以想方设法探测目标机器或收集相关信息非常重要也是第一步该做的事,只有知道存活IP才能使用其它工具扫描,或者知道系统信息又可使用更精确的工具去扫是否存在对应漏洞,本文讲述的是SNMP协议探测各种信息以及编程实现,当然不懂原理的也不影响直接使用Ladon探测
SNMP协议
简单网络管理协议(SNMP) 是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议。
基于SNMP,进行网络设备监控,如:交换机、防火墙、服务器,CPU等其系统内部信息,基本都可以监控到。
穿墙探测
赚快钱的方法都写在刑法里,穿墙的协议都写在防火墙里。Windows系统默认允许协议(或者说安装对应角色功能后默认通行的协议),利用SNMP协议可探测机器名、操作系统版本、系统位数、多网卡信息(IP\掩码\网关)、进程(进程名/PID)、命令行参数、磁盘信息、C段存活主机MAC、当前打开目录、窗口标题等越多目标信息
开启Snmp
1.控制面板-角色-启用SNMP协议
2.服务配置,默认一般为public
### Snmp抓包
使用Snmp抓包,可看到SNMP包中返回了操作系统版本等信息
Ladon探测
使用Ladon或LadonGo的SnmpScan模块可探测操作系统、硬件版本等信息
实战扫描
实战目标C段探测到的Cisco思科、Huawei华为、Linux系统、交换机等### 探测其它信息
探测更详细的信息可使用snmpwalk工具,但前提是我们先探测出SNMPY主机,因为Ladon主要用于批量C段、B段、A段甚至全网扫描,不适合对单个IP都发送大量SNMP协议包,所以仅发几个包探测目标系统版本等信息即可
机器名、操作系统版本、系统位数、多网卡信息(IP\掩码\网关)、进程(进程名/PID)、命令行参数、磁盘信息、C段存活主机MAC、当前打开目录、窗口标题等
Golang实现
package snmp
//Ladon Scanner for golang
//Author: k8gege
//K8Blog: http://k8gege.org/Ladon
//Github: https://github.com/k8gege/LadonGo
import (
“github.com/alouca/gosnmp”
“fmt”
)
func GetInfo(host string){
s, err := gosnmp.NewGoSNMP(host, “public”, gosnmp.Version2c, 5)
if err != nil {
//log.Fatal(err)
}
resp, err := s.Get(".1.3.6.1.2.1.1.1.0")
if err == nil {
for _, v := range resp.Variables {
switch v.Type {
case gosnmp.OctetString:
fmt.Println(host,"\t",v.Name, v.Value.(string), v.Type.String())
}
}
}
}
PS:需要探测更详细的大量信息,可自行FOR循环发包获取
LadonGo结果
ScanStart: 2020-11-22 08:54:35
192.168.1.21 .1.3.6.1.2.1.1.1.0 Hardware: Intel64 Family 6 Model 60 Stepping 3 AT/AT COMPATIBLE - Software: Windows Version 6.1 (Build 7601 Multiprocessor Free) OctetString
Finished: 2020-11-22 08:54:41
源码
https://github.com/k8gege/LadonGo
https://github.com/k8gege/Ladon