RubyIOC 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +20 -0
- data/Gemfile +3 -0
- data/LICENSE +7 -0
- data/README.md +7 -0
- data/Rakefile +8 -0
- data/RubyIOC.gemspec +24 -0
- data/lib/RubyIOC.rb +39 -0
- data/lib/RubyIOC/ioc.rb +58 -0
- data/lib/RubyIOC/iocitem.rb +59 -0
- data/lib/RubyIOC/iocitem/arp_entry_item.rb +33 -0
- data/lib/RubyIOC/iocitem/cookie_history_item.rb +33 -0
- data/lib/RubyIOC/iocitem/disk_item.rb +33 -0
- data/lib/RubyIOC/iocitem/dns_entry_item.rb +66 -0
- data/lib/RubyIOC/iocitem/driver_item.rb +33 -0
- data/lib/RubyIOC/iocitem/event_log_item.rb +33 -0
- data/lib/RubyIOC/iocitem/file_download_history_item.rb +33 -0
- data/lib/RubyIOC/iocitem/file_item.rb +33 -0
- data/lib/RubyIOC/iocitem/form_history_item.rb +33 -0
- data/lib/RubyIOC/iocitem/hash_item.rb +33 -0
- data/lib/RubyIOC/iocitem/hook_item.rb +33 -0
- data/lib/RubyIOC/iocitem/module_item.rb +33 -0
- data/lib/RubyIOC/iocitem/persistence_item.rb +33 -0
- data/lib/RubyIOC/iocitem/port_item.rb +33 -0
- data/lib/RubyIOC/iocitem/prefetch_item.rb +33 -0
- data/lib/RubyIOC/iocitem/process_item.rb +33 -0
- data/lib/RubyIOC/iocitem/registry_hive_item.rb +33 -0
- data/lib/RubyIOC/iocitem/registry_item.rb +33 -0
- data/lib/RubyIOC/iocitem/route_entry_item.rb +33 -0
- data/lib/RubyIOC/iocitem/service_item.rb +33 -0
- data/lib/RubyIOC/iocitem/string_match_item.rb +33 -0
- data/lib/RubyIOC/iocitem/system_info_item.rb +33 -0
- data/lib/RubyIOC/iocitem/system_restore_item.rb +33 -0
- data/lib/RubyIOC/iocitem/task_item.rb +33 -0
- data/lib/RubyIOC/iocitem/timeline_item.rb +33 -0
- data/lib/RubyIOC/iocitem/url_history_item.rb +33 -0
- data/lib/RubyIOC/iocitem/user_item.rb +81 -0
- data/lib/RubyIOC/iocitem/volume_item.rb +33 -0
- data/lib/RubyIOC/iocterm.rb +22 -0
- data/lib/RubyIOC/platform.rb +55 -0
- data/lib/RubyIOC/scanner.rb +110 -0
- data/lib/RubyIOC/version.rb +15 -0
- data/test/find_windows.ioc +75 -0
- data/test/test_dns_entry_item.ioc +14 -0
- data/test/test_iocitem_factory.rb +17 -0
- data/test/test_scan.rb +16 -0
- data/test/test_user_item.ioc +28 -0
- data/test/zeus.ioc +69 -0
- metadata +103 -0
@@ -0,0 +1,110 @@
|
|
1
|
+
# Copyright (c) 2013 Matt Jezorek
|
2
|
+
#
|
3
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"),
|
4
|
+
# to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
5
|
+
# and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
6
|
+
#
|
7
|
+
# The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
8
|
+
#
|
9
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
10
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
11
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
12
|
+
# IN THE SOFTWARE.
|
13
|
+
require "rubygems"
|
14
|
+
require "active_support"
|
15
|
+
require "yaml"
|
16
|
+
require "pp"
|
17
|
+
module RubyIOC
|
18
|
+
class Scanner
|
19
|
+
def initialize(iocXML)
|
20
|
+
@ioc = RubyIOC::IOC.from_xml(iocXML)
|
21
|
+
end
|
22
|
+
|
23
|
+
def scan
|
24
|
+
results = []
|
25
|
+
indicators = []
|
26
|
+
@ioc.indicators.each { |i|
|
27
|
+
results << process_indicators(i, results)
|
28
|
+
}
|
29
|
+
puts results.to_yaml
|
30
|
+
end
|
31
|
+
|
32
|
+
def get_all_results(items, results)
|
33
|
+
items.each { | a |
|
34
|
+
a.each_pair { |k,v|
|
35
|
+
results << v['result']
|
36
|
+
}
|
37
|
+
}
|
38
|
+
return results
|
39
|
+
end
|
40
|
+
|
41
|
+
def get_result(operator, results)
|
42
|
+
result = false
|
43
|
+
# setup what indicators we want
|
44
|
+
indicators = results['indicators']
|
45
|
+
if indicators.empty?
|
46
|
+
indicators = get_all_results(results['items'], [])
|
47
|
+
end
|
48
|
+
case operator
|
49
|
+
when "OR"
|
50
|
+
result = false
|
51
|
+
indicators.each { |ind |
|
52
|
+
if ind == true
|
53
|
+
result = true
|
54
|
+
end
|
55
|
+
}
|
56
|
+
when "AND"
|
57
|
+
result = true
|
58
|
+
indicators.each { |ind|
|
59
|
+
if ind == false
|
60
|
+
result = false
|
61
|
+
end
|
62
|
+
}
|
63
|
+
else
|
64
|
+
puts "You have me an invalid operator"
|
65
|
+
end
|
66
|
+
return result
|
67
|
+
end
|
68
|
+
|
69
|
+
def process_indicators(i, results)
|
70
|
+
res = {}
|
71
|
+
search_item = []
|
72
|
+
res[i.id] = {}
|
73
|
+
res[i.id]['items'] = []
|
74
|
+
res[i.id]['operator'] = i.operator
|
75
|
+
res[i.id]['indicators'] = []
|
76
|
+
if i.operator === "AND"
|
77
|
+
i.indicator_item.each { | inditem |
|
78
|
+
tmp = {}
|
79
|
+
tmp[:document] = inditem.document
|
80
|
+
tmp[:search] = inditem.search
|
81
|
+
tmp[:condition] = inditem.condition
|
82
|
+
tmp[:content_type] = inditem.content_type
|
83
|
+
tmp[:content] = inditem.content
|
84
|
+
tmp[:context_type] = inditem.context_type
|
85
|
+
search_item << tmp
|
86
|
+
}
|
87
|
+
res[i.id]['indicators'] << RubyIOC::IOCItem::IOCItemFactory.item_for(search_item[0][:document]).scan(search_item)
|
88
|
+
puts res[i.id]['indicators'].inspect
|
89
|
+
else
|
90
|
+
i.indicator_item.each { | inditem |
|
91
|
+
tmp = {}
|
92
|
+
tmp[:document] = inditem.document
|
93
|
+
tmp[:search] = inditem.search
|
94
|
+
tmp[:condition] = inditem.condition
|
95
|
+
tmp[:content_type] = inditem.content_type
|
96
|
+
tmp[:content] = inditem.content
|
97
|
+
tmp[:context_type] = inditem.context_type
|
98
|
+
search_item << tmp
|
99
|
+
res[i.id]['indicators'] << RubyIOC::IOCItem::IOCItemFactory.item_for(inditem.document).scan(search_item)
|
100
|
+
}
|
101
|
+
end
|
102
|
+
i.indicators.each { |ii |
|
103
|
+
process_indicators(ii, res[i.id]['items'])
|
104
|
+
}
|
105
|
+
res[i.id]['result'] = get_result(i.operator, res[i.id])
|
106
|
+
results << res
|
107
|
+
end
|
108
|
+
|
109
|
+
end
|
110
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# Copyright (c) 2013 Matt Jezorek
|
2
|
+
#
|
3
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"),
|
4
|
+
# to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
5
|
+
# and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
6
|
+
#
|
7
|
+
# The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
8
|
+
#
|
9
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
10
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
11
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
12
|
+
# IN THE SOFTWARE.
|
13
|
+
module RubyIOC
|
14
|
+
VERSION = "0.0.1"
|
15
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
<?xml version="1.0" encoding="us-ascii"?>
|
2
|
+
<ioc xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" id="c32ab7b5-49c8-40cc-8a12-ef5c3ba91311" last-modified="2011-10-28T19:28:20" xmlns="http://schemas.mandiant.com/2010/ioc">
|
3
|
+
<short_description>FIND WINDOWS</short_description>
|
4
|
+
<description>This is a sample IOC that will hit on a number different artifacts present on a Windows computer. This IOC is used to test or illustrate the use of an IOC.</description>
|
5
|
+
<keywords />
|
6
|
+
<authored_by>Mandiant</authored_by>
|
7
|
+
<authored_date>0001-01-01T00:00:00</authored_date>
|
8
|
+
<links />
|
9
|
+
<definition>
|
10
|
+
<Indicator operator="OR" id="2e693207-ae90-4f9b-8a31-67f31f1d263c">
|
11
|
+
<IndicatorItem id="5ebfad1c-6f1a-472b-ae58-6fdfede0f4e7" condition="contains">
|
12
|
+
<Context document="FileItem" search="FileItem/FullPath" type="mir" />
|
13
|
+
<Content type="string">\kernel32.dll</Content>
|
14
|
+
</IndicatorItem>
|
15
|
+
<IndicatorItem id="5b79c908-9d4d-4536-8699-9538af1576e8" condition="is">
|
16
|
+
<Context document="FileItem" search="FileItem/FileName" type="mir" />
|
17
|
+
<Content type="string">win.ini</Content>
|
18
|
+
</IndicatorItem>
|
19
|
+
<IndicatorItem id="d1e188e1-fae6-488d-ba2f-a900abb21f14" condition="contains">
|
20
|
+
<Context document="FileItem" search="FileItem/FileExtension" type="mir" />
|
21
|
+
<Content type="string">evt</Content>
|
22
|
+
</IndicatorItem>
|
23
|
+
<IndicatorItem id="78af913e-a007-4f8a-864f-b543dd7a6d09" condition="is">
|
24
|
+
<Context document="ProcessItem" search="ProcessItem/name" type="mir" />
|
25
|
+
<Content type="string">explorer.exe</Content>
|
26
|
+
</IndicatorItem>
|
27
|
+
<IndicatorItem id="9aaa6f73-5bd5-4dbe-b36f-73ee2e74655d" condition="is">
|
28
|
+
<Context document="EventLogItem" search="EventLogItem/EID" type="mir" />
|
29
|
+
<Content type="int">6009</Content>
|
30
|
+
</IndicatorItem>
|
31
|
+
<IndicatorItem id="16db1a80-af40-45fc-9db6-484bf372213b" condition="is">
|
32
|
+
<Context document="UserItem" search="UserItem/Username" type="mir" />
|
33
|
+
<Content type="string">Administrator</Content>
|
34
|
+
</IndicatorItem>
|
35
|
+
<IndicatorItem id="9a87eb7e-2b26-40a1-a8f6-7afa7d546aeb" condition="is">
|
36
|
+
<Context document="ServiceItem" search="ServiceItem/name" type="mir" />
|
37
|
+
<Content type="string">TrkWks</Content>
|
38
|
+
</IndicatorItem>
|
39
|
+
<IndicatorItem id="0f605238-d7e1-4c5b-970c-071e50b82c22" condition="contains">
|
40
|
+
<Context document="RegistryItem" search="RegistryItem/Path" type="mir" />
|
41
|
+
<Content type="string">\DosDevices\C:</Content>
|
42
|
+
</IndicatorItem>
|
43
|
+
<IndicatorItem id="e0b70fd0-38ac-4da2-a0eb-a9a9bb90e78f" condition="is">
|
44
|
+
<Context document="PortItem" search="PortItem/localPort" type="mir" />
|
45
|
+
<Content type="string">445</Content>
|
46
|
+
</IndicatorItem>
|
47
|
+
<IndicatorItem id="faed6244-b531-46e1-9be9-baf19fc977b7" condition="is">
|
48
|
+
<Context document="VolumeItem" search="VolumeItem/DriveLetter" type="mir" />
|
49
|
+
<Content type="string">C</Content>
|
50
|
+
</IndicatorItem>
|
51
|
+
<IndicatorItem id="2e463fa6-fe0e-403c-9fa9-894bd42f8a82" condition="is">
|
52
|
+
<Context document="DiskItem" search="DiskItem/DiskName" type="mir" />
|
53
|
+
<Content type="string">\\.\PhysicalDrive0</Content>
|
54
|
+
</IndicatorItem>
|
55
|
+
<IndicatorItem id="a7fdaf04-51dc-4c7e-a1e1-d4baf40e863d" condition="is">
|
56
|
+
<Context document="HookItem" search="HookItem/HookedModule" type="mir" />
|
57
|
+
<Content type="string">disk.sys</Content>
|
58
|
+
</IndicatorItem>
|
59
|
+
<IndicatorItem id="f23f9121-9618-43c0-860b-d0f7122e23de" condition="is">
|
60
|
+
<Context document="DriverItem" search="DriverItem/DriverName" type="mir" />
|
61
|
+
<Content type="string">disk.sys</Content>
|
62
|
+
</IndicatorItem>
|
63
|
+
<Indicator operator="AND" id="990fbe29-6af6-45cb-b07e-6d13c5a30617">
|
64
|
+
<IndicatorItem id="de7c6347-34d8-4a16-b559-38d9f4e6aabb" condition="is">
|
65
|
+
<Context document="FileItem" search="FileItem/FileName" type="mir" />
|
66
|
+
<Content type="string">sens.dll</Content>
|
67
|
+
</IndicatorItem>
|
68
|
+
<IndicatorItem id="96b8856c-f865-4805-93ed-aa8780b87617" condition="is">
|
69
|
+
<Context document="FileItem" search="FileItem/PEInfo/DigitalSignature/SignatureExists" type="mir" />
|
70
|
+
<Content type="string">true</Content>
|
71
|
+
</IndicatorItem>
|
72
|
+
</Indicator>
|
73
|
+
</Indicator>
|
74
|
+
</definition>
|
75
|
+
</ioc>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<?xml version="1.0" encoding="us-ascii"?>
|
2
|
+
<ioc xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" id="efce87c7-f78f-4e32-8f3f-b470d1ec693f" last-modified="2013-01-07T01:29:04" xmlns="http://schemas.mandiant.com/2010/ioc">
|
3
|
+
<short_description>*New Unsaved Indicator*</short_description>
|
4
|
+
<authored_date>2013-01-07T01:25:50</authored_date>
|
5
|
+
<links />
|
6
|
+
<definition>
|
7
|
+
<Indicator operator="OR" id="336a594b-3302-4ac8-9512-4f329d660515">
|
8
|
+
<IndicatorItem id="1d1ca6f3-6bf9-4c8a-812e-3e9879f5ad29" condition="contains">
|
9
|
+
<Context document="DnsEntryItem" search="DnsEntryItem/Host" type="mir" />
|
10
|
+
<Content type="string">www.google.com</Content>
|
11
|
+
</IndicatorItem>
|
12
|
+
</Indicator>
|
13
|
+
</definition>
|
14
|
+
</ioc>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require "test/unit"
|
2
|
+
require "RubyIOC"
|
3
|
+
|
4
|
+
class TestIocItemFactory < Test::Unit::TestCase
|
5
|
+
def test_factories_exist
|
6
|
+
assert_not_nil RubyIOC::IOCItem::IOCItemFactory.factories
|
7
|
+
assert_not_equal RubyIOC::IOCItem::IOCItemFactory.factories.size, 0
|
8
|
+
end
|
9
|
+
|
10
|
+
#def test_factories_can_be_retrieved
|
11
|
+
# RubyIOC::IOCItem::IOCItemFactory.factories.each { |f|
|
12
|
+
# type = f.new.get_type
|
13
|
+
# assert_not_nil RubyIOC::IOCItem::IOCItemFactory.item_for(type)
|
14
|
+
# assert_equal RubyIOC::IOCItem::IOCItemFactory.item_for(type).get_type, type
|
15
|
+
# }
|
16
|
+
#end
|
17
|
+
end
|
data/test/test_scan.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
require "test/unit"
|
2
|
+
require "RubyIOC"
|
3
|
+
|
4
|
+
class TestScan < Test::Unit::TestCase
|
5
|
+
def test_scan
|
6
|
+
# find_windows_ioc = File.expand_path(File.dirname(__FILE__)) + "/find_windows.ioc"
|
7
|
+
# test_user_item = File.expand_path(File.dirname(__FILE__)) + "/test_user_item.ioc"
|
8
|
+
#RubyIOC::Scanner.new(File.read(test_user_item)).scan
|
9
|
+
# puts RubyIOC::Scanner.new(File.read(test_user_item)).scan
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_dns_scan
|
13
|
+
dns_test_ioc = File.expand_path(File.dirname(__FILE__)) + "/test_dns_entry_item.ioc"
|
14
|
+
RubyIOC::Scanner.new(File.read(dns_test_ioc)).scan
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
<?xml version="1.0" encoding="us-ascii"?>
|
2
|
+
<ioc xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" id="efce87c7-f78f-4e32-8f3f-b470d1ec693f" last-modified="2013-01-07T01:29:04" xmlns="http://schemas.mandiant.com/2010/ioc">
|
3
|
+
<short_description>*New Unsaved Indicator*</short_description>
|
4
|
+
<authored_date>2013-01-07T01:25:50</authored_date>
|
5
|
+
<links />
|
6
|
+
<definition>
|
7
|
+
<Indicator operator="OR" id="336a594b-3302-4ac8-9512-4f329d660515">
|
8
|
+
<Indicator operator="AND" id="336a594b-3302-4ac8-9512-4f329d660515">
|
9
|
+
<IndicatorItem id="1d1ca6f3-6bf9-4c8a-812e-3e9879f5ad29" condition="contains">
|
10
|
+
<Context document="UserItem" search="UserItem/username" type="mir" />
|
11
|
+
<Content type="string">Guest</Content>
|
12
|
+
</IndicatorItem>
|
13
|
+
<IndicatorItem id="1d1ca6f3-6bf9-4c8a-812e-3e9879f5ad29" condition="contains">
|
14
|
+
<Context document="UserItem" search="UserItem/fullname" type="mir" />
|
15
|
+
<Content type="string"></Content>
|
16
|
+
</IndicatorItem>
|
17
|
+
<IndicatorItem id="ff27c0d0-08db-4223-afa1-cc6269fb2b25" condition="contains">
|
18
|
+
<Context document="UserItem" search="UserItem/disabled" type="mir" />
|
19
|
+
<Content type="string">true</Content>
|
20
|
+
</IndicatorItem>
|
21
|
+
</Indicator>
|
22
|
+
<IndicatorItem id="1d1ca6f3-6bf9-4c8a-812e-3e9879f5ad29" condition="contains">
|
23
|
+
<Context document="UserItem" search="UserItem/username" type="mir" />
|
24
|
+
<Content type="string">Guest</Content>
|
25
|
+
</IndicatorItem>
|
26
|
+
</Indicator>
|
27
|
+
</definition>
|
28
|
+
</ioc>
|
data/test/zeus.ioc
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
<?xml version="1.0" encoding="us-ascii"?>
|
2
|
+
<ioc xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" id="6d2a1b03-b216-4cd8-9a9e-8827af6ebf93" last-modified="2011-10-28T19:28:20" xmlns="http://schemas.mandiant.com/2010/ioc">
|
3
|
+
<short_description>Zeus</short_description>
|
4
|
+
<description>Finds Zeus variants, twexts, sdra64, ntos</description>
|
5
|
+
<keywords />
|
6
|
+
<authored_by>Mandiant</authored_by>
|
7
|
+
<authored_date>0001-01-01T00:00:00</authored_date>
|
8
|
+
<links />
|
9
|
+
<definition>
|
10
|
+
<Indicator operator="OR" id="9c8df971-32a8-4ede-8a3a-c5cb2c1439c6">
|
11
|
+
<Indicator operator="AND" id="0781258f-6960-4da5-97a0-ec35fb403cac">
|
12
|
+
<IndicatorItem id="50455b63-35bf-4efa-9f06-aeba2980f80a" condition="contains">
|
13
|
+
<Context document="ProcessItem" search="ProcessItem/name" type="mir" />
|
14
|
+
<Content type="string">winlogon.exe</Content>
|
15
|
+
</IndicatorItem>
|
16
|
+
<IndicatorItem id="b05d9b40-0528-461f-9721-e31d5651abdc" condition="contains">
|
17
|
+
<Context document="ProcessItem" search="ProcessItem/HandleList/Handle/Type" type="mir" />
|
18
|
+
<Content type="string">File</Content>
|
19
|
+
</IndicatorItem>
|
20
|
+
<Indicator operator="OR" id="67505775-6577-43b2-bccd-74603223180a">
|
21
|
+
<IndicatorItem id="c5ae706f-c032-4da7-8acd-4523f1dae9f6" condition="contains">
|
22
|
+
<Context document="ProcessItem" search="ProcessItem/HandleList/Handle/Name" type="mir" />
|
23
|
+
<Content type="string">system32\sdra64.exe</Content>
|
24
|
+
</IndicatorItem>
|
25
|
+
<IndicatorItem id="25ff12a7-665b-4e45-8b0f-6e5ca7b95801" condition="contains">
|
26
|
+
<Context document="ProcessItem" search="ProcessItem/HandleList/Handle/Name" type="mir" />
|
27
|
+
<Content type="string">system32\twain_32\user.ds</Content>
|
28
|
+
</IndicatorItem>
|
29
|
+
<IndicatorItem id="fea11706-9ebe-469b-b30a-4047cfb7436b" condition="contains">
|
30
|
+
<Context document="ProcessItem" search="ProcessItem/HandleList/Handle/Type" type="mir" />
|
31
|
+
<Content type="string">\WINDOWS\system32\twext.exe</Content>
|
32
|
+
</IndicatorItem>
|
33
|
+
<IndicatorItem id="94ac992c-8d6d-441f-bfc4-5235f9b09af8" condition="contains">
|
34
|
+
<Context document="ProcessItem" search="ProcessItem/HandleList/Handle/Name" type="mir" />
|
35
|
+
<Content type="string">system32\twain32\local.ds</Content>
|
36
|
+
</IndicatorItem>
|
37
|
+
<IndicatorItem id="bc12f44e-7d93-47ea-9cc9-86a2beeaa04c" condition="contains">
|
38
|
+
<Context document="ProcessItem" search="ProcessItem/HandleList/Handle/Name" type="mir" />
|
39
|
+
<Content type="string">system32\twext.exe</Content>
|
40
|
+
</IndicatorItem>
|
41
|
+
<IndicatorItem id="1c3f8902-d4e2-443a-a407-15be3951bef9" condition="contains">
|
42
|
+
<Context document="ProcessItem" search="ProcessItem/HandleList/Handle/Name" type="mir" />
|
43
|
+
<Content type="string">system32\lowsec\user.ds</Content>
|
44
|
+
</IndicatorItem>
|
45
|
+
<IndicatorItem id="7fab12d1-67ed-4149-b46a-ec50fc622bee" condition="contains">
|
46
|
+
<Context document="ProcessItem" search="ProcessItem/HandleList/Handle/Name" type="mir" />
|
47
|
+
<Content type="string">system32\lowsec\local.ds</Content>
|
48
|
+
</IndicatorItem>
|
49
|
+
</Indicator>
|
50
|
+
</Indicator>
|
51
|
+
<Indicator operator="AND" id="9f7a5703-8a26-45cf-b801-1c13f0f15d40">
|
52
|
+
<IndicatorItem id="cf77d82f-0ac9-4c81-af0b-d634f71525b5" condition="contains">
|
53
|
+
<Context document="ProcessItem" search="ProcessItem/HandleList/Handle/Type" type="mir" />
|
54
|
+
<Content type="string">Mutant</Content>
|
55
|
+
</IndicatorItem>
|
56
|
+
<Indicator operator="OR" id="83f72cf7-6399-4620-b735-d08ce23ba517">
|
57
|
+
<IndicatorItem id="a1250d55-cd63-46cd-9436-e1741f5f42c7" condition="contains">
|
58
|
+
<Context document="ProcessItem" search="ProcessItem/HandleList/Handle/Name" type="mir" />
|
59
|
+
<Content type="string">__SYSTEM__</Content>
|
60
|
+
</IndicatorItem>
|
61
|
+
<IndicatorItem id="e033b865-95ba-44ab-baa5-3b1e8e5f348c" condition="contains">
|
62
|
+
<Context document="ProcessItem" search="ProcessItem/HandleList/Handle/Name" type="mir" />
|
63
|
+
<Content type="string">_AVIRA_</Content>
|
64
|
+
</IndicatorItem>
|
65
|
+
</Indicator>
|
66
|
+
</Indicator>
|
67
|
+
</Indicator>
|
68
|
+
</definition>
|
69
|
+
</ioc>
|
metadata
ADDED
@@ -0,0 +1,103 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: RubyIOC
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Matt Jezorek
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-02-12 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: roxml
|
16
|
+
requirement: &14073948 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *14073948
|
25
|
+
description: RubyIOC is a ruby library used for indicators of compromise
|
26
|
+
email:
|
27
|
+
- mjezorek@gmail.com
|
28
|
+
executables: []
|
29
|
+
extensions: []
|
30
|
+
extra_rdoc_files: []
|
31
|
+
files:
|
32
|
+
- .gitignore
|
33
|
+
- Gemfile
|
34
|
+
- LICENSE
|
35
|
+
- README.md
|
36
|
+
- Rakefile
|
37
|
+
- RubyIOC.gemspec
|
38
|
+
- lib/RubyIOC.rb
|
39
|
+
- lib/RubyIOC/ioc.rb
|
40
|
+
- lib/RubyIOC/iocitem.rb
|
41
|
+
- lib/RubyIOC/iocitem/arp_entry_item.rb
|
42
|
+
- lib/RubyIOC/iocitem/cookie_history_item.rb
|
43
|
+
- lib/RubyIOC/iocitem/disk_item.rb
|
44
|
+
- lib/RubyIOC/iocitem/dns_entry_item.rb
|
45
|
+
- lib/RubyIOC/iocitem/driver_item.rb
|
46
|
+
- lib/RubyIOC/iocitem/event_log_item.rb
|
47
|
+
- lib/RubyIOC/iocitem/file_download_history_item.rb
|
48
|
+
- lib/RubyIOC/iocitem/file_item.rb
|
49
|
+
- lib/RubyIOC/iocitem/form_history_item.rb
|
50
|
+
- lib/RubyIOC/iocitem/hash_item.rb
|
51
|
+
- lib/RubyIOC/iocitem/hook_item.rb
|
52
|
+
- lib/RubyIOC/iocitem/module_item.rb
|
53
|
+
- lib/RubyIOC/iocitem/persistence_item.rb
|
54
|
+
- lib/RubyIOC/iocitem/port_item.rb
|
55
|
+
- lib/RubyIOC/iocitem/prefetch_item.rb
|
56
|
+
- lib/RubyIOC/iocitem/process_item.rb
|
57
|
+
- lib/RubyIOC/iocitem/registry_hive_item.rb
|
58
|
+
- lib/RubyIOC/iocitem/registry_item.rb
|
59
|
+
- lib/RubyIOC/iocitem/route_entry_item.rb
|
60
|
+
- lib/RubyIOC/iocitem/service_item.rb
|
61
|
+
- lib/RubyIOC/iocitem/string_match_item.rb
|
62
|
+
- lib/RubyIOC/iocitem/system_info_item.rb
|
63
|
+
- lib/RubyIOC/iocitem/system_restore_item.rb
|
64
|
+
- lib/RubyIOC/iocitem/task_item.rb
|
65
|
+
- lib/RubyIOC/iocitem/timeline_item.rb
|
66
|
+
- lib/RubyIOC/iocitem/url_history_item.rb
|
67
|
+
- lib/RubyIOC/iocitem/user_item.rb
|
68
|
+
- lib/RubyIOC/iocitem/volume_item.rb
|
69
|
+
- lib/RubyIOC/iocterm.rb
|
70
|
+
- lib/RubyIOC/platform.rb
|
71
|
+
- lib/RubyIOC/scanner.rb
|
72
|
+
- lib/RubyIOC/version.rb
|
73
|
+
- test/find_windows.ioc
|
74
|
+
- test/test_dns_entry_item.ioc
|
75
|
+
- test/test_iocitem_factory.rb
|
76
|
+
- test/test_scan.rb
|
77
|
+
- test/test_user_item.ioc
|
78
|
+
- test/zeus.ioc
|
79
|
+
homepage: ''
|
80
|
+
licenses: []
|
81
|
+
post_install_message:
|
82
|
+
rdoc_options: []
|
83
|
+
require_paths:
|
84
|
+
- lib
|
85
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
86
|
+
none: false
|
87
|
+
requirements:
|
88
|
+
- - ! '>='
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
92
|
+
none: false
|
93
|
+
requirements:
|
94
|
+
- - ! '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
requirements: []
|
98
|
+
rubyforge_project: RubyIOC
|
99
|
+
rubygems_version: 1.8.16
|
100
|
+
signing_key:
|
101
|
+
specification_version: 3
|
102
|
+
summary: RubyIOC is a ruby library used for indicators of compromise
|
103
|
+
test_files: []
|