본문 바로가기

2016/01

남의 컴퓨터를 내 마음대로 다룬다? - Python Reverse Shell_004 - Client Connection to Server (파이썬 리버스 쉘 - 클라이언트에서 서버에 연결하기) 지난 시간에 이어서 이번 시간에는 클라이언트(타겟팅 컴퓨터 혹은 내가 조정하고자 하는 컴퓨터)에서 실행시킬 코드를 다루어 보도록 하겠습니다. 우선 아래와 같이 필요한 모듈을 import 해줍니다. ▼ 소켓을 실행시켜 변수 s 에 넣겠습니다.▼ 서버(내 컴퓨터)의 아이피 주소를 호스트에 할당해 줍니다. 여기 있는 아이피로 클라이언트(숙주 컴퓨터)가 찾아오게 하는 겁니다. 물론 아래와 같이 자신의 아이피를 고스란히 누설하는 크래커는 없을 것입니다. 보통은 다른 루트를 여러번 경유하게 하거나, 중간에 다른 매개체(!!)를 거치게 합니다. 이 부분은 다루지 않겠습니다. 그러다 정말 철컹철컹 당할 사람을 만들면 안되겠기에.....;; 아래 아이피도 임의의 가상 아이피 입니다. 집에서 공유기를 사용하신다면, 192.. 더보기
남의 컴퓨터를 내 마음대로 다룬다? - Python Reverse Shell_003 - Sending Commands to the Client (파이썬 리버스 쉘 - 클라이언트에게 명령어 보내기) 지난 시간까지는 통신을 하기 위한 소켓 생성, 소켓 바인딩, 소켓 수용하는 것 까지 간략히 만들어 보았습니다. 이번 시간에는 멀리 있는 클라이언트 컴퓨터에게 어떤 명령을 전달할지에 관한 부분을 다루어 보도록 하겠습니다. 우선 명령어를 보내기 위한 함수를 정의하겠습니다.▼명령어를 일회성으로 보내고 말 것이 아니기에 특정 조건이 들어오기 전까지는 계속 사용하게 할 반복문을 사용하였습니다.▼내가(서버) 내릴 명령어를 입력받을 input() 을 넣고 이 값을 cmd(Command)라는 변수에 저장을 하게 하겠습니다.▼만약에, 이 cmd 값이 'quit' 라는 입력이 들어오면 상기의 모든 과정을 종료시키게 하려고 합니다. ▼if 조건인 cmd == 'quit' 가 만족되면 conn 인 커넥션도 종료하고, 소켓인 .. 더보기
남의 컴퓨터를 내 마음대로 다룬다? - Python Reverse Shell_002 - Binding the Socket and Listening for Connections (파이썬 리버스 쉘 - 소켓 묶기, 연결 대기) 앞 시간에는 멀리 떨어져 있는 다른 컴퓨터와 데이터를 주고 받는 통신을 하기 위해 소켓을 만들어 주었습니다. 이번에는 그렇게 만든 소켓의 데이터를 바인딩(묶어주기)하고 바인딩된 데이터를 가지고 상대 컴퓨터와 접속하게 하고, 그 접속을 서버(내 컴퓨터)에서 받아들이게 하는 과정까지 다루어 보도록 하겠습니다. Socket Binding(소켓 바인딩)통신을 하기 위해서는 통신 기기간(여기서는 컴퓨터) 데이터가 어디에서 오고 어디로 가는지를 알아야 합니다. 이럴 때 사용하는 개념이 아이피(host)주소와 포트(port) 입니다. 그리고 이러한 host와 port를 바인드(묶어주기) 해주어야 어떤 데이터가 오가는지 쉽게 파악할 수 있습니다. 이는 송수신 데이터는 국제 규약인 프로토콜(Protocol)을 따라야 하.. 더보기
남의 컴퓨터를 내 마음대로 다룬다? - Python Reverse Shell_001 - Creating a Socket (파이썬 리버스 쉘 - 소켓 만들기) 안녕하세요. 이번에는 새로운 PYTHON SERIES 를 올려볼까 합니다. REVERSE SHELL 이라고 합니다. 처음 들어보는 분들도 계시겠지만, 개략적인 내용은 대부분 알고 있는 친숙한 개념입니다. 우선 아래 그림을 먼저 살펴볼까요? ▼ 왼쪽 그림에서 A -> C 로 접속을 하려고 하는데 중간에 방화벽(Firewall)이 존재할 경우가 있습니다. 이는 사용자들이 특정 웹서버나 사이트에 접속하는데 어려움을 겪게 하는 요인이 되기도 합니다. 물론 보안상 혹은 다른 여타의 이유로 방화벽을 설정하기도 하지만, 기업체에서 단순히 접속을 막아두는 경우도 있습니다. 이럴 경우 VPN(Virtual Private Network: 가상 사설망)을 이용해서 우회하기도 하지만 이 역시 한계가 있습니다. 이럴때 사용하는.. 더보기
오디오 파일 자동 변환 시키기 by using FFMPEG, PARALLEL with CLI, Automator - (Automatic Converting FLAC files to M4A files using ffmpeg, parallel with CLI, Automator) 안녕하세요. 리눅스 시스템을 사용하는 유저라면 쉽게 접할 수 있지만, 윈도우즈나 맥을 사용하는 유저 중 대다수는 명령어를 사용해서 내가 사용하고자 하는 프로그램을 만든다는게 다소 낯설수 있을 것입니다. 그러나 많은 자동화 시스템 중 비교적 손쉽게 만들 수 있는 부분이 있는데, 그 중 하나인 homebrew 를 사용하여 오디오 자동 변환 프로그램을 구현하는 것입니다. 몇 줄의 명령어만 넣으면 오디오 파일을 변환할 수 있습니다. 여기에 맥에 있는 오토메이터(Automator)를 이용하여 특정 폴더에 변환할 파일 혹은 폴더를 투척(집어넣기)만 하면 자동으로 변환을 시켜주게 만들어 보도록 하겠습니다. 우선 이 시스템은 맥킨토시(MAC) 이기에 여기에 맞추어 작성을 하겠습니다. 오토메이터 부분만 제외한다면 윈도우.. 더보기
Terminal shell 실행가능 VS Automator shell 에러? PATH에 주목. I have a simple Gruntfile that I want to be able to run from an icon in my OSX dock. I have created a very simple shell script (launcher.sh) that I will save as an application so I can add it to my dock. It works great when I run it directly in my Terminal:#!/usr/bin/env bash $(grunt serve --open)It also works fine with this shebang: #!/bin/bash However when I call the shell script from an Autom.. 더보기
스티브 잡스의 첫번째 비즈니스는 불법 통화를 가능하게 한 블루박스 세일즈였다.. Short Bytes: The Blue box was designed in 1972 by Jobs’ close friend and future co-founder of Apple, Steve Wozniak. Marketing man Steve Jobs came up with the idea of selling those boxes to the public. They even made around $6000 but they had to give up the idea of Blue box venture eventually.The blue box worked by producing certain tones that were used in the telephone system to switch long dist.. 더보기
Shut down, sleep, restart, display sleep, log out commands on OS X with bash, applescripts. Shut down without showing a confirmation dialog:osascript -e 'tell app "System Events" to shut down'Shut down after showing a confirmation dialog:osascript -e 'tell app "loginwindow" to «event aevtrsdn»'Restart without showing a confirmation dialog:osascript -e 'tell app "System Events" to restart'Restart after showing a confirmation dialog:osascript -e 'tell app "loginwindow" to «event aevtrrst.. 더보기
PyQt installation with python3 on Mac OS X by using HOMEBREW You can install it with homebrew using the --with-python3 flag:unset PYTHONPATH brew install sip --with-python3 brew install pyqt --with-python3And relink the site packages if necessary. 더보기
[Folder Action] - 이미지에 나의 서명(signature) 만들어 넣기 with python program - 3 이전 시간에 만든 여러장의 이미지에 사인(서명)을 넣는 코딩을 활용해서 이번시간에는 특정 폴더에 대상 파일들을 떨구면, 자동으로 서명된 이미지 파일들을 돌려주게하는 폴더액션(맥의 오토메이터 활용)을 만들어 보도록 하겠습니다. 우선 터미널을 띄워주고 shell script 를 하나 만들어 주려고 합니다. 아래와 같이 make_multiple_signature.sh 라는 이름을 가지는 bash 스크립트를 만들도록 하겠습니다.▼ 파이썬이 있는 경로를 앞에 적습니다. 저는 현재 파이썬 배포판 중의 하나인 아나콘다를 사용하고 있습니다. 그래서 앞 부분에 아나콘다의 파이썬 경로인 '~/anaconda/bin/python' 을 넣어줍니다. 뒤에는 이전 시간에 만들어 둔 파이썬 파일의 경로를 넣어 줍니다. 파인더에서 .. 더보기
이미지에 나의 서명(signature) 만들어 넣기 with python program - 2 from PIL import Image, ImageDraw, ImageFont import os, glob target_image = Image.open('/Users/SH/Desktop/Signature/python_logo.png') fontsFolder = '/Library/Fonts/' selectedFont = ImageFont.truetype(os.path.join(fontsFolder,'Zapfino.ttf'),15) draw = ImageDraw.Draw(target_image) draw.text((200,150), 'Creative Works for jason', fill='white', font=selectedFont) target_image.save('/Users/SH/Desktop/.. 더보기
이미지에 나의 서명(signature) 만들어 넣기 with python program - 1 안녕하세요. 이번에는 파이썬 프로그래밍을 이용해 이미지(사진)에 나만의 서명(signature)를 만들어 넣어 보겠습니다. 단순하게 하나의 이미지에 넣어 보는 방법을 알아보고, 추후에 특정 폴더내에 있는 모든 이미지에 넣는 방법을 알아보겠습니다. 그런 연후에는 폴더에 떨구기만 하면 서명이 된 이미지들을 뱉어내게 하는 자동화 스크립트도 만들어 보겠습니다. 그럼 시작하겠습니다. 우선 아래와 같은 파이썬 로고 이미지가 있습니다. 여기에 제 블로그 이름인 'creative works for jason' 이라는 글을 넣어 보겠습니다. 글이 아니라 이미지도 넣을 수 있지만, 여기서는 다루지 않겠습니다.▼ 이미지를 다룰 예정이므로, 관련 모듈들을 불러옵니다. ImageDraw 는 그림에 글을 써 넣을때 사용하는 모듈.. 더보기
[PYTHON] 간단히 이미지(사진)들 합치기 by using python - Merge images by using python program. 안녕하세요. 이번에는 여러장의 이미지(사진)들을 하나의 파일로 병합(합치기)하는 과정을 파이썬을 이용해서 코딩해 보겠습니다.주로 이미지를 다룰때는 이미지 관련 툴(가령 포토샵)들을 많이 사용을 합니다. 그러나 이런 툴들을 다루더라도 여러장의 파일들을 열고 사이즈에 맞게 붙이고 크기 조절하고 저장하고 일련의 과정들을 거쳐야합니다. 다소 번거로울 수도 있는 이런 일들을 프로그램으로 간단히 처리하게 하려고 합니다. 물론 디테일한 프로세싱은 상기의 툴을 이용하는게 나을수도 있습니다. 그래서 여기서는 단순하게 몇장의 이미지들을 같은 규격의 사이즈로 크기 조절 후 가로형태로 나란히 붙여주게끔만 하겠습니다. 이를 잘 숙지하고 응용을 한다면, 여느 프로그램 못지않은 나만의 툴을 구현할 수 있을 것입니다. 각설하고 시작.. 더보기
[PYTHON] 파일 찾아 활용하기 using python glob 파이썬을 이용해서 특정 디렉토리(폴더)에 있는 파일을 이용할 경우가 잦은데, 이 때 유용하게 사용할 수 있는 명령어가 바로 glob 이다. glob 명령어를 이용해서 폴더 내에 있는 모든 파일들을 찾아 파일명을 나열하였다. 추후 이를 이용한 실용 예제를 다뤄보도록 하자.▼ 더보기
GTK VS Qt in Python Development Frameworks. GTK vs QtGTK+ and Qt are open-source cross-platform User Interface toolkits and development frameworks. These are the two most popular frameworks in use for GNU/Linux and BSD because they are open-source and give developers a powerful toolkit to design Graphical User Interfaces. GTK+ is used as the standard toolkit for the GNOME and Xfce Desktop Environments while Qt is used for KDE Plasma and L.. 더보기
나만의 유튜브 영상 다운로더 by using bash YOUTUBE DOWNLOADER 만들기 원도우즈를 사용하거나, 맥, 하물며 리눅스를 사용하는 유저들을 위한 유튜브 동영상 다운로드 유틸은 널려있다. 그러나 일부는 유료이고, 또 어떤 프로그램은 잘 작동하는 듯 하더니, 예기치 않은 오류나 에러를 뱉어내곤하여 사용자들로 하여금 불만의 목소리를 듣곤한다. 이번에는 CLI(Command Line Interface)를 이용해 누구나 쉽게 유튜브에 올라와 있는 동영상을 자신의 컴퓨터로 다운받을 수 있는 방법을 알아보고자 한다. 우선 설명은 맥(MAC) 기준으로 설명을 하려고 한다. 그러나 리눅스는 물론이거니와 윈도우즈 사용자도 크게 다르지 않으니 쉽게 익힐 수 있는 방법이다.1. 준비 맥을 사용하는 사용자라면 Spotlight Search 를 눌러 'termin.. 더보기
Xcode with Swift - 텍스트 넘겨주기(Handing Over) iOS 에서 버튼을 클릭했을 때, 텍스트에 있는 내용을 다음 창으로 전달하는 간단한 모듈을 만들어 보고자 한다. 새로운 프로젝트를 만들기 위해 아래와 같이 뉴 프로젝트를 생성한다.▼ iOS Application 에서 싱글 뷰를 선택하고 다음으로 넘어간다.▼ 프로젝트명을 적당한 이름을 기입해 준다. 여기서는 텍스트를 넘겨준다는 의미로 'HandingOver'라고 명명하였다.▼ 프로젝트를 생성해줄 폴더를 찾아 'Create'를 눌러준다.▼ 이렇게 생성된 프로젝트는 아래와 같은 창을 보여준다.▼ 애플리케이션에서 보여지는 부분을 다루는 메인스토리리 보드를 선택하면 아래와 같은 화면이 나타난다. ▼ 우측 아래에 있는 Objects에서 버튼을 찾고, 메인스토리 보드에 드랙해서 적당한 위치에 자리 잡아준다.▼ 입력할.. 더보기
2015년 10월 클릭몬 ( Clickmon ) 수익 일지. 그 동안 구글의 애드센스를 이용하다가 예기치 않은 정지를 당하였다. 정지 사유가 무엇인지 모르는 와중에 대안을 찾다가 알게된 클릭몬. 여러 블로그나 사이트에 올라온 글들을 읽고 종합해 본 결과 클릭몬이 가장 적합하다는 판단하에 배너 광고로 클릭몬을 달아 보았다. 결론적으로 말하자면 옳은 선택이었던 것 같다. 2015년 10월말까지 집계된 수익은 대략 4만원 정도로 양호한 편이다. 몇몇 클릭몬 관련 글들에는 클릭당 비용(CPC)이 대략 60~80원 정도라고 하던데, 10월달 올린 수익을 분석해 보니 이것보다는 다소 높은 수준이었다. 계좌에 입금이 되는 시각은 대략 4시쯤 이었던 것 같다. 송금주는 (주)블루페이스 로 찍혔는데, 처음에는 이게 누구지... 하고 다소 의아해 했었으나 송금 금액을 보고 클릭몬임.. 더보기