Network & Protocol & Infra
Client IP 구하기 : X-Forwarded-For와 X-Real-IP
Client IP 구하기 : X-Forwarded-For와 X-Real-IP
2022.04.22Proxy / VPN X-Real-IP는 바로 직전 client의 IP를 나타낸다. ``` proxy_set_header X-Real-IP $remote_addr; 설정에서 $remote_addr이, nginx가 수신한 client IP를 의미한다. User - Nginx - Tomcat 일 때, X-Real-IP는 User IP 가 된다. User - Proxy - Nginx - Tomcat 일 때, X-Real-IP는 Proxy IP가 된다. ``` X-Forwarded-For는 3.3.3.3, 1.1.1.1 포맷이다 LB, Proxy, Cache Server 등을 거치면 srcIp가 변경되기 때문에 원래의 Client IP를 가져오기 위한 방법이 필요하다. 이를 위해 X-Forwarded-For 필..
HTTP에 대해서
HTTP에 대해서
2019.08.29HTTP/1.1 HTTP/1.0 과 HTTP/1.1의 차이 몇 가지 차이점이 있지만 가장 큰 차이점은 socket connection 재사용 옵션 부분이다. HTTP/1.0 : Connectionless `` Connection: close``가 default HTTP/1.1 : Connection 유지 `` Connection: keep-alive``가 default HTTP 패킷의 시작과 끝 기본적으로 `` Content-Length`` 헤더를 보고 인식한다. Content-Length가 없으면, connection이 끊어질 때 까지 계속 읽는다. 그렇다면 항상 전체 패킷에 대한 Content-Length를 미리 계산해야 할까? => chunked encoding을 사용하면 아래와 같이 길이를 모르는..
HTTP 패킷 캡쳐 (크롬 , burp suite, wireshark)
HTTP 패킷 캡쳐 (크롬 , burp suite, wireshark)
2019.02.25HTTP/HTTPS 패킷 캡쳐는 와이어 샤크나 burp suite, Postman보다 크롬의 Network 탭이 더 유용할 때가 많다. 크롬 패킷 캡쳐는 https도 보이고, 외부 사이트와 상호작용 하는 것도 보인다.새로 고침하거나, 페이지 이동 시 기존 로그가 날아간다는게 가장 큰 문제인데, 크롬 옵션에서 안날아가게 할 수 있음!!`` 개발자 도구 - Settings - Network에서 Preserve log 체크`` 캡쳐한 항목 아무거나 우클릭 - Save all as HAR with content하면 저장할 수 있고, 그냥 드래그 앤 드롭으로 다시 불러올 수 있음. 와이어 샤크 : 좀 더 정리된 형태로 보고싶은데 raw하게 볼 수 밖에 없다는게 단점... HTTPS는 볼 수 없다는게 제일 큰 문제..
VMware Shared VM 포트 개방 문제
VMware Shared VM 포트 개방 문제
2019.01.30Preference에서 지정한 포트를 열어주고 방화벽에서 해제하는건 당연하고,접속해보면 로그인까지는 잘 되는데 가상머신을 열어보려 하면 Unable to connect to the MKS: Login (username/password) incorrect.에러가 발생하면서 안된다. wireshark로 보니까 903에 SYN요청을 보내고 있음. 그런데 netstat으로 확인해보니 내 워크스테이션에는 903이 LISTEN 상태가 아님. VMware-authd.exe는 902다. 그래서 C:\ProgramData\VMware\VMware Workstation 에 있는(Program Files가 아님. 설정 파일만 ProgramData에 따로 있음)config.ini에서 ```authd.client.port = ..
iptables / firewalld
iptables / firewalld
2018.08.15iptables 체인은 3가지. INPUT OUTPUT FORWARD : 나를 지나가는 패킷. 라우터 등에서 사용. iptables는 ip 헤더부터 잡힌다. 그 아래는 안잡힘. ```bash sudo iptables -L // 밖으로 나가는 icmp 막기 iptables -A OUTPUT -p icmp -j DROP iptables -D OUTPUT -p icmp -j DROP // 80번만 풀기. iptables는 위에서 부터 검사하다 break하기 때문에 먼저 써야 함. iptables -A OUPUT -p tcp --dport 80 -j ACCEPT // 밖으로 나가는 tcp 막기 iptables -A OUTPUT -p tcp -j DROP // netfilter queue로 패킷 보내기. ipta..
ARP spoofing
ARP spoofing
2018.07.24https://github.com/umbum/arp_spoof 패킷 만들어서 보내면 victim이 `` arp -d``같은거 수행 안해도 패킷 받자 마자 ARP table 업데이트가 일어나면서 MAC이 변경된다. 근데 공유기 같은거 끼고하면 안되는게, 공유기에 ARP spoofing 방지 기능이 있기 때문.핫스팟 켜고 테스트해보면 잘 된다. ARP spoofing 방지 기능 없는 경우, `` src - 공유기 - victim``이 유선으로 구성되어 있는 경우에도 잘 먹힌다. * 저가형 공유기의 경우 자동 차단 기능은 없고, 몇 초 간격으로 공유기에서 다시 ARP를 보내는 수준의 기능만 있다. Attacker spoofing 패킷을 시도하는 호스트. Sender spoofing을 당해 Attakcer에게 ..
내부망, 인터넷 동시에 연결해서 사용하기
내부망, 인터넷 동시에 연결해서 사용하기
2017.11.20```croute add 172.106.0.0 mask 255.255.0.0 172.107.10.254```이더넷과 Wi-Fi IPv4 설정-고급에서 메트릭 수동으로 변경. 내부망에 연결된 쪽의 메트릭에 더 낮은 값을 주면 더 높은 우선순위가 적용되어 먼저 내부망을 타고, 그 다음 외부망으로 나가게 된다.
Telnet : raw socket과의 차이
Telnet : raw socket과의 차이
2017.06.27Telnet wikiRFC 854 0xfftelnet에서는 `` 0xff``를 command 중 하나인 IAC(Interpret As Command)로 예약되어 있다.각 command의 끝에 IAC를 붙이는 방식으로 일반 data와 command를 구분하게 되는데, 사용자가 `` 0xff``를 입력하는 경우와 구분하기 위해 telnet 프로세스는 사용자로부터 IAC인 `` 0xff``를 입력 받으면 이를 `` 0xff 0xff``로 변경하여 송신하게 된다.받는 쪽도 telnet이라면, 수신하면서 이를 다시 `` 0xff``로 변환하지만, 수신 측이 raw socket이라면 `` 0xff 0xff``를 그대로 수신하게 된다.반대로 송신 측이 raw socket, 받는 쪽이 telnet이라면 `` 0xff`..
Ethernet IEEE 802.3
Ethernet IEEE 802.3
2016.12.03IEEE 802.3( Ethernet )Data-link layer의 MAC sublayer와 Physical layer를 정의하는 protocol CharacteristicsConnectionlessUnreliable따라서 2개의 L2 sublayer 중 p-to-p communication에 관여하는 LLC sublayer에서 Flow control을 하지 않는다.CRC가 있으니 수신 측에서 error correction한다. ( FEC, Forward error correction )error correction 하지만 ARQ(=BEC)가 아닌 FEC이고, Flow control 하지 않으니 당연히 ACK도 없다.LLC identifier( 802.2 )대신 MAC에서 EtherType을 사용하니 ..
Port, Socket, Connection
Port, Socket, Connection
2016.11.13server 측 socket programming sequence```csocket() //socket 생성 파라미터로 넘긴 값들이 socket 구조체에 들어간다.bind() //IP와 port 할당listen() //대기accept()``` Port / Socket / ConnectionA TCP connection is defined by two endpoints aka sockets. socket은 IP와 port로 정의되는 endpoint다. ( 사실 상태나 프로토콜도 정의 요소에 포함해야 한다. )즉, TCP connection은 srcIP:port , dstIP:port( two sockets, 4-tuple )로 정의된다. 하나의 port에 여러 socket이 존재할 수 있다. 단, 둘 이상..
Proxy / VPN
Proxy / VPN
2016.10.29프록시의 기능은 크게 두가지. 1. 중계, 2. 캐싱. HTTP proxy `` X-Forwarded-For``? Client IP 구하기 : X-Forwarded-For와 X-Real-IP `` X-Forwarded-Host`` : Client가 요청한 원래 host. reverse proxy server가 원래 요청받은 서버가 어디인지 식별하기 위해 사용한다. 이 field들은 proxy server가 original host's IP를 제대로 report해준다는 데 의존하기 때문에 신뢰성이 떨어진다. 위조되기도 쉽고, 표준이 아니라 "사실상의" 표준이기 때문에 지켜지지 않는 경우도 많다. 단, 마지막 IP는 항상 마지막 proxy server에 연결된 IP다. `` X-Forwarded-For:cl..
DNS, related vulnerability ( hosts )
DNS, related vulnerability ( hosts )
2016.09.22DNS cache, hosts file, query orderwindowsThe entries in the hosts file are loaded into DNS cache by DNS Client Serviceprograms looks for DNS cache as the first step on name resolution.Domain Name System (DNS) servers are queried.If the name is still not resolved, NetBIOS name resolution sequence is used as a backup. This order can be changed by configuring the NetBIOS node type of the client.실제로..