2. 파이썬을 이용해 bash 명령 실행하기
페이지 정보
작성자 관리자 댓글 0건 조회 4,961회 작성일 19-11-27 23:50본문
2. 파이썬을 이용해 bash 명령 실행하기
파이썬으로 공격코드를 짜다 보니 Bash 쉘 스크립트를 실행하는 여러가지 방법을 찾게 되었다.
이번 정리를 통해 추후 공격 스크립트 작성시 적절하게 활용할 수 있기를 기대해본다.
1. os.system 구문을 이용해 명령 실행 하기
import os
import sys
os.system ('ls -al | grep "user")
// pipe command is available
1 2 3 4 5 6 | import os import sys os.system ('ls -al | grep "user") // pipe command is available |
위와 같이 단순히 명령 실행을 위해 사용시에는 문제가 없으나,
결과값을 특정 변수에 저장하는 목적으로 사용하기에는 적합하지 않다.
(명령 실행 결과의 성공 유무를 리턴하기 때문에…)
따라서 위의 단점을 보완할 수 있는 방법이 바로 subprocess 이다.
2. subprocess 이용하여 명령 실행하기
먼저 os.system과 같이 단순히 “실행”만 시킬 때는 “call” 메서드를 이용하면된다.
import subprocess
subprocess.call ('ls -al', shell=True)
1 2 3 | import subprocess subprocess.call ('ls -al', shell=True) |
그러나 특정 명령 수행 결과를 바탕으로 if 조건문을 걸때에는 call이 아닌 check_ouput을 이용해야 한다.
예를들어 특정 파일 실행결과가 “AAA” 혹은 “BBB”라고 가정해보자.
“AAA” 일 경우 “123”을 출력하고 “BBB”일 때 “456”을 출력하려면 다음과 같이 코드를 작성하면 된다
import subprocess
result = subprocess.check_output ('./program' , shell=True)
if result == 'AAA' :
print "123"
elif result == 'BBB' :
print "456"
1 2 3 4 5 6 7 | import subprocess result = subprocess.check_output ('./program' , shell=True) if result == 'AAA' : print "123" elif result == 'BBB' : print "456" |
위와 같이 check_output 메서드를 사용하면 해당 실행 결과를 스트링값으로 리턴해주기 때문에
실제 실행결과값을 바탕으로 조건 구문을 사용할 수 있게 된다.
댓글목록
등록된 댓글이 없습니다.