목록自習 (33)
학사 나부랭이
ICMP Echo Request를 이용해 IP 범위를 쓸고 지나가며 존재하는 호스트를 찾아내는 것을 Ping Sweep Scan이라고 해요. from pythonping import ping from time import time def icmp_scan(): for i in range(40, 50, 1): ip_address = "***.***.***" ip_address += "." + str(i) print(f"Ping target -> {ip_address}") ping(ip_address, timeout=1, count=1, verbose=True) if __name__ == "__main__": begin = time() icmp_scan() end = time() print(f"걸린 시간: ..
네트워크에서 프로토콜은 약속이고 정의하기 나름이에요. 그러니, IP 헤더의 사용하지 않는 부분에 특정한 약속을 만들거나, ICMP 헤더의 데이터에 다른 프로토콜을 구현할 수도 있죠. 이런 방식으로 숨겨서 정보를 전송하는 네트워크 공격 기법이 은닉 채널(Covert Channel)이에요. 예를 들어, 방화벽 같은 장비에서 TCP, UDP 포트를 막았거나 감시할 때 이용해, 감시 장비를 우회해 파일을 전송할 수 있어요. PING은 거의 모든 운영체제에 설치되어 있는 도구며, 이를 이용한 코드로 TCP, UDP 포트가 막혀도 파일을 전송할 수 있어요. 이제 PING 기능을 이용해, ICMP의 메시지로 사진 파일을 전송할 거예요. # receiver's code from socket import * import..
메모리 구조 Windows의 메모리 구조는, 32bit의 경우, 기본적으로 프로세스 별로 4GB로 구성되어요. 그런데 일반적인 PC의 메모리가 2~8GB인데, 어떻게 프로세스마다 4GB를 할당할까요? 이를 위해 사용되는 게 가상 메모리예요. 다음과 같이 프로세스 별로 유저 영역에 2GB, 커널 영역에 2GB로 총 4GB의 독립된 메모리 공간을 가지며, 실제 커널 영역인 2GB는 모든 프로세스가 공유하죠. 이렇게 메모리 가상화를 통해 프로그램은 자신이 모든 메모리를 소유한 것처럼 주소 값에 신경 쓰지 않고 메모리를 사용할 수 있으며, 오류가 발생하더라도 다른 프로세스의 메모리와 격리되어 있으니 안정성을 높일 수 있죠. 각 가상 메모리에 대한 물리 메모리 매핑은 Windows가 맡아서 하죠. 디버거의 메모리..
ICMP 3계층에서 동작하며, 네트워크 통신의 테스트나 오류 메시지 응답을 전송할 때 사용돼요. 통신 상태를 확인할 때 사용하는 Ping, Tracert 명령어도 ICMP를 사용하죠. ICMP 헤더 구조 Type: ICMP 패킷의 종류를 나타내요. Code: Type에 대한 상세 항목이에요. Checksum: 오류를 검출하는 필드예요. Other message specific information: ICMP 헤더의 추가 메시지 필드예요. ICMP 헤더는 Type과 Code에 따라 내용이 바뀌죠. 다음은 ICMP 프로토콜의 Type과 Code의 주요 필드에 대한 설명이에요. Type Code 설명 0 0 Echo Reply, Echo Request (Type 8)에 대한 응답 3 Destination Un..
IP 용량이 큰 파일을 서버에서 내려받을 때, 파일은 패킷 단위로 쪼개져 전송되며, 도착지 호스트 기기에서 CPU가 재조립해요. IP 프로토콜은 패킷의 분할과 재조합에서 사용되며 출발지와 목적지의 IP와 라우터 설정을 포함해요. IP 헤더 구조 그림에서 한 칸은 1bit인데 네트워크 정보를 나타내는 단위에는 4가지가 있어요. 1bit = 0|1 1byte = 8bits 4bits = 1nibble 1word = 4bytes IP 헤더의 각 항목은 다음과 같아요. Version: IPv4나 IPv6를 나타내요. IHL (IP Header Length): IP 헤더의 길이를 워드 단위로 나타내요. TOS (Type Of Service): 서비스에서 우선순위를 지원하도록 라우터에게 요구해요. Total Len..
들어가기 전에 445번 포트란? Server Message Block(=Common Internet File System)은 다른 시스템 간의 파일 및 프린터 공유에 사용하는 프로토콜이며 445 포트를 사용한다. TCP/IP 기반의 NetBIOS 프로토콜을 사용한다. SMB에는 SMB1, SMB2.0, SMB2.1, SMB3.0, SMB3.0.2, SMB3.1.1 버전이 있다. 그리고 이 SMB 네트워킹 프로토콜을 다시 구현한 자유 소프트웨어를 Samba라 한다. NetBIOS란? 일반적으로 TCP/IP 네트워크에서 사용하는 기기에 IP 주소를 부여하면 서로 통신 가능하지만 Windows 네트워크에서는 NetBIOS라는 기술을 시용해, IP 주소보다 NetBIOS 이름이 더 중요한 역할을 하고 있다. 이..
ANOM이란? ANOM은 사용자에게 통신에 있어서 완벽한 보안을 제공하는 듯한 모바일 커뮤니케이팅 어플리케이션이었다. 표면 상, ANOM은 폐쇄된 네트워크 즉, ANOM이 설치되어 있는 폰들끼리만, 안전한 프록시 서버를 이용해 데이터를 주고받는 "군사용 급"의 암호화를 제공하고, 로컬 기기에 저장된 데이터를 제거하기 위한 "킬 스위치" 기능도 제공한다. 그러나 이는 FBI 및 여타 국가의 집행기관의 트로이목마이다. ANOM을 통한 암호화 통신은 해독하기 위한 FBI의 마스터키가 숨겨져 있었으며 이로 인해 디바이스 소유자를 특정할 수 있었고, 메시지나 사진 등도 염탐할 수 있었다. 원래 Phantom Secure, Sky Global, Ciphr, EncroChat 등의 비슷한 서비스들도 있었는데 이들은 ..
Sandbox Architecture 1. 확장을 승인하는 특권 앱 2. 샌드박스가 시스템 콜을 승인 또는 거부 3. 자격이 조건을 만족 4. 확장이 조건을 만족 5. 몇몇 시스템 앱이 컨테이너 프로파일을 사용 6. 데몬은 고유한 프로필을 소유 7. 몇몇 시스템 앱은 고유한 프로필을 소유 8. AppleMatch.kext(Kernel Extensions)가 정규 표현식을 처리 Overview https://owasp.org/www-pdf-archive/OWASP_Bucharest_AppSec_2018_-_Breaking_the_iOS_Sandbox_-_Razvan_Deaconescu.pdf https://arxiv.org/pdf/1608.04303v1.pdf https://chromium.googleso..