MCPcopy Index your code
hub / github.com/secdev/scapy / spawn

Method spawn

scapy/layers/msrpce/rpcserver.py:130–215  ·  view source on GitHub ↗

Spawn a DCE/RPC server :param transport: one of DCERPC_Transport :param iface: the interface to spawn it on (default: conf.iface) :param port: the port to spawn it on (for IP_TCP or the SMB server) :param bg: background mode? (default: False) :param

(cls, transport, iface=None, port=135, bg=False, **kwargs)

Source from the content-addressed store, hash-verified

128
129 @classmethod
130 def spawn(cls, transport, iface=None, port=135, bg=False, **kwargs):
131 """
132 Spawn a DCE/RPC server
133
134 :param transport: one of DCERPC_Transport
135 :param iface: the interface to spawn it on (default: conf.iface)
136 :param port: the port to spawn it on (for IP_TCP or the SMB server)
137 :param bg: background mode? (default: False)
138 :param ndr64: whether NDR64 is supported or not (default: conf.ndr64).
139 This attribute will be overwritten if the client doesn't support it.
140 """
141 if transport == DCERPC_Transport.NCACN_IP_TCP:
142 # IP/TCP case
143 ssock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
144 local_ip = get_if_addr(iface or conf.iface)
145 try:
146 ssock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
147 except OSError:
148 pass
149 ssock.bind((local_ip, port))
150 ssock.listen(5)
151 sockets = []
152 if kwargs.get("verb", True):
153 print(
154 conf.color_theme.green(
155 "Server %s started. Waiting..." % cls.__name__
156 )
157 )
158
159 def _run():
160 # Wait for clients forever
161 try:
162 while True:
163 clientsocket, address = ssock.accept()
164 sockets.append(clientsocket)
165 print(
166 conf.color_theme.gold(
167 "\u2503 Connection received from %s" % repr(address)
168 )
169 )
170 server = cls(
171 DCERPC_Transport.NCACN_IP_TCP,
172 local_ip=local_ip,
173 port=port,
174 **kwargs,
175 )
176 threading.Thread(
177 target=server.loop, args=(clientsocket,)
178 ).start()
179 except KeyboardInterrupt:
180 print("X Exiting.")
181 ssock.shutdown(socket.SHUT_RDWR)
182 except OSError:
183 print("X Server closed.")
184 finally:
185 for sock in sockets:
186 try:
187 sock.shutdown(socket.SHUT_RDWR)

Callers 1

__init__Method · 0.45

Calls 4

get_if_addrFunction · 0.90
bindMethod · 0.45
getMethod · 0.45
startMethod · 0.45

Tested by

no test coverage detected