본문 바로가기

분류 전체보기

리버싱 관련 어셈명령어 관리 프로그램 asmdic 어느날 리버싱을하면서 모르는 명령어가 발견이 됬다 분명이 몇번 봤던 명령어인데 머릿속에 들어오질 않았었던 것이다. 그래서 그때부터 인터넷과 어셈관련 문서들을 참조해 해결하곤 했었다. 이런일이 자주 일어나다보니(머리가 나빠서 OTL )아예 내가 한번 봤던 명령어는 내가만든 프로그램에 전부 저장해놓고 다음번엔 명령어 검색만으로 찾아내는식으로 만들어야겠다고 생각이 들었고 대충 어떤식으로 동작할지 그려보고 바로 코딩했다. 간략히 설명 하겠습니다. 개발언어 : python 개발도구 : pyscripter 어셈명령어는 정말 많다. 그걸 다외우려면 고생좀해야될것이다. 그리고 그걸 다외우고 다니는사람은 없을것 같은데.. 있을수도있다ㅎㅎ 무튼 저런식으로 명령어들이 있다. 저명령어가 뭐하는건지 찾아내려면 인터넷을 뒤지고 .. 더보기
pyScripter theme 회사 pc는 설정을 이미 해놨고 집에서 다시 깔고 설정을 하려고보니 그 어디에도 자료가없다. 더구나 검색해도 나오지 않는다..OTL 리버싱하다 아이디어가 떠올라 어셈공부용 에디터프로그램을 하나 만들려고했는데 벌써 이설정 하려고 검색만 2시간한듯..하.. 시간이..하.. 다음에 이런 수고를 덜고 다른분들도 보고 도움이 되었으면 해서 올립니다. 개발할때 환경 중요하지요. 개발하는 기분이 틀리더군요 물론 개인적인 생각이지만요..ㅎㅎ 우선 세팅 화면은 이렇습니다. Theme down > http://sutocom.net/2013/07/25/pyscripter-dark-theme/ 테마를 다운로드 하는 주소구요 번거로우시면 제가 올린 파일 다운받으셔서 설정하셔도 됩니다. 테마 적용은 %APPDATA%\pyScri.. 더보기
Parameter.exe 점검도구 개요 웹사이트 취약점을 자동점검과 수동점검으로 진행하게 되는데 수동점검시 수많은 파라미터를 체크하기에는 시간이 부족할 수 있습니다. 그래서 중복되는 파라미터는 제외해서 url로 재구성하도록 만들어봤습니다. 하지만 이 도구를 사용해서 점검을 할 경우 중복되는 파라미터를 제외해주기 때문에 수동점검 속도는 올려주나 취약점을 놓칠수 있는 오류를 범할 가능성이 있습니다. 그렇기 때문에 한번 발견된 종류의 취약점중에 다수의 샘플을 얻을때 사용하는것이 효율적이라고 생각됩니다. 예로 xss 또는 sql injection 등의 취약점을 a라는 파라미터에서 발견되었고 해당사이트에 다수의 xss 취약점이 존재한다고 보고서를 작성할때 사용하면 좋을것이고 반면에 사이트에서 모든 xss 취약점 인자를 빠짐없이 다 찾는방식에서는 .. 더보기
nat ip 확인 프로그램 개요 이걸 만들게 된 계기는 업무를 하다보면 NAT IP를 확인 해달라는 요청이 옵니다. 그럴떄마다 브라우저 띄우고 주소입력하고 즐찾있으시면 클릭하면되지만 번거롭습니다. 그리고 업무할때 프로그램이 한두개 띄워저있지않고 보통 기본 5~10개이상 오픈되어있습니다. 이럴때 NATIP확인하려고 웹브라우저를 띄운다면? 물론 성능좋은 컴퓨터는 해당사항이 없겠지만 제가 사무실에서 쓰는 노트북은..OTL 끔찍합니다. 정말 최소한의 프로그램만 띄워놓고 작업해야합니다. 웹브라우저사용과 콘솔로 사용하는것에대한 비교를 해봤습니다. 1. 브라우저 띄운다. 2. URL Request하여 Nat ip 홈페이지에 접속한다. 이두가지만 볼때 별거아닌것 같지만 컴퓨터 사양이 좋지 않거나 창이 많이 띄워저 있을때 엄청나게 느려집니다. 윈.. 더보기
[Exploit] BufferOver Flow - Easy Rm to MP3 Converter 버퍼 오버플로(buffer overflow) 또는 버퍼 오버런(buffer overrun)은 메모리를 다루는 데에 오류가 발생하여 잘못된 동작을 하는 프로그램 취약점이다. 컴퓨터 보안과 프로그래밍에서 이는 프로세스가 데이터를 버퍼에 저장할 때 프로그래머가 지정한 곳 바깥에 저장하는 것이다. 벗어난 데이터는 인접 메모리를 덮어 쓰게 되는데 다른 데이터가 포함되어 있을 수도 있는데, 손상을 받을 수 있는 데이터는 프로그램 변수와 프로그램 흐름 제어 데이터도 포함된다. 이로 인해 잘못된 프로그램 거동이 나타날 수 있으며, 메모리 접근 오류, 잘못된 결과, 프로그램 종료, 또는 시스템 보안 누설이 발생할 수 있다.버퍼 오버플로가 코드를 실행시키도록 설계되거나 프로그램 작동을 변경시키도록 설계된 입력에 의해 촉발.. 더보기
[Exploit] ShellCode 작성하기 간단히 쉘코드 만드는 방법입니다. [그림.1] 간단히 cmd /c calc 명령을 실행해서 계산기를 띄우는 쉘코드를 작성 할 것입니다. [그림.2] 우선 그림1에서 브레이크 포인트를 걸고 디버깅 모드로 전환하고나서 우측 마우스 클릭에 보면 어셈블리 항목이 있습니다. 그 항목으로 이동하면 그림.2와 같은 화면이 나오게 됩니다. 이 상태에서 또 우측 마우스 클릭을 하면 주소 표시, 소스코드 표시, 코드바이트 표시 등의 항목을 볼 수 가있는데 보시고 싶은 내용을 체크하면 다양하게 볼 수 있습니다. 이제 본격적인 쉘코드를 작성하겠습니다. 우선 쉘코드는 최대한 간략하게 코드를 최소화 시켜서 만들어 주는게 좋습니다. 그림.2에서 체크박스 안의 코드만 잘라서 메모장에 붙여 넣습니다. 그런데 하단 call쪽에 보면 W.. 더보기
UPX Manual unpacking 1. 개요 실행파일을 UPX로 Packing 하여 Unpacking 과정을 상세 분석하여 실행파일의 압축해제 원리를 파악한다. 파일 압축기법은 여러가지가 있으며 실행가능한 압축파일 또는 비실행 압축파일이 있습니다. 예로 실행가능한 압축파일은 UPX등이 있으며, 비실행 압축파일은 알X 빵X등이 있습니다. 여기서 실행가능한 압축파일 같은 경우는 손실 압축기법을 사용하여 실행가능한 형태의 파일의 용량을 줄여 압축을 하며 비손실 압축기법은 데이터손실 없이 압축되는 기법으로 알X 빵X등에 사용됩니다. 2. 테스트 환경 (해당 될시에만) 운영 체제 (OS) : Windows XP Service Pack 3 분석 도구 : IDA Pro 6.1, Hxd, PEView 분석 대상 : 지뢰찾기 게임(윈도우용) 3. UPX.. 더보기
[악성코드]3월20일 방송사 및 금융권 악성코드 ApcCmdRun.exe ※ 주의사항 아래 공격 코드는 연구 목적으로 작성된 것이며, 허가 받지 않은 공간에서는 테스트를 절대 금지합니다. 악의 적인 목적으로 이용할 시 발생할 수 있는 법적 책임은 자신한테 있습니다. 이는 해당 글을 열람할 때 동의하였다는 것을 의미합니다. 해당 문서의 저작권은 해당 프로젝트 참여 저자들에게 모두 있습니다. 외부에 공개시 법적 조치가 가해질 수 있습니다. 개요 악성코드 개요 3월20일 대란으로 유명한 darkseoul 샘플 입니다. MBR을 파괴하고 나서 물리드라이버(하드디스크)까지 파괴를 시키는 악성코드입니다. 생성파일 정보 요약 감영증상 요약 MBR과 HDD를 파괴하고 강제로 리부팅하여 시스템을 파괴합니다. VirusTotal 점검 내역 https://www.virustotal.com/ko/.. 더보기
[악성코드]Backdoor.SdBot.aa/분석 1. 개요 해당 악성코드는 Explorer.exe windows작업관리자가 시작되면 자동실행 된다. 즉 컴퓨터가 재부팅되면 c"\windows/system32/System32.exe 프로세스를 자동실행하여 백도어의 역할을 하게 되며, 특정 명령어를 실행하며, 업데이트 기능도 갖고 있다 (1) 생성파일 정보 요약 [그림.1] 2. VirusTotal 점검 내역 https://www.virustotal.com/ko/file/e3b876df63fd0e1313be0dd416f654691193415f0ab6814d8be7c1ffe2f2bb8b/analysis/1362309628/ [그림.2] 3. 상세 분석 내용 (1) Manual FSG Packing EXEINFO_PE 정보를 확인하면 해당 파일이 FSG V1.. 더보기
API 정리 CreateThread HANDLE CreateThread ( LPSECURITY_ATTRIBUTES lpThreadAttributes, / /​​ 보안 설명자 DWORD dwStackSize / / 초기 스택 크기 LPTHREAD_START_ROUTINE lpStartAddress, / /​​ 스레드 기능 LPVOID lpParameter, / /​​ 스레드의 인수 DWORD dwCreationFlags, / /​​ 생성 옵션 LPDWORD lpThreadId / / 스레드 식별자 );매개 변수lpThreadAttributes1 개의 구조에 대한 포인터를 지정합니다. 이 구조에서 자식 프로세스가 얻은 핸들을 상속 할 수 있는지 여부를 지정합니다. 이 매개 변수 NULL을 지정하면 취득한 핸들을 상속 할.. 더보기