Socket을 이용하는 Remote BOF 공격에서 대게 Bind Shell Code를 사용하게 된다. 이 쉘코드가 어떻게 구성되어있고, 왜 Remote BOF에서는 Bind Shell Code를 써야하는지 알아보았다. 1. Bind Shell Code의 구성 우선 통신을 위해 TCP와 같이 구성이 된다. Socket() -> Bind() -> Listen() -> Accept() 또한 표준입출력을 위해 dup2함수와 쉘을 띄우기 위한 execve함수로 구성할 수 있다. 2. Bind Shell Code의 목적 Remote 환경에서는 쉘이 소켓이 종료된 뒤에 떨어지기 때문에 이 통신을 유지시켜줄 필요가 있다. 따라서 Bind Shell Code를 이용하여 포트를 열고 쉘을 받아오는 것이다. 하지만 소켓을..
11. 11 월 컴퓨터네트워크2 멀티태스킹 서버의 행동 중 socket(), bind(), listen()의 과정을 CreateTCPServerSocket()이란 함수로 묶고, accept()를 AcceptTCPConnection()으로, receive(), send()를 HandlingTCPClient()라는 함수로 묶어서 사용. # 클라이언트당 프로세스멀티태스킹을 위해 fork()를 이용하여 자식 프로세스를 생성한다. 이 자식 프로세스는 receive(), send()의 역할을 수행하며 Client는 자식프로세스에게 send()하게 된다. 자식 프로세스가 종료되어도 이 프로세스가 자동으로 사라지는 것이 아니라 waitpid() 호출을 통해 좀비프로세스를 수확해야 자원이 회수된다. # 클라이언트당 쓰레..
UDPEchoClient에서 클라이언트가 Sendto() 후 서버의 Sendto()를 기다리는 동안 block되지 않도록 하는 방법1) non-blocking socket - 서버측2) asynchronous I/O - 서버측3) Timeout - 클라이언트측 1)Process에서 InterruptSignalHandler 실행 중 사용자가 Ctrl+C와 같은 인터럽트 입력 시 System에서 SIGINT가 들어오게되고 InterruptSignalHandler() 내부에서 printf("Interrupt Received"); 와 같은 문자열 출력 후 for(;;)문 내부의 pause가 실행되어 프로그램이 정지된다. 2) 서버에서 bind() 이후 대기하는 동안 다른 작업(3초마다 . 출력)을 하게 된다. ..
- Total
- Today
- Yesterday
- BOF
- Wargame
- 프로그래밍 언어
- CODEGATE 2014
- 프로그래밍
- hackerschool
- exploit
- CloudFlare
- 파이썬
- 웹
- 사이버테러
- CK Exploit Kit
- DNSOverHTTPS
- 문제풀이
- 해커스쿨
- network
- TISTORY
- python
- 개발
- Sublime Text 2
- writeup
- 티스토리
- 스크립트
- 악성코드
- 자바스크립트
- www
- DoH
- 분석
- 웨일브라우저
- FTZ
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |