일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 백준
- 소프트맥스함수
- 딥러닝
- 파이썬신경망
- 보안
- 항등함수
- 스트림암호
- 파이썬
- 알고리즘
- 8086CPU레지스터
- 정보보안
- C알고리즘
- C언어알고리즘
- c언어
- 백준알고리즘
- C언어 알고리즘
- 신경망구현
- 달고나bof
- 활성화함수파이썬
- BOJ
- 인공지능
- 딥러닝파이썬
- 밑바닥부터시작하는딥러닝
- BOF
- 신경망 학습
- 버퍼오버플로우
- 신경망파이썬
- FTZlevel10
- 머신러닝
- 신경망
- Today
- Total
목록분류 전체보기 (235)
HeeJ's
[17] dlllist 우회하기(1)(DLL/THREAD) :: Anti Memory Forensics/Volatility 이어서 2. DLL 하나씩 은닉하기 LDR_DATA_TABLE_ENTRY 구조체의 InLoadOrderLinks, InMemoryOrderLinks 값 변조 은닉해볼 필드: C:\Windows\System32\ntdll.dll inLoadOrderLinks와 InMemoryOrderLinks의 Flink값은 IMGSF50Start_x86.exe의 LDR_DATA_TABLE_ENTRY를 가리킨다. IMGSF50Start_x86.exe의 세 필드가 가리키는 Flink값을 wow64.dll을 가리키도록 한다. MalwareProcess의 물리주소(0x1DABB600)에서 0x338만큼 이..
shadow 파일 패스워드를 암호화하여 보호하기 위해 만들어진 것으로 기존의 /etc/passwd파일에 있던 비밀번호를 shadow 파일에 암호화하여 저장하게 된다. 이 파일은 일반적으로 root만이 접근 권한(r)이 존재한다. 또한 패스워드에 대한 만료, 갱신 기간, 최소 기간 등의 시간상의 관리정책을 저장한다. [출처]https://soyammou.tistory.com/30 hint에서 파일의 용량이 2700이라고 했으니, 서버에서 파일 용량이 2700인 파일들을 찾아주었다. 처음에 -size 2700으로 검색해주었는데, 아무 파일도 뜨지 않았다. 그래서 찾아보니, 파일 용량의 단위를 적어주어야했다. 2700b = 2700블록 (512kbyte) 2700c = 2700 byte 2700k = 2700..
hint 파일을 열어보면 이런 hint들이 등장한다. /bin/level7은 level8의 SETUID 권한이 걸린 실행파일이었고, 이 파일을 실행시켜보았다. /bin/wrong.txt라는 파일이나 디렉터리가 없음이라고 뜨는데, 환경을 로컬에서 구축할 시, /bin/wrong.txt파일이 누락되는 오류가 생긴다고 한다. wrong.txt에 들어갈 내용은 --_--_- --____- ---_-__ --__-_- 이라고 한다. 이 내용을 참고해서 문제를 풀어보면 힌트 3. 2진수를 10진수를(로?) 바꿀 수 있는가. 힌트 4. 계산기 설정을 공학용으로 바꾸어라. 그래서 프로그래머 계산기를 이용해 띄어쓰기를 기준으로 2진수 계산을 해보았다. 109 97 116 101 이 나왔다. 이 10진수 값을 그대로 넣어..
(1) DLL 전체 은닉하기 EPROCESS의 PEB_LDR_DATA구조체 주소 변조 MalwareProcess의 dlllist를 확인해주었다. DLL 전체 은닉을 진행하기 위해 MalwareProcess의 EPROCESS를 확인해주었다. EPROCESS에서 PEB구조체는 0x388만큼 떨어져있는 것을 확인할 수 있다. PEB값을 hex로 확인해보았다. HxD로 MalwareProcess의 EPROCESS로 이동해준 후, PEB를 따라가기 위해 0x388만큼 이동해주었다. 앞의 PEB hex값과 일치하는 것을 확인할 수 있다. (0x7efdf000) 이 PEB의 가상주소값을 물리주소로 바꿔주었다.(0x11cc000) PEB의 Ldr포인터를 따라가보았다. LDR: PEB_LDR_DATA 구조체의 시작을 가..
Volatility에서의 hivescan 플러그인과 hivelist 플러그인을 Rekall에서는 hives로 확인할 수 있다. 앞 글([15] hivelist 우회하기(REGISTRY) :: Anti Memory Forensics/Volatility)에서 \Windows\System32\Config\DEFAULT를 은닉해주었으므로, Rekall을 이용해서 똑같은 필드를 은닉해볼것이다. 물리주소는 앞 글을 참고해서 사용해 줄 것이다.(Rekall에서는 가상주소만 나와있음) task를 이용해 SOFTWARE의 CMHIVE의 HiveList값을 찾아주었다. HiveList의 Flink값도 찾아주었다. Volatility에서 확인해주었던 Flink값과 동일한 것을 확인할 수 있다. C:\Windows\Syste..
hivelist도 pooltag를 변조하여 은닉 가능하지만, rekall에서는 그 방법이 통하지 않기 때문에 linked list를 따라가 변조하는 방법으로 은닉하려 한다. 두 번째 영역인 \SystemRoot\System32\Config\DEFAULT를 은닉하기 위해 첫 번째 영역인 \SystemRoot\System\Config\SOFTWARE의 Flink 값을 DEFAULT의 Flink값으로 변조해주려고 한다. hivelist의 구조체인 CMHIVE로 이동해주었고, 여기서 HiveList값을 이용해 Flink를 찾아줄 것이다. HiveList의 Flink값을 hex로 변환해주었다. 그리고 ...\SOFTWARE의 물리주소(15284010)으로 HxD를 따라 이동해주었다. CMHIVE 구조체의 시그니처..
Rekall의 netscan 플러그인은 Volatility와 같았다. 그래서 Volatility와 똑같이 진행해주었다. TCP_LISTENER의 시그니처인 TcpL을 변조해주었다. 그리고 다시 netscan을 확인해주면 System이 사라진 것을 확인할 수 있었다. NETWORK영역의 netscan 플러그인은 Volatility와 Rekall이 동일한 방법으로 은닉된다는 것을 알 수 있다. [출처] 수고가 많으십니다 PM님 ^^7 https://blog.naver.com/i1004yu/222053521821
MalwareProcess의 PID가 2752인 것을 이용해(Volatility strings 참고) memdump 명령어를 이용해 덤프를 떠주었다. 덤프 파일을 strings 명령어를 이용해 txt파일로 변환해주었다. 이 때, Rekall 창에서 실행하는 것이 아닌 새 터미널 창을 열어주어 실행시켜야 한다. 이 .txt 파일에서 MalwareProcess라는 단어를 검색해보았는데 나오지 않았다. 또한, Volatility와 전혀 다른 메모리 덤프 파일이 생성되었다. 그래서 그냥 윗부분 언저리에서 확인할 수 있는 문자열인 Wow64ApcRoutine을 찾아가서 우회를 시도하려고 한다. HxD로 이 문자열을 따라가 값을 전부 00으로 변조해주었다. 그리고 MalwareProcess를 다시 덤프 떠준 후, ..