pwnlib.tubes.sock
— Sockets¶
-
class
pwnlib.tubes.sock.
sock
[source]¶ Bases:
pwnlib.tubes.tube.tube
Methods available exclusively to sockets.
-
class
pwnlib.tubes.remote.
remote
(host, port, fam='any', typ='tcp', timeout=pwnlib.timeout.Timeout.default, ssl=False, sock=None, level=None)[source]¶ Bases:
pwnlib.tubes.sock.sock
Creates a TCP or UDP-connection to a remote host. It supports both IPv4 and IPv6.
The returned object supports all the methods from
pwnlib.tubes.sock
andpwnlib.tubes.tube
.Parameters: - host (str) – The host to connect to.
- port (int) – The port to connect to.
- fam – The string “any”, “ipv4” or “ipv6” or an integer to pass to
socket.getaddrinfo()
. - typ – The string “tcp” or “udp” or an integer to pass to
socket.getaddrinfo()
. - timeout – A positive number, None or the string “default”.
- ssl (bool) – Wrap the socket with SSL
- sock (socket) – Socket to inherit, rather than connecting
Examples
>>> r = remote('google.com', 443, ssl=True) >>> r.send('GET /\r\n\r\n') >>> r.recvn(4) b'HTTP' >>> r = remote('127.0.0.1', 1) Traceback (most recent call last): ... PwnlibException: Could not connect to 127.0.0.1 on port 1 >>> import socket >>> s = socket.socket() >>> s.connect(('google.com', 80)) >>> s.send(b'GET /' + b'\r\n' * 2) 9 >>> r = remote.fromsocket(s) >>> r.recvn(4) b'HTTP'
-
class
pwnlib.tubes.listen.
listen
(port=0, bindaddr='0.0.0.0', fam='any', typ='tcp', timeout=pwnlib.timeout.Timeout.default, level=None)[source]¶ Bases:
pwnlib.tubes.sock.sock
Creates an TCP or UDP-socket to receive data on. It supports both IPv4 and IPv6.
The returned object supports all the methods from
pwnlib.tubes.sock
andpwnlib.tubes.tube
.Parameters: - port (int) – The port to connect to.
- bindaddr (str) – The address to bind to.
- fam – The string “any”, “ipv4” or “ipv6” or an integer to pass to
socket.getaddrinfo()
. - typ – The string “tcp” or “udp” or an integer to pass to
socket.getaddrinfo()
. - timeout – A positive number, None