diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f4a2cba --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*.pem +*.log +*.json \ No newline at end of file diff --git a/app/services/ftp.go b/app/services/ftp.go index 27b6b9c..5100ec2 100644 --- a/app/services/ftp.go +++ b/app/services/ftp.go @@ -11,10 +11,11 @@ func NewFTPHandler(log LoggerFunc) Handler { return func(conn net.Conn) { defer conn.Close() remote := conn.RemoteAddr().String() - _, _ = conn.Write([]byte("220 Welcome to FTP Server\r\n")) + _, _ = conn.Write([]byte("220 (vsFTPd 3.0.3)\r\n")) conn.SetDeadline(time.Now().Add(5 * time.Minute)) scanner := bufio.NewScanner(conn) var username string + var cwd = "/" for scanner.Scan() { line := strings.TrimSpace(scanner.Text()) if line == "" { @@ -24,16 +25,39 @@ func NewFTPHandler(log LoggerFunc) Handler { cmd := strings.ToUpper(parts[0]) arg := "" if len(parts) > 1 { arg = parts[1] } + // log every command minimally + log(Record{Timestamp: Now(), RemoteAddr: remoteIP(remote), RemotePort: remotePort(remote), Service: "ftp", Details: map[string]string{"event":"cmd","cmd":cmd,"arg":arg}}) switch cmd { case "USER": username = arg log(Record{Timestamp: Now(), RemoteAddr: remoteIP(remote), RemotePort: remotePort(remote), Service: "ftp", Details: map[string]string{"event":"username_attempt","username":username}}) - _, _ = conn.Write([]byte("331 Password required for "+username+"\r\n")) + _, _ = conn.Write([]byte("331 Please specify the password.\r\n")) case "PASS": log(Record{Timestamp: Now(), RemoteAddr: remoteIP(remote), RemotePort: remotePort(remote), Service: "ftp", Details: map[string]string{"event":"password_attempt","username":username,"password":arg}}) - _, _ = conn.Write([]byte("530 Login incorrect\r\n")) + // stay unauthenticated but pretend success to keep them interacting + _, _ = conn.Write([]byte("230 Login successful.\r\n")) + case "SYST": + _, _ = conn.Write([]byte("215 UNIX Type: L8\r\n")) + case "FEAT": + _, _ = conn.Write([]byte("211-Features:\r\n MLSD\r\n SIZE\r\n211 End\r\n")) + case "PWD": + _, _ = conn.Write([]byte("257 \"" + cwd + "\" is the current directory\r\n")) + case "TYPE": + _, _ = conn.Write([]byte("200 Switching to Binary mode.\r\n")) + case "CWD": + if arg == "" { arg = "/" } + cwd = arg + _, _ = conn.Write([]byte("250 Directory successfully changed.\r\n")) + case "PASV": + // Emulate passive mode without real data channel + _, _ = conn.Write([]byte("227 Entering Passive Mode (127,0,0,1,195,80)\r\n")) + case "LIST": + // Fake transfer over control channel (not RFC-correct, but many bots accept the banner) + _, _ = conn.Write([]byte("150 Here comes the directory listing.\r\n")) + _, _ = conn.Write([]byte("-rw-r--r-- 1 root root 4096 Jan 01 00:00 README\r\n")) + _, _ = conn.Write([]byte("226 Directory send OK.\r\n")) case "QUIT": - _, _ = conn.Write([]byte("221 Goodbye\r\n")); return + _, _ = conn.Write([]byte("221 Goodbye.\r\n")); return default: _, _ = conn.Write([]byte("502 Command not implemented\r\n")) } diff --git a/app/services/imap.go b/app/services/imap.go index 450fe50..ffc1fb5 100644 --- a/app/services/imap.go +++ b/app/services/imap.go @@ -14,6 +14,9 @@ func NewIMAPHandler(log LoggerFunc) Handler { _, _ = conn.Write([]byte("* OK IMAP4rev1 Service Ready\r\n")) conn.SetDeadline(time.Now().Add(2 * time.Minute)) scanner := bufio.NewScanner(conn) + authed := false + selected := false + mailbox := "INBOX" for scanner.Scan() { line := strings.TrimSpace(scanner.Text()) if line == "" { continue } @@ -28,10 +31,25 @@ func NewIMAPHandler(log LoggerFunc) Handler { pass := strings.Trim(parts[3], "\"") log(Record{Timestamp: Now(), RemoteAddr: remoteIP(remote), RemotePort: remotePort(remote), Service: "imap", Details: map[string]string{"event":"login_attempt","username":user,"password":pass}}) } - _, _ = conn.Write([]byte(tag + " NO LOGIN failed\r\n")) + authed = true // pretend success to keep interaction + _, _ = conn.Write([]byte(tag + " OK LOGIN completed\r\n")) case "CAPABILITY": - _, _ = conn.Write([]byte("* CAPABILITY IMAP4rev1 AUTH=PLAIN\r\n")) + _, _ = conn.Write([]byte("* CAPABILITY IMAP4rev1 AUTH=PLAIN IDLE\r\n")) _, _ = conn.Write([]byte(tag + " OK CAPABILITY completed\r\n")) + case "NOOP": + _, _ = conn.Write([]byte(tag + " OK NOOP completed\r\n")) + case "SELECT", "EXAMINE": + if len(parts) >= 3 { mailbox = strings.Trim(parts[2], "\"") } + selected = true + // fake mailbox with 2 messages + _, _ = conn.Write([]byte("* 2 EXISTS\r\n")) + _, _ = conn.Write([]byte("* OK [UIDVALIDITY 1] UIDs valid\r\n")) + _, _ = conn.Write([]byte(tag + " OK [READ-WRITE] SELECT completed\r\n")) + case "FETCH": + if !selected { _, _ = conn.Write([]byte(tag + " BAD No mailbox selected\r\n")); continue } + // minimal fake fetch + _, _ = conn.Write([]byte("* 1 FETCH (FLAGS (\\Seen) RFC822.SIZE 1234)\r\n")) + _, _ = conn.Write([]byte(tag + " OK FETCH completed\r\n")) case "LOGOUT": _, _ = conn.Write([]byte("* BYE IMAP4rev1 Server logging out\r\n")) _, _ = conn.Write([]byte(tag + " OK LOGOUT completed\r\n")) diff --git a/app/services/sip.go b/app/services/sip.go index 86afef6..76d51f4 100644 --- a/app/services/sip.go +++ b/app/services/sip.go @@ -13,8 +13,36 @@ func NewSIPHandler(log LoggerFunc) Handler { remote := conn.RemoteAddr().String() conn.SetDeadline(time.Now().Add(8 * time.Second)) r := bufio.NewReader(conn) - line, _ := r.ReadString('\n') - if strings.TrimSpace(line) == "" { return } - log(Record{Timestamp: Now(), RemoteAddr: remoteIP(remote), RemotePort: remotePort(remote), Service: "sip", Details: map[string]string{"event":"first_line","first_line":strings.TrimSpace(line)}, RawPayload: line}) + // Read request line + reqLine, _ := r.ReadString('\n') + reqLine = strings.TrimSpace(reqLine) + if reqLine == "" { return } + // Read headers until blank line + headers := map[string]string{} + for { + h, _ := r.ReadString('\n') + h = strings.TrimRight(h, "\r\n") + if h == "" { break } + if i := strings.Index(h, ":"); i > 0 { + k := strings.TrimSpace(h[:i]) + v := strings.TrimSpace(h[i+1:]) + headers[strings.ToLower(k)] = v + } + } + det := map[string]string{"event":"request","first_line":reqLine} + for _, k := range []string{"from","to","call-id","user-agent"} { + if v, ok := headers[k]; ok { det[k] = v } + } + log(Record{Timestamp: Now(), RemoteAddr: remoteIP(remote), RemotePort: remotePort(remote), Service: "sip", Details: det}) + // Respond with 401 to solicit credentials + resp := "SIP/2.0 401 Unauthorized\r\n" + + "Via: " + headers["via"] + "\r\n" + + "From: " + headers["from"] + "\r\n" + + "To: " + headers["to"] + ";tag=123456\r\n" + + "Call-ID: " + headers["call-id"] + "\r\n" + + "CSeq: 1 REGISTER\r\n" + + "WWW-Authenticate: Digest realm=\"example.com\", nonce=\"abc123\", qop=\"auth\"\r\n" + + "Content-Length: 0\r\n\r\n" + _, _ = conn.Write([]byte(resp)) } } diff --git a/app/services/smtp.go b/app/services/smtp.go index befcd23..7bce137 100644 --- a/app/services/smtp.go +++ b/app/services/smtp.go @@ -1,51 +1,103 @@ package services import ( - "bufio" - "encoding/base64" - "net" - "strings" - "time" + "bufio" + "encoding/base64" + "net" + "strings" + "time" ) func NewSMTPHandler(log LoggerFunc) Handler { - return func(conn net.Conn) { - defer conn.Close() - remote := conn.RemoteAddr().String() - _, _ = conn.Write([]byte("220 mail.example.com ESMTP Postfix\r\n")) - conn.SetDeadline(time.Now().Add(5 * time.Minute)) - scanner := bufio.NewScanner(conn) - for scanner.Scan() { - line := strings.TrimSpace(scanner.Text()) - if line == "" { continue } - parts := strings.SplitN(line, " ", 2) - cmd := strings.ToUpper(parts[0]) - arg := ""; if len(parts)>1 { arg = parts[1] } - switch cmd { - case "HELO": - _, _ = conn.Write([]byte("250 mail.example.com\r\n")) - case "EHLO": - _, _ = conn.Write([]byte("250-mail.example.com\r\n250-AUTH PLAIN LOGIN\r\n250 OK\r\n")) - case "AUTH": - fields := strings.Fields(arg) - if len(fields)>0 && strings.ToUpper(fields[0])=="PLAIN" && len(fields)>1 { - if b, err := base64.StdEncoding.DecodeString(fields[1]); err==nil { - parts := strings.Split(string(b), "\x00") - if len(parts)>=3 { - log(Record{Timestamp: Now(), RemoteAddr: remoteIP(remote), RemotePort: remotePort(remote), Service: "smtp", Details: map[string]string{"event":"auth_attempt","method":"PLAIN","username":parts[1],"password":parts[2]}}) - } - } - } - _, _ = conn.Write([]byte("535 Authentication failed\r\n")) - case "MAIL","RCPT": - _, _ = conn.Write([]byte("250 OK\r\n")) - case "DATA": - _, _ = conn.Write([]byte("354 End data with .\r\n")) - case "QUIT": - _, _ = conn.Write([]byte("221 Bye\r\n")); return - default: - _, _ = conn.Write([]byte("502 Command not implemented\r\n")) - } - } - } + return func(conn net.Conn) { + defer conn.Close() + remote := conn.RemoteAddr().String() + _, _ = conn.Write([]byte("220 mail.example.com ESMTP Postfix\r\n")) + conn.SetDeadline(time.Now().Add(5 * time.Minute)) + scanner := bufio.NewScanner(conn) + var mailFrom, rcptTo string + authLoginStage := 0 // 0=none,1=expect username,2=expect password (both base64) + for scanner.Scan() { + line := strings.TrimSpace(scanner.Text()) + if line == "" { continue } + parts := strings.SplitN(line, " ", 2) + cmd := strings.ToUpper(parts[0]) + arg := ""; if len(parts)>1 { arg = parts[1] } + + if authLoginStage == 1 { // expecting base64 username + userBytes, _ := base64.StdEncoding.DecodeString(line) + user := string(userBytes) + log(Record{Timestamp: Now(), RemoteAddr: remoteIP(remote), RemotePort: remotePort(remote), Service: "smtp", Details: map[string]string{"event":"auth_login_username","username":user}}) + _, _ = conn.Write([]byte("334 UGFzc3dvcmQ6\r\n")) // "Password:" base64 + authLoginStage = 2 + continue + } + if authLoginStage == 2 { // expecting base64 password + passBytes, _ := base64.StdEncoding.DecodeString(line) + pass := string(passBytes) + log(Record{Timestamp: Now(), RemoteAddr: remoteIP(remote), RemotePort: remotePort(remote), Service: "smtp", Details: map[string]string{"event":"auth_login_password","password":pass}}) + _, _ = conn.Write([]byte("535 Authentication failed\r\n")) + authLoginStage = 0 + continue + } + + switch cmd { + case "HELO": + _, _ = conn.Write([]byte("250 mail.example.com\r\n")) + case "EHLO": + _, _ = conn.Write([]byte("250-mail.example.com\r\n250-AUTH PLAIN LOGIN\r\n250 OK\r\n")) + case "AUTH": + fields := strings.Fields(arg) + if len(fields) > 0 { + method := strings.ToUpper(fields[0]) + switch method { + case "PLAIN": + if len(fields) > 1 { + if b, err := base64.StdEncoding.DecodeString(fields[1]); err == nil { + p := strings.Split(string(b), "\x00") + if len(p) >= 3 { + log(Record{Timestamp: Now(), RemoteAddr: remoteIP(remote), RemotePort: remotePort(remote), Service: "smtp", Details: map[string]string{"event":"auth_attempt","method":"PLAIN","username":p[1],"password":p[2]}}) + } + } + } else { + // prompt for base64 blob + _, _ = conn.Write([]byte("334 \r\n")) + continue + } + _, _ = conn.Write([]byte("535 Authentication failed\r\n")) + case "LOGIN": + // 334 Username: + _, _ = conn.Write([]byte("334 VXNlcm5hbWU6\r\n")) + authLoginStage = 1 + default: + _, _ = conn.Write([]byte("504 Authentication method not supported\r\n")) + } + } + case "MAIL": + mailFrom = arg + _, _ = conn.Write([]byte("250 OK\r\n")) + case "RCPT": + rcptTo = arg + _, _ = conn.Write([]byte("250 OK\r\n")) + case "DATA": + _, _ = conn.Write([]byte("354 End data with .\r\n")) + // read until single '.' on a line + var bodyLines []string + for scanner.Scan() { + l := scanner.Text() + if l == "." { break } + bodyLines = append(bodyLines, l) + } + // log summary + snippet := strings.Join(bodyLines, "\n") + if len(snippet) > 500 { snippet = snippet[:500] } + log(Record{Timestamp: Now(), RemoteAddr: remoteIP(remote), RemotePort: remotePort(remote), Service: "smtp", Details: map[string]string{"event":"message","mail_from":mailFrom,"rcpt_to":rcptTo}, RawPayload: snippet}) + _, _ = conn.Write([]byte("250 OK queued as 12345\r\n")) + case "QUIT": + _, _ = conn.Write([]byte("221 Bye\r\n")); return + default: + _, _ = conn.Write([]byte("502 Command not implemented\r\n")) + } + } + } } diff --git a/config.json b/config.json deleted file mode 100644 index b20d699..0000000 --- a/config.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "log_mode": "file", - "log_path": "honeypot.log", - "web": { - "enabled": true, - "bind": "127.0.0.1", - "port": 6333 - }, - "services": { - "http": true, - "https": true, - "ssh": true, - "ftp": true, - "smtp": true, - "pop3": true, - "imap": true, - "telnet": true, - "mysql": true, - "postgresql": true, - "redis": true, - "mongodb": true, - "rdp": true, - "smb": true, - "sip": true, - "vnc": true, - "dns": true, - "snmp": true, - "ldap": true, - "generic": [] - }, - "ports": { - "http": 8080, - "https": 8443, - "ssh": 2222, - "ftp": 2121, - "smtp": 2525, - "pop3": 1110, - "imap": 1143, - "telnet": 2323, - "mysql": 3306, - "postgresql": 5432, - "redis": 6379, - "mongodb": 27017, - "rdp": 3389, - "smb": 4450, - "sip": 5060, - "vnc": 5900, - "dns": 5353, - "snmp": 1161, - "ldap": 3890 - }, - "certificates": { - "ssh_host_key_path": "", - "tls_cert_path": "", - "tls_key_path": "" - } -} \ No newline at end of file diff --git a/honeypot.log b/honeypot.log deleted file mode 100644 index c10c4a3..0000000 --- a/honeypot.log +++ /dev/null @@ -1,7 +0,0 @@ -{"timestamp":"2025-09-28T06:47:07.900746418Z","remote_addr":"127.0.0.1","remote_port":"44382","service":"ssh","details":{"auth_attempts":"0","duration_sec":"0.06","error":"read tcp 127.0.0.1:2222-\u003e127.0.0.1:44382: read: connection reset by peer","event":"session_end","last_password":"","last_username":"","session_id":"18695f678e2752f9"}} -{"timestamp":"2025-09-28T07:04:09.262727385Z","remote_addr":"127.0.0.1","remote_port":"38042","service":"ssh","details":{"auth_attempts":"0","duration_sec":"0.22","error":"read tcp 127.0.0.1:2222-\u003e127.0.0.1:38042: read: connection reset by peer","event":"session_end","last_password":"","last_username":"","session_id":"1869605552ec2e17"}} -{"timestamp":"2025-09-28T07:04:22.008795861Z","remote_addr":"127.0.0.1","remote_port":"60472","service":"ssh","details":{"attempt":"1","client":"SSH-2.0-OpenSSH_9.6p1 Ubuntu-3ubuntu13.14","event":"auth_attempt","password":"ascasc","username":"root"}} -{"timestamp":"2025-09-28T07:04:25.850146625Z","remote_addr":"127.0.0.1","remote_port":"60472","service":"ssh","details":{"auth_attempts":"1","duration_sec":"6.60","error":"read tcp 127.0.0.1:2222-\u003e127.0.0.1:60472: use of closed network connection","event":"session_end","last_password":"ascasc","last_username":"root","session_id":"18696057b35a4405"}} -{"timestamp":"2025-09-28T07:04:34.552887861Z","remote_addr":"127.0.0.1","remote_port":"47432","service":"ssh","details":{"attempt":"1","client":"SSH-2.0-OpenSSH_9.6p1 Ubuntu-3ubuntu13.14","event":"auth_attempt","password":"dhfgh567","username":"root"}} -{"timestamp":"2025-09-28T07:05:10.090265232Z","remote_addr":"127.0.0.1","remote_port":"47432","service":"ssh","details":{"auth_attempts":"1","duration_sec":"37.47","error":"read tcp 127.0.0.1:2222-\u003e127.0.0.1:47432: use of closed network connection","event":"session_end","last_password":"dhfgh567","last_username":"root","session_id":"1869605ad02adcea"}} -{"timestamp":"2025-09-28T07:05:35.135530797Z","remote_addr":"::1","remote_port":"34470","service":"http","details":{"method":"GET","proto":"HTTP/1.1","url":"/","user_agent":"curl/8.5.0"}} diff --git a/ssh_host_key.pem b/ssh_host_key.pem deleted file mode 100644 index a6e6ad5..0000000 --- a/ssh_host_key.pem +++ /dev/null @@ -1,27 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEowIBAAKCAQEAu9r5vDFVrDMeAbM4sL5Gs612YJ/GXy3f2x1KokqGLqcD5FHf -fFoi/0CIbIFIKfx/Fw1M9mgBGz8GrDjk5VkALIlBuC0qYX5z1+akNUO8VYK9YgUr -DinDOBhZP7V+Q4rEcjwT4XOtMmX0+aIpkPXpmyqsE8Ol5Lw6OWr8QWi67/xodO08 -vVN1pKzewdsidrqtcf2P+xJTC8LB0OVNRfL9+y7UxlCJvEnE7voEMmn3jFxBdUYu -3nSwIhd/rolx2G45nyS1rP18z/dt7c2F28i6/ULNpBY8O40u+IfxpV7uSqKCsGdQ -nuB6K6/t3OSmY//ELtSIRtF3h0DJLz9OVUmWLQIDAQABAoIBAAKdbarbeSxUFg3m -j0UvA4xh+GBgusV2hNkLQ0iI8ZgA/Ue2hgxjCQuRkTuzp+TlSIIOsfOfeKwG7BJb -UtWzIb1STVwsIo6A+4JkCeiTPNy9av7oldeRdnp+svCuJc74jNDyfbM+jM/t8/VQ -hUl+PJ1nuUWZYcaggiMzeeI8UXq87dw59W7C18acsQdFqQ/lXxHMh51+KxjbjxkX -gHqA4Mf+4I1A1A5DfpUt9Vv9EKwWU/snWYOCktCo8eYCWPYOPrm4GxGbaQcPTEKx -V9Q5SQmzb6QvXmboafjiVZE1cxxz3Uf8RH4CJjn+MMoxMENZiO5bGgwSJ+BrqPi5 -G0CRKOcCgYEA+b/NpuA0XJDzJCE5Sfv80IStQLiVci5AgDHjxSQUt3c/Zb+e8YIZ -cQ+VJnNdhS8YQWiz8ngvQgy8Dak1jVMRIN5Kwjw/5WQ8Cg5fuVGgK+1Lasxj0gER -RI5EDGcHAGlairsM1rEKtQ32yt446cgDs3bNFTdnTY9MSpiwFmiB0JcCgYEAwI6a -4yCgO8LqzCUfp67kgRIn3NME57+oRtUjC7FtmygZH4NGNBF4QVmTRB+uBWFNpY4z -eyAbtsqD/l9+DkgxnaaZSBh6ILqCacC0GlRfbIDv8n/sbmwkdZxU4uyV+vjAKaNy -UcExYzwRj4Rf/559Kd1bgXKqLLzcBIGNvo50o9sCgYEAuNQGqSoh9iNbnXBtCmDP -b63Q3iX8i5zJJVZGn14das14gJ94THkgxPhoRCV6n5cD11xaV+Yz6yirf1yrgiRo -d6+rGeYmz2gHutV6aBaNeBTMDISolwEtO1Qh7h/NIbPWSvc1ACnTp7xm2Snuaq0Y -eBdCnSH8dHzJVCd9oYfEEo8CgYB86YWMpZOMcQuD1ulMC+Zr3G1DkRhzhh8RpB4R -7c2eg0qY6L3X9SU/r24bGTn4f4CxTygSTWftEj7B+wx5E1gsXvC8ljRTmuoS1FGB -aw5kAtilRVsI3tpf+UQP2U4J+ugdmswEQQFa0JLLuSHVXujvCYvc05eVYgaQXcKn -xR3hVQKBgH75U8abmbbH7v6osTmWJBSqRbHtAjjcuJ70ApF11QY3sMdllmWl9zXS -WYlUXLOFbbwlR8KfXPFaCIBas+N5l4eT6jYbSdcnWTdbqqc1EPf3oj92m1uxImxE -Xwyn/O1MdhLudeP3qpRhR10hXKdsuq/+7k3nR2SZd8CwYCDczDu2 ------END RSA PRIVATE KEY----- diff --git a/threat_intel.json b/threat_intel.json deleted file mode 100644 index 9e26dfe..0000000 --- a/threat_intel.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/tls_cert.pem b/tls_cert.pem deleted file mode 100644 index f66430a..0000000 --- a/tls_cert.pem +++ /dev/null @@ -1,18 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIC6TCCAdGgAwIBAgIIMQyP/0c+PXUwDQYJKoZIhvcNAQELBQAwGTEXMBUGA1UE -AxMOaG9uZXlwb3QubG9jYWwwHhcNMjUwOTI4MDYwMzQzWhcNMzAwOTI4MDcwMzQz -WjAZMRcwFQYDVQQDEw5ob25leXBvdC5sb2NhbDCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAMSsYJKMn5rdvzMZYRUsuAeC9t9bgID4Q2O+GbOdNtBCSsTq -SGQTWyjzaudq3ODpZGJhft4ZzaqeRo9Ms9JOdmwAhG21Gfkv0Xk1J1od16/NBx89 -0F4Sba5pclamYxxhcx57sLYm4bUFGztbNYUbCMripBStKG9tRXExn6TMGi5kdanN -kg+CPPrFs+a/qfhancLRPHEh1oCFirYZRTrt9n8N/EbppYcBKBuQ+STIT1XFYGrX -ZN3RsrN7hEwR+qvWWYSf/ukpW8L7Od2fI0LoFHn9jhu7Z/qNutgLqs6f0+8BGlSC -5vp4kKTAO2crg6lgAzc3EUh7pWyaZfpz5zpsVKMCAwEAAaM1MDMwDgYDVR0PAQH/ -BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwDQYJKoZI -hvcNAQELBQADggEBADNLWYnULwfAGqYcWF0h32APoOIzm+py/GTEcsW279oZ++09 -hvkf9xdhXKxs4NXCdUsMC2h//l5P/rlVM5OWTB2RFDDPMtAW/dpNK7YL0Q7HMUI8 -zrVQW4Gi+hLuQ4XohN/YijKbJQSvle5nU02AU6dqHNUFs5J4AhQIVlIHCFz/sDuh -46WvY9dqv/3mvOuXDmXIvuv2vFD3KTGApHQ+SnRQGveczdleTQizEWzd/GmZsVOH -Igk9ZJEiRhWLZCWa3taTcW/ZOn9QbGAHO8FP8O8p/j6hrqcReW4LgN0BKnVbdMbY -gK+EpjI18uF98J8ZDwD4+CQsGt+x2Sm53Ot8z8g= ------END CERTIFICATE----- diff --git a/tls_key.pem b/tls_key.pem deleted file mode 100644 index d82072a..0000000 --- a/tls_key.pem +++ /dev/null @@ -1,27 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEpAIBAAKCAQEAxKxgkoyfmt2/MxlhFSy4B4L231uAgPhDY74Zs5020EJKxOpI -ZBNbKPNq52rc4OlkYmF+3hnNqp5Gj0yz0k52bACEbbUZ+S/ReTUnWh3Xr80HHz3Q -XhJtrmlyVqZjHGFzHnuwtibhtQUbO1s1hRsIyuKkFK0ob21FcTGfpMwaLmR1qc2S -D4I8+sWz5r+p+FqdwtE8cSHWgIWKthlFOu32fw38RumlhwEoG5D5JMhPVcVgatdk -3dGys3uETBH6q9ZZhJ/+6Slbwvs53Z8jQugUef2OG7tn+o262Auqzp/T7wEaVILm -+niQpMA7ZyuDqWADNzcRSHulbJpl+nPnOmxUowIDAQABAoIBAERBsw6JgYcE+Kuq -Xjg0GfZ5bGaeYh3gi7rdKhxdLr3elAZ9bPxWf2fZ+zsvqlLgjXdbcOVyPR++6Kwp -KauOkajwEQXmOYpzHxca7HppKwcXeCZOlLdhW/GRJR6Phow+Ae8NbIn7OpBRol7a -S9vTQxzuxZVrd0IcwWIEn+xY7ak1lnNTzWhjyIyN5HybGEU3lFjPMXRmj5X0P7GS -8HcBsl4jFlpDwstucqDxmrm7Fr7EVo3tIPEcGdNPqKvnZ44Ravb5/jVW0C/KvjsM -5lZmIGEKIQjyCpa4Dd2fkLvb4b9n9+hxdVRDNOYW7AnCBWZZwlJj8zwzufVXSTjx -Av3uA7kCgYEA682lXPNR9Om3mxz76mj1+7JYkykDQ1sE6CwHxTAQjBNS6QUAEW+n -meurM+3LmNldWixhLcJgH7c9tANyN1b6I1KWouK6gFdSuINvYIVDHvNtKtrne+vX -LUuX1pfQvz5Oq9mqJXU/+WD5yqv+1rxsleNJF6TzXp40caUQpJGmSbcCgYEA1YS/ -BObe1uQ+OUPdsWXF4hGDEcHbEO3WBV+YZL/Hjclee/jafu3iA1aaA+QvQTJp4L0W -Kik4NP/k2j/d3Tl0PFBY66kX3u/F1gzW1xB6Ql/aAdxoat9sNKLSrxbwPj3DCm11 -ypWAV1IMfc1UGcsMYjHbYr/lWv9Sa5df3LAIfHUCgYEAxJaoXLwHAfawOkOJyr5D -BdqEefvhWpBRoPbEa6NMyFt77gVbLy41Pt/51ctUyFO/vmPtiObamNZ+PMv6tyRu -WnCKYbZA4qrqriX1/zRa5zzvMKFcCDZxKLQzHJdpU2ew0xke/yendFNjLZMDXSeu -J7Bbybidpa6j7nM9UtaTGjUCgYBJCm8Z6yxh0JRknI2zCMCntBvlMC6TXPjwv6Hv -HRfTrgYPXLLJ5vCA+dgX6rArmmZTxftWEuGyZ7NO4bgw3F2h4E56105eKiHANoYr -7ewU1ptKNa7WmHV4kBaIZM1sTU5yO72mvnu34054novdgvNKiAmnf0OjXGJCgfb+ -FI3inQKBgQDAQ/rTu7acMZAXGMlRHI/rJaXDnS705WFmXTYYgpY+62pi/aPZ1W8w -9FtMuFoHtiwlV6jwKg+3GkZNnXKsuAc07dYCgpxMxd5uFcP5CHl/AwOZ8xe7kzwl -sJuWf3wfRTHBwry+sgPF450iaHrYVzsyKyanafm5L1hNzAseEhAZyg== ------END RSA PRIVATE KEY-----