bind_shell.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:splunk_shells 作者: TBGSecurity 项目源码 文件源码
def _activate(self):
                address, port = self.url[6:].rsplit(':', 1)
                port = int(port.rstrip('/'))
                timeout = max(self.communication_timeout, 30)
                if address in ('', '0.0.0.0', '::'):
                    try:
                        server_sock = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
                        server_sock.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 0)
                    except (AttributeError, socket.error):
                        server_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                    server_sock.bind(('', port))
                    server_sock.listen(1)
                    if not select.select([server_sock], [], [], timeout)[0]:
                        server_sock.close()
                        return False
                    sock, _ = server_sock.accept()
                    server_sock.close()
                else:
                    if ':' in address:
                        sock = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
                    else:
                        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                    sock.settimeout(timeout)
                    sock.connect((address, port))
                    sock.settimeout(None)
                self.socket = sock
                self._first_packet = True
                return True
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号