WebHackingNotes
1- 정보 수집 : 정보 수집은 사냥 보안 버그의 일부입니다. 공격 표면 정찰 - 전략 및 표준화 가치
*** 가상 호스트 식별 : 여러 웹 사이트가 일반적으로 동일한 물리적 서버에 배포됩니다.
- 많은 조직의 웹 사이트는 공유 리소스를 사용하는 서비스 제공 업체가 호스팅합니다. IP 주소의 공유는 이들이 가장 유용하고 비용 효율적인 기술 중 하나입니다. 특정 IP 주소에 대한 역 DNS 쿼리를 수행 할 때 종종 여러 도메인 이름이 반환됩니다. 이 웹 사이트는 이름 기반 가상 호스팅을 사용하며 호스트 헤더 값에 의해 동일한 IP 주소로 호스팅되는 다른 웹 사이트와 유일하게 식별되고 차별화됩니다.
- YougetSignal (http://www.yougetsignal.com/)은 리버스 IP 조회 기능을 제공하는 웹 사이트입니다.
*** 하위 도메인 열거 :
- VPS를 사용하여 하위 도메인을 찾아 정찰을 시작할 수 있습니다. 하위 도메인이 많을수록 공격 표면이 많을수록 더 많은 공격이 가질 수 있습니다.
- 웹 사이트의 하위 도메인을 찾으면 놀라운 곳에 우리를 착륙시킬 수 있습니다. 나는 이스라엘 보안 연구원 인 Nir Goldshlager의 대화를 기억하며, 그는 Google 서비스에서 하위 도메인 열거 스캔을 수행했으며, 하위 도메인에서 공개적으로 공개 된 로컬 파일 포함 취약점으로 웹 애플리케이션을 실행 한 것을 발견했습니다.
*** 포트 스캔 :
- 하위 도메인을 열거 한 후에는 포트 스캔을 시작하여 실행 서비스를 포함하여 더 많은 공격 표면을 식별 할 수 있습니다.
- 포트 스캐닝 사용 - 정상 80,443- 모든 65536 포트에 대해 포트 스캔을 실행하지 마십시오. 임의의 높은 포트에서 실행할 수있는 것이 놀랄 것입니다.
- Portscan의 결과는 회사의 전반적인 보안을 나타낼 수 있습니다. 예를 들어, 80 및 443을 제외한 모든 포트를 닫은 회사 (HTTP 및 HTTPS 사이트를 호스팅하기위한 공통 웹 포트)는 보안 의식이있을 가능성이 높으며, 개방 된 포트가 많은 회사는 반대 일 가능성이 높으며 바운티에 대한 더 나은 잠재력을 가질 수 있습니다.
- 웹 서버에서 열린 포트를 식별 한 후에는 기본 운영 체제를 결정해야합니다.
- 기본 운영 체제 및 오픈 포트가 결정되면 열린 포트에서 실행되는 정확한 응용 프로그램을 식별해야합니다. 웹 서버를 스캔 할 때는 운영 체제 위에서 실행중인 웹 서비스의 향미 및 버전을 분석해야합니다.
*** 컨텐츠 발견 : 숨겨진 및 기본 콘텐츠를 발견하십시오
- 인터넷 검색 엔진의 많은 사용을 여행하기 전에 프로파일 링의 효율성을 크게 향상시킬 수있는 추가 검색 관련 문제 하나를 기록하고자합니다. robots.txt 파일에는 Google과 같은 검색 엔진이 색인 또는 무시 해야하는 디렉토리 목록이 포함되어 있습니다.
- SiteMaps는 제로 노력으로 기본 연구를 수행하는 엄청나게 간단한 방법입니다. siteemap.xml 슬러그로 약간의 URL 해킹을 수행하면 사이트의 구조를 자세히 설명하는 실제 XML 파일 또는 게시물, 페이지 등에 대한 별도의 사이트 맵을 사용하여 사이트의 다른 영역을 문서화하는 실제 XML 파일을 반환합니다.
- 숨겨진 디렉토리를 찾는 응용 프로그램을 매핑하거나 / 백업 / 등과 같은 잊혀진 것을 잊어 버립니다.
- 콘텐츠 발견에 접근하는 몇 가지 방법이 있습니다. 먼저 파일과 디렉토리를 무차별하여 파일과 디렉토리를 발견하려고 시도 할 수 있습니다.
- 퍼지 도구는 거대한 워드리스트에서 가져온 URI를 사용하여 다른 경로를 시도한 다음 숨겨진 디렉토리 및 파일을 발견하기 위해 응답의 HTTP 상태 코드를 분석하여 웹 컨텐츠를 발견하는 데 사용될 수 있습니다.
- Cewl은 Robin Hood가 만든 사용자 정의 워드리스트 생성기입니다. 기본적으로 대상 사이트를 특정 깊이로 거미 처리 한 다음 단어 목록을 반환합니다. 이 워드리스트는 나중에 무차별 웹 응용 프로그램 로그인 (예 : 관리 포털)의 사전으로 사용할 수 있습니다.
- 민감한 자산에 대한 무차별 대결과 평행 한 Spidering은 사이트 맵 없이는 단지 무차별적인 자체를 제공 할 수없는 사이트 사진을 얻는 데 도움이 될 수 있습니다.
- 웹 서버에는 관리자, 이전 버전의 사이트, 백업 디렉토리, 데이터 디렉토리 또는 HTML 코드에서 참조되지 않은 기타 디렉토리를위한 디렉토리가있을 수 있습니다.
- 공통 분야 및 디렉토리 이름 및 공통 연장 목록을 얻으십시오. 이 목록에 추가하여 응용 프로그램 내에서 실제로 관찰 된 모든 항목과 이들로부터 추론 된 항목도 추가하십시오. 응용 프로그램 개발자가 사용하는 이름 지정 규칙을 이해하십시오. 예를 들어, addDocument.jsp 및 viewDocument.jsp라는 페이지가있는 경우 editDocument.jsp 및 removedocument.jsp라는 페이지가있을 수 있습니다.
- 결과 내에서 잘못된 양성을 제거하기 위해 잠재적으로 흥미로운 문제를 수동으로 확인하십시오.
*** 공개 자원 상담 : 공개적으로 이용 가능한 리소스에서 대상 웹 사이트에 대한 정보 축적
- 파일 및 디렉토리를 넘어서야 할 때 Google Dorking은 흥미로운 콘텐츠 발견을 제공 할 수 있습니다. Google Dorking은 특히 URL, Redirect_to, ID 등과 같은 취약점과 관련된 URL 매개 변수를 찾을 때 시간을 절약 할 수 있습니다.
- 검색 엔진은 항상 해커의 가장 친한 친구였습니다. 주요 인터넷 검색 엔진 중 하나 이상이 과거에 적어도 한 번은 대상 웹 응용 프로그램을 색인화했다는 것은 좋은 일입니다.
- Google 외에도 특정 정보를 찾는 데 매우 중요 할 수있는 특정 초점을 가진 다른 검색 엔진이 있습니다. 사람에 대한 정보를 찾거나 공개 기록에 대해 문의하든, 원하는 것을 찾기 위해 특수 검색 엔진이 만들어졌습니다.
- 연락처 정보와 같은 응용 프로그램의 콘텐츠에서 발견 한 이름 및 이메일 주소에 대한 검색을 수행하십시오. HTML 주석과 같이 화면에 렌더링되지 않은 항목을 포함하십시오. 웹 검색 외에도 뉴스 및 그룹 검색을 수행하십시오. 대상 응용 프로그램 및 지원 인프라와 관련하여 인터넷 포럼에 게시 된 기술 세부 정보를 찾으십시오.
- 흥미로운 콘텐츠를 찾는 또 다른 접근법은 회사의 Github를 확인하는 것입니다. 회사에서 오픈 소스 리포지토리를 찾거나 사용하는 기술에 대한 유용한 정보를 찾을 수 있습니다.
- Github는 놀라운 데이터의 보물입니다. 비밀번호, API 키, 오래된 소스 코드, 내부 호스트 이름/IP 등을 얻을 수있는 여러 침투 테스트 및 빨간색 팀 평가가있었습니다. 이들은 직접적인 타협으로 이어 지거나 다른 공격을 지원했습니다. 우리가 보는 것은 많은 개발자들이 잘못된 리포지어로 코드를 푸시하거나 (회사의 개인 저장소 대신 공개 저장소로 보내거나) 실수로 민감한 자료 (암호와 같은)를 푸시하고 제거하려고한다는 것입니다. GitHub의 좋은 점은 코드가 수정되거나 삭제 될 때마다 추적한다는 것입니다.
- Shodan (https://www.shodan.io)은 인터넷을 정기적으로 스캔하고 배너, 포트, 네트워크에 대한 정보 등을 정기적으로 스캔하는 훌륭한 서비스입니다.
- Censys는 인터넷에서 모든 도달 가능한 서버 및 장치를 지속적으로 모니터링하므로 실시간으로 검색하고 분석 할 수 있습니다. 네트워크 공격 표면을 이해하고 새로운 위협을 발견하며 글로벌 영향을 평가할 수 있습니다 [https://censys.io/].
- 잊혀진 엔드 포인트를 찾기 위해 WaybackMachine을 활용하십시오
*** 기술 스택 : 사용 된 기술을 식별합니다
- 새 응용 프로그램을 테스트 할 때 수행하는 첫 번째 작업 중 하나는 사용되는 기술을 식별하는 것입니다. 여기에는 Frontend JavaScript Frameworks, Server-Side Application Frameworks, 타사 서비스, 로컬 호스팅 파일, 원격 파일 등이 포함되지만 이에 국한되지는 않습니다.
- 웹 사이트를 개발하는 데 사용되는 프레임 워크에 대한 지식을 갖추면 방치되지 않은 버전에 존재할 수있는 취약점을 식별하는 데 유리합니다.
- 기본 기술이 무엇인지 찾으십시오. 이를위한 유용한 도구는 NMAP입니다.
*** 새로운 Fuctionality 식별 :
- JavaScript 파일을 추적하여 새로운 사이트 기능을 발견 할 수도 있습니다. JavaScript 파일에 중점을 두는 것은 사이트가 Frontend JavaScript 프레임 워크에 의존하여 콘텐츠를 렌더링 할 때 특히 강력합니다. 응용 프로그램은 사이트가 JavaScript 파일에 포함 된 대부분의 HTTP 엔드 포인트를 갖는 데 의존합니다.
- 새로운 기능에 대한 액세스 비용
*** 소스 코드 : 소스 코드 분석은 일반적으로 자동화 된 빌드 체인의 일부 또는 수동 검토의 일부로 내부 테스트 시나리오 인 흰색 상자에서만 발생하는 것으로 생각됩니다. 그러나 브라우저에서 사용할 수있는 클라이언트 측 코드를 분석하는 것도 외부 연구원으로서 취약점을 찾는 효과적인 방법입니다.