다음은 저자가 미 국방부(DoD) Hack the Pentagon 취약점 공개 테스트 프로젝트에 참여하고 JIRA 취약점 CVE-2017-9506을 사용하여 SSRF 공격 표면을 구축하고 미 육군의 Non-Confidential Internet을 구현한 방법을 설명합니다. NIPRnet(프로토콜 라우터 네트워크) 액세스는 다른 취약점 기술과 결합되어 DoD 인트라넷 시스템의 일련의 민감한 정보를 획득했습니다. 테스트 프로세스와 내용의 기밀성으로 인해 이 기사에서는 기술적인 세부 사항과 자세한 시나리오를 너무 많이 공개하지 않고 이 점만 다루게 됩니다. 이는 단지 학습과 공유를 위한 것이므로 독자 여러분의 양해를 바랍니다.
JIRA는 호주 Atlassian Company에서 개발한 뛰어난 문제 추적 및 관리 소프트웨어 도구로, 결함, 작업, 요구 사항, 개선 사항 등 다양한 유형의 문제를 추적하고 관리할 수 있습니다. J2EE 기술을 사용하고 여러 플랫폼에 배포할 수 있기 때문에 많은 유명 기업과 오픈 소스 소프트웨어 조직에서 JIRA를 사용하고 있습니다.
미 국방부(DoD)의 취약점 공개 테스트 프로젝트에 참여하던 중 두 개의 특수 웹사이트에서 프로젝트 추적 관리 도구인 JIRA를 배포한 것을 발견했습니다. 마지막으로 악용할 수 있는 취약점이 없다고 생각해서 계속해서 더 깊이 파고들지는 않았습니다.
나중에 SSRF 공격을 구현하기 위해 JIRA 취약점을 악용한 Twitter 게시물을 발견했습니다.
이 의미는 다음과 같습니다.
조심하세요, JIRA 사용자 여러분! 공격자는 JIRA 취약점 CVE-2017-9506을 악용하여 인트라넷 데이터를 훔칠 수 있습니다. 이는 개방형 리디렉션 취약점이지만 경우에 따라 내부 JIRA 시스템의 로컬 링크 주소로 리디렉션되어 AWS 키와 같은 특정 내부 리소스 정보가 공개되는 데 악용될 수 있습니다.
네덜란드 보안 연구 기관 Dontpanic은 CVE-2017-9506의 대략적인 원인을 제시했습니다. JIRA에 포함된 Atlassian OAuth 플러그인에 IconUriServlet이라는 구성 요소가 있으며, 이는 다음과 같은 용도로 사용됩니다. 매개변수 값이 ConsumerUri인 GET 요청을 클라이언트로부터 수신하지만 IconUriServlet 구성 요소는 서버에 의해 실행되는 또 다른 HTTP GET 요청을 생성하는 데에도 사용될 수 있습니다. 이 요청은 간접 프록시로 JIRA에 의해 시작되고 서버에 의해 실행됩니다. 이 과정에서 요청을 구성하면 서버의 내부 정보가 유출되어 응답 내용으로 클라이언트에 반환될 수 있습니다.
Dontpanic에서 제공하는 취약점 검증 방법:
https://%basepath%/plugins/servlet/oauth/users/icon-uri?consumerUri=https://google.com
basepath를 JIRA 시스템 웹사이트로 교체 링크 위 페이지에 접속 후 정상적으로 google.com 페이지가 나타나면, 접속 시 404 페이지가 나타나면 해당 취약점이 존재하지 않는 것입니다. ConsumerUri 끝에 테스트하려는 웹 사이트에 대한 요청을 추가한다는 점에 유의하세요! ! !
CVE-2017-9506에 대한 설명을 주의 깊게 읽은 후 보물을 발견한 것 같은 느낌이 들었고 이를 확인하기 위해 이전에 발견한 국방부 웹사이트 두 곳으로 빠르게 이동했습니다. 취약점 악용 기술. 웹사이트 중 하나를 테스트한 후 Google 페이지로 성공적으로 이동할 수 있다는 것을 발견했습니다. 이는 웹사이트에 허점이 있음이 틀림없다는 것을 의미합니다!
https://website.mil/plugins/servlet/oauth/users/icon-uri?consumerUri=http://google.com
AWS 규정에 따라 모든 인스턴스를 요청할 수 있습니다. 자체 인스턴스의 메타데이터 예제를 검색하기 위해 AWS에서 설정한 메타데이터 주소는 169.254.169.254입니다(관련 방법은 AWS 공식 지침을 참조하세요). 요청을 시작하기 위해 다음 링크를 구성했습니다.
https://website.mil/plugins/servlet/oauth/users/icon-uri?consumerUri=http://169.254.169.254/latest/meta-data/local-hostname/
You 실제로 내부 호스트 이름을 볼 수 있습니다! 좋습니다. AWS 키를 가져오겠습니다.
https://website.mil/plugins/servlet/oauth/users/icon-uri?consumerUri=http://169.254.169.254/latest /meta-data/ iam/security-credential
하지만 작동하지 않는 것 같습니다. 공식 AWS 문서를 주의 깊게 읽은 후 다음 링크를 재사용하여 인스턴스 ID, 개인 IP 주소 및 기타 정보를 얻었습니다.
https://website.mil/plugins/servlet/oauth/users/icon-uri?consumerUri = http://169.254.169.254/latest/dynamic/instance-identity/document
매우 좋습니다. 응답으로 성공적으로 얻을 수 있습니다!이 시점에서는 문제를 설명할 수 있어야 한다고 생각하여 추가 테스트 없이 단순히 취약점 보고서를 작성하여 제출했습니다. 그러나 이후 DoD 프로젝트 분류 담당자는 해당 취약점을 중간 위험 취약점으로 분류했습니다. 하지만 내 생각에 이것은 확실히 심각하고 위험성이 높은 취약점이다. 저는 국방부와 대화한 후 이 취약점의 궁극적인 영향을 테스트하기 위한 심층 테스트에 대한 승인을 요청했습니다.
심층 테스트 - NIPRnet(Non-confidential Internet Protocol Router Network)에 대한 액세스 및 기타 민감한 정보 획득을 위해
사전 정찰 검색
먼저 기본 포트 감지부터 시작하여 대상을 발견했습니다. 시스템은 21. 22, 80, 443 및 8080 포트를 열었습니다. 이러한 포트 정보를 사용하여 다양한 오류 메시지의 반환을 테스트하고 이 정보를 사용하여 대상 시스템의 서버 및 네트워크 배포를 확인할 수 있습니다. 다음과 같이 대상 시스템의 8080 포트, 응답 정보:
두 번째로 Gopher 파일 디렉터리 보기 프로토콜, DICT 사전 서버 프로토콜, FTP 프로토콜, LDAP 경량 디렉터리 액세스 프로토콜 등과 같은 다른 프로토콜에 대한 요청 테스트를 만들었습니다. 예를 들어, 시스템은 LDAP를 지원하지 않는 다음과 같은 응답을 반환했습니다.
포괄적 활용 발견
이 정보를 기록하면서 저는 PortSwigger 수석 연구원 James Kettle이 USA 2017 Black Hat에서 "Cracking"을 공유한 연구를 생각했습니다. Conference the Lens: Targeting HTTP's Hidden Attack-Surface" James Kettle은 악의적인 HTTP 요청과 헤더 헤더 정보를 구성하여 대상 시스템에서 HTTP 서비스의 숨겨진 공격 표면을 개략적으로 설명했습니다. 결국 그는 이 기술을 사용하여 '위장'했습니다. 미국 국방부의 내부 IP ID가 DoD의 제한된 내부 네트워크 시스템 및 관련 리소스에 침입하여 액세스하는 데 성공했습니다. Kettle의 공유에서 그는 침입 테스트에 사용했던 두 개의 DoD 내부 웹사이트도 보여줬던 것으로 기억합니다. (웹사이트 정보 출처 Defencecarry.com)
https://safe.amrdec.army.mil/safe /
https ://dots.dodiis.mil/
James Kettle이 언급한 두 개의 DoD 내부 웹사이트를 결합하고 테스트 목적으로 요청을 시작하기 위해 찾은 두 개의 DoD JIRA 웹사이트를 사용했습니다. James Kettle이 이런 식으로 언급한 두 DoD 내부 웹사이트는 무엇입니까? 마지막으로 JIRA 웹사이트 중 하나를 사용하여 James Kettle이 언급한 두 DoD 내부 웹사이트에 대한 요청을 시작한 후 그 중 하나에서는 요청 시간이 초과되었음을 표시했습니다.
다른 하나는 미국에서 정부 경고 메시지를 반환했습니다. 정부(USG)는 다음과 같습니다.
이 테스트 과정에서 다른 DoD 내부 웹 서비스도 발견했습니다. 이 내부 웹 서비스를 통해 미군의 비기밀 프로토콜 라우팅 네트워크(NIPRnet)에 성공적으로 액세스할 수 있었습니다. ), DoD에서 금지한 정보로, 기밀보다 덜 민감한 정보를 처리하기 위해 내부적으로 사용됩니다. 비밀유지 원칙으로 인해 여기서는 구체적인 방법과 방법을 자세히 공개하지 않습니다.
응답 내용을 판단하여 내부 민감한 정보 획득
두 번째 JIRA 웹사이트를 사용하여 James Kettle이 언급한 두 DoD 내부 웹사이트에 요청한 후 반환된 응답 정보는 기본적으로 쓸모가 없었습니다.
테스트 후 마침내 DoD 내부 시스템 포트의 개방 여부를 응답 시간을 기준으로 평가할 수 있음을 발견했습니다. 예를 들어 내부 시스템에서 포트 22를 요청하면 응답에 1,000밀리초가 걸리고, 포트 21을 요청하면 응답에 거의 10,000밀리초가 걸립니다. 이 시간 차이를 통해 일부 포트 상태를 추측할 수 있습니다. 또한 자세한 오류 메시지 응답이 부족하여 시스템의 특정 프로토콜에 대해 판단할 수는 없지만 이 글의 초점은 내부 웹 서버를 통해 DoD의 정보에 액세스할 수 있다는 점을 강조하고 싶습니다. 비기밀 프로토콜 라우팅 넷(NIPRnet)! 또한 웹 서버에 대한 요청이 시작된 후 서버와 요청자 간의 데이터 교환에서 정보 유출을 감지하기 위해 Burp의 Collaborator 플러그인을 사용했습니다.
예를 들어 내부 IP는 요청 헤더의 'X-Forwarded-For'에서 얻을 수 있습니다. Burp의 Collaborator 플러그인을 사용하여 모든 대화형 내부 IP를 쿼리할 수 있었지만. 하지만 AWS 메타데이터 검색은 웹 서버에서 구현할 수 없습니다.
결국 DoD에 관련 취약점 2건을 제출한 후 두 취약점 모두 위험 등급으로 평가되었습니다. 이 중에서 올해 초 DoD에 보고한 SSRF 취약점 2건이 생각나서 살펴보고 싶었습니다. 위 SSRF 방법을 사용하여 취약점을 심층적으로 악용할 수 있습니까?
JIRA SSRF 심층 활용
연초에 제가 보고한 두 가지 SSRF 취약점은 특정 웹 애플리케이션 필터를 사용하여 특정 IP 주소에 대한 HTTP 연결 요청을 시작할 수 있다는 것입니다. 시스템 내에서 CONNECT IP 요청을 제출하여 열거할 수 있으며, 또한 군사웹사이트.mil@과 같은 호스트 헤더 정보를 변경하여 대상 시스템의 내부 IP 또는 외부 IP에 대한 확인된 요청 정보를 시작할 수도 있습니다. 내부_IP. 이 두 JIRA 웹사이트에서 이 SSRF 방법을 테스트했을 때 이전에 시간 초과, SSL 오류 및 기타 응답을 유발했던 요청 환경에서 Blind SSRF 방법을 사용하여 내부 IP 및 네트워크 서비스를 검색할 수도 있다는 사실을 발견했습니다. 따라서 이 시점의 SSRF 취약성 공격은 결국 DoD에 의해 중간 위험으로 평가되었습니다.
JIRA SSRF 취약점을 악용하기 위한 다른 기술
위 취약점을 포괄적으로 테스트하는 동안 어떤 경우에는 설명할 수 없는 스택 오류가 발생하고 불완전한 HTTP 헤더 정보 http:// 또는 http://[::]. 이 스택 오류 중에 유출된 민감한 정보에는 데이터베이스 IP, 데이터베이스 버전, 애플리케이션 플러그인, 운영 체제 아키텍처 및 기타 시스템이 포함됩니다.
스택 오류가 발생하면 계속해서 얻을 수 있습니다. 예를 들어 대상 웹사이트가 다른 Altassian 인스턴스를 가리키는 경우가 있다는 것을 발견했습니다. 예를 들어 테스트에서 Altassian의 Confluence 인스턴스가 대상의 하위 도메인 이름에 배포된 것을 발견했습니다. 테스트 결과 이러한 인스턴스도 정보 공개 취약점의 영향을 받는 것으로 나타났습니다.
요약 및 리뷰
저자는 미국 국방부 취약점 공개 테스트 프로젝트에 참여하면서 발견한 JIRA 취약점에 대해 설명하고, 전체 취약점 악용 테스트 과정을 간략하게 소개합니다.
1 그 중 두 가지. JIRA 인스턴스가 포함된 배포 DoD 웹 사이트에는 인증 플러그인 취약점 CVE-2017-9506이 있습니다. 공격자는 이 취약점을 사용하여 대상 웹 사이트 시스템의 내부 리소스 정보를 얻고
2 CVE-2017과 결합할 수 있습니다. -9506 악용 방법, 취약한 DoD 웹사이트에서 JIRA 인스턴스 ID, 개인 IP 주소, 일련의 오류 응답 등의 정보를 획득했습니다.
3 통합 PortSwigger 수석 연구원인 James Kettle은 언급된 두 DoD 웹사이트를 다음과 같이 공유했습니다. CVE-2017-9506 요청 방법을 통해 요청한 DoD 웹사이트가 유효한 USG(정부 경고) 정보를 반환했음을 발견했습니다.
4 세 번째 단계에서는 발견된 내부 웹 서비스를 사용하여 CVE-2017-9506 익스플로잇과 결합했습니다. NIPRnet(Non-Disclosure Protocol Routing Network)에 대한 액세스
5 CVE-2017-9506 익스플로잇 방법과 결합하여 SSRF 공격은 취약한 DoD 웹사이트 및 내부 IP에서 재현되었습니다. 네트워크 서비스 열거 및 민감한 정보의 후속 스택 오류가 발생했습니다.
위 내용은 미군의 기밀되지 않은 인터넷 프로토콜 라우터 네트워크에 접근하기 위해 JIRA 취약점을 이용한 사례 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!