@@ -180,9 +180,12 @@ class Cert < ApiObject
180
180
:crlURIs ,
181
181
:ocspURIs ,
182
182
:revocationStatus ,
183
+ :crlRevocationStatus ,
184
+ :ocspRevocationStatus ,
183
185
:sgc? ,
184
186
:validationType ,
185
- :issues
187
+ :issues ,
188
+ :sct? ,
186
189
187
190
def valid?
188
191
issues == 0
@@ -196,10 +199,19 @@ def invalid?
196
199
class ChainCert < ApiObject
197
200
has_fields :subject ,
198
201
:label ,
202
+ :notBefore ,
203
+ :notAfter ,
199
204
:issuerSubject ,
200
205
:issuerLabel ,
206
+ :sigAlg ,
201
207
:issues ,
202
- :raw
208
+ :keyAlg ,
209
+ :keySize ,
210
+ :keyStrength ,
211
+ :revocationStatus ,
212
+ :crlRevocationStatus ,
213
+ :ocspRevocationStatus ,
214
+ :raw ,
203
215
204
216
def valid?
205
217
issues == 0
@@ -354,6 +366,8 @@ class EndpointDetails < ApiObject
354
366
:npnProtocols ,
355
367
:sessionTickets ,
356
368
:ocspStapling? ,
369
+ :staplingRevocationStatus ,
370
+ :staplingRevocationErrorMessage ,
357
371
:sniRequired? ,
358
372
:httpStatusCode ,
359
373
:httpForwarding ,
@@ -364,8 +378,11 @@ class EndpointDetails < ApiObject
364
378
has_fields :heartbleed? ,
365
379
:heartbeat? ,
366
380
:openSslCcs ,
381
+ :poodle? ,
367
382
:poodleTls ,
368
- :fallbackScsv?
383
+ :fallbackScsv? ,
384
+ :freak? ,
385
+ :hasSct
369
386
end
370
387
371
388
class Endpoint < ApiObject
@@ -375,6 +392,7 @@ class Endpoint < ApiObject
375
392
:statusDetails ,
376
393
:statusDetailsMessage ,
377
394
:grade ,
395
+ :gradeTrustIgnored ,
378
396
:hasWarnings? ,
379
397
:isExceptional? ,
380
398
:progress ,
@@ -408,7 +426,7 @@ def initialize(info = {})
408
426
SSL/TLS assessment during a penetration test.
409
427
} ,
410
428
'License' => MSF_LICENSE ,
411
- 'Author' =>
429
+ 'Author' =>
412
430
[
413
431
'Denis Kolegov <dnkolegov[at]gmail.com>' ,
414
432
'Francois Chagnon' # ssllab.rb author (https://github.com/Shopify/ssllabs.rb)
@@ -472,6 +490,8 @@ def output_endpoint_data(r)
472
490
report_bad "Overall rating: #{ r . grade } - Server's certificate is not trusted"
473
491
end
474
492
493
+ report_warning "Grade is #{ r . grade_trust_ignored } , if trust issues are ignored)" if r . grade . to_s != r . grade_trust_ignored . to_s
494
+
475
495
# Supported protocols
476
496
r . details . protocols . each do |i |
477
497
p = ssl_protocols . detect { |x | x [ :id ] == i . id }
@@ -511,7 +531,12 @@ def output_endpoint_data(r)
511
531
report_good "BEAST attack - No"
512
532
end
513
533
514
- # puts "POODLE (SSLv3)- ?"
534
+ # POODLE (SSLv3)
535
+ if r . details . poodle?
536
+ report_bad "POODLE SSLv3 - Vulnerable"
537
+ else
538
+ report_good "POODLE SSLv3 - Not vulnerable"
539
+ end
515
540
516
541
# POODLE TLS
517
542
case r . details . poodle_tls
@@ -520,16 +545,23 @@ def output_endpoint_data(r)
520
545
when 0
521
546
report_warning "POODLE TLS - Unknown"
522
547
when 1
523
- report_good "POODLE TLS - No "
548
+ report_good "POODLE TLS - Not vulnerable "
524
549
when 2
525
- report_bad "POODLE TLS - Yes "
550
+ report_bad "POODLE TLS - Vulnerable "
526
551
end
527
552
528
553
# Downgrade attack prevention
529
554
if r . details . fallback_scsv?
530
- report_good "Downgrade attack prevention - Yes"
555
+ report_good "Downgrade attack prevention - Yes, TLS_FALLBACK_SCSV supported"
556
+ else
557
+ report_bad "Downgrade attack prevention - No, TLS_FALLBACK_SCSV not supported"
558
+ end
559
+
560
+ # Freak
561
+ if r . details . freak?
562
+ report_bad "Freak - Vulnerable"
531
563
else
532
- report_bad "Downgrade attack prevention - No "
564
+ report_good "Freak - Not vulnerable "
533
565
end
534
566
535
567
# RC4
@@ -553,7 +585,7 @@ def output_endpoint_data(r)
553
585
if r . details . heartbleed?
554
586
report_bad "Heartbleed (vulnerability) - Yes"
555
587
else
556
- report_good "Heartbeat (vulnerability) - No"
588
+ report_good "Heartbleed (vulnerability) - No"
557
589
end
558
590
559
591
# OpenSSL CCS
0 commit comments