CTF에서 pwnable 문제를 풀 때 nc를 이용해서 문제에 접속하는 경우가 많다. pwn문제에 nc로 문제를 만들고 공개하는 방법에 대해서 알아보고 기록을 한다.

xinetd를 이용해 nc 포트를 열어서 nc로 문제를 공개하는 방법이 있다.


1.xinetd 패키지를 설치한다.

우분투 기준 $apt-get install xinetd를 입력하면 설치할 수 있다.


2. /etc/xinetd.d/서비스이름 으로 파일을 생성한다.

$vi /etc/xinetd.d/서비스이름


3. 그리고 해당 파일에 아래와 같이 설정을 해준다.

service 서비스이름

{

          disable            = no

          flags              = REUSE

          socket_type      = stream # 사용하는 소켓의 종료를 입력한다. stream은 tcp를 뜻함

          protocol          = tcp       

          wait            = no

          user              = SSo # 계정

          server          = /sbin/shutdown  # 서비스할 파일명

}


추가. .py를 실행하는 서버는

server          = /usr/bin/python
server_args     = /home/script.py
위처럼 작성해주면 된다.


4. 서비스설정을 해주었으면 포트를 개방해주는 설정을 하기위해 /etc/service 파일에 설정을 추가해준다.

해당파일의 맨 아래에 # Local services라는 스트링이 있는데 이 아래에 포트 내용을 추가해준다.

# Local services

서비스이름 1234/tcp


5. nc로 접근하면 서비스가 제대로 실행되는 모습을 확인할 수 있다.

$nc localhost 1234


Ref.http://lily.mmu.ac.kr/lecture/08sm/Fedora2/7jang/2.htm

'HACKING > System hacking' 카테고리의 다른 글

pwnable 풀 때 objdump  (0) 2018.02.25
GOT Overwrite  (0) 2018.02.24
GDB BP에 관한 것  (0) 2017.11.29
heapoverflow 문제 풀이3  (0) 2016.11.05
heap overflow 문제풀이2  (0) 2016.11.02

+ Recent posts