# 컨피커
- 두 개의 서로 다른 벡터를 사용하여 공격함.
- 윈도우 서버 서비스에 있는 제로 데이 취약점을 활용함 > 스택을 변조하여 쉘코드를 실행시키고, 감염된 호스트에 자신의 복사본을 다운로드 하게함
- 이 공격이 실패하면, 디폴트 관리자 네트워크 공유(ADMIN$)의 계정에 무차별 대입공격을 하여 접근 권한을 획득함
# 메타스플로잇
- 사용자가 명령어를 입력하여 공격실행 or 배치 파일을 통해 공격 가능
- 순차적으로 배치 파일에 있는 명령어를 처리하여 공격 실행
1. 메타스플로잇 공격
- 공격코드 : exploit/windows/smb/ms08_067_netapi
- 공격대상 : 192.168.--.--
- 페이로드 : windows/meterpreter/reverse_tcp
- 공격자 컴퓨터 : 192.168.--.--, 7777번 포트
- 리버스 연결 지시 > 시스템공격 지시
2. 메타스플로잇과 파이썬 연동하기
- Nmap을 import하여 445번이 열려있는 모든 호스트의 결과값을 반환함 > 공격이 유효한 컴퓨터만을 대상으로 공격 가능
- 공격에 성공한 컴퓨터를 대상으로 리스터 설정(리스터 or 공격명령 채널은 해킹에 성공하면 공격대상 호스트와 원격 에서 작동할 수 있게 함)
- 메타스플로잇의 미터프리터는 원격의 컴퓨터에서 실행되면서 공격 명령 호스트로 연결하며, 감염된 대상을 분석 및 제어할 수 잇는 다양한 기능(포렌식 객체 검색, 명령어 실행, 감염된 호스트의 트레픽 경로, 키 로거 설치, 패스워드 해시 덤프)을 제공함
- 미터프리터가 공격 명령을 위해 공격자로 리버스 연결을 하면, 메타스플로잇은 multi/handler 모듈을 호출함
공격 코드 : ms08_067_netapi
LHOST(로컬주소) : 192.168.__.__
LPORT(로컬포트) : 7777
옵션 : -j(작업의 컨텍스트에서) -z(작업과 즉시 상호작용하지 말고)
msfconsol 옵션 설정하기
3. 원격 프로세스 실행 공격하기
- SMB의 사용자이름/패스워드 조합을 무차별 대입 공격을 하여 원격에서 실행 중인 프로세스(psexec)에 대한 접근 권 한을 획득해야함.
- smbBrute 함수는 메타스플로잇의 설정 파일, 공격대상 호스트, 패스워드 목록을 저장한 파일, 로컬 주소 그리고 리스 너 포트 등을 입력받음
- 사용자 이름을 디폴트 윈도우 계정인 Admisitrator로 설정하고 패스워드 파일을 엶
- 파일에 있는 각 패스워드마다 함수는 메타스플로잇의 설정 파일을 만들어서 원격 프로세스 실행 공격코드를 사용함
- 사용자이름/패스워드 조합이 성공하면, 공격코드는 미터프리터 페이로드를 로컬 주소와 포트를 사용하여 실행함
// conficker.py 함수부분
4. 제로 데이 개념의 공격 코드 개발하기
- 파이썬으로 공격코드 작성 단순화하기
1) 스택 기반의 버퍼 오버플로우 공격
- 사용자가 입력한 값을 검증하지 않아서 그 값이 프로그램의 다음 지시를 가리키는 EIP를 덮어쓰게 되며 프로그램의 흐름을 제어하게 됨.
- 공격코드는 공격자가 삽입한 쉘코드가 있는 위치로 EIP레지스터가 포인트하게 만듦
- 쉘코드 : 공격대상 시스테메 사용자를 추가하거나 공격자로 네트워크 연결 생성하거나, 독립적ㅇ니 실행파일을 다운 로드 하는 중의 공격을 할 수 있음
2) 공격의 핵심 요소 추가하기
- shellcode 변수에 메타스플로잇 프레임워크로 생성한 페이로드 헥스값으로 인코딩하여 포함시킴
- overflow 변수에 알파벳 "A(\x41)"가 246개 포함되도록 함
- return 주소 변수는 스택의 맨 위로 직접 점프(jump)하게 만드는 kernel32.dll로 포인트 함
- padding 변수에는 150개의 NOP 지시 포함
- 이 변수들을 모두 조함하여 crash 변수 만듦
3) 악성코드 전송하기
- Berkeley Socket API로 공격대상 호스트의 TCP 21번 포트에 연결함 > 연결 성공 시 사용자이름과 패스워드를 호스 트에 전송함
- FTP 명령어잉 "RETR"과 crash 변수를 전송함 (프로그램이 사용자 입력값을 제대로 검증하지 않기 때문에 EIP레지스 터를 덮어쓰는 스택 버퍼 오버플로우를 일으킴 > 쉘코드로 점프하여 쉘코드 실행
'Security' 카테고리의 다른 글
1. 네트워크 트래픽 분석(PyGeoIP, Dpkt 패킷, 구글어스) (0) | 2020.03.14 |
---|---|
포렌식 수사(메타데이터) (0) | 2020.03.13 |
침투테스트(FTP와 웹을 이용한 대규모 공격) (0) | 2020.03.11 |
침투 테스트(포트스캐너 만들기, SSH 봇넷 구축하기) (0) | 2020.03.11 |
유닉스 패스워드 크래커, 압축파일 패스워드 크래커 (0) | 2020.03.09 |