@@ -35,8 +35,12 @@ def query_csrf_magic
3535
3636 res = send_request ( request_params )
3737
38- if res . nil? || res . code != 200
39- return { status : :failure , error : 'Unknown response from GET request' }
38+ if res . nil?
39+ return { status : :failure , error : 'Did not receive response to a GET request' }
40+ end
41+
42+ if res . code != 200
43+ return { status : :failure , error : "Unexpected return code from GET request - #{ res . code } " }
4044 end
4145
4246 # CSRF Magic Token and Magic Value are inlined as JavaScript in a <script> tag.
@@ -88,13 +92,13 @@ def attempt_login(credential)
8892 login_result = try_login ( credential . public , credential . private , csrf_magic [ :result ] )
8993
9094 if login_result [ :result ] . nil?
91- result_options . merge! ( status : ::Metasploit ::Model ::Login ::Status ::UNABLE_TO_CONNECT )
95+ result_options . merge! ( status : ::Metasploit ::Model ::Login ::Status ::UNABLE_TO_CONNECT , proof : 'Unable to connect to pfSense' )
9296 return Result . new ( result_options )
9397 end
9498
9599 # 200 is incorrect result
96100 if login_result [ :result ] . code == 200 || login_result [ :result ] . body . include? ( 'Username or Password incorrect' )
97- result_options . merge! ( status : ::Metasploit ::Model ::Login ::Status ::INCORRECT )
101+ result_options . merge! ( status : ::Metasploit ::Model ::Login ::Status ::INCORRECT , proof : 'Username or Password incorrect' )
98102 return Result . new ( result_options )
99103 end
100104
@@ -103,7 +107,7 @@ def attempt_login(credential)
103107 Result . new ( result_options )
104108
105109 rescue ::Rex ::ConnectionError => _e
106- result_options . merge! ( status : ::Metasploit ::Model ::Login ::Status ::UNABLE_TO_CONNECT )
110+ result_options . merge! ( status : ::Metasploit ::Model ::Login ::Status ::UNABLE_TO_CONNECT , proof : 'Unable to connect to pfSense' )
107111 return Result . new ( result_options )
108112 end
109113 end
0 commit comments