Search

'분류 전체보기'에 해당되는 글 8건

  1. 2019.12.12 블랙프라이데이 갤럭시버즈 이벤트 사기
  2. 2017.11.20 블로그란
  3. 2017.10.26 [DNS] 루트 네임서버 만들기
  4. 2017.10.26 [Python] 마름모 만들기
  5. 2017.08.16 오체,DHCP?
  6. 2017.08.15 [스택 Stack]
  7. 2017.08.15 [IA-32 레지스터]
  8. 2017.08.06 다시이주

https://blog.naver.com/caligo002/221734877798

 

블랙프라이데이 갤럭시버즈 이벤트

글로벌트레이딩 이라는 업체에서 인터파크 측을 통해 대대적으로 블랙프라이데이 이벤트 형식으로 진행한&q...

blog.naver.com

글로벌트레이딩 이라는 업체에서 인터파크 측을 통해 대대적으로 블랙프라이데이 이벤트 형식으로 진행한

"갤럭시 버즈" 100인 한정 99,000원 이벤트에 참여하셨던 분들 찾습니다.

해당 이벤트를 통해 배송된 갤럭시 버즈는 가품으로,

판매 당시 정품이라고 쓰여있었고,

"정품이 맞느냐?"는 질문에 "정품이 맞다" 라는 답변을 분명 했었습니다.

현재 글로벌트레이딩이라는 업체는 없어진 상태고, 전화번호도 없어졌으며, 상품 페이지는 삭제된 상황입니다.

이러한 이벤트를 연 인터파크 측이 책임을 지지 않으려 한다면, 인터파크 불매운동을 포함한 소송을 진행할 예정입니다.

인터파크는 소비자의 알권리를 침해했고, 가품을 진품으로 속여파는 사기 행위에 동조했습니다.

환불을 하든지, 판매자를 찾아내든지 하지 못한다면

인터파크는 판매자도 관리하지 못하는 쇼핑몰이라는 뜻입니다.

* 같은 피해를 보신 분들은 제 메일이나 비밀 댓글로 연락 주시기 바랍니다. 증거를 비롯해 힘을 모아야 이겨낼 수 있습니다.

caligo002@naver.com

블로그란

[주절주절] 2017. 11. 20. 16:19 Posted by 부르곰므

계륵같다

'[주절주절]' 카테고리의 다른 글

다시이주  (0) 2017.08.06

[DNS] 루트 네임서버 만들기

[DNS] 2017. 10. 26. 18:08 Posted by 부르곰므

항상 공식적인 루트 네임서버만을 사용하다가 

어?! 내가 그냥 루트 네임서버를 구축할 수 있지 않을까? 생각이 들었다.

맨땅에 헤딩하면서 이것저것 만졌지만... 역시 쉽사리 구축할 수 없었고 그 방법을 서술한 내용도 찾을 수 없었다.


포기할 수는 없었다. 완전 같지는 않더라도 비슷하게 구현해 보고 싶어서 루트 zone을 찾았다. 루트 zone은 생각보다 쉽게 찾을 수 있었다. 


다음과 같은 내용으로 구축을 했다.

========================

OpenDNS => Centos6.8_x64

RootDNS => Centos6.8_x64

ComDNS => Centos6.8_x64

DebDNS    => Centos6.8_x64

rootest.com => Centos6.8_x64

========================


<테스트 시나리오>

 오직 하나의 루트 네임서버만 있다고 가정한다.

 OpenDNS에서는 그 루트 네임서버를 참조한다.

 사용자는 rootest.com으로 질의를 해서 ip값을 알아온다.




# 가장 상위의 Root 네임서버

 1. named.conf


 다른 부분을 제외하고 가장 크게 만진 부분은 일반 bind에서 root hint를 참조하는 부분이다.

zone "." 부분은 원래 type은 hint로 루트 네임서버의 목록이 나열된 부분을 지정해 준다.

 

 Root 네임서버도 하나의 권한 네임서버일 것이라는 생각으로 이 부분을 master로 지정해 주었다. 

=====================[/etc/named.conf]============================

options {

        listen-on port 53 { any; };

        listen-on-v6 port 53 { any; };

        directory       "/var/named";

        dump-file       "/var/named/data/cache_dump.db";

        statistics-file "/var/named/data/named_stats.txt";

        memstatistics-file "/var/named/data/named_mem_stats.txt";

        allow-query     { any; };

        recursion no;

};


logging {

        channel default_debug {

                file "data/named.run";

                severity dynamic;

        };

};


zone "." IN {

        type master;

        file "root.zone";

};


#include "/etc/named.rfc1912.zones";

#include "/etc/named.root.key";

============================================================


 2. root.zone


 루트 네임서버에 대한 권한을 가지고 있어야 하는 root.zone파일을 다음과 같이 구성했다. 

 한가지 특징은 위임인데, Glue Record로 구성했다. 글루 레코드는 네임서버를 나타내는 ns값에 대한 A레코드를 지정한 부분을 뜻한다.


 해당 존파일을 통해, .(루트)질의를 하면 root-server.net을 찾고 그 주소는 10.10.8.138로 나타난다.

 그리고 구축한 com과 net도 gtld로써 루트로 질의가 오면 찾아갈 수 있게 글루레코드로 구성했다.

=========================[root.zone]============================

$TTL 3H

.       IN SOA  root-server.net. admin.root. (

                                        0       ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

.               IN      NS      root-server.net.

com.            IN      NS      yy.gtld-server.net.

deb.            IN      NS      n.gtld-server.net.

root-server.net.        IN      A       10.10.8.138

yy.gtld-server.net.     IN      A       10.10.8.137

n.gtld-server.net.      IN      A       10.10.8.133

============================================================


 3. 기타 구성

 루트 네임서버는 권한 DNS로 구성되어 리졸버와 DNS서버 구성을 굳이 할 필요가 없어 지웠다.



# 중간 부분의 GTLD 네임서버(comDNS, debDNS)

 1. named.conf


 그냥 권한 네임서버 만든다고 생각하자.

 루트힌트는 쓸 일이 없으니깐 그냥 주석처리 했다.

=====================[/etc/named.conf]============================

options {

        listen-on port 53 { any; };

        listen-on-v6 port 53 { any; };

        directory       "/var/named";

        dump-file       "/var/named/data/cache_dump.db";

        statistics-file "/var/named/data/named_stats.txt";

        memstatistics-file "/var/named/data/named_mem_stats.txt";

        allow-query     { any; };

        recursion no;


};


logging {

        channel default_debug {

                file "data/named.run";

                severity dynamic;

        };

};


//zone "." IN {

//      type hint;

//      file "named.ca";

//};


include "/etc/named.rfc1912.zones";

include "/etc/named.root.key";

============================================================


 2. named.rfc1912.zones


 존파일을 참조할 수 있게 해주는 부분의 설정이다.

 com서버이기에 다음과 같은 설정을 추가한다.

============================================================

.............전략.............


zone "com" IN {

        type master;

        file "named.com";

        allow-update { none; };

};


................후략.................

============================================================


 3. zone파일


 루트 네임서버와 마찬가지로 약간 특이한 점은 GlueRecord이다.

============================================================

$TTL 3H

@       IN SOA  yy.gtld-server.net. admin.com. (

                                        0       ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

com.                    IN      NS      yy.gtld-server.net.

rootest.com.            IN      NS      ns.rootest.com.

yy.gtld-server.net.     IN      A       10.10.8.137

ns.rootest.com.         IN      A       10.10.8.136

============================================================



# 질의를 위한 OpenDNS

 깡통 서버, 캐시 서버, 오픈 서버 라는 이름으로 불리우는 리커션을 위한 리커션에 의한 리커션의 DNS를 만들자. recursion은 자신이 권한을 가지고 있지 않은 질의에 대한 값을 ROOT HINT를 참조하여 알아오는 기능이다. 해당 기능을 설정하면 루트 네임서버로 반복적 질의를 보내기 


 1. named.conf

 이번에는 recursion기능을 허용해야한다. 또한, 루트 힌트를 질의 할 수 있게 해주어야 한다.

============================================================

options {

        listen-on port 53 { any; };

        listen-on-v6 port 53 { any; };

        directory       "/var/named";

        dump-file       "/var/named/data/cache_dump.db";

        statistics-file "/var/named/data/named_stats.txt";

        memstatistics-file "/var/named/data/named_mem_stats.txt";

        allow-query     { any; };

        recursion yes;


};


logging {

        channel default_debug {

                file "data/named.run";

                severity dynamic;

        };

};


zone "." IN {

        type hint;

        file "named.ca";

};


include "/etc/named.rfc1912.zones";


============================================================


 2. named.ca

 zone파일이 있는 /var/named/chroot/var/named(또는 /var/named) 디렉토리의 named.ca를 수정해 주자. named.ca는 루트서버들이 저장되어 있는 일종의 zone파일이다.


 모두 필요없다. 위에서 구축한 루트에 대한 정보만 추가해 준다.

============================================================

;       This file holds the information on root name servers needed to

;       initialize cache of Internet domain name servers

;       (e.g. reference this file in the "cache  .  <file>"

;       configuration file of BIND domain name servers).

;

;       This file is made available by InterNIC

;       under anonymous FTP as

;           file                /domain/named.cache

;           on server           FTP.INTERNIC.NET

;       -OR-                    RS.INTERNIC.NET

;

;       last update:    December 01, 2015

;       related version of root zone:   2015120100

;

; formerly NS.INTERNIC.NET

;

.                       3600000      NS    root-server.net.

root-server.net.        3600000      A     10.10.8.138

============================================================

       


# 기본적인 권한서버

 rootest.com에 대한 설정은 어디에서나 찾아서 구축할 수 있기에 따로 기술하지 않는다.



# 확인할 사항

 모든 zone파일의 소유자는 root.named여야 한다.

 반드시 전부 service named restart를 통해 데몬을 재실행 한다.

 selinux도 disabled하고 방화벽도 내리고 해야 편하다.

 모든 서버에 이렇게 설정되었나 확인하자.



# 시나리오 실행.

 윈도우에서, 리눅스에서 어디서든 질의를 하되, 평소 KT나 구글의 DNS에 질의하듯, 질의하는 서버를 구축한 OpenDNS로 설정하자.


nslookup이라면 server 옵션으로

dig라면 그냥 @뒤에 붙여주면 된다. 


 귀찮으니 그냥 openDNS에 질의해 보겠다.(어차피 같다.)

dig @0 은 해당 서버에 설정된 리졸버(여기서는 127.0.0.1)에 질의하는 것과 같다.

==================================================

[root@localhost named]# dig @0 rootest.com +trace


; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.4 <<>> @0 rootest.com +trace

; (1 server found)

;; global options: +cmd

.                       3600000 IN      NS      root-server.net.

;; Received 45 bytes from 127.0.0.1#53(0.0.0.0) in 3 ms


com.                    10800   IN      NS      yy.gtld-server.net.

;; Received 77 bytes from 10.10.8.138#53(10.10.8.138) in 4 ms


rootest.com.            10800   IN      NS      ns.rootest.com.

;; Received 62 bytes from 10.10.8.137#53(10.10.8.137) in 7 ms


rootest.com.            3600    IN      A       1.1.1.1

rootest.com.            86400   IN      NS      ns.rootest.com.

;; Received 78 bytes from 10.10.8.136#53(10.10.8.136) in 0 ms

==================================================



==================================================

[root@localhost named]# dig @0 rootest.com


; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.4 <<>> @0 rootest.com

; (1 server found)

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52774

;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1


;; QUESTION SECTION:

;rootest.com.                   IN      A


;; ANSWER SECTION:

rootest.com.            3600    IN      A       1.1.1.1


;; AUTHORITY SECTION:

rootest.com.            10796   IN      NS      ns.rootest.com.


;; ADDITIONAL SECTION:

ns.rootest.com.         86396   IN      A       10.10.8.136


;; Query time: 2 msec

;; SERVER: 127.0.0.1#53(0.0.0.0)

;; WHEN: Sat Oct 21 08:02:01 2017

;; MSG SIZE  rcvd: 78

==================================================

그냥 질의와 +trace질의시 경로와 정보를 잘 가져온다.


이해가 가지 않으면 질문해주세요.

[Python] 마름모 만들기

[TMP] 2017. 10. 26. 17:21 Posted by 부르곰므

매우 복잡한 코드를 통해

홀수 마름모 만들기에 성공했다


============================================================

dia=int(input("diamond:"))

a=int(dia/2)+1

for i in range(1,dia+1):

if i<=a:

print(' '*(dia-i-a+1)+'*'*i + '*'*(i-1))

else :

print(' '*(i-a)+'*'*((dia*2)-(i*2)+1))

============================================================


거참 쉬운길도 어쩜 이렇게 돌아가는지.


오체,DHCP?

2017. 8. 16. 10:09

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

[스택 Stack]

[Reversing] 2017. 8. 15. 16:01 Posted by 부르곰므

 스택은 로컬 변수 저장, 함수 파라미터 전달 등 다양한 용도로 사용된다고 해. 디버깅 하면서 이 스택 메모리를 자주 확인 하게 된대. 그래서 스택에 대해서 조금 알아보려고.

 

 프로세스(Process)에서 스택의 역할은 함수 내부의 지역 변수 임시저장, 함수 호출 시 파라미터 전달, 복귀 주소 저장이 있지. 이런 일을 하기 위해 스택이 가장 유용하게 생각한 메모리 구조는 FILO-선입후출 방법이야.

 ESP의 초기 값은 스택의 Bottom에 가깝다고 해.

 PUSH 명령으로 스택에 값이 추가되면, 포인터는 TOP을 향해, 그러니깐 위로 움직이지. 이때, POP명령에 의해 스택에서 값이 제거되면, 스택 포인터는 Bottom을 향해 움직인대.

 그러니깐 밑에서 부터 쌓는거지.

 

 

 

'[Reversing]' 카테고리의 다른 글

[IA-32 레지스터]  (0) 2017.08.15

[IA-32 레지스터]

[Reversing] 2017. 8. 15. 12:56 Posted by 부르곰므

Intel Architecture 32비트라는 뜻의 IA-32.

인텔에서 제공하는 어셈블리 명령어는 어마어마하대.

하나하나 다 외우고 있을 수는 없지만 조금씩 조금씩 공부하다보면 늘겠지.

그런 생각으로 리버싱을 공부해야겠어.


참고로 나는 '리버싱 핵심원리'라는 책으로 리버싱을 공부중이야.

필요한건 구글링도 서슴치 않고 있지.

지금부터 꾸준히 정리하며 공부하다보면 뭔가 되어있지 않을까?


각설하고 일단.

 레지스터는 CPU내부에 존재하는 다목적 저장공간이야. 음... CPU가 RAM에 접근하기에 시간이 오래걸려 레지스터라는 녀석을 통해 고속으로 데이터를 처리한다고 해.

 

 이런 저장공간인 레지스터가 제공하는 어셈블리 명령어의 대부분은 당연히 레지스터를 조작, 그 내용을 검사하는 것들이지.


<Basic program execution registers>

1) 범용 레지스터

 범용적으로 막 쓰는 레지스터들. 16비트인 시절부터 쓰여왔던 명령어들에 'E'가 붙어서 32비트에서사용하게 되었음.

 (산술연산 ADD, SUB, XOR, OR 등에서 사용)

- EAX : Accumulator for operands and results data /// 함수 리턴 값에 사용된다.

- EBX : Pointer to data in the DS segment

- ECX : Counter for string and loop operations /// 반복문에서 반복 카운트로 사용(루프를 돌때마다                                                                 ECX가 1씩 감소된다.)   

- EDX : I/O pointer

(메모리 주소를 저장하는 포인터)

- EBP : Pointer to data on the stack (in the SS segment) /// 함수 호출 시 순간의 ESP를 저장하고                                                                            있다가 함수가 리턴하기 직전에 ESP에                                                                            값을 되돌려 스택이 깨지지 않도록 한다.

- ESI : source pointer for string operations /// LODS, STOS, REP MOVS등이랑 메모리 복사에 사용

- EDI : destination pointer for string operations

- ESP : Stack pointer (in the SS segment) /// 스택 메모리 주소(다른용도로 사용하지 말아야 한다)


2) 세그먼트 레지스터

 메모리관리 모델에서 나오는 용어인데, 어렵기 때문에 전문가들은 일단 리버싱을 진행하라고 추천한다고 해.

 IA-32 보호 모드에서 메모리를 조각내어 각 조각마다 시작 주소, 접근 권한 등을 부여해서 메모리를 보호하는 기법을 말함. 또한 페이징 기법과 함께 가상 메모리를 실제 물리 메모리로 변경할 때 사용.

 세그먼트 메모리는 SDT라는 곳에 있다. 세그먼트 레지스터는 이 SDT의 index를 가지고 있다.

- CS : 코드 세그먼트

- SS : 스택 세그먼트

- DS : 데이터 세그먼트

- ES, FS, GS : 데이터 세그먼트.(추가적으로 사용)


3) 프로그램 상태와 컨트롤 레지스터

 플래그 레지스터(EFLAGS)_16비트 FLAGS의 확장형

32개의 비트로 이루어져있는 EFLAGS레지스터는 각각의 비트마다 의미를 지닌다.

각 비트는 1/0의 값을 가지며 음영처리된 부분은 예약된 비트로 사용할 수 없다. ZF, OF, CF 3가지에 대해서는 애플리케이션 디버깅에 필요해서 잘 이해하자. 특히, 이 3가지는 조건 분기 명령어(jcc)에서 이를 참조해서 동작 수행 여부를 결정하기 때문이다.

 

- ZF(zero flag) : 연산 명령 후에 결과 값이 0이 되면 ZF가 1로 세팅된다.

- OF(overflow flag) : signed integer(부호 있는 수)의 오버플로우가 발생하면 1로 세팅된다. 또한, MSB(Most Significant Bit)가 변경되었을 때도 1로 세팅된다.

- CF(Carry Flag) : unsigned integer(부호 없는 수)의 오버플로우 발생시 1로 세팅

 

 

4) 명령어 포인터

EIP( Instruction pointer) : CPU가 처리할 명령어의 주소를 나타내는 레지스터.

 

CPU는 EIP에 저장된 메모리 주소의 명령어를 하나 처리하고 난 후, 자동으로 명령어 길이만큼 EIP를 증가시킨다. 이런 식으로 계속 처리해 나간다.

직접 변경 할 수 없다.

따라서 특정 명령어를 사용하거나 인터럽트, 예외를 발생시켜야 한다.

 

 

 

 

책에도 나와 있지만, 정말 어렵다. 이걸 다 달달 외우기 보다는 이게 이거구나 알고 있으면 앞으로 디버깅할때 도움이 될거 같아. 그래서 여기 정리했지.

 

'[Reversing]' 카테고리의 다른 글

[스택 Stack]  (0) 2017.08.15

다시이주

[주절주절] 2017. 8. 6. 12:30 Posted by 부르곰므

티스토리를 떠났던 부르곰므는

다시 슬슬 이주준비를 합니다

이번엔 좀 깔끔하게 꾸며보려합니다

'[주절주절]' 카테고리의 다른 글

블로그란  (0) 2017.11.20