Level3 문제풀이 Keyword : System() func weakness 문제 파악 이전이랑 비교하면 힘들어보이네요 ㅠ 저 코드를 뜯어봅시당~ 이젠 저 위 C언어의 소스코드의 작동 순서를 아시고 autodig 파일 찾을까요? autodig 파일 탐색 💡find / -perm +4000 -user level4 2>/dev/null 권한 확인까지 끝났죠(굳이 안해도 되는데 혹시 모르니까..) 근데 아까 힌트에서 뭐라고 했을까요? more hints - 동시에 여러 명령어를 사용 - 문자열 형태로 명령어 전달 해석하면 동시 명령어는 linux에선 ;(세미콜론)/ |(파이프라인) / &(엔퍼센트)가 있고 ; / 전자 후자 둘다 실행 성공여부 상관없이 실행 || / 전자가 성공되면 후자는 실행 X && /..
level2 문제 풀이 Keyword : Editor Shell Command Exploit 문제 파악 위와 같이 힌트 확인 시 텍스트 파일 중 쉘 명령어 된다는데.. 역시나 취약한 파일의 SetUID를 찾는 부분으로 find 명령어를 활용합시다 find 명령어 활용 💡find / -perm +4000 -user level3 2>/dev/null 그리고 위 경로가 나왔기에 이동합시다 editor는 최종이니까 그 전까지만! editor를 그럼 실행을 해보면(참고로 실행할 땐 ./ 사용) 실행해보면 vi가 나오네요 편집기로써 나오나봐요(vi는 굳이 설명을.. 링크 올려드릴께요 ㅎ) [리눅스, 유닉스]vi (vim) 편집기 기본 사용법, 명령어, 단축키, 동작법 & 문제 [리눅스 / 유닉스 / 셸 프로그래밍 ..
Level 1 문제 풀이 Keyword : find Backdoor Exploit 문제 파악 위와 같이 hint를 확인하면 setuid가 있는 backboor를 확인 할 수 있죠 setuid는 일시적으로 권한을 부여하는 역할으로써, 이 것을 활용해 익스플로잇을 할 수 있어요 find 명령어를 활용해 파일을 찾아야하는 문제입니다. find명령어 활용 💡find / -perm -4000 -user level2 여기서 Tip 💡나중에 배우겠지만 Permission denied라는 에러를 없이 출력하는 방법을 알아보면 $ find / -perm -4000 -user level2 위와 같은 방법으로 하면 에러가 많이 발생하므로 이 에러를 생략하려면 명령어 맨 뒤에 2>/dev/null 이라는 명령어를 넣어주면 된..
데이터베이스 시스템의 정의 DB의 데이터를 저장하고, 이를 관리하는 조직과 정보등을 통틀어 말함 -Keyword- - 데이터베이스 시스템의 구성요소 - - 데이터베이스 3단계 구조 - - DBMS 시스템 구성 - DBS, DataBase System DB, 데이터베이스 : 저장된 데이터의 집합 DBMS, 데이터베이스 관리 시스템 : DB에 저장된 데이터가 일관되고 무결한 상태로 유지되도록 관리 DBS, 데이터베이스 시스템 : DB와 DBMS를 통해 조직에 필요 정보를 제공하는 전체 시스템 데이터베이스 구조 DB의 데이터를 저장하고, 이를 관리하는 조직과 정보등을 통틀어 말함 스키마와 인스턴스 스키마 : DB에 저장된 데이터의 구조와 제약조건 - 한번 정의되면 자주 변경 X 인스턴스 : 스키마에 따라 DB..
pwntools의 간단 설명 탄생 배경과 설치 방법 지난 시간에 파이썬과 파이프(|)를 통해 간단한 스택 오버플로우 익스플로잇을 했죠 파이썬으로 페이로드를 생성하고, 파이프를 통해 이를 프로그램에 전달했죠 그러나 익스플로잇이 좀만 복잡해도 위 방법은 이용이 불가능합니다. 페이로드를 생성하기 위해 복잡한 연산과 프로세스와 반복적 데이터 송수신이 가능해야죠 그래서 해커들은 perl, python c언어 등으로 익스플로잇 스크립트, 또는 바이너리를 제작해 사용했죠 더 자세히 알고 싶다면 소켓 프로그래밍을 배우시면 돼요 파이썬으로 여러 개의 익스플로잇 스크립트를 작성하다 보면, 자주 사용하게 될 함수가 있죠 예로 리틀 엔디안의 바이트 배열로 바꾸는 패킹 함수, 또는 그 역을 수행하는 언패킹 함수 등이죠 익스플로..
🐛Debug(ger)란? CS(Computer Science)에선 실수로 탄생한 프로그램의 결함을 bug라고 칭함 설치 sudo apt-get install gdb git clone https://github.com/pwndbg/pwndbg cd pwndbg ./setup.sh GitHub - pwndbg/pwndbg: Exploit Development and Reverse Engineering with GDB Made Easy Exploit Development and Reverse Engineering with GDB Made Easy - GitHub - pwndbg/pwndbg: Exploit Development and Reverse Engineering with GDB Made Easy gi..
해커의 언어: 어셈블리💬 PC에서 복잡한 논리적 인과관계, 여러 개체가 상호작용하며 그 세계에서 통용되는 기계어(Machine Code)언어 핵심! 시스템 해킹을 할 때는 컴퓨터 언어, 운영체제, 네트워크, 암호학 등 다양한 배울 것들이 존재하지만, 그중 시스템 해커가 가장 기본적으로 습득해야 하는 지식은 컴퓨터 언어에 관한 것임! 시스템 해커는 컴퓨터의 언어로 작성된 소프트웨어에서 취약점을 발견해야 하기 때문 그런데 문제는 PC 언어인 기계어가 너무 이해하고 작성하기 힘들기에 난해한 기계어를 바꾼 사람이 있으니, 컴퓨터 과학자 중 한 명인 David Wheeler는 EDSAC을 개발하면서 어셈블리 언어(Assembly Language)와 어셈블러(Assembler)라는 것을 고안 어셈블러는 일종에 통역..
P2P(동등 계층간 통신망) 비교적 소수의 서버에 집중하기보다는 망구성에 참여하는 기계들의 계산과 대역폭 성능에 의존하여 구성되는 통신망 P2P(peer-to-peer network)는 네트워크 상에서 유저와 유저간 데이터를 공유하는 방식을 기반 방식의 분산형 데이터 저장 기술의 일종 오디오나 비디오, 데이터 등 임의의 디지털 형식 파일의 공유는 매우 보편적으로 사용됩니다. 또한, 인터넷 전화(VoIP)같은 실시간 데이터 등도 P2P 기술을 통해 서로 전달될 수 있습니다. 흔히 다들 알고 계시는 토랜토, 토르 등을 생각하면 이해하기 쉬우실 겁니다. 💡핵심 : 대등한 관계의 컴퓨터 그룹을 직접 통신을 수행하는, 중심이 없는 네트워크으로써, 동등한 계층 노드들(peer nodes)이 서로 클라이언트와 서버 ..
1. 리눅스 메모리 구조(Memory Layout) 프로세스 가상메모리의 각 구역이 어떤 정보를 담고 있는지 이해하는 것이 핵심! 더보기 📜개요📜 세그먼트란 코드 세그먼트 데이터 세그먼트 BSS 세그먼트 스택 세그먼트 힙 세그먼트 CPU는 실행할 명령어와 명령어 처리에 필요한 데이터를 메모리에서 읽고, Instruction Set Architecture(ISA)에 따라 이를 처리합니다. 그리고 연산의 결과를 다시 메모리에 적재합니다. CPU의 동작과 메모리 사이에 밀접한 연관이 있음을 의미 공격자가 메모리를 악의적으로 조작할 수 있다면 조작된 메모리 값에 의해 CPU도 잘못된 동작할 수 있습니다. 이를 메모리가 오염됐다고 표현하며, 이를 유발하는 취약점을 메모리 오염(Memory Corruption) 취..