윈도우 OS를 이용중인 분들이라면 CMD 명령 프로프트를 잘알고 있을것입니다. 윈도우 OS의 모든 작업은 기본적으로 cmd를 통하여 명령어 기반으로 모두 가능합니다. 이렇듯 cmd는 강력한 도구입니다. 해커(공격자)는 다양한 취약점을 이용하여 시스템에 침투후 cmd 명령프롬프트를 이용하여 다양한 불법적인 행위들을 실행합니다. 예를들자면 악성코드 감염, 크립토재킹, 백도어배포, 랜섬웨어감염, 민감 정보 탈취등 다양합니다.
CMD(Command Prompt)는 보안 관리장 입장에서는 유용하게 사용할수 있습니다. 잠재적인 취약점을 찾을때나 침해사고 분석시에도 자주 활용됩니다. 반면 해커의 입장에서는 악의적인 목적으로 유용하게 사용할수 있는 아주 강력한 도구입니다.
이번 포스팅에서는 윈도우 OS 플랫폼 해킹에 가장 자주 많이 사용되는 명령어에 대하여 알아보겠습니다.
1. ping
ICMP 프로토콜을 이용하는 Ping 명령어는 네트워크 상태를 확인합니다. 인터넷 연결을 사용하여 일부 데이터 패킷을 특정 웹 주소로 보낸 다음 이 패킷을 PC로 다시 보냅니다. 테스트는 특정 주소에 도달하는 데 걸린 시간을 보여줍니다. 간단히 말해, ping을 하고 있는 호스트가 살아 있는지 알 수 있도록 도와줍니다.
C:\>ping 8.8.8.8
Google DNS IP ping 명령 실행
ping 8.8.8.8
2. nslookup
nslookup 명령어는 DNS 서버에 질의하여, 도메인의 정보를 조회 특정 DNS 레코드에 대한 도메인 이름 또는 IP 주소를 확인하는데 사용 되는 명령어 입니다.
C:\>nslookup google.com
Google Domain nslookup 명령 실행
nslookup google.com
3. tracert
tracert 명령어는 특정 사이트에 접속하기 까지의 IP 경로 추적 이 명령은 지정된 호스트에 도달할 때까지 통과하는 경로의 정보와 각 경로에서의 지연
시간을 추적하는 명령입니다. ICMP 프로토콜 사용합니다. pathping 명령어도 동일 tracert와 같은 목적으로 사용됨.
C:\>tracert 8.8.4.4
Google DNS IP 로 경로 추적
tracert 명령어
4. arp
arp 명령어는 IP주소로 MAC주소를 확인하는데 사용됩니다. ARP (Address Resolution Protocol) IP주소로 MAC주소를 알기 위한 프로토콜 논리적인 주소(IP)를 이용해 물리적인 주소(MAC)를 알아오는 프로토콜 입니다.
C:\>arp -a
PC에서 arp 명령 실행 (동일 서브넷의 arp cache 테이블을 참조하여 MAC 정보 수집)
arp -a
5. ipconfig
IP 주소 확인 및 기타 다양한 IP 관련 상태를 확인하는데 사용됩니다. IPv4 주소, IPv6 주소, 서브넷 마스크, 기본 게이트웨이, DNS 등 모든 TCP/IP 정보를 표시 합니다. 이외 어댑터(이더넷카드) 관련 정보도 출력하여 확인할수 있습니다.
C:\>ipconfig /all
PC IP 정보 확인 / DNS 정보등 다양하게 확인됨
ipconfig /all
6. netstat
네트워크 연결 상태를 확인하는 명령어 입니다. NETwork STATistics 의 약자로, 전송 제어 프로토콜, 라우팅 테이블, 수많은 네트워크 인터페이스, 네트워크 프로토콜 통계등 확인 가능 합니다. 모든 네트워크 연결 상태를 표시하고 활성연결, 수신 포트등도 표시 됩니다.
C:\>netstat -nao
PC 에서 네트워크 연결 상태 확인 (-o 옵션은 프로세스 정보를 표기 PID)
netstat -na
7. route
라우팅 테이블을 보고 조작하는데 사용됩니다. 라우팅 테이블 정보를 조회하거나 관리 라우팅 테이블, 메트릭 및 인터페이스를 표시
C:\>route print
IP 라우팅 테이블 정보 출력
route print
8. net view
지정된 PC와 공유된 영역, 호스트 혹은 자원 정보를 얻는데 사용됩니다. 이 명령은 지정된 컴퓨터에서 공유하는 리소스, 컴퓨터 또는 도메인의 전체 목록을 표시합니다.
net view : 지정된 PC와 공유된 영역, 호스트 혹은 자원 정보를 얻는데 사용
net user : 시스템 계정 관련 정보를 얻는데 사용
net localgroup : 로컬 그룹에 속해져 있는 사용자 리스트 얻는데 사용
net group : 특정 영역에 속해있는 사용자 리스트를 얻는데 사용
net use : 공유 폴더 접근
C:\>net view \\10.10.10.100
9. tasklist
OS내 실행중인 모든 프로세스에 대한 정보를 확인할수 있습니다. 로컬 컴퓨터 또는 원격 컴퓨터에서 현재 실행하고 있는 프로세스의 목록을 표시 세션번호, 메모리사용량, CPU시간, 서비스이름, DLL 이름, PID등 정보 확인 가능 합니다.
taskkill 명령어 주로 같이 사용
C:\>tasklist
tasklist
10. net user
net user 는 사용자 계정을 추가/수정/삭제 하거나 계정 정보를 표시 합니다.
C:\>net user
net user
10. 기타 명령어 리스트
이외 해커들이 자주 사용하는 명령어 목록 정리
schtasks : 스케쥴 생성 설정 명령어
reg : 윈도우 레지스트리 조작 (추가, 삭제, 수정 등)
wmic : WMI (Windows Management Instrumentation)에 액세스하는 데 사용되는 명령 줄 유틸리티
netsh : 마이크로소프트의 윈도우 NT 운영체제 계열의 윈도우 유틸리티
sc : 윈도우 서비스 등록 삭제 시작 중지등의 작업을 수행 하는 명령어
rundll32 : DLL ( 동적 연결 라이브러리 )은 다른 모듈(응용 프로그램 또는 DLL)에서 사용할 수 있는 기능과 데이터를 포함하는 모듈
qwinsta : 원격 데스크톱 세션 호스트 서버의 세션에 대한 정보를 표시
query : 접속 중인 계정등 확인
qprocess : 계정에서 실행중인 프로세스 확인
whoami : 현재 계정 확인
type : 파일 처리 수행 (linux cat 명령어와 비슷)
tree : 디렉토리 구조 파악
이와같이 공격자는 윈도우 CMD 명령프롬프트에서 사용할수 있는 기본 명령어를 사용하여 악성 행위를 진행합니다. 이유는 만약 운영중인 시스템내에 백신프로그램이 설치되어 있다면 잘못하면 공격자가 만든 xxx.exe 등과 같은 형태의 파일은 백신에 검출될수도 있기 때문입니다.