【网安-小迪】Day5:反弹SHELL不回显带外正反向连接防火墙出入站文件下载
1 文件上传下载
主要是在无图形化的页面进行上传下载文件的命令,解决数据传输
先创建网站,然后在网站上尝试上传下载
可以在这个社区的文件下载地方,构建下载地址、端口、文件名和保存到对方的电脑的文件名,然后点击改变,就得到了很多对应的命令
比如在windows系统c盘cmd执行下载命令
在linux系统执行命令
2 反弹shell
解决数据回显,解决数据通讯
举例:
添加一个用户,需要输入密码,但是如果一直不动他,就会一直卡着
假如在网上获得一个漏洞,这个漏洞需要去执行命令,执行完之后需要等待你的输入才能往下进行,但是在网站上,输入命令之后就执行了,但是不会把对方的界面给到你,导致你的命令就一直卡在那里,这个时候就是反弹命令的优势之处,他可以把这个界面反弹回来,然后再用命令就可以了
可以直接把权限反弹回来
可以理解为,把对方的命令窗口拿过来了
2.1 正向连接
本地监听,等待对方连接
是正是反主要看参照物
2.1.1 linux控制windows
需要借助到nc工具,linux自带,windows需要下载第三方nc
先把windows的cmd绑定5566端口
再用linux连接windows机器的5566端口
控制成功
这就是正向连接之后反弹得到cmd窗口
2.1.2 winsows控制linux
2.2 反向连接
主动给出去,对方监听(你准备好了,我给你)
2.3 应用
内网环境出网都是通过一个独立且唯一的公用ip
要控制内网的某一台机器的权限,只能通过内网环境的机器出网主动连接外网服务器,
这种情况只能通过反向连接
2.3.1 内网连接实验
先开一个虚拟机,虚拟机就是一个内网,是根据主机上网的,想通过linux机器连接虚拟机
然后把nc上传到虚拟机里,虚拟机打开监听
尝试去连接
发现连接超时,因为找不到内网ip
去连接虚拟机出网的公用ip,也连不上,因为这个公用ip是路由器的出口,路由器出口并没有执行监听操作
所以想要控制这台windows虚拟机,只能反向,让虚拟机主动给出去,本机监听5566,就成了
内网机器只能主动发起进攻
内网连接linux,就让linux监听,内网服务器主动去连接
2.3.1 防火墙场景
这是数据回显的知识点,利用管道符来进行
执行whoami,判断是windows
这是一个windows服务器,想要去控制它,需要上传nc来反弹权限
需要提前准备好一个下载好nc的服务器,然后通过执行文件下载命令去给这个靶场下载nc
改一下命令的下载路径到c盘
这就下载好了,然后执行反弹操作
正向:
两种方式:
第一种:服务器自己把cmd绑定端口,然后控制主机主动连接
第二种:服务器主动把权限交到主机的端口,主机只需要监听就可
第二种:
2.3.3 防火墙策略
入栈策略:
先给虚拟机启用防火墙
假设在入栈规则上限制5566端口,这样的话第一种连接方式就不行了
已经连接不上了
第二种可以
如果出站限制了5566,就只能主机自己主动连接
3 带外查询
3.1 数据回显问题
执行命令之后有数据回显,能知道执行命令成功或失败,但是如果不回显,就不能知道是成功还是失败
比如下面执行了whoami命令的回显(先确定了命令能够执行,后面就只需要考虑怎么把关掉数据回显后,怎么把能够执行的命令出来的结果带出来(用到了dnslog网站,因为这个网站可以记录执行了什么以及返回的结果,通过这个网站返回结果的界面把执行命令得到的结果带出来))
这里改一下小皮网站的源码
发现不回显数据了
这时候就需要反弹shell或者带外查询(主动把结果给出来)(这里讲的是带外查询,就是把执行的结果带出来)
需要用到管道符去写
在dnslog网站能够随机生成一个地址,用主机区ping的时候会留下记录
这里whoami执行出的root逮到了原始地址里面
一条命令数据不回显,可以ping执行一条命令看一下数据有没有更改就知道了,直接给他带出来显示
这里表明linux可以执行'whoami'命令,并且可以通过dnslog网站把执行结果带出来
但是windows服务器不支持带入。在小皮面板上不可行,小皮面板就是windows的
原因:windows里面管道符不能加'',可以执行whoami显示出whoami,但是不能执行'whoami'显示出administrator
下面就先在一个windows服务器上找到解决方法之后,再把成功的命令拿到小皮面板上去执行
解决方法:采用powershell命令
这个命令是cmd的升级版,可以直接复制
然后就想办法输出
但是又发现ping的时候\不能被识别,所以想办法把\替换掉,这里提换成了xxxx
这样就可以ping通了,也受到了whoami的信息
讲的这些就是为了能够从小皮面板把数据带出去
3.2 数据回显实例
执行的语句:
为什么这样写?
cmd里无法执行whoami,前面是一个ping命令,在他的脚本代码中就只能执行ip地址,whoami不支持,所以只有把执行结果带出去
用到powershell变量赋值,把whoami执行结果给变量
但是结果里带有'\'导致ping命令无法执行
所以就进行替换
结果带出来了
x的赋值就是你想带出来的结果
这就是数据带外
注意:ping的解析能绕过防火墙