summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-09-07 15:36:08 +0200
committerDimitri Sokolyuk <demon@dim13.org>2015-09-07 15:36:08 +0200
commitb3a3fe178ec85d882bb69c020252d59f627e38b7 (patch)
tree72f7dc701fa8c58d8952d43e2f06ea0b37deec47
parente4e0d7fbfdbf3ba35c806ad7bf1776b1c04d2637 (diff)
Drop downgrade attempt
-rw-r--r--main.go32
1 files changed, 8 insertions, 24 deletions
diff --git a/main.go b/main.go
index f37b3c4..74bef24 100644
--- a/main.go
+++ b/main.go
@@ -88,30 +88,11 @@ func (dir Direction) sniffData(b []byte) error {
return nil
}
-// Remove DHE_RSA Chifers in Client Hello
-// altering any value leads to Handshake Failure after Cert Verify ???
-func downgrade(b []byte) int {
- fmt.Println("downgrade")
- fmt.Println(hex.Dump(b))
-
- //b[0x0a] -= 2 // TLS 1.0
- b[0x04] -= 14 // handshake len
- b[0x08] -= 14 // hello len
- b[0x2d] -= 14 // cipher set len
-
- copy(b[0x2e:], b[0x2e+14:]) // copy second half over first (7 non dhe ciphers)
- //copy(b[0x2e+14:], b[0x2e+28:]) // preserve fist half (7 dhe ciphers)
-
- return len(b) - 14
-}
-
-var trydowngrade = false
-
func (dir Direction) sniff(src, dst net.Conn, wg *sync.WaitGroup) {
defer wg.Done()
buf := make([]byte, 4096) // 1452
+ now := time.Now()
for k := 1; ; k++ {
- now := time.Now()
n, err := src.Read(buf)
spent := time.Since(now)
if err != nil {
@@ -122,18 +103,21 @@ func (dir Direction) sniff(src, dst net.Conn, wg *sync.WaitGroup) {
if k == 1 {
dir.sniffRnd(pkg)
- if trydowngrade && dir == ClientServer {
- n = downgrade(pkg)
- }
}
- fmt.Println(k, dir, n, "bytes", spent)
+ mean := spent / time.Duration(n)
+
+ fmt.Println(k, dir,
+ n, "bytes",
+ spent, "mean",
+ mean, "per byte")
fmt.Println(hex.Dump(pkg))
dir.sniffCert(pkg)
dir.sniffData(pkg)
_, err = dst.Write(pkg)
+ now = time.Now()
if err != nil {
log.Println(dir, err)
return