오랫동안 블로그를 쉬었는데, 최근 다시 시작하였습니다. 다만 코드 업로드 편의성 때문에 github.io 로 이전을 하게 되었습니다. 기록차 남겨놓습니다.
개요
-
네트워크 패킷을 캡처하기 위한 방법에 대해 알아보고 이에 대해 대응방안이 무엇이 있을지 고민한 내용
네트워크 캡처 라이브러리
실제 wireshark와 같이 네트워크 패킷을 직접 캡처하여 패킷 내용 및 통신 IP 등을 확인
-
Packet.dll (Npcap)
-
NMAPI.dll (MS - Microsoft Network Monitor3)
-
wpcap.dll (Winpcap)
이러한 방식의 경우 동작 중인 Process의 DLL 목록을 확인하여 대상 프로세스를 확인 할 수 있다.
ETW (Event Tracing for Windows)
ETW의 경우 Windows에서 제공해주는 기본 기능으로 관련 DLL은 ADVAPI32.dll로 위와 같이 탐지하기에는 너무 보편적인 경우이다. 이를 탐지하기 위해서 고려할 수 있는 방안 중 하나는 TraceSession을 이용하여 탐지하는 방식이 있을 것 같다.
1) 레지스트리 내 Autologger 목록 획득
-
해당 프로그램(게임, 악성코드 등) 실행 시 레지스트리 Autologger에 등록된 리스트(목록1)을 획득하여 이후 비교에 사용
-
Autologger에 등록된 각 키의 ‘Start’의 값이 1인 경우 부팅 시 자동으로 실행되어 TraceSession이 생성
Step2) ETW TraceSession 목록을 획득하여 1번 과정에서 획득한 목록과 주기적으로 비교
게임 실행 후 Windows 기본 유틸리티인 ‘logman’ 등을 활용하여 주기적으로 활성화된 ETW TraceSession을 획득(목록2)
Autologger 레지스트리(목록1)에는 존재하지 않지만 logman을 통해 확인(목록2)했을 때 존재하는 항목을 선별하여 추가된 세션이 있는 경우 이에 대해 해당 유저 및 세션 이름을 로깅
※ Autologger 레지스트리에는 존재하지 않지만 활성화된 TracecSession의 경우 Privatelogger/Systemlogger 등을 통해 생성됨.
이와 같이 동작하기 위해선 registry 정보 조회, windows 기본 유틸리티인 logman 사용의 과정이 필요
ETC.
P2P 통신의 경우 UDP 방식을 주로 사용하고 있기에 (참고 : https://gpgstudy.com/forum/viewtopic.php?t=7421), 상대방과의 통신을 확인하기 위해 netstat 같은 명령어를 사용해도 확인할 수 없음(상대와 세션을 맺지 않기(?)때문).
그렇기에 상대방 IP 및 Port 등을 확인하려면 패킷 캡쳐 필요
'O / S > Window' 카테고리의 다른 글
Windows Event Message (0) | 2016.07.13 |
---|---|
Windows Multi Task (0) | 2016.07.08 |
Windows Service (0) | 2016.06.21 |
Windows Boot Process (Vista 이상ver 부팅 과정) (0) | 2016.04.13 |
CSIDL 값 (0) | 2016.02.20 |
SysAnalyzer Overview
|
실행 파일 지정 및 시작
|
하단에 두번째 Snapshot 까지 남은 시간을 기록함.
|
두 번째 snapshot 을 찍은 후, 상기의 화면 외에 Report File Viewer 가 새로 나타남. 내용은 동일.
|
이래한 결과들이 analysis 폴더에 파일로 저장됨.
|
Process
|
File
|
Registry
|
Network
|
|
|
|
'Reversing > Theory' 카테고리의 다른 글
IQY File - Using Malware Campaign (0) | 2018.10.23 |
---|---|
Linux 동적 분석 Tool (3) | 2018.04.08 |
Process Doppelganging (0) | 2018.02.13 |
Dynamic Data Exchange (DDE) (0) | 2017.11.12 |
Atombombing 기법 (0) | 2017.05.28 |
> connections.xml
|
> externalLink1.xml
|
- Alyac, ".iqy 파일을 이용한 효과적인 피싱방법"
- BleepingComputer, "Malspam Campaigns Using IQY Attachments to Bypass AV Filters and Install RATs"
- MyOnlineSecurity, "Necurs delivering Flawed Ammy RAT via IQY Excel Web Query Files"
'Reversing > Theory' 카테고리의 다른 글
SysAnalyzer Tool (동적분석 도구) (3) | 2019.01.04 |
---|---|
Linux 동적 분석 Tool (3) | 2018.04.08 |
Process Doppelganging (0) | 2018.02.13 |
Dynamic Data Exchange (DDE) (0) | 2017.11.12 |
Atombombing 기법 (0) | 2017.05.28 |
Strace 를 이용한 동작 확인 및 모니터링
WireShark 를 통한 네트워크 패킷 분석
ps -e -f | grep ~~~
'Reversing > Theory' 카테고리의 다른 글
SysAnalyzer Tool (동적분석 도구) (3) | 2019.01.04 |
---|---|
IQY File - Using Malware Campaign (0) | 2018.10.23 |
Process Doppelganging (0) | 2018.02.13 |
Dynamic Data Exchange (DDE) (0) | 2017.11.12 |
Atombombing 기법 (0) | 2017.05.28 |
기본적인 파일 정보는 아래와 같다.
해당 악성코드는 공격자에 의해 감염 후, 원격지와 통신을 수행한다. 이 통신을 통해 공격하고자 하는 대상의 IP 주소를 얻어온다. 그 후 대량의 Packet 을 대상 주소로 전송하는 악성코드이다.
자가 복사
- /usr/bin/{random_filename}
- /bin/{random_filename}
- /tmp/{random_filename}
- /lib/libudev4.so
- 114.***.***.114 ; 중국의 네임 서버
- 137.***.***.224 ; 원격지 주소 (공격 대상의 주소를 얻어옴)
프로세스 종료
- {random_10_chrar_filename}
- /usr/bin/{random_filename}
- /bin/{random_filename}
- /tmp/{random_filename}
- /etc/rc*.d/S90{{random_filename}
- /etc/init.d/{random_filename}
- /etc/cron.hourly/gcc4.sh
- 잔여 프로세스가 계속 실행되고 있음ㅡ아마 잔여프로세스가 새로운 이름으로 원본 파일을 실행할 것으로 추정
- crontab 에 의해 3분마다 다시 프로세스 실행
- 이와 같은 경우 Windows 라면 메모리 진단 및 치료를 수행, 하지만 수동 치료의 경우에는?
'Reversing > Malware Analysis' 카테고리의 다른 글
[Malware] MadAngel 악성코드 분석 (0) | 2016.09.20 |
---|---|
공인인증서 탈취 악성코드 (0) | 2016.08.06 |
[Malware] PETYA.exe 분석 (2) | 2016.04.02 |
[Malware] DarkSeoul 분석 (3.20 전산마비) (0) | 2016.03.23 |
[Ransomware] .micro 랜섬웨어 분석 보고서 (1) | 2016.02.22 |
2017년 말에 발표된 새로운 공격 기법으로, 기존의 Injection 방식과는 다른 방식을 사용한다. 특징은 아래와 같다.
- 파일 기반 탐지 방식 위주의 백신사가 대부분 탐지하지 못하는 공격 기법
- NTFS 의 Transaction 기능을 이용한다는 점
- Windows Vista 부터 Windows 10 이전 (Windows 10 에서는 BSoD 발생)
- Process 를 Creation Flag - Suspended 상태로 생성 후 Payload 내용으로 교체
- 원격 스레드를 생성하여 Payload 실행
악성 파일을 생성 후 실행할 때, File I/O 를 Transaction 로 열고 Commit 이 아닌 Rollback 을 한다. 이로 인해 OS 에서는 파일이 생성되지 않은 것이 된다.
CreateTransaction |
CreateFileTransacted |
WriteFile |
NtCreateSection |
RollBackTransaction |
NtCreateProcessEx |
- CreateProcess
- WinExec
- ShellExecute
잘 알려진 다른 공격기법에 비해 다소 생소한 API 와 번거로운 과정을 거쳐야 한다는 것을 알 수 있다. 그렇다고 어려운 과정은 아니다. 보안 공부를 하는 입장에서 이러한 기법에 대해 알고 대응 할 수 있도록 해야한다.
Blog
'Reversing > Theory' 카테고리의 다른 글
IQY File - Using Malware Campaign (0) | 2018.10.23 |
---|---|
Linux 동적 분석 Tool (3) | 2018.04.08 |
Dynamic Data Exchange (DDE) (0) | 2017.11.12 |
Atombombing 기법 (0) | 2017.05.28 |
DoubleAgent 공격 (1) | 2017.03.28 |
Overview
문서형 악성코드의 경우 Macro 나 Script 등을 이용하여 악성동작을 수행하였다. 하지만 최근 DDE 기능을 악용하는 악성코드가 나타나고 있어, 이에 대해 소개하고자 한다.
DDE
우선 DDE 에 대하여 알아보자. DDE 는Dynamic Data Exchange 의 약어로, 응용 프로그램 간의 데이터 공유를 위한 방법이다. 예로 워드와 엑셀 간의 데이터 공유가 있다. DDE 를 활용하기 위해 MS Word 에서 아래와 같이 따라가보자.
삽입 - 빠른 문서 요소 - 필드- 필드 이름: "= (Formula)" - 확인 |
* MS Word 2016 기준
아래와 같이 "!수식의 끝이 잘못되었습니다" 라고 출력 될 것이다. 해당 부분을 마우스 우측으로 클릭 후 "필드 코드 토글" 을 클릭해보자. 그럼 아래와 같이 " = \"MERGEFORMAT" 이라는 필드 코드를 확인 할 수 있다.
Execute
수식 중 "DDEAUTO" 라는 Keyword 를 입력 할 수 있다. 이는 문서 실행 시 자동으로 뒤의 명령어를 실행 할 수 있게끔 한다. 예시로 아래와 같이 수식을 입력해보자.
DDEAUTO C:\\Windows\\System32\\cmd "/k calc.exe" |
그리고 파일을 저장 후 다시 열어 볼 경우 아래와 같이 팝업 창이 뜨는 것을 확인 할 수 있다.
모두 예를 누를 경우 입력한 명령어가 실행되며 계산기가 나타나는 것을 확인 할 수 있다. 또한 필드 코드가 외부로 보이는 형태를 아래와 같이 변경 할 수 있기 때문에 사용자는 인지하지 못할 수 있다.
Conclusion
위 예시의 경우 간단하게 나타냈다. 하지만 실제 필드 코드를 계산기 실행이 아닌 Powershell 과 같은 것을 이용 할 경우 DDE 는 더욱 많은 곳에 악용 될 수 있다. MS 의 경우 이 기능은 정상적인 기능이며, 실행 여부를 묻는 화면이 출력되므로 충분히 사용자에게 경고가 될 것이라는 입장으로 알려진다.
강력한 기능으로 보이지는 않더라도, 보안을 공부하는 사람의 입장으로서 최신 악성코드가 이와 같은 방법을 사용하고 있다는 것을 인지 할 필요는 있을 것이다.
Reference
- INCA Internet 공식 블로그 "워드 문서 DDE 취약점을 이용한 악성코드 유포 주의" : http://erteam.nprotect.com/1422
'Reversing > Theory' 카테고리의 다른 글
Linux 동적 분석 Tool (3) | 2018.04.08 |
---|---|
Process Doppelganging (0) | 2018.02.13 |
Atombombing 기법 (0) | 2017.05.28 |
DoubleAgent 공격 (1) | 2017.03.28 |
암호학 기초 개념 (2) | 2016.11.23 |