Skip to content

Commit 03e1a09

Browse files
committed
Integraded CBE20162107 Check
Integrated Poodle Check Integrated TLS-Poodle Check
1 parent 718ee0b commit 03e1a09

File tree

6 files changed

+156
-0
lines changed

6 files changed

+156
-0
lines changed

src/main/java/de/rub/nds/tlsscanner/TLSScanner.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,13 @@
1616
import de.rub.nds.tlsscanner.probe.CertificateProbe;
1717
import de.rub.nds.tlsscanner.probe.CiphersuiteOrderProbe;
1818
import de.rub.nds.tlsscanner.probe.CiphersuiteProbe;
19+
import de.rub.nds.tlsscanner.probe.Cve20162107Probe;
1920
import de.rub.nds.tlsscanner.probe.HeartbleedProbe;
2021
import de.rub.nds.tlsscanner.probe.PaddingOracleProbe;
22+
import de.rub.nds.tlsscanner.probe.PoodleProbe;
2123
import de.rub.nds.tlsscanner.probe.ProtocolVersionProbe;
2224
import de.rub.nds.tlsscanner.probe.TLSProbe;
25+
import de.rub.nds.tlsscanner.probe.TlsPoodleProbe;
2326
import java.util.LinkedList;
2427
import java.util.List;
2528
import org.apache.logging.log4j.Level;
@@ -73,6 +76,9 @@ public SiteReport scan() {
7376
// testList.add(new NamedCurvesProbe(websiteHost));
7477
testList.add(new PaddingOracleProbe(config));
7578
testList.add(new BleichenbacherProbe(config));
79+
testList.add(new PoodleProbe(config));
80+
testList.add(new TlsPoodleProbe(config));
81+
testList.add(new Cve20162107Probe(config));
7682
// testList.add(new SignatureAndHashAlgorithmProbe(websiteHost));
7783
ScanJob job = new ScanJob(testList);
7884
return executor.execute(config, job);
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
/**
2+
* TLS-Scanner - A TLS Configuration Analysistool based on TLS-Attacker
3+
*
4+
* Copyright 2014-2017 Ruhr University Bochum / Hackmanit GmbH
5+
*
6+
* Licensed under Apache License 2.0
7+
* http://www.apache.org/licenses/LICENSE-2.0
8+
*/
9+
package de.rub.nds.tlsscanner.probe;
10+
11+
import de.rub.nds.tlsattacker.attacks.config.Cve20162107CommandConfig;
12+
import de.rub.nds.tlsattacker.attacks.impl.Cve20162107Attacker;
13+
import de.rub.nds.tlsattacker.core.config.delegate.ClientDelegate;
14+
import de.rub.nds.tlsscanner.config.ScannerConfig;
15+
import de.rub.nds.tlsscanner.report.ProbeResult;
16+
import de.rub.nds.tlsscanner.report.ResultValue;
17+
import de.rub.nds.tlsscanner.report.check.CheckType;
18+
import de.rub.nds.tlsscanner.report.check.TLSCheck;
19+
import java.util.LinkedList;
20+
import java.util.List;
21+
22+
/**
23+
*
24+
* @author Robert Merget - [email protected]
25+
*/
26+
public class Cve20162107Probe extends TLSProbe {
27+
28+
public Cve20162107Probe(ScannerConfig config) {
29+
super(ProbeType.CVE20172107, config);
30+
}
31+
32+
@Override
33+
public ProbeResult call() {
34+
LOGGER.debug("Starting Cve20162107 Probe");
35+
Cve20162107CommandConfig poodleCommandConfig = new Cve20162107CommandConfig(getScannerConfig().getGeneralDelegate());
36+
ClientDelegate delegate = (ClientDelegate) poodleCommandConfig.getDelegate(ClientDelegate.class);
37+
delegate.setHost(getScannerConfig().getClientDelegate().getHost());
38+
Cve20162107Attacker attacker = new Cve20162107Attacker(poodleCommandConfig);
39+
Boolean vulnerable = attacker.isVulnerable();
40+
TLSCheck check = new TLSCheck(vulnerable, CheckType.ATTACK_CVE20162107, 10);
41+
List<TLSCheck> checkList = new LinkedList<>();
42+
checkList.add(check);
43+
return new ProbeResult(getType(), new LinkedList<ResultValue>(), checkList);
44+
}
45+
46+
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/**
2+
* TLS-Scanner - A TLS Configuration Analysistool based on TLS-Attacker
3+
*
4+
* Copyright 2014-2017 Ruhr University Bochum / Hackmanit GmbH
5+
*
6+
* Licensed under Apache License 2.0
7+
* http://www.apache.org/licenses/LICENSE-2.0
8+
*/
9+
package de.rub.nds.tlsscanner.probe;
10+
11+
import de.rub.nds.tlsattacker.attacks.config.PaddingOracleCommandConfig;
12+
import de.rub.nds.tlsattacker.attacks.config.PoodleCommandConfig;
13+
import de.rub.nds.tlsattacker.attacks.impl.PaddingOracleAttacker;
14+
import de.rub.nds.tlsattacker.attacks.impl.PoodleAttacker;
15+
import de.rub.nds.tlsattacker.core.config.delegate.ClientDelegate;
16+
import de.rub.nds.tlsscanner.config.ScannerConfig;
17+
import de.rub.nds.tlsscanner.report.ProbeResult;
18+
import de.rub.nds.tlsscanner.report.ResultValue;
19+
import de.rub.nds.tlsscanner.report.check.CheckType;
20+
import de.rub.nds.tlsscanner.report.check.TLSCheck;
21+
import java.util.LinkedList;
22+
import java.util.List;
23+
24+
/**
25+
*
26+
* @author Robert Merget - [email protected]
27+
*/
28+
public class PoodleProbe extends TLSProbe {
29+
30+
public PoodleProbe(ScannerConfig config) {
31+
super(ProbeType.POODLE, config);
32+
}
33+
34+
@Override
35+
public ProbeResult call() {
36+
LOGGER.debug("Starting Poodle Probe");
37+
PoodleCommandConfig poodleCommandConfig = new PoodleCommandConfig(getScannerConfig().getGeneralDelegate());
38+
ClientDelegate delegate = (ClientDelegate) poodleCommandConfig.getDelegate(ClientDelegate.class);
39+
delegate.setHost(getScannerConfig().getClientDelegate().getHost());
40+
PoodleAttacker attacker = new PoodleAttacker(poodleCommandConfig);
41+
Boolean vulnerable = attacker.isVulnerable();
42+
TLSCheck check = new TLSCheck(vulnerable, CheckType.ATTACK_POODLE, 10);
43+
List<TLSCheck> checkList = new LinkedList<>();
44+
checkList.add(check);
45+
return new ProbeResult(getType(), new LinkedList<ResultValue>(), checkList);
46+
}
47+
48+
}

src/main/java/de/rub/nds/tlsscanner/probe/ProbeType.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ public enum ProbeType {
2020
BLEICHENBACHER,
2121
NAMED_CURVES,
2222
PADDING_ORACLE,
23+
CVE20172107,
24+
POODLE,
25+
TLS_POODLE,
2326
PROTOCOL_VERSION,
2427
SIGNATURE_AND_HASH,
2528
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
/**
2+
* TLS-Scanner - A TLS Configuration Analysistool based on TLS-Attacker
3+
*
4+
* Copyright 2014-2017 Ruhr University Bochum / Hackmanit GmbH
5+
*
6+
* Licensed under Apache License 2.0
7+
* http://www.apache.org/licenses/LICENSE-2.0
8+
*/
9+
package de.rub.nds.tlsscanner.probe;
10+
11+
import de.rub.nds.tlsattacker.attacks.config.PaddingOracleCommandConfig;
12+
import de.rub.nds.tlsattacker.attacks.config.PoodleCommandConfig;
13+
import de.rub.nds.tlsattacker.attacks.config.TLSPoodleCommandConfig;
14+
import de.rub.nds.tlsattacker.attacks.impl.PaddingOracleAttacker;
15+
import de.rub.nds.tlsattacker.attacks.impl.PoodleAttacker;
16+
import de.rub.nds.tlsattacker.attacks.impl.TLSPoodleAttacker;
17+
import de.rub.nds.tlsattacker.core.config.delegate.ClientDelegate;
18+
import de.rub.nds.tlsscanner.config.ScannerConfig;
19+
import de.rub.nds.tlsscanner.report.ProbeResult;
20+
import de.rub.nds.tlsscanner.report.ResultValue;
21+
import de.rub.nds.tlsscanner.report.check.CheckType;
22+
import de.rub.nds.tlsscanner.report.check.TLSCheck;
23+
import java.util.LinkedList;
24+
import java.util.List;
25+
26+
/**
27+
*
28+
* @author Robert Merget - [email protected]
29+
*/
30+
public class TlsPoodleProbe extends TLSProbe {
31+
32+
public TlsPoodleProbe(ScannerConfig config) {
33+
super(ProbeType.TLS_POODLE, config);
34+
}
35+
36+
@Override
37+
public ProbeResult call() {
38+
LOGGER.debug("Starting TLS-Poodle Probe");
39+
TLSPoodleCommandConfig poodleCommandConfig = new TLSPoodleCommandConfig(getScannerConfig().getGeneralDelegate());
40+
ClientDelegate delegate = (ClientDelegate) poodleCommandConfig.getDelegate(ClientDelegate.class);
41+
delegate.setHost(getScannerConfig().getClientDelegate().getHost());
42+
TLSPoodleAttacker attacker = new TLSPoodleAttacker(poodleCommandConfig);
43+
Boolean vulnerable = attacker.isVulnerable();
44+
TLSCheck check = new TLSCheck(vulnerable, CheckType.ATTACK_TLS_POODLE, 10);
45+
List<TLSCheck> checkList = new LinkedList<>();
46+
checkList.add(check);
47+
return new ProbeResult(getType(), new LinkedList<ResultValue>(), checkList);
48+
}
49+
50+
}

src/main/java/de/rub/nds/tlsscanner/report/check/CheckType.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,7 @@ public enum CheckType {
3030
ATTACK_PADDING,
3131
ATTACK_BLEICHENBACHER,
3232
ATTACK_HEARTBLEED,
33+
ATTACK_POODLE,
34+
ATTACK_TLS_POODLE,
35+
ATTACK_CVE20162107
3336
}

0 commit comments

Comments
 (0)