Re-enable DNS integration tests

This commit is contained in:
Brendan Coles
2016-04-22 06:29:20 +00:00
parent dbccb111e5
commit b2c4b40fe8
2 changed files with 50 additions and 50 deletions

View File

@@ -43,10 +43,10 @@ class TC_DnsRest < Test::Unit::TestCase
# Tests POST /api/dns/rule handler with valid input # Tests POST /api/dns/rule handler with valid input
def test_1_add_rule_good def test_1_add_rule_good
pattern = 'foo.bar' pattern = 'foo.bar'
type = 'A' resource = 'A'
dns_response = ['1.2.3.4'] dns_response = ['1.2.3.4']
json = {:pattern => pattern, :type => type, :response => dns_response}.to_json json = {:pattern => pattern, :resource => resource, :response => dns_response}.to_json
rest_response = RestClient.post("#{RESTAPI_DNS}/rule?token=#{@@token}", rest_response = RestClient.post("#{RESTAPI_DNS}/rule?token=#{@@token}",
json, json,
@@ -73,10 +73,10 @@ class TC_DnsRest < Test::Unit::TestCase
# Tests POST /api/dns/rule handler with invalid input # Tests POST /api/dns/rule handler with invalid input
def test_2_add_rule_bad def test_2_add_rule_bad
pattern = '' pattern = ''
type = 'A' resource = 'A'
dns_response = ['1.1.1.1'] dns_response = ['1.1.1.1']
hash = {:pattern => pattern, :type => type, :response => dns_response} hash = {:pattern => pattern, :resource => resource, :response => dns_response}
# Test that an empty "pattern" key returns 400 # Test that an empty "pattern" key returns 400
assert_raise RestClient::BadRequest do assert_raise RestClient::BadRequest do
@@ -86,16 +86,16 @@ class TC_DnsRest < Test::Unit::TestCase
end end
hash['pattern'] = 'foo.bar.baz' hash['pattern'] = 'foo.bar.baz'
hash['type'] = '' hash['resource'] = ''
# Test that an empty "type" key returns 400 # Test that an empty "resource" key returns 400
assert_raise RestClient::BadRequest do assert_raise RestClient::BadRequest do
rest_response = RestClient.post("#{RESTAPI_DNS}/rule?token=#{@@token}", rest_response = RestClient.post("#{RESTAPI_DNS}/rule?token=#{@@token}",
hash.to_json, hash.to_json,
@@headers) @@headers)
end end
hash['type'] = 'A' hash['resource'] = 'A'
hash['response'] = [] hash['response'] = []
# Test that an empty "response" key returns 400 # Test that an empty "response" key returns 400
@@ -114,122 +114,122 @@ class TC_DnsRest < Test::Unit::TestCase
@@headers) @@headers)
end end
end end
=begin
# Tests POST /api/dns/rule handler with each supported RR type # Tests POST /api/dns/rule handler with each supported RR type
def test_3_add_rule_types def test_3_add_rule_types
pattern = 'be.ef' pattern = 'be.ef'
type = 'AAAA' resource = 'AAAA'
response = ['2001:db8:ac10:fe01::'] response = ['2001:db8:ac10:fe01::']
# Test AAAA type # Test AAAA type
rule = {'pattern' => pattern, 'type' => type, 'response' => response} rule = {'pattern' => pattern, 'resource' => resource, 'response' => response}
regex = %r{ regex = %r{
^#{rule['pattern']}\.\t+ ^#{rule['pattern']}\.\t+
\d+\t+ \d+\t+
IN\t+ IN\t+
#{rule['type']}\t+ #{rule['resource']}\t+
#{rule['response'][0]}$ #{rule['response'][0]}$
}x }x
add_rule(rule) add_rule(rule)
check_dns_response(regex, rule['type'], rule['pattern']) check_dns_response(regex, rule['resource'], rule['pattern'])
# Test CNAME type # Test CNAME type
rule['type'] = 'CNAME' rule['resource'] = 'CNAME'
rule['response'] = ['fe.eb.'] rule['response'] = ['fe.eb.']
regex = %r{ regex = %r{
^#{rule['pattern']}\.\t+ ^#{rule['pattern']}\.\t+
\d+\t+ \d+\t+
IN\t+ IN\t+
#{rule['type']}\t+ #{rule['resource']}\t+
#{rule['response'][0]}$ #{rule['response'][0]}$
}x }x
add_rule(rule) add_rule(rule)
check_dns_response(regex, rule['type'], rule['pattern']) check_dns_response(regex, rule['resource'], rule['pattern'])
# Test HINFO type # Test HINFO type
rule['type'] = 'HINFO' rule['resource'] = 'HINFO'
rule['response'] = ['M6800', 'VMS'] rule['response'] = ['M6800', 'VMS']
regex = %r{ regex = %r{
^#{rule['pattern']}\.\t+ ^#{rule['pattern']}\.\t+
\d+\t+ \d+\t+
IN\t+ IN\t+
#{rule['type']}\t+ #{rule['resource']}\t+
"#{rule['response'][0]}"\s+ "#{rule['response'][0]}"\s+
"#{rule['response'][1]}"$ "#{rule['response'][1]}"$
}x }x
add_rule(rule) add_rule(rule)
check_dns_response(regex, rule['type'], rule['pattern']) check_dns_response(regex, rule['resource'], rule['pattern'])
# Test MINFO type # Test MINFO type
rule['type'] = 'MINFO' rule['resource'] = 'MINFO'
rule['response'] = ['rmail.be.ef.', 'email.be.ef.'] rule['response'] = ['rmail.be.ef.', 'email.be.ef.']
regex = %r{ regex = %r{
^#{rule['pattern']}\.\t+ ^#{rule['pattern']}\.\t+
\d+\t+ \d+\t+
IN\t+ IN\t+
#{rule['type']}\t+ #{rule['resource']}\t+
#{rule['response'][0]}\s+ #{rule['response'][0]}\s+
#{rule['response'][1]}$ #{rule['response'][1]}$
}x }x
add_rule(rule) add_rule(rule)
check_dns_response(regex, rule['type'], rule['pattern']) check_dns_response(regex, rule['resource'], rule['pattern'])
# Test MX type # Test MX type
rule['type'] = 'MX' rule['resource'] = 'MX'
rule['response'] = [10, 'mail.be.ef.'] rule['response'] = [10, 'mail.be.ef.']
regex = %r{ regex = %r{
^#{rule['pattern']}\.\t+ ^#{rule['pattern']}\.\t+
\d+\t+ \d+\t+
IN\t+ IN\t+
#{rule['type']}\t+ #{rule['resource']}\t+
#{rule['response'][0]}\s+ #{rule['response'][0]}\s+
#{rule['response'][1]}$ #{rule['response'][1]}$
}x }x
add_rule(rule) add_rule(rule)
check_dns_response(regex, rule['type'], rule['pattern']) check_dns_response(regex, rule['resource'], rule['pattern'])
# Test NS type # Test NS type
rule['type'] = 'NS' rule['resource'] = 'NS'
rule['response'] = ['ns.be.ef.'] rule['response'] = ['ns.be.ef.']
regex = %r{ regex = %r{
^#{rule['pattern']}\.\t+ ^#{rule['pattern']}\.\t+
\d+\t+ \d+\t+
IN\t+ IN\t+
#{rule['type']}\t+ #{rule['resource']}\t+
#{rule['response'][0]}$ #{rule['response'][0]}$
}x }x
add_rule(rule) add_rule(rule)
check_dns_response(regex, rule['type'], rule['pattern']) check_dns_response(regex, rule['resource'], rule['pattern'])
# Test PTR type # Test PTR type
rule['type'] = 'PTR' rule['resource'] = 'PTR'
rule['response'] = ['4.3.2.1.in-addr.arpa.'] rule['response'] = ['4.3.2.1.in-addr.arpa.']
regex = %r{ regex = %r{
^#{rule['pattern']}\.\t+ ^#{rule['pattern']}\.\t+
\d+\t+ \d+\t+
IN\t+ IN\t+
#{rule['type']}\t+ #{rule['resource']}\t+
#{rule['response'][0]}$ #{rule['response'][0]}$
}x }x
add_rule(rule) add_rule(rule)
check_dns_response(regex, rule['type'], rule['pattern']) check_dns_response(regex, rule['resource'], rule['pattern'])
# Test SOA type # Test SOA type
rule['type'] = 'SOA' rule['resource'] = 'SOA'
rule['response'] = [ rule['response'] = [
"ns.#{rule['pattern']}.", "ns.#{rule['pattern']}.",
"mail.#{rule['pattern']}.", "mail.#{rule['pattern']}.",
@@ -244,46 +244,46 @@ class TC_DnsRest < Test::Unit::TestCase
^#{rule['pattern']}\.\t+ ^#{rule['pattern']}\.\t+
\d+\t+ \d+\t+
IN\t+ IN\t+
#{rule['type']}\t+ #{rule['resource']}\t+
.* .*
}x }x
add_rule(rule) add_rule(rule)
check_dns_response(regex, rule['type'], rule['pattern']) check_dns_response(regex, rule['resource'], rule['pattern'])
# Test TXT type # Test TXT type
rule['type'] = 'TXT' rule['resource'] = 'TXT'
rule['response'] = ['b33f_is_s0_l33t'] rule['response'] = ['b33f_is_s0_l33t']
regex = %r{ regex = %r{
^#{rule['pattern']}\.\t+ ^#{rule['pattern']}\.\t+
\d+\t+ \d+\t+
IN\t+ IN\t+
#{rule['type']}\t+ #{rule['resource']}\t+
"#{rule['response'][0]}"$ "#{rule['response'][0]}"$
}x }x
add_rule(rule) add_rule(rule)
check_dns_response(regex, rule['type'], rule['pattern']) check_dns_response(regex, rule['resource'], rule['pattern'])
# Test WKS type # Test WKS type
rule['type'] = 'WKS' rule['resource'] = 'WKS'
rule['response'] = ['9.9.9.9', 6, 0] rule['response'] = ['9.9.9.9', 6, 0]
regex = %r{ regex = %r{
^#{rule['pattern']}\.\t+ ^#{rule['pattern']}\.\t+
\d+\t+ \d+\t+
IN\t+ IN\t+
#{rule['type']}\t+ #{rule['resource']}\t+
#{rule['response'][0]}\s #{rule['response'][0]}\s
0\s5\s6$ 0\s5\s6$
}x }x
add_rule(rule) add_rule(rule)
check_dns_response(regex, rule['type'], rule['pattern']) check_dns_response(regex, rule['resource'], rule['pattern'])
# Test that an invalid RR returns 400 # Test that an invalid RR returns 400
rule['type'] = 'BeEF' rule['resource'] = 'BeEF'
assert_raise RestClient::BadRequest do assert_raise RestClient::BadRequest do
rest_response = RestClient.post("#{RESTAPI_DNS}/rule?token=#{@@token}", rest_response = RestClient.post("#{RESTAPI_DNS}/rule?token=#{@@token}",
@@ -291,14 +291,14 @@ class TC_DnsRest < Test::Unit::TestCase
@@headers) @@headers)
end end
end end
=begin
# Tests GET /api/dns/rule/:id handler with valid input # Tests GET /api/dns/rule/:id handler with valid input
def test_4_get_rule_good def test_4_get_rule_good
pattern = 'wheres.the.beef' pattern = 'wheres.the.beef'
type = 'A' resource = 'A'
dns_response = ['4.2.4.2'] dns_response = ['4.2.4.2']
json = {:pattern => pattern, :type => type, :response => dns_response}.to_json json = {:pattern => pattern, :resource => resource, :response => dns_response}.to_json
rest_response = RestClient.post("#{RESTAPI_DNS}/rule?token=#{@@token}", rest_response = RestClient.post("#{RESTAPI_DNS}/rule?token=#{@@token}",
json, json,
@@ -317,12 +317,12 @@ class TC_DnsRest < Test::Unit::TestCase
assert_equal(id, result['id']) assert_equal(id, result['id'])
assert_equal(pattern, result['pattern']) assert_equal(pattern, result['pattern'])
assert_equal(type, result['type']) assert_equal(resource, result['resource'])
assert_equal(dns_response, result['response']) assert_equal(dns_response, result['response'])
end end
# Tests GET /api/dns/rule/:id handler with invalid input # Tests GET /api/dns/rule/:id handler with invalid input
def test_4_get_rule_bad def test_5_get_rule_bad
id = 42 id = 42
assert_raise RestClient::ResourceNotFound do assert_raise RestClient::ResourceNotFound do
@@ -337,7 +337,7 @@ class TC_DnsRest < Test::Unit::TestCase
end end
# Tests GET /api/dns/ruleset handler # Tests GET /api/dns/ruleset handler
def test_4_get_ruleset def test_6_get_ruleset
rest_response = RestClient.get("#{RESTAPI_DNS}/ruleset", :params => {:token => @@token}) rest_response = RestClient.get("#{RESTAPI_DNS}/ruleset", :params => {:token => @@token})
assert_not_nil(rest_response.body) assert_not_nil(rest_response.body)
@@ -349,11 +349,11 @@ class TC_DnsRest < Test::Unit::TestCase
result['ruleset'].each do |rule| result['ruleset'].each do |rule|
assert(rule['id']) assert(rule['id'])
assert(rule['pattern']) assert(rule['pattern'])
assert(rule['type']) assert(rule['resource'])
assert(rule['response'].length != 0) assert(rule['response'].length != 0)
end end
end end
=end
private private
# Adds a new DNS rule # Adds a new DNS rule

View File

@@ -18,7 +18,7 @@ require './tc_login' # Basic log in and log out tests
require './tc_proxy' # Basic tests for Proxy extension require './tc_proxy' # Basic tests for Proxy extension
#require './tc_jools' # Basic tests for jools #require './tc_jools' # Basic tests for jools
require './tc_network_rest' # Basic tests for Network extension RESTful API interface require './tc_network_rest' # Basic tests for Network extension RESTful API interface
#require './tc_dns_rest' # Basic tests for DNS RESTful API interface require './tc_dns_rest' # Basic tests for DNS RESTful API interface
require './tc_social_engineering_rest' # Basic tests for social engineering RESTful API interface require './tc_social_engineering_rest' # Basic tests for social engineering RESTful API interface
require './tc_webrtc_rest' # Basic tests for WebRTC extension require './tc_webrtc_rest' # Basic tests for WebRTC extension
@@ -32,7 +32,7 @@ class TS_BeefIntegrationTests
suite << TC_Proxy.suite suite << TC_Proxy.suite
#suite << TC_Jools.suite #suite << TC_Jools.suite
suite << TC_NetworkRest.suite suite << TC_NetworkRest.suite
#suite << TC_DnsRest.suite suite << TC_DnsRest.suite
suite << TC_SocialEngineeringRest.suite suite << TC_SocialEngineeringRest.suite
suite << TC_WebRTCRest.suite suite << TC_WebRTCRest.suite