유저레벨에서 강제 리부팅



커널에선 강제 리부팅 할 수 있는 방법이 참 많은데
유저에선 방법을 찾기가 참 쉽지 않죠 -_-;
기껏해야 ExitWindowsEx 정도?

얼마전에 고민을 해보다가 한번 이런 방법은 어떨지 생각해봤습니다.
윈도우 중요프로세스를 날려버리는거죠.
안 돌아가는 머리로 끙끙대다가 생각난 개꽁수인데
해보니 잘 먹히네요 ㅎㅎ

즉, csrss.exe 같은넘을 터미네이트 시켜버리면 아주 멋지게 리붓이 됩니다 :)
그런데 csrss.exe 는 시스템 권한이 필요하므로 일반 어드민도 건들 수가 없죠?
(작업관리자로 터미네이트 해보신분들, "중대한 프로세스니 건들지마 ㅅㅂ" 라는 메시지 보셨을겁니다)

따라서 이넘을 조지고 싶으면 SeDebugPriviledge 권한을 얻어야 합니다.
그넘을 얻은후 가볍게 터미네잇! 하시면 윈도 바탕화면이 없어지고 아름다운 검은화면으로
부팅됩니다. :)

한번 해보겠습니다.

먼저 SeDebugPriviledge 권한을 얻는 코드입니다.
다른 권한을 얻을때도 사용되는 코드라 모듈화된것으로 붙혀놨습니다.
인자로는 SE_DEBUG_NAME 혹은 "SeDebugPriviledge" 을 주시면 됩니다.

#define SE_DEBUG_NAME   _TEXT("SeDebugPriviledge"); 로 전처리 되어있으니까요.





이제 저 함수를 초반에 한번 불러주시고 csrss.exe 를 터미네이트 시키시면 되겠죠.




어차피 리붓시킬 코드니 if (hPsApi) ... 따위의 검사 루틴은 사용하지 않았씁니다.
그리고 csrss.exe를 찾는모습을 되도록이면 공개하고 싶지 않아서, 프로세스 리스트의 
배열순서를 감안하여 csrss.exe 위치인 dwProcesses[3] 이라는 쌍무식한 짓을 했습니다.

한번 해보세요.
PC가 맛탱이 가는거는 책임 못지니 버철PC등에서 하시면 좋겠습니다 :)


window31. 2008년 9월
Posted by window31


트랙백 보낼 주소 : http://window31.com/trackback/207 관련글 쓰기

댓글을 달아주세요

  1. 2008/10/16 21:10
    댓글 주소 수정/삭제 댓글
    저희 집에서는 UNKNOWN_HARD_ERROR 블루스크린이 발생하더군요.
    • 2008/10/18 17:59
      댓글 주소 수정/삭제
      아하 그렇군요!

ZoomIt

2008/09/21 18:08

ZoomIt






프리젠테이션 하실 때, 코드 내용 같은 조그마한 글자까지 청중들에게 보여줄 때 유용한 툴입니다.
ZoomIt 이라고 FileMon, DbgView 등을 만든 SysInternals 에서 만든 건데요.
이걸로 PPT 하면 내용에 대한 질문보다, "화면 확대 그거 어케 하신거예요?" 의 질문이 더 많은
적도 있었다는 lol;;

나온지는 오래되었는데 생각외로 모르시는 분이 많으신거 같아서
좋은 툴 공유를 위해 올립니다.

사용법은 아주 쉽습니다. 한번 실행해서 메모리에 상주시킨뒤(트레이 아이콘에 뜹니다)
CTRL 1을 누른채로 화면을 이리저리 움직이면 됩니다 (펜 사용도 가능하기 때문에
밑줄을 친다거나 글을 쓸수도 있습니다)

저는 2년여전 쯤 전에 당시 안랩에 계시던 이태화님께서 파일시스템 드라이버 세미나 할때
처음 보았습니다 저도 첨 보고 신기했죠 :p

PT 도중에 화면을 늘렸다 줄였다를 매우 손쉽게 하기 위한 툴로는
이거보다 나은게 없는 거 같습니다.
저도 이제 이거 없으면 PPT 못합니다 :$

사용자 삽입 이미지




ps SysInternals 홈피 가도 받을 수 있습니다.
    아참 마소에 흡수된지 오래됐으니 이제 마소 홈피죠 ㅎ

Posted by window31


트랙백 보낼 주소 : http://window31.com/trackback/205 관련글 쓰기

댓글을 달아주세요

  1. 2008/09/21 19:41
    댓글 주소 수정/삭제 댓글
    저도 보안관련 세션 발표할때 많이 사용합니다.^^
    • 2008/09/29 01:03
      댓글 주소 수정/삭제
      네 참 좋은 툴이죠
  2. 2008/09/29 15:19
    댓글 주소 수정/삭제 댓글
    푸하하...화면 사진 보고 한참 웃었어요.
    'ㅅㅂ' ..
    한동안 머릿속에서 맴돌듯.. ㅋㅋ
    • 2008/09/29 22:47
      댓글 주소 수정/삭제
      ㅎㅎ
      온라인게임이 저의 언어생활을 망쳐놓는군요 lol

유행을 파악하자



 

좀 지난호 기사의 필자메모인데요, 기고물을 전체 모두 블로그에 싣는건 좀 그래도
이렇게 단문의 수필성 글만 추려내서 지난 내용도 지금처럼 다 실어달라고 해주시는 분이 계셔서
걍 쪽팔림을 무릅쓰고 올립니다(머 썰한 블로그에 데코레이션도 되고요 :p )


필자 메모
강병탁 / window31 (window31@empal.com / www.window31.com)


월간 마이크로소프트웨어 2008년 2월호 ("Code Redirect, Fake Code, Allocate 기법 분석 中)


인생에 있어 ‘유행’이라는 것은 시대에 뒤떨어지지 않는 삶을 영위하기 위해 필수적으로 파악하고 있어야 할 테마라고 생각한다. 일자바지에 이어 힙합바지가 등장하고 힙합바지가 업그레이드 되어 카고바지가 등장했다. 대중 가수는 발라드 가수에서 댄스 가수로 그리고 테크노에서 퓨전으로 점점 다양화 되어 간다. 이 유행에 따라가지 못하는 대중들은 대중음악이라는 문화라는 것에서 멀어져 가게 됨을 느낀다. 유행이 지난 옛 것을 외치려 해 보았자 주변인들에게 외면당할 뿐이다. 하나의 트렌드에 동참하기 위해선 현재의 ‘유행’이 어떤 포인터를 가리키고 있는지 반드시 파악해야 한다.

해킹과 보안 분야도 마찬가지이다. 예전에는 타 프로세스의 나의 코드를 가동하기 위해서는 DLL을 이용해야 했고, DLL Injection이라는 기법 자체가 존경받고 추앙받던 시절이 있었다. 개발자들은 DLL을 사용할 줄은 알았지만 그것을 해킹/보안 분야에서 이런식으로 활용된다는 것은 잘 몰랐으며 누구나 DLL기법에 감탄하곤 하던 때였다. 하지만 요즈음 해커들에게 DLL Injection 기법은 구식 기술이다. DLL을 넣으면 DLL 리스트에 너무도 쉽게 노출되기 때문에 좀더 은밀하게 내 코드를 가동할 수 있는 새로운 ‘유행’으로 전환한 것이다.

예를 들어 요즘의 ‘유행’ 중 하나는 리모트 스레드이다. 타 프로세스에 메모리를 할당해 놓고 나의 코드를 풀어넣은 뒤 리모트 스레드를 돌려버리는 기법이 바로 그것이다. 그렇게 되면 방어하는 입장에선 외형상 해커의 코드를 발견하기가 매우 어렵게 되므로 공격에 좀더 효율적일 수 있다. 이같은 해커들의 ‘유행’을 따라가지 못하는 보안 개발자나 리버스 엔지니어들은 DLL Injection에만 매여 있기 때문에, 좀더 업그레이드된 트렌드를 향유하지 못하게 된다.

이번 FSG 문제도 마찬가지이다. 비록 타 프로세스에 코드를 풀어넣지 않았다 뿐이지, 코드 섹션이 아닌 곳에 메인 코드를 심어놓음으로써 최신 ‘유행’으로의 전환을 보여주었다. 그리고 할당된 코드를 찾지도 못한 분석가는 ‘유행’에 뒤떨어져 있었을 것이며 문화에 동참할 수 없게 되었다. 이처럼 인생의 어떤 분야에서든지 선두 그룹과 함께 달리기를 하기 위해선 현재 ‘유행’의 트렌드를 파악하는 것은 매우 중요하다.
Posted by window31


트랙백 보낼 주소 : http://window31.com/trackback/202 관련글 쓰기

댓글을 달아주세요

계산기 커스터마이징




오랫만에 리버스 엔지니어링 관련 글을 쓰게 되는 것 같네요 ^^;

오늘의 주제는 1byte Patch 입니다.
저희팀에서 같이 일하는 haru 라는 분이 예전에 간단히 만든건데요.
간단하면서도 나름 재미있는 부분이라 한번 설명해 보겠습니다.

윈도우즈의 계산기 calc 많이들 사용하시죠.

특히 개발자나 리버서들은 16진수 사용이 필수이기 때문에 보기 - 공학용 으로 변경하셔서
많이 사용하시곤 합니다.

사용자 삽입 이미지


근데 공학용 으로 셋팅을 바꾸면 윈도우즈에서 그 설정값을 기억하고 있기 때문에
계속 저런 모양이 되지만

16진수인 Hex 를 선택해도 종료한 뒤 다시 실행하면 Dec 로 바뀌어져 버립니다.
그래서 실행할때 마다 Hex로 바꾸어야 하는....
졸~~ 짜증나죠  ㅅㅂ

그래서 계산기 Dialog 가 셋팅될때 라디오버튼을 아예 Hex가 디폴트가 되도록 바꾸는 방법이
있습니다. 그 방법은? 초기화 코드에서 처음에 UI 설정을 할 때 10진수로 라디오버튼을 셋팅하는
부분을 16진수로 바까버리는 방법입니다.

그 부분을 한번 뜯어가 볼까요.

아래 이미지를 보시면 UI 초기화 루틴인데요,  0x1001DCD 번지의 콜문을 보세요.

사용자 삽입 이미지



여기가 계산기 진법 셋팅하는 루틴입니다. 인자는 진수고요. 인자를 esi에 넣고,
esi를 2, 8, 10, 16과 각각 비교하는 코드가 보입니다. 그 숫자는 2진법, 8진법, 10진법, 16진법에
대한 숫자겠죠 :)



사용자 삽입 이미지


그러므로 0x1001DCB에 들어가는 push 0Ah 를 push 10h 로 변경시켜주면
매번 16진수로 셋팅이 되어서 실행이 되겠죠 0x0A 를 0x10 으로 바꿔주기만 하면 됩니다.
간단한 1 byte patching 이죠 :p

아주 쉬운 내용입니다. 이것으로 앞으로 매번 실행시마다 16진수가 디폴트인 채로 사용할 수
있겠죠. 다음에는 몇가지 코드를 주입해서 쵸큼 더 지능적으로 바꿔보도록 하겠습니다. :)


window31. 2008년 9월.

Posted by window31


트랙백 보낼 주소 : http://window31.com/trackback/200 관련글 쓰기

댓글을 달아주세요

  1. 2008/09/16 14:29
    댓글 주소 수정/삭제 댓글
    오옷..계산기 사용하면서 불편하다 생각은 했지만
    패칭해볼 생각은 안해봤었네요ㅠㅠ

    좋은정보감사합니다.
    바로 계산기 패칭한 ㅎㅎ
    • 2008/09/18 02:11
      댓글 주소 수정/삭제
      아랫 분이 한겁니다 ㅎ
      2부는 곧.
  2. 하루
    2008/09/17 08:43
    댓글 주소 수정/삭제 댓글
    ㅊㅈ다!!
    • 2008/09/18 02:10
      댓글 주소 수정/삭제
      자화자찬이냐 ;
  3. 2008/09/17 11:18
    댓글 주소 수정/삭제 댓글
    정작 나같은 사람은 계산기 파일을 어떻게 저런 코드로 열 수 있는지 조차 모른다는...ㅠㅠ(acroedit 같은걸로 여니 이상한 글자만 나와--ㅋ)
    • 2008/09/18 02:10
      댓글 주소 수정/삭제
      머 형은 저런거 안 열어도 돈 마니 버시자나요 ㅎㅎ
  4. neo
    2008/09/19 11:07
    댓글 주소 수정/삭제 댓글
    오~~
    별 생각 못하고 있었는데...

    저도 오늘 출근 하자 마자 해버렸다는...

    멋진 blog 잘 보고 있습니다.

    몰래몰래 눈팅하던.. 나그네 1인.ㅡㅡ
    • 2008/09/21 18:23
      댓글 주소 수정/삭제
      별거 없는 블로그 방문해 주셔서 감사합니다 ^^;
      2부를 써야 하는데 귀차니즘의 압뷁 ;
  5. BlackMusic
    2008/10/12 08:22
    댓글 주소 수정/삭제 댓글
    주인장님 잘봤습니다.^_^)^

    제 블로그에 출처를 남기고 가져가도 되나요..?
    • 2008/10/15 00:53
      댓글 주소 수정/삭제
      네~ 출처만 있다면 어디든 퍼가셔도 괜찮습니다.
      별 대단한 글도 아닌데요 몰..ㅎ

마소 9월호



........에서 저는 쉽니다.
이유는 제가 마감을 지키지 못한 탓 lol

따라서 10월호부터 새연재 "올리디버거 플러그인의 구조와 원리"가 시작될 예정이고요.
Eh 10월호는 보안 특집을 한다고 해서 기획기사 하나를 더 요청을 받았습니다.
여러 보안 저는 챕터 중 "온라인 게임 보안"에 대해 작성할 예정입니다 (뭘 쓸까나...흠냐 ;; )

보안 특집이라니 다른 좋은 기사가 많이 실릴듯 하네요 ^^
마소에서도 해킹 보안 연재물들이 더욱더 풍성해지기를 바라며.
Posted by window31


트랙백 보낼 주소 : http://window31.com/trackback/198 관련글 쓰기

댓글을 달아주세요

  1. 2008/09/10 15:47
    댓글 주소 수정/삭제 댓글
    ㅋㅋ 제가 9월호 받아들고.. 아무리 뒤져도..

    형이름이 없어서.. 좀 궁금했었는데.. 이런이유가.. ㅋㅋㅋ
    • 2008/09/15 16:13
      댓글 주소 수정/삭제
      미안...허다 ;
  2. 2008/09/10 16:17
    댓글 주소 수정/삭제 댓글
    비밀댓글 입니다
    • 2008/09/15 16:13
      댓글 주소 수정/삭제
      비밀댓글 입니다
  3. 2008/09/11 10:18
    댓글 주소 수정/삭제 댓글
    여러 보안 저는 챕터 중 ???? 헤벌레~~ :)
    • 2008/09/15 16:13
      댓글 주소 수정/삭제
      이런 ㅅㅂ 너랑 홍은 오타찾기 대마왕인듯...;
  4. 2008/09/19 10:49
    댓글 주소 수정/삭제 댓글
    한글자~ 한글자~ 정독하는 관심이라고 해줘요~~ㅋㅋㅋ :D

GS칼텍스 사태

2008/09/08 22:43

GS칼텍스 사태




GS칼텍스 사태. 뉴스를 보셔서 다들 아시겠죠. 처음엔 대부분이 다 "또 해킹 사건인가" 했는데
알고보니 내부에서 저지른 자작극이었네요. 참 캐어이없고 말세다 라는 중얼거림만이 반복되는
사건입니다.

여기서 우리가 느낄 수 있는건, 사이버 공간이건 물리적 공간이건 더이상 믿을만한 곳이 없다는
겁니다. 민간인들은 그 회사를 믿고 개인정보를 입력하면서 회원가입을 하는건데 그 회사에서
그걸 관리하는 넘은 그 자료를 어따 써먹을지 알수가 없다는거죠. 이번 사건 같은경우는 저지른
넘들이 워낙 ㅄ같이 작전을 수행한 바람에 딱 걸렸지만 수백만건 이상 되는 국민들의 개인정보를
관리하는 곳은 GS칼텍스 하나만이 아니죠. 조용히 은밀하게 이상한곳에 돈 받고 자료를 빼돌린
놈들이 반드시 없다라고는 말하기 힘들다는 생각이 듭니다.

그래서 우리가 해야할 건 무엇일까요. 이 글을 읽으시는 분들은 그런 대형 포탈 혹은 서비스
업체를 완전히 신뢰하시나요? 저는 쵸큼은 그렇지 않습니다. 예를 들어 이메일이라는 매개체는
더욱 그렇습니다. 우리는 흔히 메일은 완전한 개인정보이며 자기 자신만이 열람할 수 있다고
생각하죠. 물론 그게 일반적인 상식입니다.

하지만 이메일도 어딘가의 서버에 데이터가 존재하고 있으며, 그 메일서버는 우리가 이메일을
사용하고 있는 서비스사의 손아귀에 있습니다. 그리고 그 서비스사에는 그 메일서버를 관리하는
사람이 있겠죠. 혹은 그 메일 데이터가 기록된 DB에 접근권한을 가지고 있는 사람도 있을 수
있겠죠. 이렇게 생각해 보면 내 이메일은 완전히 나만의 것이라는 생각이 계속 들까요?

보통 온라인 상에서 어떤 나만의 파일을 보관하고 싶을 때 사람들은 나의 메일로 그 파일이나
내용을 전송해 놓죠. 그 내용은 그냥 괜찮은 자료라서 퍼온거일 경우도 있지만 내가 작성한
아직 외부에 공개하지 않은, 혹은 앞으로도 공개하지 않을 그런 민감한 아니면 귀중한 자료일
공산이 큽니다. 예전에 해커들에게 그런 얘기가 퍼진적이 있습니다. 몇몇 유명 해커들은 정부기관
등에 블랙리스트로 올라가 있기 때문에 때로는 공권력에 힘입어 그들의 메일 내용을 모니터링
당한다거나 첨부파일 등을 살펴보기도 한다는 얘기가 그거입니다. 해커들은 나라에서 가져가면
참 좋아할만한 자료들을 많이 공유하고 있으니까요. 해외에서 들은 얘기고 우리나라는 설마
그러지 않겠지만 어쨌든 참 끔찍한 얘기죠.

그래서 해커들은 이메일을 완전히 신뢰하지 않기 때문에 이메일로 전송하는 민감한 데이터는
반드시 압축을 한 뒤 암호를 걸어놓는다고 합니다. 파일을 누군가가 빼가더라도 그 내용을
알아볼 수 없게 말이죠.암호 길이는 당연히 무진장 길어야겠죠. 안그러면 brute force 로
풀려버립니다. 알고리즘을 아무리 정교하게 짜도 푸는 시간이 만년은 소요될만큼 암호를 길게
만들어주는 것이 좋습니다.

저는 이러한 습관을 보통 사람들도 적용을 해야 한다고 봅니다. 웬만하면 자신의 메일로
전송하는 중요한 자료는 전부 압축을 걸고 암호를 걸어놓으세요
. 물론 서비스사에서는
기본적으로 관리자라도 그런 개인정보를 함부로 열람하지 못하게 되어 있지만, 관리자가
불순한 마음을 먹고 강제로 정보를 보려고 하면 또 관리자의 능력에 따라 가능할 수도 있겠죠 ;;;
그래서그걸 빼 본다 하더라도 내용을 알 수 없도록 해놓는게 필요한 거 같습니다.

유료로 월 사용료를 지불하는 개인 FTP도 마찬가지입니다. 남들에게 보이면 안되겠다 싶은
자료는 엥간하면 서버에 장기간 보존하지도 말고(메일도 마찬가지) 특히 첨부파일은 반드시
압축후 암호를 걸어두세요(암호는 긴걸로)

사실 이런 내용을 쓰는 것 자체가 같은 업계에 사는 사람끼리 해서는 안될 말이라는 생각이
들기도 합니다. GS칼텍스 사건 때문에 더욱더 침울해진 보안 담당자도 많아졌습니다. 물론
저는 아무것도 아는게 없는 일개 보안 프로그래머 나부랭이지만 이런 사건이 많아지면 많아질수록
참 속상해 집니다. 보안 업계는 해킹이라는 살떨리는 화두가 항상 꼬랑지를 물고 다니므로
대한민국 구석탱이에서 기침만 한번 잘못해도 "해해해해해해~~~해~~~익힝~" 관련 종사자들이
다같이 좃돼는 사건이 비일비재하게 발생하는 분야입니다.

기사를 읽고 나서 한편으로는 그 자회사 사장님이 제일 불쌍하다는 생각이 드네요. 그 사람은
대체 몹니까. 밤에 잠 잘 자고 일어나보니 구속입니다 -_- 도덕 불감증을 가진 ㅈ같은 직원 하나
잘못 되서 인생 엿되네요. 보안업계(사실 시스템 관리자지만 머 그게 그거인 경우도 있으므로)에서
도덕성이라는 것은 정말 중요한 것 같습니다. 뿌리부터 썩은넘들은 손에 칼을 쥐어주면 안됩니다.
이 사태로 인해 각 분야 시스템/보안/DB 담당자들이 피해보는 일이 없기를 바랍니다.


window31. 2008년 9월.

Posted by window31


트랙백 보낼 주소 : http://window31.com/trackback/199 관련글 쓰기

댓글을 달아주세요

  1. 2008/09/09 08:38
    댓글 주소 수정/삭제 댓글
    그나저나 GS칼텍스가 집단소송 수조원짜리 당할거라는데..에그..근데 자작극하고 왜 신고한거래? 그냥 몰래썼으면 아무도 몰랐을텐데.--ㅋ
    • 2008/09/10 12:56
      댓글 주소 수정/삭제
      그러나까 작전 실패 ㅄ 이라는 ㅎ

로드런너

 | 잡담
2008/09/01 12:42

로드런너



사용자 삽입 이미지


추억의 게임 로드런너입니다.
누가 해서 올린건지 모르겠는데 실력이 완전 캐 쩔어요 -.-
너무 잘해서 퍼왔습니다 ;;

로드런너 옛날에 진짜 많이 했었는데 (전 주로 로드런너2 를)
개발자의 아이디어와 퍼즐 기획력이 정말 충실한 게임인 거 같습니다.

http://blog.naver.com/esperancer1?Redirect=Log&logNo=120054842339
이 블로그에 추억의 고전게임이 많이 있으니 향수가 그리우신분 방문해도 괜찮을듯 싶네요

Posted by window31


트랙백 보낼 주소 : http://window31.com/trackback/196 관련글 쓰기

댓글을 달아주세요

  1. 2008/09/01 16:51
    댓글 주소 수정/삭제 댓글
    마치 로드러너들이 야마카시를 하는것처럼 보이는군요 -_-; 대단
    • 2008/09/08 22:56
      댓글 주소 수정/삭제
      .컴 -> .com 으로 바꿔서 블로그 구경 잘 했습니다
      좋은 내용이 많네요 앞으로 자주 방문할께요^^
  2. 5i9ma
    2008/09/12 08:53
    댓글 주소 수정/삭제 댓글
    저런 말도 안되는 실력이 +__+;
    • 2008/09/15 16:14
      댓글 주소 수정/삭제
      스피드핵으로 느리게 해놓고 게임한건 아닐까 하는 생각도 ;

BLOG main image
by window31

카테고리

분류 전체보기 (187)
Reverse Engineering (19)
C, C++ (15)
Kernel (8)
Guitar (16)
잡담 (58)
etc (5)
who am i (5)
보안 이야기 (39)
Tools (2)
월간 마이크로소프트웨어/.. (19)

글 보관함