1장: 침투 테스트를 위한 필수 정보 수집

0x00 도메인 이름 소개

도메인 이름(도메인 이름)은 데이터 전송 중에 컴퓨터의 전자 위치를 식별하는 데 사용되는 점으로 구분된 일련의 이름으로 구성된 인터넷 상의 컴퓨터 또는 컴퓨터 그룹의 이름입니다.

예: 대학 도메인 이름: 51cto.com
, edu.51cto.com 및 www.51cto.com은 이 도메인 이름에 해당하는 하위 도메인이고 edu 및 www는 해당 호스트 헤더입니다. 브라우징 웹사이트 프로세스: (DNS 서버에서 지정된 도메인 이름에 해당하는 IP 주소 획득), DNS 확인이라고도 함

 DNS 확인 프로세스에는 재귀 및 반복 쿼리가 포함됩니다.

재귀 쿼리 --- 호스트 및 로컬 DNS 서버에서 수행되는 대화형 쿼리

반복 쿼리 --- 로컬 dns 서버 및 . 도메인의 dns 서버 --> .COM 도메인의 dns 서버 --> sina.com 도메인의 dns 서버

0x01 후이즈 소개

whois는 도메인 이름 IP 및 소유자 정보를 쿼리하는 데 사용되는 전송 프로토콜입니다. 간단히 말해서, whois는 도메인 이름이 등록되었는지 여부와 등록된 도메인 이름의 세부 정보(예: 도메인 이름 소유자, 도메인 이름 등록 기관)를 쿼리하는 데 사용되는 데이터베이스입니다.

서로 다른 도메인 이름 접미사의 후이즈 정보는 서로 다른 후이즈 데이터베이스에서 쿼리해야 합니다. 예를 들어 .com의 whois 데이터베이스는 .edu의 데이터베이스와 다릅니다. 각 도메인 이름 또는 IP의 WHOIS 정보는 해당 관리 기관에서 보관합니다.예를 들어 .com으로 끝나는 도메인 이름의 WHOIS 정보는 .com 도메인 이름의 운영자인 VeriSign에서 관리하고 .cn 도메인은 .cn 도메인에서 관리합니다. 중국의 국가 최상위 도메인 이름의 이름은 CNNIC(중국 인터넷 네트워크 정보 센터)에서 관리합니다.)manage

후이즈 프로토콜. 기본 내용은 먼저 서버의 TCP 포트 43에 연결을 설정하고 쿼리 키워드를 보내고 캐리지 리턴 및 줄 바꿈을 추가한 다음 서버에서 쿼리 결과를 받는 것입니다.
 

0x02 후이즈 조회

Whois 쿼리의 중요성: Whois 쿼리를 통해 도메인 이름 등록자의 이메일 주소와 같은 정보를 얻을 수 있습니다. 정상적인 상황에서 중소 규모의 웹사이트 도메인 이름 등록자는 웹마스터입니다. 도메인 이름 등록자의 더 많은 개인 정보를 얻기 위해 검색 엔진을 사용하여 Whois에서 쿼리한 정보를 검색합니다.

Whois 쿼리 방법:

1. 웹 인터페이스 쿼리:

https://whois.aliyun.com/, https://www.whois365.com/cn/
http://whois.chinaz.com/, https://whois.aizhan.com/ 

2. Whois 명령줄을 통해 쿼리합니다.
Kali Linux는 Whois 도메인 이름 명령을 통해 쿼리할 수 있는 Whois 쿼리 도구와 함께 제공됩니다.

0x03 레코드 쿼리

ICP 제출 소개: 인터넷 콘텐츠 제공자 네트워크 콘텐츠 제공자.
인터넷 정보 서비스 관리 조치는 인터넷 정보 서비스가 상업 및 비상업의 두 가지 범주로 나뉜다고 지적합니다. 국가는 상업용 인터넷 정보 서비스에 대한 라이센스 시스템과 비상업적 인터넷 정보 서비스에 대한 등록 시스템을 구현합니다. 허가를 받지 않았거나 신청 절차를 완료하지 않은 자는 인터넷 정보 서비스에 종사할 수 없습니다. 중화인민공화국 영토 내에서 비상업적인 인터넷 정보 서비스를 제공하려면 법률에 따라 신고 절차를 거쳐야 합니다. 비상업적 인터넷 정보 서비스는 중화인민공화국 영토 내에서 국가 기관의 허가 및 제출 없이는 운영되지 않습니다.
신고의 이점 : 인터넷상의 불법사이트 영업행위를 방지하고 인터넷상의 악성정보 유포를 방지하기 위해 신고하지 않을 경우 조사 후 폐쇄될 가능성이 높습니다.

ICP 레코드 조회 방법:

웹 인터페이스 쿼리:
 ICP 레코드 쿼리- 웹마스터 도구  ICP 레코드 쿼리_레코드 번호 쿼리_웹사이트 레코드 쿼리- Tianyancha

 

0x05 하위 도메인 소개

최상위 도메인 이름: ".com", ".net", ".org", ".cn" 등.

하위 도메인 이름, 접두사가 있는 모든 최상위 도메인 이름은 최상위 도메인 이름의 하위 도메인 이름이며 하위 도메인 이름은 두 번째 수준 하위 도메인 이름, 세 번째 수준 하위 도메인 이름 및 다단계 하위 도메인 이름으로 나뉩니다. 기술의 수에.
인터넷망정보센터에 우리나라가 공식적으로 등록하고 운영하는 최상위 도메인명은 .cn이며, 이는 우리나라의 1차 도메인명이기도 하다. 최상위 도메인 이름 아래에서 우리나라의 두 번째 수준 도메인 이름은 범주 도메인 이름과 행정 구역 이름의 두 가지 유형으로 나뉩니다. 과학 연구 기관용 .ac, 상업 및 금융 기업용 .com, 교육 기관용 .edu, 정부 부처용 .gov, 비영리 단체용 .org 등 총 6개의 카테고리 도메인 이름이 있습니다. 34개의 행정 구역 이름이 있으며, 우리 나라 중앙정부의 성, 자치구, 직할시에 해당합니다.

예: www.snnu.edu.cn 

0x06 하위 도메인의 중요성

하위 도메인은 주 도메인의 2단계 도메인 이름 또는 다단계 도메인 이름입니다.엄격한 방어 조치로 주 도메인을 직접 점령할 수 없는 경우 우회 전술을 사용하여 하위 도메인을 무너뜨린 다음 무한히 얻을 수 있습니다. 메인 도메인에 가깝습니다.

예를 들어:

www.xxxxx.com의 기본 도메인에는 허점이 없으며 보호 조치가 엄격합니다.

2단계 도메인 이름 edu.xxxxx.com에는 허점이 있고 보호 조치가 느슨합니다.

메인도메인은 CDN에 연결되어 있지만 서브도메인 이름은 연결되지 않을 수 있으며 실제 IP를 찾을 수 있음

0x07 서브도메인 마이닝 방식

1. Maltego CE, wydomain, subDomainsBrute, dnsmaper, Layer 하위 도메인 굴착기와 같은 하위 도메인 마이닝 도구.
2. 다음과 같은 검색 엔진 마이닝: Google에 site:sina.com 입력
3. 타사 웹사이트 쿼리: http://tool.chinaz.com/subdomain, https://dnsdumpster.com/
4. 인증서 투명성 공개 로그 예: https://crt.sh/, http://censys.io/

5. 기타 방법: https://phpinfo.me/domain, http://dns.aizhan.com

6. oenforall 또는 사이버 공간 엔진을 통해 fofa, zoomeye, Qi'anxin Intergraph 플랫폼 등

0x08 홀 브러싱 아이디어

특정 SRC에 대한 구멍을 파기 위해 메인 도메인에서 직접 침투 테스트를 수행하면 굴착 효과를 얻기 어려울 수 있습니다. 이때 해당 하위 도메인 이름을 수집한 다음 특정 취약점을 일괄적으로 탐지하여 일부 취약점을 더 빠르고 쉽게 찾을 수 있습니다. 그런 다음 해당 SRC에 취약점을 제출하여 보상을 받으세요.
구멍을 패치하는 아이디어를 목표로: 제조업체에서 지정하지 않은 구멍에 대해 일부 특정 취약점에 따라 URL 수집을 통해 대상을 얻을 수 있으며 탐지 스크립트를 작성하여 배치로 탐지하고 신속하고 효율적으로 구멍을 닦습니다.
참고: 어떠한 경우에도 경계를 늦추지 말고, 건드리지 말아야 할 내용은 건드리지 말고, 회사의 업무에 영향을 주지 말고, 취약점 탐지 내용만 수행하고, 허점이 있는지 확인해야 합니다. 그만하면 충분 해.
피크 발굴 기간: 일부 새로운 취약점이 인터넷에 노출되면 많은 수의 이러한 취약점이 취약점 플랫폼에 제출되어 보상을 얻습니다.

0x09 CMS 지문 인식

전체 사이트 시스템 또는 기사 시스템이라고도 하는 CMS(콘텐츠 관리 시스템). 웹사이트 콘텐츠 관리용. 사용자는 해당 CMS 소프트웨어 패키지를 다운로드하고 배포 및 구축하기만 하면 간단하고 편리하게 CMS를 직접 사용할 수 있습니다. 그러나 다양한 CMS에는 고유한 구조 명명 규칙과 특정 파일 콘텐츠가 있으므로 이러한 콘텐츠를 사용하여 특정 소프트웨어 CMS 및 CMS 사이트 버전을 얻을 수 있습니다.
일반 CMS: dedecms(드림 위빙), Discuz, Phpcms 등

CMS 식별 도구:
1. 온라인 도구 http://whatweb.bugcaner.com/look/, http://www.yunsee.cn/finger.html

조수 지문 인식: TideFinger 조수 지문 TideFinger 조수 지문


2. 로컬 도구 whatweb,
Yujian 웹 지문 식별 프로그램(https://pan.baidu.com/share/link?shareid=437376&uk=3526832374),
Dayu CMS 식별 프로그램 https://github.com/Ms0x0/Dayu

 

이제 사용하기 매우 쉬운 지문 인식 플러그인이 있습니다.

 

0x10 CMS 취약점 쿼리

조회된 CMS의 경우 https://bugs.shuimugan.com 웹 사이트를 사용하여 지정된 CMS의 취약점을 조회할 수 있습니다.

cnvd 취약점 데이터베이스, 취약점 라이브러리, 온라인 재생산 기사를 통해 취약점 검색 및 재생산 

0x11 민감한 디렉터리 수집

대상 웹 디렉토리 구조와 민감한 숨김 파일을 감지하는 것이 매우 중요합니다. 탐지 과정에서 백그라운드 페이지, 업로드 페이지, 데이터베이스 파일, 심지어 웹 사이트 소스 코드 파일 압축 패키지까지 탐지할 가능성이 매우 높습니다.

탐지 도구:
1. Yujian 백그라운드 검색 도구
2. wwwscan 명령줄 도구
3. dirb 명령줄 도구
4. dirbuster 검색 도구

5. dirsearch 검사 도구

6、7kbscan-webpathbrtue

0x12 포트 소개

IP 주소를 집에 비유하면 포트는 집으로 드나드는 문입니다. 실제 집에는 몇 개의 문만 있지만 IP 주소는 최대 65536개(예: 2^16)개의 포트를 가질 수 있습니다! 포트는 0에서 65535(2^16-1) 범위의 정수인 포트 번호로 식별됩니다.
예를 들어 컴퓨터의 포트 80, 포트 21, 포트 23 등입니다.
컴퓨터의 각 포트는 서비스를 나타냅니다. 열린 포트를 표시하려면 Windows 명령줄에서 netstat -anbo를 사용하십시오.

 0x13 포트 정보 수집

도구를 사용하여 대상 시스템의 포트 상태를 테스트할 수 있습니다. 도구 원리: TCP 또는 UDP 및 기타 프로토콜을 사용하여 지정된 플래그가 있는 데이터 패킷을 대상 포트로 보내고 대상이 포트 상태를 판단하기 위해 데이터 패킷을 반환할 때까지 기다립니다.
1. nmap을 사용하여 감지합니다. nmap -A -v -T4 목표
2. 대량 스캔을 사용하여 탐지합니다.
3. 온라인 웹사이트를 사용하여 http://tool.chinaz.com/port/를 검색합니다.
4. goby 스캔, railgun 스캔 도구, Yujian 고속 포트 스캔 도구

0x14 포트 공격

포트마다 다른 공격 방법이 있습니다.
예: 원격 연결 서비스 포트의 경우
검색 엔진에서 해당 공격 방법을 검색하여 테스트할 포트를 검색할 수 있습니다.

포트

포트 설명

공격 방법

22

SSH 원격 연결

폭파, SSH 터널 및 인트라넷 프록시 포워딩, 파일 전송

23

텔넷 원격 연결

발파, 스니핑, 약한 암호

3389

RDP 원격 데스크톱

시프트 백도어, 폭파

5900

VNC 원격 연결

취약한 암호, RCE

5632

PcAnywhere 원격 연결

스니핑, 코드 실행

0x15 포트 방어

포트 공격의 경우 포트가 열려 있고 연결할 수 있는 한 해당 방법을 공격 테스트에 사용할 수 있습니다.
방어 조치:
1. 불필요한 포트 폐쇄,
2. 중요한 비즈니스 서비스 포트에 대한 방화벽 설정,
3. 직원의 정보 보안 인식 강화 및 사용자 암호 자주 변경,
4. 소프트웨어 업데이트 및 패치 적용

0x16 민감정보 수집의 중요성

특정 보안 목표의 경우 기술 수준을 통해 직접 침투 테스트를 완료하는 것이 불가능합니다. 이 경우 검색 엔진을 사용하여 대상이 인터넷에 노출한 관련 정보를 검색할 수 있습니다. 예를 들면 데이터베이스 파일, SQL 주입, 서버 구성 정보, 심지어 Git을 통한 소스 코드 유출, Redis와 같은 무단 액세스, robots.txt와 같은 민감한 정보입니다. 침투 테스트의 목적을 달성하기 위해.
나와 적을 알면 백 번 싸워도 위태롭지 않다. 어떤 경우에는 수집된 정보가 나중에 테스트하는 데 중요합니다. 민감한 정보를 수집하여 대상 시스템에 대한 데이터베이스 액세스 권한을 직접 얻으면 침투 테스트 작업의 절반 이상이 끝난 것입니다. 따라서 기술적 상황에서 테스트하기 전에 더 많은 정보 수집을 수행해야 합니다.

0x17 Google 해킹 구문

구글 해킹은 취약 호스트나 특정 호스트의 취약성을 빠르게 찾기 위해 특정 특정 네트워크 호스트 취약점(일반적으로 서버의 스크립트 취약점)을 검색하기 위해 구글과 같은 검색 엔진을 사용하는 것을 말한다.

Google 해킹 데이터베이스: https://www.exploit-db.com/google-hacking-database/
예: 쿼리 액세스 데이터: filetype:mdb "standard jet" (암호 | 사용자 이름 | 사용자 | 패스)

키워드

의미

대지

예를 들어 사이트: baidu.com 과 같이 검색 도메인 이름을 지정합니다.

inurl

URL 에 특정 키워드가 있는지 여부를 지정합니다 . 예: inurl: .php?id=

인텍스트

웹페이지에 특정 키워드가 있는지 여부를 지정합니다. 예: intext: 웹사이트 관리

파일 형식

예를 들어 다음과 같이 검색 파일 유형을 지정하십시오. filetype: txt

제목

웹 페이지 제목에 특정 키워드가 있는지 지정합니다. 예: intitle: 백그라운드 관리

링크

웹 페이지의 링크를 지정합니다. 예: link:baidu.com은 Baidu와 외부 링크를 만든 사이트를 지정합니다.

정보

검색 웹 페이지 정보 지정  info:baidu.com

0x18 HTTP 응답 수집 서버

HTTP 또는 HTTPS를 통해 대상 사이트와 통신할 때 대상의 응답 메시지에 있는 Server 헤더와 X-Powered-By 헤더는 대상 서버와 사용된 프로그래밍 언어 정보를 노출하고 이 정보를 통해 대상이 되는 공격 시도를 할 수 있습니다. 만들어진.

HTTP 응답을 얻는 방법:
1. 브라우저 감사 도구, Burpsuite 및 기타 프록시 자르기 도구와 같은 도구를 사용합니다.
2. Python 스크립트 요청 라이브러리 작성 참조 링크: http://www.python-requests.org/en/master/

가져오기 요청
r = requests.get('目标')
print(r.headers)

0x19 github 정보 공개

Github는 분산 버전 제어 시스템으로 현재 140만 이상의 개발자 사용자를 보유하고 있습니다. 점점 더 많은 애플리케이션이 클라우드로 이동함에 따라 Github는 소프트웨어 개발을 관리하고 기존 코드를 검색하는 방법이 되었습니다. 우리 모두가 알다시피 오늘날은 빅 데이터의 시대이고 대규모 데이터 유출이 발생하고 있으며 결코 멈추지 않았지만 일부 사람들이 모르는 것은 일부 민감한 정보의 유출이 실제로 우리 자신에 의해 우연히 발생했다는 것입니다. 하지만 작은 부주의가 연쇄 반응을 일으키는 경우가 많습니다. Github에서 민감한 정보가 유출되는 것이 대표적인 예인데, Github는 개발자에게 편리하지만 숨겨진 보안 위험도 있습니다.
Github의 메일 구성 정보 유출: site:Github.com smtp, site:Github.com smtp @qq.com
Github의 데이터베이스 정보 유출: site:Github.com sa 비밀번호, site:Github.com 루트 비밀번호,
site:Github.com User ID='sa';암호
Github의 svn 정보 유출: site:Github.com svn, site:Github.com svn username

Github 종합 정보 공개: site:Github.com 비밀번호, site:Github.com ftp ftppassword,
site:Github.com 비밀번호, site:Github.com 내부

0x20 .git 정보 공개

Git(/gɪt/로 발음)는 소규모에서 대규모 프로젝트 버전 관리까지 효과적이고 신속하게 프로젝트 버전 관리를 처리할 수 있는 오픈 소스 분산 버전 제어 시스템입니다. https://git-scm.com/
git init을 통해 창고를 생성합니다.

Git 정보 유출 원칙

유출된 .git 폴더의 파일을 통해 프로젝트 소스 코드를 복원하고 다시 빌드합니다.

.git/index 파일을 구문 분석하고 프로젝트에서 (파일 이름, 파일 sha1)을 모두 찾습니다.

.git/objects/ 폴더로 이동하여 해당 파일을 다운로드합니다.

zlib는 파일의 압축을 풀고 원본 디렉토리 구조에 따라 소스 코드를 작성합니다.
침투 테스터와 공격자는 코드를 추가로 감사하고 파일 업로드, SQL 삽입 및 기타 보안 취약점을 찾아낼 수 있습니다.

Git 실험 환경 구축
git init 디렉터리의 콘텐츠를 http 서버에 배포하고 .git 디렉터리를 유지합니다. git add 파일 이름, git commit -m "버전 정보"

Git 정보 유출 악용

git 클론 다운로드 https://github.com/lijiejie/GitHack.git

GitHack.py http://url/.git/ 사용

0x21 CDN 소개

CDN의 전체 이름은 Content Delivery Network, 즉 콘텐츠 배포 네트워크입니다.

0x22 CDN 존재 확인

Ping을 사용하여 CDN이 있는지 확인합니다.

프록시를 설정하거나 온라인 ping 사이트를 사용하여 다른 지역의 Ping 서버를 사용하여 대상을 테스트합니다.
http://ping.chinaz.com/

0x23 바이패스 CDN 방식

대상이 CDN을 사용하지 않는 경우 ping을 사용하여 직접 IP 주소를 얻을 수 있습니다. 또는 온라인 웹사이트를 이용하십시오: http://www.ip138.com/

대상이 CDN을 사용하는 경우 실제 IP 주소를 얻으려면 CDN을 우회해야 합니다.
1. 내부 사서함 소스 내부 사서함 서버 IP 주소 수집
2. 웹사이트 phpinfo 파일 phpinfo.php
3. 변전소 IP 주소, 하위 도메인 이름 쿼리 CDN은 매우 비싸며 변전소에서 더 이상 CDN을 사용하지 않을 가능성이 높습니다.
4. 해외 방문 https://asm.ca.com/en/ping.php
5. 도메인네임 풀이 조회 조회 https://viewdns.info/   ip query check ip website ip query is the same as ip website query ip reverse 쿼리 도메인 이름 ip 쿼리 도메인 이름 ip 도메인 이름과 동일

6. censys.io와 같은 사이버 공간 엔진은 키워드를 검색합니다.

7. APP 클라이언트/SSRF 취약점/DOS CDN이 소스로 돌아가기 모드가 될 수 있음

0x24 실제 IP 확인

일반 제목이 실제 IP 주소인 경우 IP 주소를 사용하여 웹 사이트를 방문하십시오. 그렇지 않으면 거짓입니다.

 

추천

출처blog.csdn.net/jd_cx/article/details/125439358