'프락시'에 해당되는 글 6건

  1. 2010.06.24 아이폰(iPhone) Packet Sniffing
  2. 2010.06.01 Varnish VCL language 가이드 (1)
  3. 2009.10.23 웹분석에 유용한 프락시(Proxy) 툴 (1)
2010.06.24 00:06

아이폰(iPhone) Packet Sniffing

 


아이폰(iPhone)에서도 패킷 캡쳐를 할 수 있다고!

모바일 장치인 아이폰에서도 패킷을 덤프해 보자. 아이폰에서 네트워크 패킷 데이터를 캡쳐할 수 있는 도구를 하나 소개하고자 한다. Pirni 라고 패킷 데이터를 덤프하여 파일로 저장해 주는 역할을 해 준다. 이 저장한 패킷은 와이어샤크나 tcpdump 를 통해 분석을 똑 같이 할 수 있다. Pirni 는 아이폰과 아이팟터치 에서만 사용이 가능하며, 아이폰의 첫 번째 패킷 스니퍼로 알려져 있다. 이걸 사용하기 위해서는 OS 버전이 3.0 이상되어야 하며, 탈옥된 아이폰을 사용하고 있어야 한다. 일단, 와이어샤크같이 편한 GUI 환경을 갖고 있지 않으며, 터미널을 통해 수행하게 된다.



옆 화면은 목적지 포트가 80 번인 패킷에 대해 log.pcap 으로 저장하는 것이다. 초기 실행되는 로그를 보면 패킷 포워딩이라는 것이 보인다. Promiscious 모드를 사용할 수 없어, ARP 스푸핑을 통해 라우팅을 다른쪽으로 우회시켜 포워딩 하는 형태로 패킷 데이터를 덤프뜬다.

아직은 많은 기능을 가지고 있지 않고, 몇 가지 사용예제를 소개하면 아래와 같다. 굳이 설명을 하지 않더라도 아래 예제를 보면 어떤 의미인지 추측이 될 것이다.

        pirni -s 192.168.0.1 -o log.pcap
        pirni -s 192.168.0.1 -d 192.168.0.128 -f "tcp dst port 80" -o log.pcap
        pirni -i en1 -s 192.168.0.1 -d 255.255.255.0 -o log.pcap

앞서 말한것과 같이 pirni 는 단순히 패킷 덤프를 하는 기능만을 가지고 있어, 분석형태로 사용하기는 힘들다. 그래서 사용하는 것이 derv 라는 것이 있다. 이것은 패킷 캡쳐된 패킷 파일을 파싱하는 스크립트를 포함하고 있는 것이다. derv.sh 는 실시간으로 패킷을 읽어 정보를 보여주므로 tcpdump 와 비슷할 수도 있겠다. 하지만, 기능은 많이 제한되어 있다는 점.




아이폰에서 패킷 캡쳐에 관심있는 분들이라면 다음 페이지를 참고해 설치해 보면 된다.

1) Pirni 사용 가이드
2) Derv 설치방법
3) Script add-on for Pirni, a native iPhone/iPodTouch network packet sniffer.

출처 : http://packetinside.com/

Trackback 0 Comment 0
2010.06.01 18:03

Varnish VCL language 가이드

I’ve been working with Varnish 2.0 for the last two weeks, going from complete n00b to someone who knows enough to feel I can improve the terrible lack of documentation for Varnish and VCL. There’s not a lot out there and what’s there is hard to find and sometimes erroneous. I’m hoping this post will help others like me who are struggling with Varnish and VCL.

Basics

VCL is essentially a set of stubs which you can override to provide your own behavior. It is very limited in what it can do, primarily for performance reasons. You don’t have access to the filesystem and the language has no variables or loops.

The two stubs you will most often use:

  • vcl_recv – called at the start of a request. This is primarily used to canonicalize the input URL and headers, determine whether to bypass the cache, etc.
  • vcl_fetch – called when the response has been gathered from the backend before placing it in the cache. You can configure a grace period, enable ESI processing, configure different TTLs, remove user-specific cookies, etc before inserting the response into the cache.

Examples

The Varnish VCL examples are rather sparse; here’s a few more which may fill in some gaps. These work with Varnish 2.0.4.

# If the requested URL starts like "/link/?" then immediately pass it to the given 
# backend and DO NOT cache the result ("pass" basically means "bypass the cache").
if (req.url ~ "^/link/\?") {
  set req.backend = web;
  pass;                                                                                                    
}
if (req.url ~ "/$") { 
  # Handle URLs with a trailing slash by appending index.html
  # (Useful if you are pulling from S3 which does not have default document logic)
  # Note there's no explicit string append operator.
  set req.url = req.url "index.html";
}
# strip port from the Host header
# (useful when testing against a local Varnish instance on port 6081)
set req.http.Host = regsub(req.http.Host, ":[0-9]+", "");
 
# /foo/bar.embed -> /foo/bar/embed.js
set req.url = regsub(req.url, "(.*)\.embed$", "\1/embed.js");
 
# Support feed URLs of the form "/foo/bar.atom" --> "/foo/bar/feed.atom"
if ((req.url ~ "\.(rss|atom)$") && !(req.url ~ "feed\.(atom|rss)$")) {
    set req.url = regsub(req.url, "(.*)\.(.*)$", "\1/feed.\2");
}

The biggest pain in all of this was the very limited logic you can perform on req.url. You don’t have variables in VCL so you need to think in terms of regular expression groups like in the RSS/ATOM regexp above when trying to restructure the URL.

  # use this in vcl_fetch, don't want 404s filling up our cache, so just 
  # immediately return a client error and bypass the cache.
  if (obj.status == 404) {
    error 404 "No such file";
  }

Resources

Here’s the best VCL resources I could find:

Good luck!


출처 : www.mikeperham.com


Trackback 0 Comment 1
  1. anonymous 2012.04.03 16:34 address edit & del reply

    Don't forget to link the original link.
    http://www.mikeperham.com/2009/05/19/a-guide-to-varnish-vcl/

2009.10.23 10:28

웹분석에 유용한 프락시(Proxy) 툴

- Paros
 : http://www.parosproxy.org


- burpsuite
 : http://www.portswigger.net/suite



- WebScarab
 : http://www.owasp.org/index.php/Category:OWASP_WebScarab_Project


Trackback 0 Comment 1
  1. 고양이의 노래 2009.10.23 10:50 address edit & del reply

    bultsuite 오늘 메트로에서 대학전산망 해킹에 사용된 툴이라고 하던데 proxy툴이었군요. 저는 sniff류로 생각했었는데...