SYN Proxy는 TCP SYN 패킷 프록시입니다. SYN Flooding 및 유사한 DDoS 공격으로부터 웹 서버와 같은 모든 TCP 서버를 보호하는 데 사용할 수 있습니다.

SYN Proxy는 리눅스 커널에 있는 netfilter 모듈입니다. 연결 간 동시 잠금없이 사용 가능한 모든 CPU를 사용하여 초당 수백만 개의 패킷을 처리하도록 최적화되어 있습니다.

이것의 진정한 효과는 공격 중에 실제 서버가 어떤 변화도 감지하지 못한다는 것입니다. 유효한 TCP 연결은 통과하고 서비스되는 반면 공격은 방화벽에서 DROP됩니다.

SYN Proxy 원리

  1. SYN Proxy가 사용될 경우 클라이언트는 투명하게 SYN Proxy에 연결됨, 따라서 TCP 3 ways Hand Shakes는 클라이언트와 SYN Proxy 사이에서 먼저 발생합니다.

  2. 클라이언트는 서버에게 TCP SYN을 보냅니다.

  3. 방화벽에서 이 패킷이 도착하면 UNTRACKED로 표시됩니다.

  4. SYN Proxy는 이것을 받아서 TCP SYN + ACK (UNTRACKED)로 서버로 응답합니다.

  5. 클라이언트는 SYN Proxy에 주어진 TCP ACK (iptables에서 INVAILD(검증되지 않은) UNTRACKED로 표시됨)로 응답합니다.

  6. 클라이언트가 SYN Proxy에 연결되면 SYN Proxy는 SYN 패킷을 스푸핑하여 실제 서버와의 TCP 3 way Hand Shakes를 자동으로 시작하여 실제 서버가 원래 클라이언트가 연결을 시도하고 있음을 확인합니다.

  7. SYN Proxy는 TCP SYN을 실제 서버로 보냅니다. 이것은 iptables의 새로운 연결이며 OUTPUT 체인에서 발생합니다. (패킷의 소스 IP는 클라이언트 IP)

  8. 실제 서버는 클라이언트에 SYN + ACK로 응답합니다.

  9. SYN Proxy는 이것을 받아서 ACK로 응답합니다. 이제 ESTABLISHED로 표시됩니다.

  10. 연결이 설정되면 SYN Proxy는 클라이언트와 서버 사이의 트래픽 흐름을 벗어납니다.

따라서 SYN Proxy는 모든 종류의 TCP 트래픽에 사용될 수 있습니다. 콘텐츠 자체를 방해하지 않으므로 암호화되지 않은 트래픽과 암호화된 트래픽 모두에 사용할 수 있습니다.

'Study > Network' 카테고리의 다른 글

Anycast 네트워크 구성하기  (0) 2021.10.08

버퍼 오버 플로우는 값을 받는 함수가 최대로 받을 수 있는 버퍼를 제한하지 않아서 발생하는 부분이다.
그래서 오버 플로우 말 그대로 가득채워서,
특정 값으로 씌어, 맛깔나게 조리해서 노는 공격 기법이다.

'Study > System' 카테고리의 다른 글

시스템 해킹이란  (0) 2019.05.26

무엇인지

시스템을 이루는 것(운영체제, 소프트웨어, 하드웨어)에 있는 취약점해킹하는 것을 말한다.

어떻게 배우는 것인지

시스템 해킹을 알기 위해서는 운영 체제이랑 친해져야 된다.
운영 체제는 주로 윈도우, 리눅스사용한다.
하지만 운영체제마다 커널이 다르기 때문에 따로 따로 나눠서 공부한다.

리버싱 엔지니어링

리버싱 엔지니어링 악성코드 분석이나 CTF(플래그 찾는 곳)에서 주로 사용된다.
프로그램
리버스 엔지니어링 (IDA 등)을 이용하여 구동 원리를 알아내서,
프로그램 개발사에서 생각도 못한 취약점발견해야 프로그램해킹할 수 있다.


'Study > System' 카테고리의 다른 글

Buffer Overflow 대해서  (0) 2019.06.03
I'm very good player of this game. Play better than me and break my record to capture the flag.

Attention:

- There are two levels in this Android Game. You must hit my high score in each level for capturing the flag, so your flag consists of two parts (easy and hard). Flag = Easy Part (1)+ Hard Part (2);

- The BAZAAR app must be installed in your Device.

Good Luck!

Tale_Rang.apk
4.37MB

디컴파일 후 sources/kfb/freed/FourthActivity.java 에 

        if (MyApplication.isWrongortimedout()) {
            if (MyApplication.isEnglish()) {
                ttvv2.setText("Timed Out !");
            } else if (MyApplication.isHard()) {
                if (MyApplication.getScore() < MyApplication.getBestHardScore()) {
                    ttvv2.setText("اتمام وقت !");
                } else {
                    ttvv2.setText("TExPIFVVVENURikgfQ==");
                }
            } else if (MyApplication.getScore() < MyApplication.getBestScore()) {
                ttvv2.setText("اتمام وقت !");kf
            } else {
                ttvv2.setText("VVVUQ1RGIHsgbWQ1KEhF");
            }

TExPIFVVVENURikgfQ==, VVVUQ1RGIHsgbWQ1KEhF

두 개를 한번 base64로 decode(원래 형태)로 되돌렸다.

TExPIFVVVENURikgfQ== LLO UUTCTF) }
VVVUQ1RGIHsgbWQ1KEhF UUTCTF { md5(HE

UUTCTF { md5(HELLO UUTCTF) }

위와 같은 형식이 된다.

그렇다고 저대로 flag를 인증을 하려고 하면,
당연히 안되는 것이 정상이다.

HELLO UUTCTF를 md5로 encrpytion을 해주자.

The MD5 hash for HELLO UUTCTF is : 7c34446d10bbb60d0cae15059fffc98d

그렇게해서 flag는 UUTCTF{7c34446d10bbb60d0cae15059fffc98d}가 된다.

 

pip install windows-curses

+ Recent posts