본문 바로가기

Learning/└◆Shell Scripts

Permission Change # cat change_perm.sh =========================================================================== #!/bin/bash # # INPUT : perm1.list #------------------------------------ # /etc/cron.deny 644 # /etc/at.deny 640 #------------------------------------ # # OUTPUT: perm3.list #------------------------------------ # /etc/cron.deny 644 rw-r--r-- # /etc/at.deny 640 rw-r---- #-----------------------------.. 더보기
쉘코드 만들기 강좌 * 쉘코드 만들기 강좌 "\x31\xc0\xb0\x46\x31\xdb\x31\xc9\xcd\x80\xeb\x1f\x5e\x89\x76\x08\x31\xc0 \x88\x46\x07\x89\x46\x0c\xb0\x0b\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80 \x31\xdb\x89\xd8\x40\xcd\x80\xe8\xdc\xff\xff\xff/bin/sh" 프로그램의 취약점으로 인해 리턴 어드레스를 변경할 수 있을 때, 보통은 위과 같은 "쉘코드"를 실행하여 높은 권한을 획득한다. 이러한 쉘코드는 어떤 과정으로 만들어지는 것일까? 이제부터 그 방법에 대해 배워보겠다. 먼저 "쉘코드를 직접 만든다"라고 하면 으레 겁부터 먹게 될 수 있다. 쉘코드가 언뜻 보기에는 도무지 알 수 .. 더보기
[System Hacking] 윈도우 취약점 체크리스트 & 안전진단 스크립트 제작 [본 문서는 http://blog.naver.com/sbd38 의 블로그에 기재되어 있으며 학습 용도로 문서를 훼손 또는 수정하지 않았습니다.] 윈도우 취약점 체크리스트 윈도우 취약점 점검시 확인해야할 사항 대부분의 보안종사자들은 자동화된 툴을 이용하여 다음 취약점들을 점검한다. 간단한 것들은 한번 제작해 보는 것도 공부에 도움이 될 것이다. Windows 취약점 점검 결과 항목 항목번호 세부항목 중요도 점수 장비명 진단결과 점수환산 상세내용 계정 및 패스워드 관리 SW101 Administrator 계정의 이름을 변경하였는가? 중 SW102 관리자 그룹에 일반 사용자 계정이 존재하지 않는가? 중 SW103 취약한 패스워드를 사용하고 있지 않은가? 상 SW104 최근 암호를 기억하도록 설정되어 있는가? .. 더보기
누가 언제 실행했는지 로그파일에 기록(프로그램 대치 프로그램) 기존 프로그램을 대치하는 프로그램(쉘 스크립트)기존의 프로그램을 대치하는 프로그램=> 목적-백도어같은 프로그램이 실행되어있는지 알 수 없도록좋은용도/나쁜용도 (linux200) (목적) 좋은 용도(EX: /usr/bin/passwd) /usr/bin/passwd/usr/bin/passwd 명령어를 사용할 때 누가(id CMD)/언제(data CMD) 실행했는지 별도의 로그 파일에 기록할 수 있는가? # vi /root/bin/passwd #!/bin/bash id >> /test/passwd.logdate >> /test/passwd.logecho >> /test/passwd.log /usr/bin/passwd.old $* /* # mv /usr/bin/passwd /usr/bin/passwd.old *.. 더보기
searchspolit.sh 스크립트 작성 searchspolit.sh 스크립트 작성 # cp /usr/share/exploitdb/files.csv /root/bin/files.csv# cd /root/bin# cat files.csv | headid, file, description, date, author, platform, type, port1,platforms/windows/remote/1.c,"Microsoft IIS - WebDAV 'ntdll.dll' Remote Exploit",2003-03-23,kralor,windows,remote,802,platforms/windows/remote/2.c,"Microsoft IIS 5.0 - WebDAV Remote Exploit (PoC)",2003-03-24,RoMaNSoFt,window.. 더보기
MAC 충돌 점검 프로그램 작성 # vi mac+check.sh ping 172.16.6.200 ~ 172.16.6.230 arp -an > arp.txt 172.16.6.200 mac1 172.16.6.201 mac2 172.16.6.202 mac3 ... 172.16.6.230 mac30 같은 MAC주소를 갖는 IP를 확인하고 싶다. ------------------------------------- 맥 어드레스 충돌. IP는 같은데 맥어드레스가 충돌나는 경우 -------------------------------------- ./mac_check.sh 수행결과 172.16.6.200 mac1 172.16.6.201 mac1 172.16.6.220 mac20 172.16.6221 mac20 ----------------------.. 더보기
셸 스크립트 작성[실무편]-상 여러가지 실무활용 셀 프로그래밍 다음에 나오는 예제들은 실무적인 쉘프로그래밍을 하기 위한 기초적인 개념을 파악하고 활용할 수 있도록 구성이 되었다. 쉘프로그램 전체 내용 중 중점이 되는 부분에 관해 이해해 보자. 아래 내용들은 실무에서 실제 관리자들에 의해 요청된 사항들을 분석하여 제 작성된것이 많다. 실무에 바로 적용할 수 있지는 않지만 적절하게 변경하여 사용하기에 충분하도록 작성이 되어져 있다. 1. 디렉토리 추가 스크립트 /test 디렉토리 밑에 1,2,3,4 디렉토리가 존재하고 각 폴더 하위에 1,2,3,4폴더가 또 존재하도록 구성 (1) 1st study 디렉토리 안에 디렉토리를 생성하는 경우 for문(반복문) 2개 필요 #!/bin/bash for DIR1 in 1 2 3 4 do mkdir .. 더보기
셸 스크립트 작성[중급편] 반복문 ■ for 구문 [예제1] "for ~ in ~ do ~ done" 구문을 사용한 예제 [예제2] for 구문 간단한 예제 다음은 파일의 내용을 변수로 치환하여 다루는 방법의 예제이다. 주석은 읽지 않게. [예제3] for 구문의 활용 예제 다른 스크립트에서 많이 사용될수 있는 부분을 쉘스크립트로 만들어서 명령어처럼 사용해 보자. 다음은 seq 명령어(새로 만들어진 명령어)를 다른 명령어에서 불러다가 쓰는 예이다. ■ while 구문 vi ~/.vimrc [TERM1] # vi systeminfo.sh [TERM2] # cat /proc/cpuinfo processor , model name 만 따로출력하기 # cat /proc/cpuinfo | egrep '(processor|model name.. 더보기
셸 스크립트 작성[초급편] 쉘 프로그램 입/출력 echo read 기본 명령어 read 스크립트 중간에 화면 멈추기 산술연산 정수 타입 산술 연산 expr 명령어 조건문 "if ~ then ~ fi" 구문 -x 파일이 존재하고 실행할 수 있는 경우 특별한 파일을 읽어 들여서 파일이 존재하고 실행파일이면 실행하는 예제 "if ~ elif ~ else ~ fi" 구문 -d 파일이 존재하고 디렉토리 인경우/ -f 파일이 정규 파일인 경우 지정한 파일을 읽어 들여서 디렉토리인지 아닌지 검사하는 프로그램 만들기 if 구문을 사용한 인자(Argument) 처리 구문 특정한 파일에서 특정 문자열이 있으면 찾았다고 표시해 주는 스크립트 case 구문 셸 프로그램을 만들다 보면, 여러개의 셸 스크립트를 모아서 선택적으로 수행하고 싶을 때 case.. 더보기
쉘 스크립트 코드 분석 쉘 스크립트 코드 분석 INDEX ------------------------------ 1. 네트워크 설정 확인 2. Exploit DB 업데이트 3. 공격용 쉘스크립트 검색 4. 편리한 기능 설정 5. 코드 분석 ------------------------------ ■ 사용시스템 - KaliLinux (1) 네트워크 설정 확인 Exploit DB 업데이트 작업을 하기 위해서 네트워크 설정을 확인한다. 외부로 통신이 가능해야 한다. # ifconfig # netstat -nr # cat /etc/resolv.conf # nslookup www.daum.net (2) exploit DB 업데이트 # ls /usr/share/exploitdb/platforms aix cfm irix minix palm_.. 더보기
배시(bash)쉘 스크립트 작성시 대표적인 명령어 배시 셸 스크립트 목표 ■프로그램에 대한 이해력 ■프로그램에 대한 문법 프로그램의 syntax. 문법의 대한 에러를 줄인다. 초보자 프로그래밍의 70~80%에러는 형식을 몰라서 오는 syntax error이다. 프로그래밍의 생활화. 불편한 점을 편하게 하기위해 생각 ■스크립트 방식 언어(bash shell script -> ruby -> C -> Network Programing) bash shell script로 언어의 시작으로 실생활에 사용 ruby - 웹 컴퍼넌트 유리 비슷한 언어 perl/python(시스템적인 성격이 강함) C언어 - 프로그램화 하기 어렵다. Network Programing ■쉘 스크립트 작성시 선수지식 명령어(grep, sed, awk) + sort, uniq, head, t.. 더보기
[Shell Scripting] 본(Born) 쉘 프로그래밍_4 10 옵션처리 ) --> ) --> ) --> ) --> getopts CMD ------------- ) --> NAME getopts - parse utility options ) --> SYNOPSIS /usr/bin/getopts optstring name [ arg...] ) --> sh getopts optstring name [argument...] ) --> ksh getopts optstring name [arg...] ) --> DESCRIPTION /usr/bin/getopts The getopts utility can be used to retrieve options and option-arguments from a list of parameters. ) --> Each time i.. 더보기
[Shell Scripting] 본(Born) 쉘 프로그래밍_3 6 반복문 ) --> ) --> ) --> ) --> ■ for 구문 ■ while 구문 ■ untile 구문 ■ 루프제어명령어 ) --> 루프 명령어는 명령어 혹은 명령어 집합을, 일정 횟수만큼 반복하거나 특정한 조건을 만족할 때 까지 계속 실행시켜야 하는 경우에 사용한다. 본 쉘에서는 for, while, until과 같은 세가지 루프를 제공하고 있다. ) --> ) --> ) --> ■ for 구문 for in do done ) --> 지정된 범위안에서 루프를 돌리는데 사용되며 범위에 사용되는 것은 문자열 집합도 가능하다. for 루프 명령어는 정해진 횟수를 반복하는데 사용한다. for 명령어 다음에는 사용자 정의 변수가 나오고 이어서 키워드 in과 단어를 나열한다. 루프가 처음으로 실행될 때는 나.. 더보기
[Shell Scripting] 본(Born) 쉘 프로그래밍_2 3 쉘 프로그램 입/출력 (1). 사용자 출력 지정 ■ echo 명령어 echo 명령어는 뒤에 오는 내용을 화면에 출력하여 준다. 기본적으로 한 개의 echo 구문이 한 개의 라인을 차지하게 된다. echo 명령어는 모든 쉘에서 사용가능하다. echo 명령어는 뒤에 오는 모든것을 스트링으로 인식하고 표준출력(모니터)에 출력하는 역할을 가진다. ehco 명령어 뒤에 큰 따옴표(""), 작은 따옴표('')등이 없으면, 공백(여러개의 탭이나 공백)은 하나의 공백으로 표시된다. echo 명령어 뒤에 큰 따옴표를 사용하게 되면, 큰 따옴표("") 안에서 쉘이 해석할 수 있는 것은 $(달러싸인), ``(역 따옴표), \(역 슬래쉬)등이다. echo 명령어의 출력결과보다 더 자세하게 출력을 제어 하기 위해서는 pri.. 더보기
[Shell Scripting] 본(Born) 쉘 프로그래밍 제 6 장 본쉘프로그래밍 ------------------------------------ 1. 쉘프로그램이란? 2. 쉘프로그램 만드는 방법과 실행 3. 스크립트 입출력 4. 쉘프로그램의 시작 5. test 구문과 [] 6. 조건문 7. 반복문 8. 함수 9. 대화형 스크립트 10. 함수 11. trap ------------------------------------ 1 쉘 프로그램이란? 쉘의 특징을 이용하여 프로그램을 하는 것을 쉘프로그램 또는 쉘스크립트라고 한다. 쉘 명령어들의 묶음 형태의 파일이 될수도 있다. 쉘프로그래밍은 쉘의 기능을 이용하여 만들어 지는 것이기 때문에 ~/.profile도 하나의 스크립트라고 할 수 있다. 이 장에서는 쉘프로그램과 쉘스크립트 용어를 혼용하여 사용한다. 2 쉘 스.. 더보기
[Shell Scripting] 본(Born) 쉘 특징 제 5 장 본쉘 특징 --------------------- 1. 쉘 환경 2. 명령행 3. 메타문자 4. 파일이름 치환 5. 변수 6. 인용부호 7. 명령어 치환 8. 함수 9. 리다이렉션 10. 파이프 11. here 문서 --------------------- ■ 쉘의 특성 리다이렉션(Redirection) 파이프(pipe) 셀 자체의 기능(bash function) 변수(Variable) 메타캐릭터(Metacharacter) 히스토리(History) 환경파일(Environment Files) ■ 리다이렉션(Redirection) 방향재설정 fd(file description, 파일기술자) 열린 파일을 구분할때 사용하는 기호 (ex) vi file1 shell -> fd1 -> fd2 원본파일을 3.. 더보기
[Shell Scripting] 유닉스 명령어(4) 기타 명령어 ________________________________________________________________________________ 제 1 부 본쉘 제 1 장 유닉스 쉘 제 2 장 본쉘의 개요 제 3 장 본쉘의 동작 제 4 장 유닉스 명령어 제 5 장 본셀의 특징 제 6 장 본셀 프로그래밍 ________________________________________________________________________________ 제 4 장 유닉스 명령어 ----------------- 1. grep 명령어 2. sed 명령어 3. awk 명령어 4. 기타 명령어 ----------------- 내용 생략 4 기타 명령어 쉘 스크립트를 작성할 때 유용한 명령어를 몇가지만 익혀보자. sort.. 더보기
[Shell Scripting] 유닉스 명령어(3) awk CMD 3 awk 명령어 ) --> ) --> ) -->awk는 제작자인 알프레드 아호(Alfred Aho), 브라이언 커니건(Brian Kernighan), 피터 웨인버거(Peter Weinberger) 등 세사람의 성의 첫 글자를 따서 만들어진 이름이다. awk 명령어는 자료 처리 및 리포트 생성에 사용하는 프로그래밍 언어로서 만들어 졌다. ) --> awk 명령어는 구버전의 awk, 신버전의 awk(nawk 명령어), GNU awk(gawk 명령어), POSIX awk 등 다양한 버전이 존재한다. 최초의 1977년에 작성되었으며, 1985년에 큰 프로그램 처리를 위한 기능이 추가되었다. 당시 개선된 사항으로는 사용자 정의 함수, 동적 정규표현식, 다중 입력 파일의 처리등이 있다. 대부부의 시스템에서 awk.. 더보기
[Shell Scripting] 유닉스 명령어(2) sed CMD 2 sed 명령어(Streamlined Editor) ) --> ) --> ) --> ) --> ) --> sed 명령어는 스트림 에디터이다. 역할은 원본 파일에 변형을 주지 않고 단지 출력되는 결과를 변화시켜 보여주는 역할을 한다. 에디터의 일종이기 때문에 vi 편집기와 같은 많은 기능을 제공하고 있다. 또한 sed 명령어는 스크립트 형태로 파일에 저장할 수 있기 때문에 다중 편집이나 쉘 명령행에서 인용부호를 사용하는데 따르는 어려움을 줄여준다. sed 명령어는 쉘스크립트를 사용하여 파일을 편집하는 경우에 많이 사용된다. ) --> sed 편집기는 파일을 라인 단위로 읽어 들여서 패턴 스페이스라는 임시퍼버에 놓는다. 그리고 수정하여 기본 출력으로 출력한다. 홀딩 스페이스는 확장적인 연산에 사용된다. 복.. 더보기
[ShellScripting] 유닉스 명령어(1) grep CMD ________________________________________________________________________________ 제 1 부 본쉘 제 1 장 유닉스 쉘 제 2 장 본쉘의 개요 제 3 장 본쉘의 동작 제 4 장 유닉스 명령어 제 5 장 본셀의 특징 제 6 장 본셀 프로그래밍 ________________________________________________________________________________ 제 4 장 유닉스 명령어 ----------------- 1. grep 명령어 2. sed 명령어 3. awk 명령어 4. 기타 명령어 ----------------- 다음에 나오는 나오는 grep, sed, awk(nawk) 명령어는 본쉘 프로그래밍을 잘 작성하.. 더보기