와이어샤크 해보신분 계신가요?

kim27903의 이미지

다름이아니고
하나의 허브?에 물려있는 두대의 컴퓨터가있는데
a라는 컴퓨터가 로그인을 하면 b라는 컴에서 와이어샤크로 그것을 감지하는것입니다. 스니핑..

여기서 그 암호를 복호화까지 안해도 되고 그냥 보기만 하면 되는데
어떤방법으로 탐지할수 있을지 궁금합니다.
아시는분 조언좀 부탁드리겠씁니다!

익명 사용자의 이미지

패킷을 모든 포트로 보내는 더미 허브는 시장에서 단종된 지 상당히 오래 되었긴 하지만... 어쨌든 저런 상황에서 promiscous mode를 켜면 MAC 주소가 자신이 아닌 패킷도 전부 받아들입니다. 그러면 암호화된 통신을 볼 수는 있겠죠.

이런 상황에서 암호화를 풀어 보고 싶다면 MitM(Man in the Middle) 공격에 대해서 알아보세요.

gilgil의 이미지

ethernet, L2 switch 환경에서는 a호스트의 패킷이 b호스트에 전달되지는 않기 때문에 일반적으로 packet을 잡을 수 없습니다.
arp spoofing이라는 기법을 이용하여 a호스트의 packet을 자기에게 오게 하여 packet을 볼 수도 있고,
아울러 무선 환경의 경우에는 monitor mode로 하여 packet을 잡는 방법도 있습니다.

twinwings의 이미지

이 상황에서 소켓을 AF_PACKET으로 열면 다 볼 수 있지 않나요?

gilgil의 이미지

네, AF_PACKET(PF_SOCKET)을 사용하면 raw level에서부터 패킷을 잡을 수 있습니다.
이는 pcap으로도 동일한 효과를 가져 올 수 있어서 아무거사 사용하시면 됩니다.
단, PF_SOCKET programming은 linux에서만 해 보았고, 다른 OS에서 작동할 런지는 모르겠네요.

익명 사용자의 이미지

0) gateway 설정
감청하고자 하는 컴퓨터(희생자)의 네트워크세팅 중 게이트웨이로써 wireshark을 실행하는 컴퓨터(공격자)를 지정하고 모니터링 하실 수 있겠습니다. 이제 (희생자는) 게이트웨이(공격자)로 보내게 되고 게이트웨이가 목적지로 보내게되고, 수신되는 패킷은 반대로.... 게이트웨이 컴퓨터는 당연히 forward관련 세팅이 되어 있어야겠습니다.
감청당하는 컴퓨터의 사용자만 오케이(Ok~)라면, 좀 아햏햏하지만, 가장 평화로운 모습입니다.

1) rpcap 시리즈 사용
패킷을 수집하는 도구를 에이전트처럼 장비에 심어 넣고(일종의 백도어겠지요?), rpcap/rpcapd가 수집한 패킷을 모니터링하는(wireshark본체) 컴퓨터로 보내게 하여 감청하는 방법이 있습니다.

2) mirror port 사용
대부분의 허브 자체에 미러(mirror) 포트가 있습니다. 이 포트는 모니터링 관리를 위해서 사용되는데, 다른 포트들에서 오가는 트래픽을 이 곳에 똑같이 복사(mirroring)하는 기능을 가집니다. 관리자 모드로 허브에 로그인해서 이를 세팅할 수 있습니다. 방법은 제품별 버전별 차이가 있습니다. 사용하는 허브의 벤더 매뉴얼을 보세요.

3) arp spoofing
소위, '나야~나... ' 인데, 수년전 TV의 유모프로에서도 다뤘던, 전화 사기에서 보여진 수법으로, 희생자 컴퓨터에게 공격자가 자신이 게이트웨이 임을 지속적으로 알려서 희생자 컴퓨터를 속이는 방법입니다. ARP 프로토콜의 약점을 이용한 것이지요.

사례로,...
hub는 자신의 포트에 연결된 PC/Notebook등의 하드웨어주소(MAC)와 IP주소를 매칭하며 관리하고 캐싱합니다.(이 관리 테이블을 ARP 캐시, ARP테이블이라고 합니다) 그래서, 원격지에서 논리 패킷(IP 패킷)이 도착하면, 해당 패킷을 보내야 하는 물리 포트를 찾고 그 곳의 MAC주소를 이더넷프레임의 수신주소에 넣고 해당 포트로 전송하게 됩니다. 반대로도(vice versa).
대부분의 인류문명/하드웨어/소프트웨어가 그러하듯이, 유사시에 대한 행동지침(매뉴얼)이 있습니다. 단위 시간 내에 ARP가 넘쳐나게 되면, 예를 들어, ARP관리테이블 24개를 관리할 엔트리/메모리를 가지고 있는데, 단위 시간 내에 수천개의 ARP 주소가 출현하면, 허브는 관리를 포기하고, 이제 부터 유통될 모든 패킷을 특정 한개의 포트로만 보내지 않고, 모든 포트로 브로드캐스트하게 됩니다. (아, 네트워크가 갑자기 느려지기 시작하겠다는 느낌이 들지요?)
ARP Spoofing은 이러한 특성을 이용한 칼(쓰기에 따라 달리 평가된다는..., 강도, 주방장)입니다. 먼저, 허브를 공격해서 브로드캐스트하게 하고, 이 혼란한 틈을 이용해, 자신이 허브라는 메시지를 브로드캐스트합니다. 허브에 연결된 다른 장비들은 이제부터 arp spoofing을 행한 장비를 허브로 인식하고, 향후, 모든 트래픽을 이 장비를 경유(실제로는 이 장비의 MAC을 게이트웨이로)하여 패킷 내보내게 됩니다. 일단, 이 장비로 트래픽이 오게 되면 그 장비 소유자는 무소불위입니다. 이를 테면, wireshark으로 패킷 감청이 가능해 지는 것이지요.

4) tap 장비
앞의 방법들은 허브나, 다른 장비의 성능에 영향을 줍니다. 그래서, 관리 목적인 경우 위 2, 3 방법은 별로 선호되지 않습니다. 0, 1번은 사용자의 협조가 필요하고 관리 포인트가 증가하게 됩니다.
그래서, 다른 장비에 영향을 주지 않으면서 트래픽을 모니터링하고자 할 때 비교적 널리 사용하는 방법이 tap 장비입니다. 보통 통신케이블을 중간에서 절체해서 지나가는 트래픽을 복사하는 방법으로 구현되어 있는 장비입니다. 복사된 트래픽은 모니터링하고자 하는 장비의 이더넷(기가?)에 연결하여 수신하게 됩니다. 물론 원본은 갈길을 가고 있겠지요. tap장비는 매체에 따라 가격이 천차만별입니다.

* 임의의 감청은 대부분 불법일 수 있습니다.
* 감청하는 방법도 무수히 많지만, 회피하는 방법도 무수히 많습니다.
* 최근 양자통신에서는 이 조차도(중간에 누군가 보는 것을) 방지하는 메커니즘을 가진다는데,...

gilgil의 이미지

1)~4) 말씀은 맞는데, 중간에 사례 얘기는 완전 엉뚱한 얘기네요. L2 switch랑 Host랑 헷갈리시는 듯.

> hub는 자신의 포트에 연결된 PC/Notebook등의 하드웨어주소(MAC)와 IP주소를 매칭하며 관리하고 캐싱합니다.(이 관리 테이블을 ARP 캐시, ARP테이블이라고 합니다)
호스트가 ARP 캐시를 가지고 있고, hub(L2 switch)는 CAM table을 가지고 있습니다. L2 switch의 CAM table에서는 L2 주소(MAC)만 관리하며 IP랑은 무관합니다.

> ARP Spoofing은 이러한 특성을 이용한 칼(쓰기에 따라 달리 평가된다는..., 강도, 주방장)입니다. 먼저, 허브를 공격해서 브로드캐스트하게 하고, 이 혼란한 틈을 이용해, 자신이 허브라는 메시지를 브로드캐스트합니다.

Switch Jamming이랑 ARP spoofing이랑 혼란스럽게 섞어서 말씀하시네요.

특정 호스트가 source mac을 random으로 해서 계속 해서 ethernet frame을 쏘게 되면 adjacent L2 switch의 CAM table이 overflow가 되고, 결국 L2 switch는 Dummy hub처럼 작동합니다. 이 기법을 switch jamming이라 하구요,

ARP spoofing은 L2 switch를 혼란시키는 기법이 아닙니다(ARP spoofing 공격시에 발생하는 infection packet은 L2 switch의 CAM talbe에 위배되는 패킷을 보내는 게 아님). 오로지 상대방(victim)의 ARP cache를 감염시킬 뿐입니다.

twinwings의 이미지

hub는 1계층장비로서 전기신호를 증폭 및 Flooding을 하는 장비로 일체 CRC검사, 주소 검사등을 하지 않는 것으로 알고 있습니다.

L1 - hub
L2 - Bridge(Switch)
L3 - Router, Gateway etc.

http://www.nutt.net/2004/11/20/difference-in-hub-switch-bridge-router/

gilgil의 이미지

이런 얘기는 너무 많이 갑론을박해서리...

"hub가 몇계층이냐"에 대해서는 정답이 없습니다(repeating hub이냐 switching hub이냐에 따라 다름).
그리고 switch라는 용어도 요즘에는 L2, L3, L4, L7 등 다양한 계층에서 얘기되어 집니다.
switch라고 하면 L2 switch라고 이해하는 사람들이 많지만, 웹방화벽 만드는 회사 가면 L7 switch라고 알아 들어요.

결국 hub, switch 앞에는 "L숫자"를 붙여 얘기하는 것이 좋습니다. 그렇지 않으면 듣는 사람이 헷갈려요.

익명 사용자의 이미지

좋은 지적에 감사드립니다.

단지, 동의하지 않는 부분에 몇가지 부연을 하지요.

------------
ARP Cache, MAC table등이 일반적인 개념이며, 이를 보통은 메모리(RAM)에 구현하여 사용합니다. 일반적인 시스템들, 즉, 리눅스, 윈도우등을 탑재한 시스템들에서 스위치 기능을 구현한다면 이렇게 구현 하겠지요.
이 테이블에 필요한 연산은 당연히 찾아보기(look up) 연산이며, 이를 어떻게 하면 빠르게 할까?가 주 관건이 됩니다.
특히, 특별한 기능(일반적인 장비 대비) 만을 주로 수행하는 스위치를 구현하는 사람들은 일반적인 시스템(general purpose system)보다는 특화해서 빠르게(...)를 추구하게 됩니다. 어떻게 하면 조금이라도 더 빠르게 할까?
궁극적으로 wire speed를 추구하는 것이지요.
그 구현 방법 중 하나가 CAM (Content Addressable Memory)과 TCAM (Ternary Content Addressable Memory) 입니다.
단일 연산으로 메모리 전체를 검색하고 결과를 돌려 받는 목적을 가진 것이지요. 수행하는 로직은 호스트와 동일하지만 말입니다.
결국, 일반적인 호스트에서도 하는 로직을 ASIC으로 lookup logic + memory를 구워서 만든 것이라고 보면 되겠지요. 즉, CAM/TCAM은 매우 빠른 속도를 요하는 탐색 애플리케이션에서 사용되는 특수한 메모리라고 할 수 있습니다. L2 스위치라면 MAC, Port등이 검색요소일 것이고, L3스위치라면 IP, MAC등이 검색요소일 것입니다.

* 제 견해로, CAM과 ARP Cache는 비교대상이 될 수 없습니다.
-----------------

ARP는 실제 물리적인 통신을 하기 위해 논리주소(IP)와 물리주소(MAC)을 매핑하는 프로토콜입니다. 실제 전송은 물리주소(MAC)로 해야하기 때문이지요.

ARP Spoofing은 ARP 프로토콜을 사용하는 모든 장비에 적용될 수 있는 공격입니다. Linux, Windows등을 사용하는 호스트에만 적용되는게 아닌 것입니다.
ARP 프로토콜을 잠시 더듬어 보면. 전형적인 요청(request), 응답(reply) 프로토콜입니다. 하나가 요청하고, 이 요청을 받은 누군가가 응답하는 것이지요.
예를 들어,
Request) 192.168.10.11의 하드웨어 주소(MAC)는?
Reply) "xx:yy:zz:aa:bb:cc" 입니다.
주) xx, yy등은 0~255 를 16진수 표기한 값임

그런데, 이 프로토콜은 상대방을 인증하거나 하는 기능이 없습니다. ( 수업시간에 출석부 부를때, 대리 출석해도... 무감각(?)하다는 얘기지요.) udp와 유사하다고 보면 되겠지요.
그래서, 요청에 대해 아무나 응답을 할 수 있습니다. 실제 응답할 장비가 아니라 아무 장비나 응답이 가능하다는 얘기지요.
응답을 받은 장비는 해당 IP에 대한 MAC을 응답받은 것으로 ARP Cache/ARP Table을 업데이트(대체)합니다. 이 변경된 MAC값이 다시 바뀌지 않는 한 이제 모든 전송은 이 물리주소를 프레임에 기입하여 브로드캐스트 하게 됩니다. 이 프레임을 L2 장비가 받았다면, 프레임의 목적지 물리주소(MAC)를 CAM으로 구현한 장비라면, CAM에서 찾고, RAM으로 구현한 장비라면 RAM에서 찾아서, 그 목적지 포트로 프레임을 보낼것입니다.
본래 목적지로 간다면 다행이지만, ARP Spoofing이 되었다면 공격자의 주소로 가게 되겠지요.

이렇게 되게끔 ARP 응답(Reply)을 지속적으로 수행하는 것이 ARP Spoofing입니다.
(지속적으로 해야하는 이유는 공격자 컴퓨터 말고, 실제 장비도 ARP 메시지에 대해 응답할 수 있기 때문입니다. 희생자 장비의 경우 두 곳에서 ARP 응답이 오면 어떨까요? )

** 그 요청을 수행한 것이 스위치라면 스위치를 감염(?)할 것이며, 호스트라면 호스트를 감염할 것입니다.
---------
* "L2스위치" 라는 말은 gilgil님께서만 언급하고 계십니다.

gilgil의 이미지

* 제 견해로, CAM과 ARP Cache는 비교대상이 될 수 없습니다.

제 말이 그말입니다. 지금 익명사용자님께서 (Host가 가지고 있는) ARP table이랑 (L2 switch가 가지고 있는) CAM table이랑 혼란스럽게 말씀하시고 계십니다.

** 그 요청을 수행한 것이 스위치라면 스위치를 감염(?)할 것이며, 호스트라면 호스트를 감염할 것입니다.

하, 답이 안나오네요. L2 switch가 ARP spoofing에 의해 감염된다는 말은 어디서 들으셨나요? L2 switch가 ARP table을 가지고 있다고 생각하십니까? Attacker가 보내는 ethernet frame에서 src mac과 dst mac에 의해 L2 switch의 CAM table이 깨질 수는 있어도, L2 switch는 ARP spoofing(상대방의 ARP table의 내용을 감염시키기)과는 전혀 상관 없는 장비입니다.

그리고, 스위치(L2 Switch)는 기본적으로 active한 action을 행하는 장비가 아닙니다. 그냥 frame을 받으면 다른 port로 frame을 전송(switching)할 뿐이에요. 요즘에는 L2 switch가 워낙에 기능이 많아 져서 control interface(별도의 IP를 가지고 있는)를 가지고 있는 경우도 있기는 합니다만, 기본적으로 L2 switch는 Layer 2 영역(MAC 주소)만 보고 별도의 IP를 가지고 있지 않습니다. IP가 없으니 당연히 ARP spoofing에 대한 공격이나 방어의 대상이 되지 못하죠.

익명사용자님께서 댓글로 말씀하신 모든 내용은 저도 충분히 잘 알고 있습니다. 이거 가지고 밥 벌어 먹고 사는 사람인데요. 이 주제 가지고 수십번은 강연을 해 왔습니다. 강연 내용 녹화내 놓은 것이 있으니 참고하시기 바랍니다.

https://www.youtube.com/playlist?list=PL50BFBAAE2846BD8B

익명 사용자의 이미지


-------------
먼저, CAM은 다양한 응용에 사용되는 것입니다.
CAM은 L2스위치에만 사용되는게 아니고 말입니다. 데이터베이스 엔진, 데이터 압축하드웨어, 인공지능, 침입탐지시스템, 침입차단시스템등에 사용될 수 있습니다.
그런데, 제가 보기에 gilgil님은 CAM이 스위치 그것도 L2스위치에만 사용되는 "전용 용어"인 것처럼 말씀하시는 것으로 보입니다.
반면, ARP cache는 ARP프로토콜을 운용하는(arp server라고 해야할 까요?) 장비(호스트, 스위치 이건 간에)의 핵심 데이터구조라고 봐야 한다는 얘기지요.
이를 테면 f(ip) --> mac 을 수행하는 로직이라고 하겠지요. 이때, ip,mac을 매핑값을 가지고 있는 구조이고, 이 값은 변경이 가능하고, 최신값을 유지하므로 cache와 같은 역할을 하는데, 특히, 이러한 일(ARP)을 수행하므로 ARP Cache/ MAC Table이라고 불리는 자료구조입니다.

즉, CAM은 범용(다양한 용도로 사용되는 것)이고, ARP Cache는 특정 프로토콜의 자료구조라는 얘기입니다. 둘을 비교하는것은 오류라고 봅니다.
일반적인 것과 특정용도의 것을 비교하는 것은 타당하지 않다는 의견이지요.

"L2 switch의 cam은 arp protocol과 전혀 무관한 용도를 구현하고 있으므로, arp spoofing과 무관하다라는 말씀을 하시겠다"면 일부 L2에만 집중한 L2스위치는 그럴 수도 있겠지라고 봅니다만,

왜 제가 사용한 "스위치"라는 단어가 " L2 스위치를 특정"했다고 생각하시는지 이해하기 어렵네요.

--------------

거듭 말씀드리지만, L2스위치를 언급하신것은 제가 아니고, gilgil님이시지요.

'** 그 요청을 수행한 것이 스위치라면 스위치를 감염(?)할 것이며, 호스트라면 호스트를 감염할 것입니다.'
(혹시나 하고 다시 봐도 L2 스위치를 특정하지 않았네요? 아닌가요? 요청은 당연히 ARP 요청이고 말입니다.)

단, 스위치건 호스트건간에 ARP 요청을 하는 장비는 당연히 ARP Cache를 관리할 것이고, 그렇다면, ARP Spoofing에 감염(?)될 것입니다.
설마, 요청(ARP)만 하고 응답(ARP)은 버리는/무시하는 장비(호스트이건, 스위치이건)가 아니라면 말입니다.
스위치가 L2만 있는 것이 아닌 것은 다른 분과의 논의를 보건데 이미 알고 계신듯한데요(L3, L4, L7). L3 스위치라면 라우터라고도 부르고 말입니다.

------------------
* 제가 보기에 "cam table" 보다는 cam으로 구현한 ??검색 루틴/로직이 더 적절한 표현으로 여겨집니다. 만일, 맥을 키값으로 포트를 검색한다면 f(mac) --> port 인 로직을 CAM으로 구현해서 빠르다. 거의 wire speed다 이런식 말입니다.

* 제 글에서, "감염(?)"를 표현한 것이 여러 번 있었는데요. 적절한 표현을 잠시 생각해 보니, 감염이란 말보단 'MAC 값 위조'가 더 그럴듯 하다고 생각됩니다.

gilgil의 이미지

> 단, 스위치건 호스트건간에 ARP 요청을 하는 장비는 당연히 ARP Cache를 관리할 것이고, 그렇다면, ARP Spoofing에 감염(?)될 것입니다.
말씀하신 "스위치"라는 게 L2 switch를 얘기하는 게 아니고 L3 switch(router)를 언급하신 건가요? L2 switch가 arp cache를 가지고 있다는 건 말이 안되고, 그럼 L3 혹은 그 이상의 스위치를 말씀하신 것 같은데, 이 경우에는 스위치를 단어를 사용하면 헷갈립니다. 그냥 "호스트"라고 해야지요.

gilgil의 이미지

> hub는 자신의 포트에 연결된 PC/Notebook등의 하드웨어주소(MAC)와 IP주소를 매칭하며 관리하고 캐싱합니다.(이 관리 테이블을 ARP 캐시, ARP테이블이라고 합니다) 그래서, 원격지에서 논리 패킷(IP 패킷)이 도착하면, 해당 패킷을 보내야 하는 물리 포트를 찾고 그 곳의 MAC주소를 이더넷프레임의 수신주소에 넣고 해당 포트로 전송하게 됩니다. 반대로도(vice versa).

hub라는 것이 L2 switch가 아니고 gateway(router)를 말씀하시는 것 같은데, 이건 일반 host(ip를 가지고 있는)의 작동 원리입니다. gateway에 국한된 얘기가 아닙니다.

> 단위 시간 내에 ARP가 넘쳐나게 되면, 예를 들어, ARP관리테이블 24개를 관리할 엔트리/메모리를 가지고 있는데, 단위 시간 내에 수천개의 ARP 주소가 출현하면, 허브는 관리를 포기하고, 이제 부터 유통될 모든 패킷을 특정 한개의 포트로만 보내지 않고, 모든 포트로 브로드캐스트하게 됩니다.

처음 듣는 얘기인데요? multicast나 broadcast가 아닌 경우에는 반드시 unicast하게 되어 있습니다. 즉, host(gateway 포함)는 adjacent한 host mac을 모르는 상태에서는 packet 자체를 보내지 않습니다(보내지 못합니다). 그리고 "한개 포트로만 보내지 않고, 모든 포트로 브로드캐스트하게 됩니다" 이 말은 L2 switch가 맛탱이 갔을 때의 얘기입니다(jamming 공격 받고 나서). gateway가 아니구요.

> 허브를 공격해서 브로드캐스트하게 하고, 이 혼란한 틈을 이용해, 자신이 허브라는 메시지를 브로드캐스트합니다.

switch jamming(mac flooding)이랑 arp spoofing을 섞어서 말씀하고 계십니다. 두가지는 전혀 다른 공격 기법이에요. arp spoofing은 보통 broadcast로 공격하지는 않습니다(arp reply라는 기법이 있기는 하지만서도). active-standby로 돌아 가는 gateway나 paloalto networks 장비에서 제공되는 arp proxy라는 놈이 broadcast를 날리기는 하지만 일반적이지 않습니다. arp spoofing 기능을 제공하는 프로그램(snoopspy, cain&abel, ettercap, dsniff 등)을 작동시켜 보세요. 대부분 broadcast로 공격하지는 않습니다.

> 허브에 연결된 다른 장비들은 이제부터 arp spoofing을 행한 장비를 허브로 인식하고, 향후, 모든 트래픽을 이 장비를 경유(실제로는 이 장비의 MAC을 게이트웨이로)하여 패킷 내보내게 됩니다. 일단, 이 장비로 트래픽이 오게 되면 그 장비 소유자는 무소불위입니다. 이를 테면, wireshark으로 패킷 감청이 가능해 지는 것이지요.

제가 지적하는 바를 계속해서 이하하지 못하시는 것 같은데요, arp spoofing 얘기를 하다 보면 host(gateway 포함)와 switch(L2)를 구분해서 얘기해야 하는데, 익명사용자님께서는 계속해서 이 2가지를 헷갈린 상태에서 뭉그려 뜨려서 설명을 하고 계십니다. 그리고 arp spoofing에서는 반드시 gateway와의 통신만을 얘기하지는 않습니다. 하나의 host와 다른 host가 같은 네트워크 상황일 때에는 gateway랑은 전혀 상관 없이 공격이 이루어 지게 됩니다.

arp spoofing 모듈 하나 가지고 10년 넘게 유지보수해 왔습니다. 그거 가지고 보안 스위치 만드는 업체에도 여기 저기 컨설팅을 했었구요(말로 컨설팅하는 게 아니고 코드로). arp spoofing 기법을 직접 코딩으로 구현해 보세요. packet을 보낼 때 src mac과 dst mac에 어떠한 정보를 넣어야 할지 고민해 보시기 바랍니다. 그럼 제가 얘기하는 것이 이해가 되실 겁니다.

https://github.com/snoopspy/snoop/blob/master/src/capture/snooparpspoof.cpp - sendArpInfect 함수 참고.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.