SlideShare a Scribd company logo
No locked doors, No windows barred
     Hacking OpenAM Infrastructure
  George Noseevich
  Andrew Petukhov


             ZeroNights 2012
WTF OpenAM?
•   Open source Access Management, Entitlements and
    Federation server platform
    ➡   successor of Sun OpenSSO Enterprise

•   Written in Java, very Enterprisey
    ➡   hard to configure and maintain securely

•   Rather popular
    ➡   inurl:/amserver/UI/Login or inurl:/openam/UI/Login

•   Common use case: SSO across legacy apps
•   Usually extended via custom code
Motivation, Positioning & Layout
• Not just another hack via XXE
• Wanted to share our knowledge on how to develop
  an attack on OpenAM given an LFR and SSRF abilities
• Attack vectors on different OpenAM instances
  ➡   will start from the simplest one
  ➡   and steadily proceed to the worst case scenario (a security hardened one)

• Several interesting tricks
  ➡   data retrieval in blind XXE cases
  ➡   zip upload via HTTP PUT over gopher

• What is the proper way to fix XXE in Java?
Problem Statement
• OpenAM infrastructure
• Tomcat as a web container
• An ability to read local files and do SSRF
  ➡   e.g. XXE with gopher protocol enabled

• Goal: get an Admin in OpenAM Management Panel
• A side note: will not focus on general SSRF
  elaboration methodology, which is still valid here
To begin with: Loot da FileSystem!
Looting the FileSystem
• Gotta traverse directories
  ➡   Luckily possible to list them with XXE
  ➡   How would you tell a directory listing from a file contents?

• Gotta read files
  ➡   Special chars and binary are a problem as usual

• Would like to use GREP (General Resource
  Enumeration Protocol) and other posix tools
And along comes...

         XXE Fuse Demo

 A team of specially trained
monkeys are supporting this
         SaaS solution 24/7
        Request a free trial!


http://www.youtube.com/watch?v=7GtPgavI-sI
Looting the FileSystem
               XML-in-XML and OOB channels




• The vulnerable servlet performs two rounds of xml parsing
• In the first round we retrieve the data
• In the second round we pass it to the attacker host
Looting the FileSystem
                  Possible Targets and Outcomes
1. Other apps on host
 ➡   especially management and monitoring

2. Configs (& credentials)
 ➡   read container config and extract HTTP credentials if needed
 ➡   ldap.conf may be especially juicy

3. Logs
 ➡   may contain private data (e.g. SQL query logs)
 ➡   may enable further attacks (see below)
Demo Time
 RCE via SSRF over XXE using Tomcat App Manager




http://www.youtube.com/watch?v=ZnsFhGYqI3g
RCE via SSRF over XXE
                      Wait, tell us the details!!!
• How do you POST or PUT via XXE?
   ➡   use gopher; at least until admins won’t update Java

• How do you upload ZIP through gopher?
   ➡   java gopher contains byte [] => String => byte [] conversion
   ➡   this mangles characters >= 0x80
   ➡   use zip -0 (store compression method)
   ➡   with a bit of luck you can use 0x00 instead of mangled chars (i.e. find&replace)
   ➡   the resulting file will have invalid checksums
   ➡   surprisingly (!) Tomcat WAR parser tolerates this
Looting the FileSystem
                Configs & credentials
• Container configs
   ➡   e.g. /usr/share/tomcat6/conf/

• OpenAM configs
   ➡   /home/user/openam/{install.log, .configParam}
   ➡   /home/user/openam/config/xml/

• Password file
   ➡   recommended way of configuring OpenAM is via ssoadm CLI tool:
       “In most ssoadm subcommands, the password file is required option.The password file is a simple file that
       contains the administrator password for the given task.”

       may encourage admins to store passwords in plaintext
Exploring OpenAM Features
• OpenAM uses custom Auth tokens
 ➡   web container session tokens are useless
 ➡   good targets to highjack privileged sessions

• OpenAM does Encryption
 ➡   uses Password-Based Encryption (PBEWithMD5AndDES) with low iteration
     count
 ➡   admin pwd is encrypted with default key and stored in bootstrap file
 ➡   XXE won’t let you read the bootstrap file
 ➡   other pwds and session tokens are encrypted using randomly generated
     instance key which is stored in binary data store
 ➡   instance key is shared across interconnected OpenAM instances (e.g. failover)
Juicy OpenAM Features
• Debugging
 ➡   {CONFIG_DIR}/{INSTANCE_NAME}/debug/
 ➡   If verbose debugging is enabled, we can read auth tokens and hijack sessions
 ➡   Quickly check via grep -r "AQIC"
 ➡   Admins do not log in too frequently
 ➡   Sessions expire
 ➡   Disabled by default =(

• Monitoring
 ➡   HTTP/JMX/SNMP facility to monitor OpenAM instance
 ➡   OpenAM-specific MBeans do not seem to provide anything useful
 ➡   Also disabled by default
Wait, but we need the features!
• Debugging
 ➡   Every single action in admin interface is СSRF-protected
 ➡   Debug.jsp is a quick page to control debug settings
 ➡   Devs didn't worry too much about CSRF there => you can CSRF verbose
     logging
 ➡   SSRF at Tomcat Shutdown Port to force admin login (or social engineer him)

• Monitoring
 ➡   Enable monitoring using the hijacked session; it will have the default (i.e. known)
     password
 ➡   SSRF at Tomcat Shutdown Port again to force reload
Putting it All Together
                  Dealing with the Worst Case
• Enable debugging
 ➡   CSRF and then read admin session token from logs

• Use admin session token to enable Monitoring
 ➡   SSRF at Tomcat Shutdown Port to force reload

• Pwn
 ➡   Use HotSpotDiagnostic MBean to force a heap dump into DOC_ROOT
 ➡   Download and analyze the dump (strings util would do)
 ➡   Grep out the encryption key and encrypted admin password
 ➡   Decrypt the password and rule'em all
Demo Time
Debugging, Monitoring and Heap Dump Scenario




http://www.youtube.com/watch?v=Fb2zEqwvbpw
Wrap Up
 Fixing XXE
Fixing XXE in Java
• Problem statement - devs want to:
 ➡   use a single class for all XML parsing (validating and not)
 ➡   use external DTD's from local jar files
 ➡   avoid being pwned

• Most XML hardening guides recommend:
 ➡   turn off general and parameter entities:
     setFeature("http://xml.org/sax/features/external-general-entities", false)
     setFeature("http://xml.org/sax/features/external-parsed-entities", false)
 ➡   enable XMLConstants.FEATURE_SECURE_PROCESSING to prevent entity
     expansion DoS

• Not Enough!
Fixing XXE in Java
• In Java, if validation is enabled, SSRF is still possible




• Devs: okay, let's use our custom Entity resolver:
 ➡   documentBuilder.setEntityResolver(new XMLHandler())

• Almost there!
 ➡   make sure that XMLHandler returns an empty InputStream on error
 ➡   if you return null, JAXP will fall back to default resolvers!
Wrap Up
                                Conclusions
• Specific advice
 ➡   Never store passwords in files (who may have thought... )
 ➡   It's good to change monitoring password even if you do not use the feature
 ➡   Update Java and OpenAM (fix is available in nightly builds) - this would prevent
     XXE and disable gopher

• General advice: in SSRF world it is no longer safe to
  trust
 ➡   IP-based authentication could be subverted instantly
 ➡   Defying patching? Pwned! (think about delayed exploitation)
 ➡   Defying least privilege in DMZ? Very arrogant!
Question Time!
• George Noseevich
 ➡   Twitter: @webpentest
 ➡   Email: webpentest@gmail.com

• Andrew Petukhov
 ➡   Twitter: @p3tand
 ➡   Email: andrew.petukhov@internalsecurity.ru

• Show us the Source!
 ➡   Tools: http://internalsecurity.ru/media/resources/openam-xxe-tools.zip
 ➡   Video: http://www.youtube.com/playlist?
     list=PL1CBT43qUw294xCw79B01PbRQNKI6Qqdj
 ➡   WWW: http://internalsecurity.ru/research/

More Related Content

PPTX
Room 1 - 3 - Lê Anh Tuấn - Build a High Performance Identification at GHTK wi...
PPTX
Network policy @ k8s day
PDF
Alphorm.com Formation Kubernetes : Installation et Configuration
PPTX
Load Balancing and Scaling with NGINX
PDF
Redis vs Infinispan | DevNation Tech Talk
PDF
CloudStack vs OpenStack
PDF
Room 3 - 1 - Nguyễn Xuân Trường Lâm - Zero touch on-premise storage infrastru...
PPTX
Attacking thru HTTP Host header
Room 1 - 3 - Lê Anh Tuấn - Build a High Performance Identification at GHTK wi...
Network policy @ k8s day
Alphorm.com Formation Kubernetes : Installation et Configuration
Load Balancing and Scaling with NGINX
Redis vs Infinispan | DevNation Tech Talk
CloudStack vs OpenStack
Room 3 - 1 - Nguyễn Xuân Trường Lâm - Zero touch on-premise storage infrastru...
Attacking thru HTTP Host header

What's hot (20)

PPTX
SANS @Night Talk: SQL Injection Exploited
PDF
MacOS memory allocator (libmalloc) Exploitation - Chinese Version
PDF
Infrastructure Agnostic Machine Learning Workload Deployment
PPTX
Room 2 - 1 - Phạm Quang Minh - A real DevOps culture in practice
PPTX
Memory Forensics for IR - Leveraging Volatility to Hunt Advanced Actors
PDF
MySQL Query Optimization
PPTX
PSConfEU - Offensive Active Directory (With PowerShell!)
PDF
Level Up! - Practical Windows Privilege Escalation
PDF
Introduction to kubernetes
PDF
CNIT 127: Ch 18: Source Code Auditing
PPTX
Docker and kubernetes_introduction
PDF
A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ...
PDF
Ansible
PDF
Sigreturn Oriented Programming
PDF
Room 1 - 4 - Phạm Tường Chiến & Trần Văn Thắng - Deliver managed Kubernetes C...
PDF
Drone CI/CD 自動化測試及部署
PPTX
Windows privilege escalation by Dhruv Shah
PPTX
Writing Custom Saltstack Execution Modules
PDF
PHP unserialization vulnerabilities: What are we missing?
PPTX
Kubernetes Basics
SANS @Night Talk: SQL Injection Exploited
MacOS memory allocator (libmalloc) Exploitation - Chinese Version
Infrastructure Agnostic Machine Learning Workload Deployment
Room 2 - 1 - Phạm Quang Minh - A real DevOps culture in practice
Memory Forensics for IR - Leveraging Volatility to Hunt Advanced Actors
MySQL Query Optimization
PSConfEU - Offensive Active Directory (With PowerShell!)
Level Up! - Practical Windows Privilege Escalation
Introduction to kubernetes
CNIT 127: Ch 18: Source Code Auditing
Docker and kubernetes_introduction
A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ...
Ansible
Sigreturn Oriented Programming
Room 1 - 4 - Phạm Tường Chiến & Trần Văn Thắng - Deliver managed Kubernetes C...
Drone CI/CD 自動化測試及部署
Windows privilege escalation by Dhruv Shah
Writing Custom Saltstack Execution Modules
PHP unserialization vulnerabilities: What are we missing?
Kubernetes Basics

Similar to No locked doors, no windows barred: hacking OpenAM infrastructure (20)

PDF
Noseevich, petukhov no locked doors no windows barred. hacking open am infr...
PDF
CONFidence 2015: Nietypowe problemy bezpieczeństwa w aplikacjach webowych - M...
PDF
Vorontsov, golovko ssrf attacks and sockets. smorgasbord of vulnerabilities
PPTX
XML External Entity Null Meet 19_3_16.pptx
PDF
What should a hacker know about WebDav?
ODP
Finding and exploiting novel flaws in Java software (SyScan 2015)
PDF
Security of OpenDaylight platform
PDF
A4 xml external entites
PPT
Web Apps Security
PDF
Доклад Михаила Егорова на PHDays
PDF
Hacking Adobe Experience Manager sites
PDF
Hacking 101 for developers
PDF
DevOoops (Increase awareness around DevOps infra security) - VoxxedDays Ticin...
DOCX
Vulnerability in libxml2
PDF
Apache Roller, Acegi Security and Single Sign-on
DOCX
App. Specific Business 10ImpactsThreatAgentsA.docx
PPT
gofortution
PDF
Security Vulnerabilities: How to Defend Against Them
PDF
Application security 101
Noseevich, petukhov no locked doors no windows barred. hacking open am infr...
CONFidence 2015: Nietypowe problemy bezpieczeństwa w aplikacjach webowych - M...
Vorontsov, golovko ssrf attacks and sockets. smorgasbord of vulnerabilities
XML External Entity Null Meet 19_3_16.pptx
What should a hacker know about WebDav?
Finding and exploiting novel flaws in Java software (SyScan 2015)
Security of OpenDaylight platform
A4 xml external entites
Web Apps Security
Доклад Михаила Егорова на PHDays
Hacking Adobe Experience Manager sites
Hacking 101 for developers
DevOoops (Increase awareness around DevOps infra security) - VoxxedDays Ticin...
Vulnerability in libxml2
Apache Roller, Acegi Security and Single Sign-on
App. Specific Business 10ImpactsThreatAgentsA.docx
gofortution
Security Vulnerabilities: How to Defend Against Them
Application security 101

More from Andrew Petukhov (10)

PDF
Армия освобождения домохозяек: структура, состав вооружений, методы коммуникации
PPTX
You Can Be Anything You Want to Be: Breaking Through Certified Crypto in Bank...
PDF
Обнаружение уязвимостей логики приложений методом статического анализа. Где п...
KEY
Безопасность веб-приложений: starter edition
KEY
Обеспечение безопасности расширений в корпоративных информационных системах
PDF
Detecting Insufficient Access Control in Web Applications
PPT
Benchmark сканеров SQL injection
PDF
Обнаружение уязвимостей в механизме авторизации веб-приложении
PPT
Access Control Rules Tester
PPT
Detecting Security Vulnerabilities in Web Applications Using Dynamic Analysis...
Армия освобождения домохозяек: структура, состав вооружений, методы коммуникации
You Can Be Anything You Want to Be: Breaking Through Certified Crypto in Bank...
Обнаружение уязвимостей логики приложений методом статического анализа. Где п...
Безопасность веб-приложений: starter edition
Обеспечение безопасности расширений в корпоративных информационных системах
Detecting Insufficient Access Control in Web Applications
Benchmark сканеров SQL injection
Обнаружение уязвимостей в механизме авторизации веб-приложении
Access Control Rules Tester
Detecting Security Vulnerabilities in Web Applications Using Dynamic Analysis...

Recently uploaded (20)

PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Encapsulation theory and applications.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
A Presentation on Artificial Intelligence
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
cuic standard and advanced reporting.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
Encapsulation_ Review paper, used for researhc scholars
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
MYSQL Presentation for SQL database connectivity
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Encapsulation theory and applications.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
A Presentation on Artificial Intelligence
Chapter 3 Spatial Domain Image Processing.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Building Integrated photovoltaic BIPV_UPV.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Unlocking AI with Model Context Protocol (MCP)
cuic standard and advanced reporting.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
Per capita expenditure prediction using model stacking based on satellite ima...

No locked doors, no windows barred: hacking OpenAM infrastructure

  • 1. No locked doors, No windows barred Hacking OpenAM Infrastructure George Noseevich Andrew Petukhov ZeroNights 2012
  • 2. WTF OpenAM? • Open source Access Management, Entitlements and Federation server platform ➡ successor of Sun OpenSSO Enterprise • Written in Java, very Enterprisey ➡ hard to configure and maintain securely • Rather popular ➡ inurl:/amserver/UI/Login or inurl:/openam/UI/Login • Common use case: SSO across legacy apps • Usually extended via custom code
  • 3. Motivation, Positioning & Layout • Not just another hack via XXE • Wanted to share our knowledge on how to develop an attack on OpenAM given an LFR and SSRF abilities • Attack vectors on different OpenAM instances ➡ will start from the simplest one ➡ and steadily proceed to the worst case scenario (a security hardened one) • Several interesting tricks ➡ data retrieval in blind XXE cases ➡ zip upload via HTTP PUT over gopher • What is the proper way to fix XXE in Java?
  • 4. Problem Statement • OpenAM infrastructure • Tomcat as a web container • An ability to read local files and do SSRF ➡ e.g. XXE with gopher protocol enabled • Goal: get an Admin in OpenAM Management Panel • A side note: will not focus on general SSRF elaboration methodology, which is still valid here
  • 5. To begin with: Loot da FileSystem!
  • 6. Looting the FileSystem • Gotta traverse directories ➡ Luckily possible to list them with XXE ➡ How would you tell a directory listing from a file contents? • Gotta read files ➡ Special chars and binary are a problem as usual • Would like to use GREP (General Resource Enumeration Protocol) and other posix tools
  • 7. And along comes... XXE Fuse Demo A team of specially trained monkeys are supporting this SaaS solution 24/7 Request a free trial! http://www.youtube.com/watch?v=7GtPgavI-sI
  • 8. Looting the FileSystem XML-in-XML and OOB channels • The vulnerable servlet performs two rounds of xml parsing • In the first round we retrieve the data • In the second round we pass it to the attacker host
  • 9. Looting the FileSystem Possible Targets and Outcomes 1. Other apps on host ➡ especially management and monitoring 2. Configs (& credentials) ➡ read container config and extract HTTP credentials if needed ➡ ldap.conf may be especially juicy 3. Logs ➡ may contain private data (e.g. SQL query logs) ➡ may enable further attacks (see below)
  • 10. Demo Time RCE via SSRF over XXE using Tomcat App Manager http://www.youtube.com/watch?v=ZnsFhGYqI3g
  • 11. RCE via SSRF over XXE Wait, tell us the details!!! • How do you POST or PUT via XXE? ➡ use gopher; at least until admins won’t update Java • How do you upload ZIP through gopher? ➡ java gopher contains byte [] => String => byte [] conversion ➡ this mangles characters >= 0x80 ➡ use zip -0 (store compression method) ➡ with a bit of luck you can use 0x00 instead of mangled chars (i.e. find&replace) ➡ the resulting file will have invalid checksums ➡ surprisingly (!) Tomcat WAR parser tolerates this
  • 12. Looting the FileSystem Configs & credentials • Container configs ➡ e.g. /usr/share/tomcat6/conf/ • OpenAM configs ➡ /home/user/openam/{install.log, .configParam} ➡ /home/user/openam/config/xml/ • Password file ➡ recommended way of configuring OpenAM is via ssoadm CLI tool: “In most ssoadm subcommands, the password file is required option.The password file is a simple file that contains the administrator password for the given task.” may encourage admins to store passwords in plaintext
  • 13. Exploring OpenAM Features • OpenAM uses custom Auth tokens ➡ web container session tokens are useless ➡ good targets to highjack privileged sessions • OpenAM does Encryption ➡ uses Password-Based Encryption (PBEWithMD5AndDES) with low iteration count ➡ admin pwd is encrypted with default key and stored in bootstrap file ➡ XXE won’t let you read the bootstrap file ➡ other pwds and session tokens are encrypted using randomly generated instance key which is stored in binary data store ➡ instance key is shared across interconnected OpenAM instances (e.g. failover)
  • 14. Juicy OpenAM Features • Debugging ➡ {CONFIG_DIR}/{INSTANCE_NAME}/debug/ ➡ If verbose debugging is enabled, we can read auth tokens and hijack sessions ➡ Quickly check via grep -r "AQIC" ➡ Admins do not log in too frequently ➡ Sessions expire ➡ Disabled by default =( • Monitoring ➡ HTTP/JMX/SNMP facility to monitor OpenAM instance ➡ OpenAM-specific MBeans do not seem to provide anything useful ➡ Also disabled by default
  • 15. Wait, but we need the features! • Debugging ➡ Every single action in admin interface is СSRF-protected ➡ Debug.jsp is a quick page to control debug settings ➡ Devs didn't worry too much about CSRF there => you can CSRF verbose logging ➡ SSRF at Tomcat Shutdown Port to force admin login (or social engineer him) • Monitoring ➡ Enable monitoring using the hijacked session; it will have the default (i.e. known) password ➡ SSRF at Tomcat Shutdown Port again to force reload
  • 16. Putting it All Together Dealing with the Worst Case • Enable debugging ➡ CSRF and then read admin session token from logs • Use admin session token to enable Monitoring ➡ SSRF at Tomcat Shutdown Port to force reload • Pwn ➡ Use HotSpotDiagnostic MBean to force a heap dump into DOC_ROOT ➡ Download and analyze the dump (strings util would do) ➡ Grep out the encryption key and encrypted admin password ➡ Decrypt the password and rule'em all
  • 17. Demo Time Debugging, Monitoring and Heap Dump Scenario http://www.youtube.com/watch?v=Fb2zEqwvbpw
  • 19. Fixing XXE in Java • Problem statement - devs want to: ➡ use a single class for all XML parsing (validating and not) ➡ use external DTD's from local jar files ➡ avoid being pwned • Most XML hardening guides recommend: ➡ turn off general and parameter entities: setFeature("http://xml.org/sax/features/external-general-entities", false) setFeature("http://xml.org/sax/features/external-parsed-entities", false) ➡ enable XMLConstants.FEATURE_SECURE_PROCESSING to prevent entity expansion DoS • Not Enough!
  • 20. Fixing XXE in Java • In Java, if validation is enabled, SSRF is still possible • Devs: okay, let's use our custom Entity resolver: ➡ documentBuilder.setEntityResolver(new XMLHandler()) • Almost there! ➡ make sure that XMLHandler returns an empty InputStream on error ➡ if you return null, JAXP will fall back to default resolvers!
  • 21. Wrap Up Conclusions • Specific advice ➡ Never store passwords in files (who may have thought... ) ➡ It's good to change monitoring password even if you do not use the feature ➡ Update Java and OpenAM (fix is available in nightly builds) - this would prevent XXE and disable gopher • General advice: in SSRF world it is no longer safe to trust ➡ IP-based authentication could be subverted instantly ➡ Defying patching? Pwned! (think about delayed exploitation) ➡ Defying least privilege in DMZ? Very arrogant!
  • 22. Question Time! • George Noseevich ➡ Twitter: @webpentest ➡ Email: webpentest@gmail.com • Andrew Petukhov ➡ Twitter: @p3tand ➡ Email: andrew.petukhov@internalsecurity.ru • Show us the Source! ➡ Tools: http://internalsecurity.ru/media/resources/openam-xxe-tools.zip ➡ Video: http://www.youtube.com/playlist? list=PL1CBT43qUw294xCw79B01PbRQNKI6Qqdj ➡ WWW: http://internalsecurity.ru/research/

Editor's Notes