2022. 8. 12. 00:30ㆍ보안/케이쉴드
TTP(Tactic, Technique, Procedure)
공격자는 TTP를 쉽게 확보하거나 버릴 수 없다.
방어자의 환경과 공격자의 TTP는 함께 이야기 되어야 한다.
https://attack.mitre.org/matrices/enterprise/
정찰
정찰단계에서 공격자는 공격 대상을 선정하는 작업을 수행한다.
공격 대상의 아이피 필터링을 위해 정찰단계에서 공격 대상의 아이피를 수집
자원개발
공격에 활용할 인프라를 구축하는 단계이다.
정보유출, 명령 제어 등을 위해 기존에 노출되지 않은 인프라를 확보한다.
일부 기업의 서버를 탈취하거나 호스팅 및 도메인을 가상자산을 통해 임대하고 공격에 필요한 악성코드를 직접 제작하여 사용한다.
최초침투
정찰단계에서 수집한 정보 및 공격 자원을 확보한 후 침투를 시도한다. 최초 침투를 위해 타겟형 워터링홀 공격을 수행했으며, 이 과정에서 기존에 수집한 정보를 바탕으로 감염대상을 필터링한다. 또, 목표 기업이 사용 중인 소프트웨어의 취약점을 통해 악성코드를 다운로드받아 감염시킨다.
실행
목표 기업이 사용 중인 소프트웨어의 취약점을 통해 공격자의 서버에서 악성코드를 다운로드받아 실행시킨다.
지속성유지
원격제어 악성코드의 원격 명령기능(CMD Command)를 이용해 레지스트리와 스케줄러에 원격제어 악성코드를 등록시켜 지속성을 유지한다.
방어회피
공격자는 Windows 정상 유틸리티인 mshta.exe를 악용해 악성코드를 다운로드받고 실행시킨다. 또한, 설치된 악성코드는 정상 프로그램명으로 설치되었으며, 설치경로 역시 실제 사용되는 경로에 설치되었으며, 백신, 보안장비 등의 탐지 우회를 악성코드가 사용하는 문자들 등을 모두 인코딩했다.
탐색
악성코드는 감염 시 감염대상의 시스템 정보를 수집해 공격자의 명령제어지로 수집한 정보를 전달한다.
수집
원격제어 악성코드를 통해 감염 시스템에서 키로깅, 스크린 캡처 기능을 통한 현재 피해 시스템의 상황을 수집하고, CMD 명령 등의 기능을 이용해 피해 시스템의 정보 및 사용자 파일 등의 다양한 정보를 수집한다.
유출
유출시 수집한 정보를 인코딩해 공격자의 서버로 전달한다.
정찰
1. dns정보조사
DNS 란 Domain Name System 의 약자 입니다.
IP주소는 외우기 힘들기 때문에 문자로 구성된 도메인주소를 IP외 매핑해주는 역할을 합니다.
IP요청 : 브라우저 -> (도메인주소 입력) -> DNS
IP응답 : DNS -> (IP주소 응답) -> (해당 IP로 연결) -> (사이트 정보 전달) -> 브라우저
NMAP:이 도구는 kali에서도 사용할 수 있다
DNS 영역 전송 수행: 이 기술을 사용하면 가장 중요한 정보를 얻을 수 있습니다. 그러나 오늘날 조직에서 보안 제어를 구현하기 때문에 사용할 수 없습니다.
DNS 무차별 대입 수행: 이름 목록이 포함된 파일이 도구에 제공됩니다. 파일 도구의 각 항목을 시도하여 제공된 도메인에 대해 A, AAA 및 CNAME 레코드를 확인합니다.
역방향 조회 수행: 지정된 IP 범위에 대해 CDIR 도구는 PTR 레코드 조회를 수행합니다.
존 워킹: 영역이 제대로 구성되지 않은 경우 내부 레코드가 노출됩니다. 이 정보를 통해 해커는 네트워크 호스트를 매핑할 수 있습니다.
>>
DNSSEC 개념
DNSSEC(DNS Security Extensions)은 DNS 데이터 대상의 "데이터 위조-변조 공격"을 방지하기 위한 인터넷 표준기술입니다.
DNS 데이터의 위조-변조 가능성을 원천적으로 차단하기 위해, DNSSEC은 공개키 암호화방식(Public Key Cryptography)의 전자서명 기술을 DNS 체계에 도입 적용하였습니다. 공개키 암호화방식의 전자서명 메커니즘은 금융권 등에서 널리 사용하는 공인인증서가 사용하고 있는 기술이기도 합니다.
VPN에 연결하면 모든 온라인 트래픽이 VPN 네트워크를 통해 라우팅되어야 합니다. 여기에 앞서 언급한 DNS 쿼리가 포함됩니다. 이들은 암호화된 터널을 통해 VPN 제공업체의 DNS 서버로 곧바로 이동해야 합니다.
하지만 항상 그런 것은 아닙니다. DNS 누출은, 인터넷 서비스 공급자(ISP)에 속한 기본 DNS 서버로 쿼리를 보낼 수 있는 보안 결함입니다. 이는 다음과 같은 경우에 발생할 수 있습니다:
>>
사용자의 모든 DNS 쿼리는 암호화된 터널을 통해 이동하며 연결된 동일한 VPN 서버에서 변환됩니다.
이렇게 하면, 기밀 정보 유출 및 제3자의 감시에 대해 걱정할 필요가 없습니다.
2. web응용프로그램 정보 조사
웹 응용 프로그램 작동 방식
웹 응용 프로그램은 정적 및 동적 웹 페이지의 모음입니다. 정적 웹 페이지는 사이트 방문자가 요청할 때 변경되지 않는 페이지입니다. 즉, 웹 서버에서 요청 웹 브라우저에 페이지를 수정하지 않은 상태로 보냅니다. 반면에 동적 웹 페이지는 요청하는 브라우저에 보내기 전에 서버에 의해 수정됩니다. 이러한 특성 때문에 동적 웹 페이지라고 합니다.
예를 들어 건강 관리 결과를 표시하면서 일부 정보(예:사원 이름 및 결과)는 특정 사원이 요청할 때 결정되는 페이지를 디자인할 수 있습니다.
다음 단원에서는 웹 응용 프로그램 작업 방법을 자세히 설명합니다.
프론트엔드 환경 파악 도구 Wappalyzer
CMS와 같은 서버측 소프트웨어를 포함한 대부분의 웹 기술은 웹사이트의 HTML 코드에 존재의 흔적을 남깁니다. 이 코드는 공개적으로 액세스할 수 있으며 브라우저가 페이지를 렌더링하고 표시하는 데 필요합니다. Wappalyzer는 이러한 기술을 다양한 핑거프린팅 방식으로 노출하는 데 매우 능숙한 것으로 알려져 있습니다.
웹사이트의 기술 스택에 대한 정보가 노출되는 것과 관련하여 보일 수 있습니다. 결국 해커는 알려진 취약점이 있는 플랫폼을 항상 표적으로 삼는 경우가 많습니다. 그러나 사용 중인 소프트웨어가 무엇인지 아는 것만으로는 웹사이트를 해킹하기에 충분하지 않습니다. 악용하려면 패치되지 않은 알려진 취약점이 있어야 합니다.
소프트웨어를 최신 상태로 유지하는 것이 매우 중요합니다. 잘 알려진 CMS 및 프레임워크는 일반적으로 보안 문제를 정기적으로 수정하는 숙련된 개발자 커뮤니티 또는 회사에서 적극적으로 유지 관리합니다. 완벽하게 안전한 소프트웨어는 없으며 항상 일정 수준의 유지 관리가 필요합니다.
보안의 주요 방법으로 비밀에 의존하는 것은 보안 전문가들이 널리 거부하는 관행입니다. 그러나 모호한 수준은 악의적인 해커를 저지하는 데 도움이 될 수 있습니다.
적어도 이러한 맥락에서 애플리케이션 보안은 데이터베이스 상호 작용 및 비즈니스 프로세스가 발생하는 서버 측 기술에 주로 적용됩니다. 그들은 또한 숨기기 더 쉽습니다. 클라이언트 측 라이브러리를 가리는 것은 소스 코드를 해석하기 위해 브라우저로 보내야 하고 항상 검색할 수 있기 때문에 거의 모든 경우에 헛된 노력입니다.
Wappalyzer에서 기술을 숨기려면 먼저 작동 방식과 Wappalyzer가 찾는 대상을 이해하는 것이 좋습니다. 다행히 Wappalyzer는 오픈 소스이며 지문 라이브러리를 공개적으로 볼 수 있습니다.
>
PHP는 URL의 기본 쿠키 .php에서 파일 확장자를 찾아 식별할 수 있습니다 . PHPSESSIDURL을 다시 작성하고 쿠키 이름을 변경하면 PHP를 감지하기가 더 어려워질 수 있습니다.
Laravel PHP 프레임워크는 웹사이트의 쿠키를 검사하여 식별할 수도 있습니다. 이를 방지하기 위해 기본 쿠키 이름을 변경할 수 있습니다.
Apache 및 Nginx 웹 서버는 웹 페이지를 요청할 때 응답 헤더 를 찾아 식별할 수 있습니다 . 기본적으로 여기에는 버전 번호가 포함됩니다. 이를 방지하기 위해 구성 파일에서 서버 토큰을 비활성화할 수 있습니다.
>
Wappalyzer에 의해 노출된 정보는 이미 누구에게나 공개되어 있으며 이를 숨긴다고 해서 귀하의 웹사이트가 안전한 것은 아닙니다. 대부분의 경우 기술의 특성을 숨기는 것은 비실용적인 것부터 불가능한 것까지 다양하지만 소프트웨어가 최신 상태라면 걱정할 필요가 없습니다.
3. wordpress 플러그인 정보조사
CVE란 ‘Common Vulnerabilities and Exposures(공통 취약점 및 익스포저)’의 약자이며 정보 보안 취약점 표준 코드를 의미합니다. CVE는 다양한 취약점을 통일해 고유한 넘버링을 부여한 것입니다. CVE는 장치, 시스템, 프로그램 해킹에 악용될 수 있는 컴퓨터 보안 취약성 및 시스템 결함에 부여됩니다. CVE의 각 항목에는 고유 시리얼 ID 넘버, 설명 등의 세부 사항이 포함되어 있습니다. 이러한 세부 사항은 CVE 취약점 사이트에서 확인할 수 있습니다.
CNA(CVE Numbering Authorities: CVE 할당 기관)는 컴퓨터 보안 취약성에 CVE ID를 할당하는 기관입니다. 현재 약 100개의 CNA가 존재하며 IT 기업, 연구기관, 보안 조직 등이 포함되어 있습니다. CNA의 전체 프로세스는 마이터 코퍼레이션(Mitre Corporation)이라는 비영리 CNA의 감독을 받습니다. 마이터 코퍼레이션은 정부에서 자금을 지원하는 연구 및 개발 센터를 관리하고 있으며, 미국 국토안보부 산하 사이버보안 및 인프라 보안국(CISA)의 후원을 받고 있습니다.
CVE 취약점은 모든 기관이 식별할 수 있습니다. 하지만 CNA만이 CVE ID를 할당할 수 있기 때문에 CVA 취약점을 발견하면 CNA에 보고해야 합니다. CNA에 취약점 보고서가 접수되면 CNA가 보고서를 평가하고 ID 번호를 할당한 후 CVE 취약점 리스트에 등록합니다. 해커들이 취약점을 악용하지 못하도록 CVE 취약점 리스트에는 해결된 보안 문제만 등록됩니다.
>>
- CVE는 조직이 보안 결함을 식별하고, 취약점에 관한 정보를 확인한 후 조직 내 보안 시스템을 개선하는 데 도움이 됩니다.
- CVE는 보안 위협에 ID를 할당함으로써 사이버 보안 전문가가 서로 쉽게 소통할 수 있도록 합니다. 또한 통일된 표준 용어를 통해 다른 데이터베이스를 구축하는 데도 도움이 됩니다.
- CVE ID를 이용하면 특정 취약성에 대한 정보를 더 빠르고 손쉽게 찾을 수 있습니다. 현재 다양한 기업, 보안 조직, 데이터베이스가 사이버 보안 관련 제품과 서비스를 위해 CVE ID를 활용하고 있습니다.
>>최신 버젼으로 업데이트 유지
4. sql injection 공격테스트
https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html
5. 관리자 비밀번호 hash 알고리즘 확인
https://st-lab.tistory.com/100
자원제작
6. 패스워드 크랙을 위한 사전 파일제작, 패스워드 크랙
10 most popular password cracking tools [updated 2020]
https://resources.infosecinstitute.com/topic/10-popular-password-cracking-tools/#gref
7. 웹 서버에 1차 침투를 위해 취약한 파일 업로드 플러그인 설치 및 웹 쉘 실행
https://attack.mitre.org/software/S0598/
'보안 > 케이쉴드' 카테고리의 다른 글
현업자 특강 (0) | 2022.08.18 |
---|---|
보고서 작성해보기 (작성중) (0) | 2022.08.15 |
심화과정 4일차 (실습해보기_어떤 약점이 있을랑고) (0) | 2022.08.08 |
심화과정 3일차 (침투 그 이후 DB탈취 실습, 보안 방법) (0) | 2022.08.04 |
심화과정 2일차 (모의해킹 대상의 정보수집, 관리자 페이지 들어가기 실습) (0) | 2022.08.01 |