nmap
NMAP是由GOrdon Lyon设计并实现的,于1997开始发布。最初设计NMAP的目的只是要打造一款强大的端口扫描工具。但随着时间的发展,NMAP的功能越来越全面,从简单的网络连接端口扫描工具变身成为全方位的安全和网络工具组件。
具备的主要功能:
1、主机发现端口扫描
2、服务和版本检测
3、操作系统检测
除了这些基本功能以外,NMAP还实现了一些高级审计功能,例如:我伪造发起端口扫描的身份,进行隐蔽扫描,对系统进行安全漏洞检测等….
Nmap 典型用途:
主机发现-识别网络上的主机。例如列出响应TCP和/或ICMP请求或打开特定端口的主机。
端口扫描 - 枚举目标主机上的开放端口。
版本检测 - 询问远程设备上的网络服务以确定应用程序名称和版本号。
OS检测 - 确定网络设备的操作系统和硬件特性。
软件版本检测脆弱性的漏洞(Nmap的脚本)
Nmap常用扫描参数说明
Nmap脚本分类
auth: 负责处理鉴权证书(绕开鉴权)的脚本
broadcast: 在局域网内探查更多服务开启状况,如dhcp/dns/sqlserver等服务
brute: 提供暴力破解方式,针对常见的应用如/snmp等
default: 使用-sC或-A选项扫描时候默认的脚本,提供基本脚本扫描能力
discovery: 对网络进行更多的信息,如SMB枚举、SNMP查询等
dos: 用于进行拒绝服务攻击
exploit: 利用已知的漏洞入侵系统
external: 利用第三方的数据库或资源,例如进行whois解析
fuzzer: 模糊测试的脚本,发送异常的包到目标机,探测出潜在漏洞 intrusive: 入侵性的脚本,此类脚本可能引发对方的IDS/IPS的记录或屏蔽
malware: 探测目标机是否感染了病毒、开启了后门等信息
safe: 此类与intrusive相反,属于安全性脚本
version: 负责增强服务与版本扫描(Version Detection)功能的脚本
vuln: 负责检查目标机是否有常见的漏洞(Vulnerability),如是否有MS08_067
实例:
sP :进行ping扫描 (打印出对ping扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测))
nmap -sP 192.168.3.0/24(这个命令可以用于探测局域网有哪些机器)
-sS :半开放扫描(非3次握手的tcp扫描)
使用频率最高的扫描选项:SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快,效率高(一个完整的tcp连接需要3次握手,而-sS选项不需要3次握手)
优点:Nmap发送SYN包到远程主机,但是它不会产生任何会话,目标主机几乎不会把连接记入系统日志。(防止对方判断为扫描攻击),扫描速度快,效率高,在工作中使用频率最高
缺点:它需要root/administrator权限执行
nmap -sS -p 1-65535 192.168.3.16 (扫描目标开放的所有端口-半开式)
sT:3次握手方式tcp的扫描
优点:普通用户也可以使用。
缺点:这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息,由于它要完成3次握手,效率低,速度慢,建议使用-sS
sV:扫描目标地址开放服务(端口)版本(sV)
版本检测是用来扫描目标主机和端口上运行的软件的版本,如下扫描,多出了ssh的版本信息 。
nmap -sV 192.168.3.16
-O:扫描目标地址进行操作系统版本
nmap -O 192.168.3.16
-A:OS识别,版本探测,脚本扫描和综合扫描
nmap -A 192.168.3.16
-Pn -A 绕过防火墙进行全面扫描
nmap -Pn -A 192.168.3.16
Nmap脚本演示实例:
nmap --script=auth 192.168.3.26
nmap --script=vuln 192.168.3.26
nmap -sS -
nmap -sS -p 1-65535
本章节端口号扫描,在知道对方真实IP地址的实话可以尝试用端口扫描对对方进行扫描,对对方的子域名进行扫描。能扫到对方的系统类别,版本信息,等等一些信息。端口号开了那些服务也是信息收集很重要的一部分。
端口号开了那些服务也是信息收集很重要的一部分。
常见的端口信息及渗透方法
端口号 端口服务/协议简要说明 关于端口可能的一些渗透用途
tcp 21 ftp 默认的数据和命令传输端口[可明文亦可加密传输] 允许匿名的上传下载,爆破,嗅探,win提权,远程执行(proftpd 1.3.5),各类后门(proftpd,vsftp 2.3.4)
tcp 22 ssh[数据ssl加密传输] 可根据已搜集到的信息尝试爆破,v1版本可中间人,ssh隧道及内网代理转发,文件传输,等等…常用于linux远程管理…
tcp 23 telnet[明文传输] 爆破,嗅探,一般常用于路由,交换登陆,可尝试弱口令,也许会有意想不到的收获
tcp 25 smtp[简单邮件传输协议,多数linux发行版可能会默认开启此服务] 邮件伪造,vrfy/expn 查询邮件用户信息,可使用smtp-user-enum工具来自动跑
tcp/udp 53 dns[域名解析] 允许区域传送,dns劫持,缓存投毒,欺骗以及各种基于dns隧道的远控
tcp/udp 69 tftp[简单文件传输协议,无认证] 尝试下载目标及其的各类重要配置文件 tcp 80-89,443,8440-8450,8080-8089 web[各种常用的web服务端口] 各种常用web服务端口,可尝试经典的top n,vpn,owa,webmail,目标oa,各类java控制台,各类服务器web管理面板,各类web中间件漏洞利用,各类web框架漏洞利用等等……
tcp 110 [邮局协议,可明文可密文] 可尝试爆破,嗅探 tcp 137,139,445 samba[smb实现windows和linux间文件共享,明文] 可尝试爆破以及smb自身的各种远程执行类漏洞利用,如,ms08-067,ms17-010,嗅探等……
tcp 143 imap[可明文可密文] 可尝试爆破 udp 161 snmp[明文] 爆破默认团队字符串,搜集目标内网信息
tcp 389 ldap[轻量级目录访问协议] ldap注入,允许匿名访问,弱口令 tcp 512,513,514 linux rexec 可爆破,rlogin登陆
tcp 873 rsync备份服务 匿名访问,文件上传 tcp 1194 openvpn 想办法钓vpn账号,进内网
tcp 1352 Lotus domino邮件服务 弱口令,信息泄漏,爆破
tcp 1433 mssql数据库 注入,提权,sa弱口令,
爆破 tcp 1521 oracle数据库 tns爆破,注入,弹shell…
tcp 1500 ispmanager 主机控制面板 弱口令
tcp 1025,111,2049 nfs 权限配置不当
tcp 1723 pptp 爆破,想办法钓vpn账号,进内网
tcp 2082,2083 cpanel主机管理面板登录 弱口令
tcp 2181 zookeeper 未授权访问
tcp 2601,2604 zebra路由 默认密码zerbra
tcp 3128 squid代理服务 弱口令
tcp 3312,3311 kangle主机管理登录 弱口令
tcp 3306 mysql数据库 注入,提权,爆破
tcp 3389 windows rdp远程桌面 shift后门,爆破,ms12-020[蓝屏exp]
tcp 4848 glassfish控制台 弱口令
tcp 4899 radmin远程桌面管理工具, 抓密码拓展机器
tcp 5000 sybase/DB2数据库 爆破,注入
tcp 5432 postgresql数据库 爆破,注入,弱口令
tcp 5632 pcanywhere远程桌面管理工具 抓密码,代码执行
tcp 5900,5901,5902 vnc远程桌面管理工具 弱口令爆破,如果信息搜集不到位,成功几率很小
tcp 5984 CouchDB 未授权导致的任意指令执行
tcp 6379 redis未授权 可尝试未授权访问,弱口令爆破
tcp 7001,7002 weblogic控制台 java反序列化,弱口令
tcp 7778 kloxo 主机面板登录
tcp 8000 Ajenti主机控制面板 弱口令
tcp 8443 plesk主机控制面板 弱口令
tcp 8069 zabbix 远程执行,sql注入
tcp 8080-8089 Jenkins,jboss 反序列化,控制台弱口令
tcp 9080-9081,9090 websphere控制台 java反序列化/弱口令
tcp 9200,9300 elasticsearch 远程执行
tcp 10000 webmin linux主机web控制面板入口 弱口令
tcp 11211 memcached 未授权访问
tcp 27017,27018 mongodb 爆破,未授权访问
tcp 3690 svn服务 svn泄露,未授权访问
tcp 50000 SAP Management Console 远程执行
tcp 50070,50030 hadoop 默认端口未授权访问