数据来源

本文仅用于信息安全的学习,请遵守相关法律法规,严禁用于非法途径。若观众因此作出任何危害网络安全的行为,后果自负,与本人无关。

扫描技术

背景

在渗透测试过程中,为了节省人力和时间,通常采用手工和工具相结合的方式。使用工具,就是将一些机械性的操作自动化实现,用来提高渗透测试的效率。例如,寻找内网网段[10.10.10,20/24]所有在线主机,如果一个一个去ping测试主机是否存活,显然是不合适的。

主机测探与端口扫描

主机测探是指确定目标主机是否存活。

端口扫描就是寻找在线主机所开放的端口,并且在端口上所运行的服务。甚至可以进步确定目标主机操作系统类型和更详细的信息。

- 基础知识

@ 常见的端口号

端口 描述 端口 描述
21 FTP(文件共享) 443 HTTPS
22 SSH(远程管理) 1433 SQL Server
23 Telnet(远程管理) 1521 Oracle
25 SMTP(邮件发送协议) 3306 MySQL
80 HTTP 3389 RDP(远程桌面协议)mstsc -v 目标ip
445 smb (Server 共享服务)

- Nmap-扫描器之王

nmap被誉为“扫描器之王”,nmap为开源工具,并且是跨平台的。官方网站

        我们可以使用kali虚拟机中的nmap(kali自带的)

Nmap通过探测将端口划分为6个状态:

  1. open:端口是开放的
  2. closed:口是关闭的
  3. filtered:端口被防火墙IDs/IPs屏蔽,无法确定其状态
  4. unfiltered:第口没有屏蔽,但是否开放需要进一步确定
  5. open | filtered:端口是开放的或被屏蔽。
  6. closed | filtered:端口是关闭的或被屏蔽

- 重要常用参数

参数 描述
-sP ping 扫描
-p 指定端口范围
-sT TCP 连接扫描
-sS TCP SYN 扫描
-sU UDP 扫描
-sV 端口服务版本探测
-O 启用操作系统探测
-A 全面扫描
-oN 保存 txt
-oA 保存到所有格式

使用示例: 

准备:

开启虚拟机并配置IP

我这里开了一台Kali、一台windowsXP、一台windows2003,并都把虚拟网络桥接到vm2网络内(除了Kali,其他虚拟机开启啥都行,最后让他们处于同一局域网就好)

给虚拟机配IP就按上面的括补图来配置

 给kali系统配置IP

命令:

        ifconfig eth0 10.1.1.2/24    # eth0的“0”是网卡命令,“0”表示第一块网卡,“/24”是表示子网掩码转换成二进制就是24个1,8位为一组= 11111111,11111111,11111111,转换成十进制:255,255,255,写成子网掩码的形式:255.255.255.0。如果没有权限,在命令前面加:sudo  空格

    ifconfig eth0  # 查看IP有没有配置成功

然后可以ping一下其他两台PC,测试这些虚拟机能不能互相通信了

         ping  目标ip   #  ctrl + c 停止ping

扫描示例:

        nmap -sP 10.1.1.1-100                                  # 扫描10.1.1.1 到10.1.1.100网段的存活地址

        nmap -sP 10.1.1.0/24                                    # 扫描10.1.1.0整个网段的存活地址(包括10.1.1.1 - 10.1.1.254)

        nmap -p 21,23-25,3389 10.1.1.3                  # 扫描10.1.1.3指定的端口是否开放

nmap  10.1.1.3                                                 # 简单扫描啥都不写,会先扫描在线状态再扫描所有端口号

        @TCP 连接扫描  -sT 是会完成TCP完整的三次握手

        nmap -sT 10.1.1.3 -p 3389        # 扫描10.1.1.3这台主机,测试3389端口是否可以被连接上

三次握手抓包图解

简单理解:我向目标发送一个SYN,他回我一个SYN,最后我再向他发送一个ACK完成三次握手。最终我向目标发送一个RST强制断开连接,使用的传输协议都是TCP。

端口关闭的情况

三次握手(源文)

        所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立

        目的:是建立可靠的通信通道,说到通信,简单来说就是数据的发生与接收,而三次握手最主要的目的就是双方确认自己与对方的发送与接收是否正常

  • 第一次握手:Client(客户端)什么都不能确认,Server(服务器)确认了对方发送正常,自己接收正常
  • 第二次握手:Client确认了:自己发送、接收正常,对方发送正常、接收正常;Server确认了:对方发送正常,自己接收正常
  • 第三次握手:Client确认了:自己发送、接收正常,对方发送正常接收正常;Server 确认了:对方发送正常,接收正常,自己发送正常,接收正常。

@ 目标主机版本

        nmap -p 21,23,455 10.1.1.3                                 # 扫描指定的端口

        nmap -p 21,23,455 10.1.1.3  -sV                         # 扫描指定的端口的服务器版本

        nmap -O  10.1.1.3                                            # 扫描目标系统版本及端口(不同的操作系统攻击方式就会不同)

        nmap -A  10.1.1.3                                             # 全面扫描(IP、端口、端口的服务版本)

@ 保存扫描报告

- oN保存成txt纯文本格式

        nmap -sT 21,23  10.1.1.3 -sV -oN  result.txt        # 扫描指定的端口并打印扫描结果

- oX保存成xml表格格式

        nmap -p 21,23  10.1.1.3 -oX result.xml                # 扫描指定的端口并打印扫描结果

口令破解

口令安全威胁概述现在很多地方都以用户名(账号)和口令(密码)作为鉴权的方式,口令(密码)就意味着访问权限。口令(密码)就相当于进入家门的钥匙,当他人有一把可以进入你家的钥匙,想想你的安全、你的财务、你的隐私、害怕了吧。例如网站后台、数据库、服务器、个人电脑、QQ、邮箱等等

- 口令安全现状

@ 弱口令。

类似于123456、654321、 admin123等这样常见的弱密码。

@ 默认口令

很多应用或者系统都存在默认口令。比如 phpstudy的 mysql数据库默认账密[ root/root ], Tomcat   管理控制台默认账密[ tomcat/ tomcat ]等。

@ 明文传输

比如http、ftp、telnet等服务,在网络中传输的数据流都是明文的,包括口令认证信息等。这样的服务,就有被嗅探的风险 。

破解方式

- 暴力破解

暴力破解就是利用所有可能的字符组成密码,去尝试破解。这是最原始,粗暴的破解方法,根据运算能力,如果能够承受的起时间成本的话,最终一定会爆破出密码。下表是不同字符集合不同位数密码的数量。

字符集 密码位数 密码空间
【0 - 9】 8位 10~8=100000000
【0 - 9】【a - z】 8位 36^8=28211099074560
【0 - 9】【a - z】 1 - 8位 ??

下图为用真空密码字典生成器,生成的1到8位数的小写字母和数字字典,约占用空间

- 字典破解

如果能通过比较合理的条件,筛选或者过滤掉一些全字符组合的内容,就会大幅降低爆破的成本。我们把筛选出的密码组合成特定的字典。在用字典爆破密码也是可以的,但是这样做有可能会漏掉真正的密码。密码字典大致分为以下几类。

@弱口令字典

比如123456,dmin等这样的默认口令或弱口令。

@ 社工字典(社会工程学)

人们在设置密码的时候,往往为了便于记忆,密码的内容和组合会与个人信息有关,比如常见的密码组合“名字+生日”。社工字典更具针对性,准确率也比较高。

下图为,根据提供的用户信息,使用亦思社会工程学字典生成器生成的用户可能使用的密码,通过此字典进行密码破解。

- 字符集字典

如果能确定密码的字符集合,也将大大降低爆破的成本

windows口令破解

        - windows口令远程爆破

我们可以通过Ntscan工具远程爆破 windows口令

工具 Ntscan
使用场景 本地网络(局域网)
支持模式 139/445 | 支持IPC/SMB/WMI  三种扫描模式
字典文件 NT user.dic/ NT pass.die

        如何防止 Ntscan扫描?

本地策略-->安全选项-->网络访问:本地账户的共享和安全模式属性-->仅来宾模式

例: 准备两台虚拟机如:windowsXP -- 模拟黑客攻击机         windows server2003 -- 模拟肉鸡

        1)让两台虚拟机能互相通信(可以使用ping命令测试)如:windows server2003的IP配置成:10.1.1.1/24,windowsXP的IP配置成:10.1.1.2/24,然后把两台虚拟就桥接到同一个虚拟网络就行了。

        2)在windowsXP使用软件进行破解密码

- windows账户 本地 hash 值破解

除了可以从远程爆破 windows密码,我们还可以在本地破解 windows 密码。本地indows账户破解主要有两种方式。

@ 从内存中读取 windows密码

我们可以是用gtpase直接从 windows 系统内存中读取庄户密码。 (针对win2003系统,win10不起效)

@ windows hash值破解(不是win2003系统,就可以用这种方式)

windows Hash 值破解一共需要两步操作。首先我们使用Quarks Pwdump工具读取(导出) windows账户密码hash值,然后再使用 Saminside工具破解 hash 值。

提取本机的哈希值

        输入:QuarksPwDump.exe   # 进入蓝色的命令行窗口

                  QuarksPwDump.exe -dhl   # 提取哈希值

暴力破解哈希 

1)把你认为可能是密码的字符串,使用密码本生成复制粘贴到上图软件的密码本文件中(密码本文件是运行程序才会自动生成)

2)选择要破解的哈希值文件(刚才创建的hash.txt文件 )

linux口令破解(linux里kali内的工具进行远程连接破解)

linux 口令破解,也分远程破解与本地破解。远程破解主要是爆破ssh服务,属于在线密码攻击。本地破解需要拿到linux的 shadow 文件,进行hash值破解,属于离线密码攻击。

在kali命令行输入 hydra  出现以下内容 

- 破解SSH服务

             -L 账户字典

             -l 单个账户名

             -p 单个密码

             -P 密码字典

             -vV 显示破解过程

我们使用 hydra 攻击破解ssh服务(22端口), hydra攻击己经自动集成在kali虚拟机中。命令如下

        hydra -l administrator -P /root/dic/test_pwd.dic 10.1.1.3 ssh -vV  #  administrator(用户名)   /root/dic/test_pwd.dic(密码本路径)

        注意:要目标主机开启了相应的服务端口,才能暴力破解

         测试21、23、445端口是否开启

         准备好一个密码本(如果无法确定账号,可以再准备一个账号本)

hydra爆破telnet(23端口):-p # 使用密码   -P # 使用密码字典  -vV # 显示破解过程

hydra -l administrator -P /home/kali/桌面/test_pwd.txt 10.1.1.3 telnet   #  通过23端口进行破解密码 

hydra爆破FTP(21端口)

hydra -l administrator -P /home/kali/桌面/test_pwd.txt 10.1.1.3 ftp #  通过21端口进行破解密码 

hydra爆破smb(445):

hydra -l administrator -P /home/kali/桌面/test_pwd.txt 10.1.1.3 smb #  通过445端口进行破解密码 

         总结:先扫描对方那个端口打开了,就使用那个端口进行破解

- 本地 shadow文件破解

我们可以使用john工具,破解 shadow 密码文件。

john有 windows版和linux版本。jhn也是自动集成在kali中。john破解的时候也需要准备一个字典。

        john的具体命令如下

        john --wordlist=/home/kali/桌面/test_pwd.txt /etc/shadow   # 指定要使用的字典

        john --show /etc/shadow           # 开始破解

kail - 扫描与爆破相关推荐

  1. 【CyberSecurityLearning 10】扫描与爆破

    目录 扫描技术 基础知识 @ 常见端口号 Nmap-扫描器之王 重要常用参数(区分大小写) 远程爆破软件:九头蛇(hydra-8.1-windows) [ˈhaɪdrə]​ 本地破解 本地暴力破解: ...

  2. python——利用nmap进行端口扫描,爆破ftp密码,上传wellshell.

    一.端口扫描 首先安装nmap与python-nmap模块.从http://nmap.org/download.html网站下载nmap安装文件.从http://xael.org/norman/pyt ...

  3. MFS 服务扫描与爆破

    MSF 服务发现 常用来发现局域网内,的常见服务,比如HTTP,FTP,TELNET等. MSF模块搜索: [root@localhost ~]# msfconsole msf5 > searc ...

  4. Kerberos协议探索系列之扫描与爆破篇

    0x00 前言 Kerberos是一种由MIT(麻省理工大学)提出的一种网络身份验证协议.它旨在通过使用密钥加密技术为客户端/服务器应用程序提供强身份验证. 在了解Kerberos的过程中,发现很多网 ...

  5. 渗透测试--网站目录扫描(爆破)--Dirbuster下载、安装和使用

    一.下载安装 1.云盘下载地址:链接:https://pan.baidu.com/s/1KODKnjjpGVCqNBpQ0bnCGA 提取码:ovdx 2.其它下载地址:https://sourcef ...

  6. p66 内网安全-域横向批量atschtasksimpacket

    数据来源 本文仅用于信息安全的学习,请遵守相关法律法规,严禁用于非法途径.若观众因此作出任何危害网络安全的行为,后果自负,与本人无关. 基本概念 DMZ区域:称为"隔离区",也称' ...

  7. 黑客攻击方式之暴力破解

    数据来源 本文仅用于信息安全的学习,请遵守相关法律法规,严禁用于非法途径.若观众因此作出任何危害网络安全的行为,后果自负,与本人无关. 01 暴力破解介绍及应用场景 >暴力破解介绍 >暴力 ...

  8. 0x02 内网渗透篇

     来源如下图:(微信公众号:0x00实验室) 00 - 内网渗透的流程 拿到跳板后,先探测一波内网存活主机,用net user /domian命令查看跳板机是否在域内,探测存活主机.提权.提取hash ...

  9. p69 内网安全-域横向 CobaltStrikeSPNRDP

    数据来源 SPN(Secret Private Network缩写)_百度百科 (baidu.com) 演示案例 域横向移动RDP传递-Mimikatz 域横向移动SPN服务-探针,请求,导出,破解, ...

最新文章

  1. 2022-2028年中国钛合金行业深度调研及投资前景预测报告
  2. FckEditor-未能映射路径/UserFiles/image/
  3. 爆肝800000秒想出低成本无人驾驶测距
  4. WSE3.0构建Web服务安全(4):MTOM消息传输优化和文件上传、下载
  5. bzoj1491: [NOI2007]社交网络
  6. 使用DSX2-5000 CH测试时选择(+PoE)和(+All)后缀的含义
  7. 2017年9月27日日志
  8. mybatis中获取当前时间_Mybatis获取当前数据库时间
  9. android程序导入虚拟机,android项目打包成apk应用程序后部署到虚拟机上测试
  10. Mac 升级 PHP 7
  11. 20 世纪 10 大算法
  12. Springboot+ Mybatis搭建学习
  13. 金蝶K3 WISE 12.3版本系统部署指南
  14. oracle分页优化
  15. vsftpd基于mysql_vsftpd基于mysql实现用户认证
  16. java 实心圆,如何用css3实现实心圆
  17. 小程序如何写一个优美的tab选项卡
  18. UE发生GPU崩溃D3D丢失,真的跟硬件有关系。
  19. mybatis使用注解的时候,找不到映射:Type interface com.dao.UserDao is not known to the MapperRegistry.
  20. LabVIEW编程LabVIEW开发 旧程序升级维护

热门文章

  1. python的优点和缺点以及用途
  2. 关于Redis配置文件不生效的问题
  3. 金蝶-增值税调整软件同步处理办法
  4. random和urandom的区别
  5. 遇到SubSonic
  6. 【python】经纬度坐标(以度为单位)转换为经纬度(度分秒为单位)
  7. 联想G510笔记本电脑换屏——操作步骤详解
  8. 操作系统精髓-进程相关知识总结
  9. android json分页,移动测试之异步任务+JSON解析+ListView分页
  10. 神经网络那些事之在现实生活中的应用