네 여러분 반갑습니다.


오늘 포스트는 짧을 것 같은데요.

그래도 시작해 봅시다!



Python에서는 JSON 형식의 파일을

지원해주는 모듈을 자체적으로

내장하고 있습니다.


바로 요녀석 입니다.


import 해주고, 「help(json)」 이라고 입력 해주시면

다음과 같이 json 모듈에 대한 

자세한 설명을 확인 할 수 있습니다.


json을 사용하기 위해서는

Python에서 「List」 「Dictionary」 를 알고 계셔야 합니다.

이유는 바로 json 형식의 파일이 다음과 같은 구조로 되어 있기 때문입니다.


보기 어려우시다구요!?

다음과 같이 바꿔보면 어떨까요


[{"module":"IpInformation"}]


json 파일의 경우 위와 같은 형식으로

저장이 되기 때문에 List와 Dictionary를 알고 계셔야 합니다.


이제 우리가 저번 포스트에서 했던 GitHub 연동 프로그램에 사용할

JSON 형식의 설정 파일을 만들어 보겠습니다.

※ 지난번 포스트가 궁금하시거나 알고 싶으신 분들은 다음의 링크에서 포스트 확인 후 와주세요!


http://widevery.tistory.com/16?category=818811

http://widevery.tistory.com/17?category=818811


여기서 부터는 각자가 추가하고 싶고 실행할 모듈들에 대한

설정 파일을 만들어 주시면 되는데요.

저 같은 경우는

1) 프로그램 배포

2) Target PC에서 실행

3) Target PC의 Platform정보 확인 후 IP 정보 GitHub로 업로드

4) 업로드 후 IP "0.0.0.0" Port 지정 해서 Python TCP Server 실행

5) 프로그램 배포자가 자신의 GitHub 확인

6) 확인 후 IP와 Port 번호를 통해 Python TCP Client로 Target PC 연결

7) 배포자 PC에서 입력한 메뉴(혹은 명령어)에 따라 해당 모듈들 실행

* 필자가 사용한 기능을 가진 모듈들 - 「IpInformation」「Keylogger」「KeyDump」「ScreenShot」「ScreenShot」「dirlister」「environment」

* 시간상 급하게 올리다 보니 더 추가하지를 못 했는데요 여기에 「랜섬웨어」「윈도우권한상승」「백도어」등의 기능들도 추가 할 수 있습니다.

http://widevery.tistory.com/16?category=818811

위 링크의 포스트 시작 시 말씀드렸듯이 어디까지나 이 글의 목적은

개인 공부 및 교육용 입니다.

언제든지 문제가 생길 경우 바로 삭제 조치 하겠습니다.

또한 악용하시는 경우 책임은 본인에게 있습니다.


사설이 길었군요

본격적으로 필자가 사용하기 위해 모듈들을 불러올 수 있도록 한

JSON 형식의 설정 파일들에 대해 알아 보겠습니다.


우선 이번 포스트의 위쪽에 JSON에 대해서 설명하면서

"module":"IpInformation"

이라고 되어 있는 사진을 하나 보셨을겁니다.

해당 파일은 IpInformation.py 파일을 불러오는 역할을 합니다.


나머지도 위 사진과 형식은 같습니다.

이름만 틀려질 뿐이지요.



위 두가지 이외에도 다음과 같이


[{"module":"ScreenShot"}]

[{"module":"KeyDump"}]

[{"module":"Keylogger"}]

까지 해서

총 6가지의 설정 파일을 만들어 주었습니다.

당연히 파일 확장자 형식은 <ConfigureFileName>.json 형식입니다.

<ConfigureFileName>은 설정 파일 이름이면서 첫 번째 포스트에서

trojan_id 라고 했던 부분에서 지정해주고

trojan_config = trojan_id.json 이 되는데

그게 여기서 사용됩니다.

그 부분을 고려해서 json 형식의 설정 파일의 이름을 지정 해주세요.




이렇게 해서 GitHub 연동 프로그램의 설정파일에 대해서 까지 알아 보았습니다.


다음 포스트에서는 mainInformation, environment, dirlister 모듈에 대해서 알아 보겠습니다.


※ [출처] Black Hat Python

※ [출처] Everything 블로그 본인






여러분 안녕하세요

활짝웃자입니다.

너무 오래간만이어서 죄송하기도하고 필요에 의해서 하.ㄴ.. 해서

다시 오게 되었습니다.


잡담은 여기까지 하도록 할게요!


GitHub 연동 프로그램은 맞는데

GitHub 연동해서 상대 PC의 정보를 파싱해서

GitHub로 보내고

프로그램을 심은 쪽에서는

GitHub만 확인하고 정보를 탈취하는 프로그램입니다.

해당 게시글은 몇 개의 글로 나누어질 예정입니다.

만약 이 글이 문제가 될 경우 바로 삭제 조치 하도록 하겠습니다.


※ 이 게시글은 어디까지나 교육 및 공부를 목적으로 만들어졌으며

악용하시라는 의도로 만들어진 것이 아닙니다.

만약 악용하시더라도 그 책임은 본인에게 있음을 알려 드립니다.





깃허브란?

깃허브는 분산 버전 관리 툴인 깃을 사용하는 프로젝트를 지원하는 웹호스팅 서비스이다. 루비 온 레일스로 작성되었다. GitHub는 영리적인 서비스와 오픈소스를 위한 무상 서비스를 모두 제공한다.

...라고

우리의 'Google'!에 검색 해보니 나오더라구요 :)........

자세히 알고 싶으신 분은 GitHub를 따로 검색해주세요!


Python 에는 GitHub를 사용할 수 있도록 모듈이 존재합니다.

다음과 같습니다. :)


(모듈 설치는 검색 해보면 많이 나와있고, 잘 나와 있으니 찾아보세요 :) !)


위 사진과 같이 github3 모듈을 import 하면 GitHub와 연동할 준비를 하게 됩니다.


이제 GitHub와 어떻게 연동을 하고, 무엇을 하는지 생각해봅시다.

연동을 위해서는 (자신의) GitHub ID와 PW가 필요합니다.

다음으로 Repository가 필요하고 정보를 저장할 Repository가 필요합니다.

정보 저장을 위한 Repository는 기본 베이스 Repository의 하위 디렉터리 형식으로 생성해 줍니다.

(자세한 것은 검색 해보시면 나와 있어요!)


그 외에 또 필요한 것을 생각해 봅시다.

우리가 원하는 기능을 하는 모듈이 Python에 없는 경우가 있습니다.

그런 경우 해당 모듈을 설치를 하거나 만들어야 되는데

모듈을 설치 하는 것도 편하지만 이번에는 만들어서 GitHub에 저장 후,

Target PC에서 GitHub 연동 프로그램을 실행하여

필요한 모듈을 GitHub에서 불러오기도 하고, Target PC의 정보를

GitHub에 업로드 시키는 기능도 필요하다고 생각합니다.

그리고 무작정 GitHub에 업로드 하는 것이 아닌 base64 암호화 기법을 사용해

암호화 된 상태로 보내도록 합니다.


또한 GitHub에 저장 되어 있는 필요한 모듈을 불러올 때는

Python에서 지원 해주는 json 모듈을 활용하여

json 형식의 파일로 불러올 모듈을 지정하고,

json 형식의 설정 파일을 읽어 들여서 해당 설정 파일의 모듈을

GitHub에서 불러들여서 실행하는 형태가 되면 좋다고 생각합니다.


그러기 위해서 필요한 모듈들은 다음과 같습니다.



위 사진의 「from github3 import login」 부분은

github3 모듈의 login 기능만을 사용하겠다는 선언입니다.


이제 모듈들은 준비가 되었으니

프로그램에서 사용할 「변수」를 선언합니다.


다음은 변수들 선언과 사용 용도입니다.








여기까지가 GitHub 연동, Target PC의 정보 수집을 위해

필요한 모듈들과 프로그램에 필요한 변수 선언이었습니다.


다음 글에서는 GitHub 연동 프로그램(기존의 Trojan 수정)의

기능들에 대해서 알아 보겠습니다.



※ [출처] Black Hat Python

※ [출처] Everything 블로그 본인



+ Recent posts