전체 글 123

ISC

ICS 산업기반 정리 Modbus : 자동화 디바이스간 통신을 위해 1979년에 개발된 산업용 프로토콜 3 (0x03) 보유 레지스터를 읽는다 6 (0x06) 단일 레지스터 쓰기 16 (0x10) 다중 레지스터 쓰기 22 (0x16) 마스크 쓰기 등록 23 (0x17) 읽기/쓰기 다중 레지스터 crash course -| |- = open -|/|- = close ( )- = end open -(R)- = end close PLC : 산업 플랜트의 유지관리 및 자동 제어 및 모니터링에 사용하는 제어 장치 Modbus 페이로드 stuctor [16진수] AA = PLC 주소 BB = function code CCCC = register address [000C] DDDD = data to snd [FF00..

카테고리 없음 2024.02.16

LPE(1)

리눅스 권한 상승 리눅스 권한 상승은 리눅스 호스트에서 낮은 권한의 셸을 높은 권한의 셸을 획득할수 있는것이다. 또한 리눅스 머신이 도메인에 가입되어 있으면 NTLM 해시을 획득하고 AD 을 열거하거나 공격을 시작할수도 있다. 열거는 권한상승의 핵심입니다. LinEnum 같은 툴로 열거을 도와주지만 수동으로 열거할때 어떤 정보를 찾아야 하는지 매우 중요합니다. 운영체제 버전 , 커널 버전, 실행 중인 서비스 을 아는것이 중요하다. 현재 프로세스 목록 ps aux | grep root 현재 설치된 패키지 및 버전도 LPE 을 하기 위한 중요한 정보 입니다. 사용자 홈디렉터리 정보도 매우 중요합니다 이유는 엑티브디렉토리 열거을 하기위한 정보을 얻을수 있기 때문입니다. ls /home 사용자 디렉터리를 확인하..

카테고리 없음 2024.02.08

Kernel(3)

ret2usr SMEP 보호 기법이 걸려있지 않은 경우 커널 공간에서 유저 공간의 코드을 실행할수 있는것을 이용해서 권한 상승을 일으키는 기법 CTF 문제든 리얼월드든 SMEP 는 기본적으로 걸려있기 때문에 이 기법을 사용하는 일은 상당히 드문편이다. backup_rv() 함수는 커널공간에서 성공적으로 권한 상승을 일으킨뒤 쉘을 실행하기 위해 유저 공간으로의 전환에 필요한 현재의 context 를 저장하는 역할을 한다. context 표는 이와같이 RIP , CS , RFLAGS, RSP ,SS 이 있고 RIP 레지스터를 제외한 레지스터들은 현재 상황의 레지스터들을 저장하고 RIP는 /bin/sh 를 실행하는 함수인 shell() 함수의 주소를 저장한다. RSP 를 저장하는 이유는 커널공간에서는 kere..

카테고리 없음 2024.01.25

kernel(2)

KASLR : 커널이 무작위 주소에 매핑되도록 만들어 커널 익스플로잇을 어렵게 하는 보호기법이다. 유저 공간의 ASLR 과 비슷한 개념이며 , 주로 커널이 실행되기 전 단계인 부트로더에서 세팅이 된다, 우회하기 위해 kerenl memroy address leak 과정이 필요하다. commit_creds(prepare_kernel_cred(0) : 인자로 0 을 줄경우 루트로 자격증명을 준다. commit_creds() 는 현재 태스크의 credentials를 인잘 받은 credentials 로 갱신 하는 역할이다. 즉 현재 태스크의 권한을 root 로 바꾸는 코드이다. kaslr = -append "kaslr" 옵션으로 kaslr 보호기법 을 적용 /proc/kallsyms : /proc/kallsym..

카테고리 없음 2024.01.22

kernel(1)

태스크: 리눅스 커널에서는 프로세스 와 쓰레드 을 별도로 구분하지 않고 태스크 로 동등하게 관리한다. 모든 태스크 는 task_struct 구조체 로 관리가 된다. 프로세스와 쓰레드 를 생성하는 모든 함수는 do_fork() 함수를 거친다. 이 함수는 task_struct 를 생성하는 역할을 한다. 하나의 태스크 가 생성 될때 커널 스택이랑 task_struct 가 할당된다. pid_t pid : 프로세스 마다 부여하는 식별값 pid_t tgid : 쓰레드 그룹 아이디 char comm[] : 프로세스 의 이름 struct task_struct *realparent : 자신을 생성한 부모 태스크를 가리킴 struct mm_struct*mm: mm_struct 는 유저공간의 텍스트, 스택, 힙 등의 영역의..

카테고리 없음 2024.01.22

File Inclusion Prevention

file inclusion 취약점을 줄이기 위해서는 사용자 입력을 함수나 api 에 전달하지 않는것이다. 백엔드 에서 자산을 동적으로 로드 할수 있어야한다. 모든 기존 경로를 포함하는 화이트 리스트 을 만들고 이 목록을 확용하여 사용자 입력과 일치시키는지 매치 시켜보는 방법도있다. Preventing Directory Traversal attacker 가 디렉토리 을 제어할수 있으면 웹 애플리케이션에서 나와 공격 하거나 universql attack chain 을 만들어서 공격 하기도 한다. Read /etc/passwd and potentially find SSH Keys or know valid user names for a password spray attackFind other services o..

카테고리 없음 2024.01.18

Antomated Scanning

Fuzzing Parameter ffuf -w /opt/useful/SecLists/Discovery/Web-Content/burp-parameter-names.txt:FUZZ -u 'http://ip:port/index.php?FUZZ=value' -fs 2287 LFI wordlist https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/LFI/LFI-Jhaddix.txt https://github.com/danielmiessler/SecLists/tree/master/Fuzzing/LFI Fuzzing server files LFI 페이로드를 퍼징하는 것 외에도 LFI 활용에 도움이 될 수 있는 다양한 서버 파일이 있으므로 이러한 파일이 어..

카테고리 없음 2024.01.17

Log Poisoning

이 섹션에서는 log 에 대해서 집중적으로 다룬다. PHP include()/include_once() ✅ ✅ ✅ require()/require_once() ✅ ✅ ❌ NodeJS res.render() ✅ ✅ ❌ Java import ✅ ✅ ✅ .NET include ✅ ✅ ✅ Function Read Content Execute Remote URL php 은 백엔드 에 특정 사용자 관련 데이터를 보유할수 있는 PHPSESSID 쿠키 을 활용하므로 웹 쿠키를 통해 사용자 세부 정보를 추적할수 있다. 이러한 세부정보 는 리눅스 에서 /var/lib/php/sessions/ , 윈도우 에서는 C:\Windows\Temp\ 에 저장됩니다. 사용자 데이터는 접두사 가 sess_ 이 붙는다. PHPSESSID..

카테고리 없음 2024.01.17

LFI 그리고 File upload

파일 업로드 기능은 대부분의 최신 웹 애플리케이션에 편재되어 있습니다. 사용자는 일반적으로 데이터를 업로드하여 웹 애플리케이션의 프로필과 사용법을 구성해야 하기 때문입니다. 공격자의 경우 백엔드 서버에 파일을 저장하는 기능은 파일 포함 취약점과 같은 많은 취약점의 악용을 확장할 수 있습니다. 파일 업로드 공격 모듈에서는 파일 업로드 형식 및 기능을 활용하는 방법에 대한 다양한 기술을 다룹니다. 그러나 이 섹션에서 논의할 공격의 경우 파일 업로드 형식이 취약할 필요는 없으며 단지 파일 업로드만 허용합니다. 취약한 함수에 코드 실행 기능이 있는 경우 파일 확장자나 파일 유형에 관계없이 업로드하는 파일 내의 코드가 포함되면 실행됩니다. 예를 들어, 이미지 파일(예: image.jpg)을 업로드하고 그 안에 '..

카테고리 없음 2024.01.16