묻고 답해요
131만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결해킹대회(CTF) 출전을 위한 시스템해킹(Pwnable) 입문
마지막강의 재생이 안됩니다
마지막강의 재생이 안됩니다
-
미해결취미로 해킹#1(OverTheWire - Bandit)
weechat 명령어 오류
위챗에서 /set irc.server_default.ssl_verify off/set irc.server_default.ssl_dhkey_size 1024두 명령어를 이용했을때 찾을 수 없다고 나오는데 옵션이 달라진걸까요?
-
미해결리눅스 커널 해킹. A부터 Z까지
kernel stack pivoting에서 gadget 관련 질문드립니다.
stack pivoting 예제에서 gadget을 찾지 못합니다.bzImage 에서는 xchg gadget이 존재하는데vmlinux에서는 xchg gadget이 존재하지 않습니다. bzImage 내 gadget 주소와 kernel base 주소를 더해도 예제(exp.c)에서 사용한 gadget 주소(0xffffffff8176b4fd) 가 나오지 않습니다. 이런 경우엔 어떤 방법으로 gadget 주소를 구해야 할까요? 위 내용 확인해 주시면 감사하겠습니다.
-
미해결웹 서비스 해킹을 위한 버프스위트 완벽 활용 가이드
프록시 설정하면 엄청 느려요
계속 돌아가요....몇분 지나도 페이지가 접속이 안되어서burp suite 못쓰겠어요 저희가 망분리가 되어 있긴 해요...취약점 점검 업무라서 burp suite을 써야하는데 프록시 설정을 끄면 잘 돌아가고 설정하면 거의 멈추고 진행이 안되요 ㅠㅠ
-
미해결웹 서비스 해킹을 위한 버프스위트 완벽 활용 가이드
이거 해결 어떻게 하죠?
윈도우 11사용하는 데 크롬에서 설정들어가서 컴퓨터에서 프록시 설정 켜기로 설정하래서 해보니까 거기서 8080pt 무ㅓ127.0.01 그런거 입력하라는 데로 다했는데 하니까 크롬에서 아무 사이트 들어가니까 사이트가 공격 받고 있을수있습니다 라고하면서 사이트가 실행이 되지 않는데 이거 어떻게 해결하죠?
-
미해결리눅스 커널 해킹. A부터 Z까지
안녕하세요 수강중 궁금한 것이 있습니다.
해당 수업을 들으면서, 선생님이 미리 짜놓은 코드로만 진행이 되어서 그저 기계처럼 따라만 하고 있어서 전혀 이해가 가지 않습니다..혹시 해당 코드가 어떻게 제작되었는지부터 이해하려고 하는데, 어떤것을 보면서 수업을 들으면 도움이 될까요?
-
미해결리눅스 커널 해킹. A부터 Z까지
pwndbg가 커널에 attach는 되는데 디스어셈코드나 레지스터 표시가 안됩니다.
위 사진과 같이 디버거에 아무런 정보도 표시가 되지 않습니다. vmlinux도 추출해놓은 상태입니다.
-
미해결리눅스 커널 해킹. A부터 Z까지
가젯에 대해 이해가 잘 안됩니다.
pop rax; ret;0x6f0에서 pop rax; ret; 어셈블리가 어떻게 rax에 0x6f0을 넣게 되는 건가요?
-
해결됨리눅스 커널 해킹. A부터 Z까지
Kernel KPTI 적용시 영향?
/mnt/c/Users/msh/Desktop/stack_based_BOF 1m 26s ❯ grep ": mov rdi, rax ; rep" ./gadgets.txt 0xffffffff8145a958 : mov rdi, rax ; rep movsb byte ptr [rdi], byte ptr [rsi] ; jmp 0xffffffff8145a368 0xffffffff814747df : mov rdi, rax ; rep movsb byte ptr [rdi], byte ptr [rsi] ; jmp 0xffffffff81474961 0xffffffff81479c79 : mov rdi, rax ; rep movsb byte ptr [rdi], byte ptr [rsi] ; jmp 0xffffffff81479cd8 0xffffffff8150a792 : mov rdi, rax ; rep movsb byte ptr [rdi], byte ptr [rsi] ; jmp 0xffffffff8150a391 0xffffffff81b08ab4 : mov rdi, rax ; rep movsb byte ptr [rdi], byte ptr [rsi] ; jmp 0xffffffff81b08a75 0xffffffff82a213e5 : mov rdi, rax ; rep movsb byte ptr [rdi], byte ptr [rsi] ; jmp 0xffffffff82a212b9 0xffffffff82a48d7c : mov rdi, rax ; rep movsb byte ptr [rdi], byte ptr [rsi] ; jmp 0xffffffff82a48d92 0xffffffff81b098e6 : mov rdi, rax ; rep movsb byte ptr [rdi], byte ptr [rsi] ; pop rbx ; pop rbp ; ret 0xffffffff82a081f0 : mov rdi, rax ; rep movsd dword ptr [rdi], dword ptr [rsi] ; ret 0xffffffff81132ad8 : mov rdi, rax ; rep movsq qword ptr [rdi], qword ptr [rsi] ; jmp 0xffffffff81132970 0xffffffff81b2413b : mov rdi, rax ; rep movsq qword ptr [rdi], qword ptr [rsi] ; retgef➤ x/10xi 0xffffffff82a081f0 0xffffffff82a081f0: Cannot access memory at address 0xffffffff82a081f0 gef➤ x/10xi 0xffffffff81132ad8 0xffffffff81132ad8: mov rdi,rax 0xffffffff81132adb: rep movs QWORD PTR es:[rdi],QWORD PTR ds:[rsi] 0xffffffff81132ade: jmp 0xffffffff81132970 0xffffffff81132ae3: call 0xffffffff81b26270 0xffffffff81132ae8: nop DWORD PTR [rax+rax*1+0x0] 0xffffffff81132af0: push r15 0xffffffff81132af2: push r14 0xffffffff81132af4: push r13 0xffffffff81132af6: mov r13,rdi 0xffffffff81132af9: push r12KPTI가 적용된 커널에서 일부는 주소를 찾아도 gdb로 확인을 할 수 없는데, 왜 그런건가요?user level에서 page table이 줄어들어서 특정 부분이 빠지다보니, 그 가젯이 있는 부분도 빠져서 안보이는거 같은데, 약간 이상한거같습니다.[ Legend: Modified register | Code | Heap | Stack | String ] ───────────────────────────────────────────────────────────────────────────────────────────────────────── registers ──── $rax : 0xffffffff81b2c390 $rbx : 0x0 $rcx : 0x0 $rdx : 0x22a $rsp : 0xffffffff82403eb0 $rbp : 0x0 $rsi : 0x83 $rdi : 0x0 $rip : 0xffffffff81b2c3ae $r8 : 0xffff88801f01dec0 $r9 : 0x200 $r10 : 0x0 $r11 : 0x2f7 $r12 : 0x0 $r13 : 0x0 $r14 : 0x0 $r15 : 0x0 $eflags: [ZERO carry PARITY adjust sign trap INTERRUPT direction overflow resume virtualx86 identification] $cs: 0x10 $ss: 0x18 $ds: 0x00 $es: 0x00 $fs: 0x00 $gs: 0x00 ───────────────────────────────────────────────────────────────────────────────────────────────────────────── stack ──── [!] Unmapped address: '0xffffffff82403eb0' ─────────────────────────────────────────────────────────────────────────────────────────────────────── code:x86:64 ──── 0xffffffff81b2c3a5 verw WORD PTR [rip+0x4d94d6] # 0xffffffff82005882 0xffffffff81b2c3ac sti 0xffffffff81b2c3ad hlt → 0xffffffff81b2c3ae mov ebp, DWORD PTR gs:[rip+0x7e4e4fab] # 0x11360 0xffffffff81b2c3b5 nop DWORD PTR [rax+rax*1+0x0] 0xffffffff81b2c3ba pop rbx 0xffffffff81b2c3bb pop rbp 0xffffffff81b2c3bc pop r12 0xffffffff81b2c3be ret ─────────────────────────────────────────────────────────────────────────────────────────────────────────── threads ──── [#0] Id 1, stopped 0xffffffff81b2c3ae in ?? (), reason: SIGINT ───────────────────────────────────────────────────────────────────────────────────────────────────────────── trace ──── [#0] 0xffffffff81b2c3ae → mov ebp, DWORD PTR gs:[rip+0x7e4e4fab] # 0x11360 ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── gef➤ x/10xi 0xffffffff82a081f0 0xffffffff82a081f0: Cannot access memory at address 0xffffffff82a081f0혹시 몰라서 qemu script에서 qemu64로 바꿔서 kpti를 끄고 gdb를 달아서 테스트를 해봤더니, 이상하게 나오네요.$r12 : 0x0 $r13 : 0x0 $r14 : 0x0 $r15 : 0x0 $eflags: [ZERO carry PARITY adjust sign trap INTERRUPT direction overflow resume virtualx86 identification] $cs: 0x10 $ss: 0x18 $ds: 0x00 $es: 0x00 $fs: 0x00 $gs: 0x00 ───────────────────────────────────────────────────────────────────────────────────────────────────────────── stack ──── [!] Unmapped address: '0xffffffff82403eb0' ─────────────────────────────────────────────────────────────────────────────────────────────────────── code:x86:64 ──── 0xffffffff81b2c3a5 verw WORD PTR [rip+0x4d94d6] # 0xffffffff82005882 0xffffffff81b2c3ac sti 0xffffffff81b2c3ad hlt → 0xffffffff81b2c3ae mov ebp, DWORD PTR gs:[rip+0x7e4e4fab] # 0x11360 0xffffffff81b2c3b5 data16 data16 data16 xchg ax, ax 0xffffffff81b2c3ba pop rbx 0xffffffff81b2c3bb pop rbp 0xffffffff81b2c3bc pop r12 0xffffffff81b2c3be ret ─────────────────────────────────────────────────────────────────────────────────────────────────────────── threads ──── [#0] Id 1, stopped 0xffffffff81b2c3ae in ?? (), reason: SIGINT ───────────────────────────────────────────────────────────────────────────────────────────────────────────── trace ──── [#0] 0xffffffff81b2c3ae → mov ebp, DWORD PTR gs:[rip+0x7e4e4fab] # 0x11360 ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── gef➤ x/10xi 0xffffffff82a081f0 0xffffffff82a081f0: int3 0xffffffff82a081f1: int3 0xffffffff82a081f2: int3 0xffffffff82a081f3: int3 0xffffffff82a081f4: int3 0xffffffff82a081f5: int3 0xffffffff82a081f6: int3 0xffffffff82a081f7: int3 0xffffffff82a081f8: int3 0xffffffff82a081f9: int3 gef➤vmlinux를 잘못 추출한건가 싶어서 다시 추출해봤는데도 이상합니다.
-
해결됨리눅스 커널 해킹. A부터 Z까지
qemu 스크립트 실행시 Kernel panic이 발생합니다.
리눅스 커널 분석 환경 세팅 단원에서 qemu세팅 부분 수업을 따라하고 있습니다.먼저 boot.sh파일을 만들고 스크립트를 실행하였는데 다음과 같은 에러가 계속해서 반복됩니다.아래 boot.sh파일과 반복 에러 그림을 첨부하겠습니다.감사합니다.스크립트반복에러
-
미해결취미로 해킹#1(OverTheWire - Bandit)
L23->L24 권한 거부 때문에 작성한 쉘코드를 실행 할 수가 없어요
/tmp/mydir3118/bandit24sh.sh 생성해서 쉘코드 작성하고 chmod 777 /tmp/mydir3118/bandit24sh.sh로 권한도 변경해줬습니다. 그런데 만들 쉘코드 파일을 /var/spool/bandit24로 옮기려니까 권한 거부됬다고 뜨더라구요. bandit23@bandit:/var/spool/bandit24$ ls -al /tmp/mydir3118 total 108 drwxrwxr-x 2 bandit23 bandit23 4096 Jan 28 03:28 . drwxrwx-wt 1025 root root 98304 Jan 28 03:53 .. -rwxrwxrwx 1 bandit23 bandit23 68 Jan 28 03:10 bandit24sh.sh -rw-rw-r-- 1 bandit23 bandit23 0 Jan 28 03:28 rst.txt bandit23@bandit:/var/spool/bandit24$ cp /tmp/mydir3118/bandit24sh.sh . cp: cannot create regular file './bandit24sh.sh': Operation not permitted확인해보니까 /var/spool/bandit24에 write권한이 없었습니다. chmod로 변경해보려는 건 당연히 안된다고 막혔구요... bandit23@bandit:/var/spool/bandit24$ ls -al total 12 dr-xr-x--- 3 bandit24 bandit23 4096 Jan 11 19:18 . drwxr-xr-x 5 root root 4096 Jan 11 19:18 .. drwxrwx-wx 9 root bandit24 4096 Jan 28 03:53 foo어떻게 해야할까요?
-
해결됨리눅스 커널 해킹. A부터 Z까지
Kernel UAF
안녕하세요!kernel uaf 강의를 듣고 궁금한 점이 있는데요, kernel uaf 예제 취약점을 공격할 때, kmalloc에 별다른 크기 조정을 안하고 드라이버에 지정된 0x90크기로 heap을 할당하고 해제하는 것으로 cred 구조체가 해제된 자리를 사용해서 dangling pointer가 그 영역을 가리킬 수 있었던 것은 cred 구조체의 크기가 0x90 이거나 그보다 작아서 인가요??그리고 추가적으로 혹시 cred 구조체의 크기를 구할 수 있는 방법이 있을까요??좋은 강의 감사합니다!!