'20./22. Linux'에 해당되는 글 5건

  1. 2018.03.28 SSH 접속 시 RSA 공유키 충돌
  2. 2014.09.30 GNU Bash 환경 변수 명령어 인젝션 Shellshock (1)
  3. 2014.02.05 [Ubuntu 12.10 Desktop] 우분투 메뉴바 사라짐
  4. 2014.02.05 How to install DVL
  5. 2013.07.08 [Linux/부팅] 리눅스 부팅 과정
Edit

SSH 접속 시 RSA 공유키 충돌


SSH 접속 시 에러 발생

oneandonlymeui-MacBook-Pro:~ oneandonlyme$ ssh root@10.1.5.131
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:sEnOZXCog1/5MeweSBxTae573Dd69y0bVeC0CAZlO8g.
Please contact your system administrator.
Add correct host key in /Users/oneandonlyme/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/oneandonlyme/.ssh/known_hosts:16
ECDSA host key for 10.1.5.131 has changed and you have requested strict checking.
Host key verification failed.

10.1.5.131 서버와 이미 RSA 공유키를 교환한 상태여서 서버가 변경되어도 이전 RSA 공유키를 이용하여 접근하려고 하기 때문에 오류 발생

# ssh-keygen -R 192.168.0.7

완료

%23%20SSH%20%uC811%uC18D%20%uC2DC%20RSA%20%uACF5%uC720%uD0A4%20%uCDA9%uB3CC%0A%0A@%28%uAC1C%uBC1C%uB044%uC791%uC5EC%uBD04%29%5BMarxico%5D%5B%uD2F0%uC2A4%uD1A0%uB9AC%5D%0ASSH%20%uC811%uC18D%20%uC2DC%20%uC5D0%uB7EC%20%uBC1C%uC0DD%0A%60%60%60%0Aoneandonlymeui-MacBook-Pro%3A%7E%20oneandonlyme%24%20ssh%20root@10.1.5.131%0A@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%0A@%20%20%20%20WARNING%3A%20REMOTE%20HOST%20IDENTIFICATION%20HAS%20CHANGED%21%20%20%20%20%20@%0A@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%0AIT%20IS%20POSSIBLE%20THAT%20SOMEONE%20IS%20DOING%20SOMETHING%20NASTY%21%0ASomeone%20could%20be%20eavesdropping%20on%20you%20right%20now%20%28man-in-the-middle%20attack%29%21%0AIt%20is%20also%20possible%20that%20a%20host%20key%20has%20just%20been%20changed.%0AThe%20fingerprint%20for%20the%20ECDSA%20key%20sent%20by%20the%20remote%20host%20is%0ASHA256%3AsEnOZXCog1/5MeweSBxTae573Dd69y0bVeC0CAZlO8g.%0APlease%20contact%20your%20system%20administrator.%0AAdd%20correct%20host%20key%20in%20/Users/oneandonlyme/.ssh/known_hosts%20to%20get%20rid%20of%20this%20message.%0AOffending%20ECDSA%20key%20in%20/Users/oneandonlyme/.ssh/known_hosts%3A16%0AECDSA%20host%20key%20for%2010.1.5.131%20has%20changed%20and%20you%20have%20requested%20strict%20checking.%0AHost%20key%20verification%20failed.%0A%60%60%60%0A%21%5BAlt%20text%5D%28./%u1109%u1173%u110F%u1173%u1105%u1175%u11AB%u1109%u1163%u11BA%202018-03-26%20%u110B%u1169%u1112%u116E%201.20.04.png%29%0A%0A10.1.5.131%20%uC11C%uBC84%uC640%20%uC774%uBBF8%20RSA%20%uACF5%uC720%uD0A4%uB97C%20%uAD50%uD658%uD55C%20%uC0C1%uD0DC%uC5EC%uC11C%20%uC11C%uBC84%uAC00%20%uBCC0%uACBD%uB418%uC5B4%uB3C4%20%uC774%uC804%20RSA%20%uACF5%uC720%uD0A4%uB97C%20%uC774%uC6A9%uD558%uC5EC%20%uC811%uADFC%uD558%uB824%uACE0%20%uD558%uAE30%20%uB54C%uBB38%uC5D0%20%uC624%uB958%20%uBC1C%uC0DD%0A%60%60%60%0A%23%20ssh-keygen%20-R%20192.168.0.7%0A%60%60%60%0A%21%5BAlt%20text%5D%28./%u1109%u1173%u110F%u1173%u1105%u1175%u11AB%u1109%u1163%u11BA%202018-03-26%20%u110B%u1169%u1112%u116E%201.20.21.png%29%0A%0A%0A%uC644%uB8CC%0A%21%5BAlt%20text%5D%28./%u1109%u1173%u110F%u1173%u1105%u1175%u11AB%u1109%u1163%u11BA%202018-03-26%20%u110B%u1169%u1112%u116E%201.20.47.png%29%0A

GNU Bash 환경 변수 명령어 인젝션 Shellshock


GUN bash Environment Variable Command Injection


발생 원인


공격 문구를 삽입할 때 () { :;}; [공격 명령어]; 를 이용하여 bash 쉘의 취약점을 이용하게 됩니다. 쉘 스크립트 문법을 분석했을때 함수선언 () 이후 { } 중괄호에 있는 코드를 실행 후 종료해야 하지만 Syntax 오류로 인해 종료되어야 할 시점 이후로 파싱되어 공격 명령어가 실행됩니다.


테스트 및 공격방법 


+ CVE-2014-6271 [bash 테스트]

Shellshock 취약점이 발생하는지 테스트는 Unix 터미널에서 아래와 같이 입력한다.

 env check = 'Not vulnerable' x='() { :;}; check=Vulnerable' bash -c 'echo $check'


실행환경 : Ubuntu 10.04

~ $ uname -a


~ $ bash --version


터미널에서 환경변수를 입력하여 취약하면 Vulnerable 이라는 check 변수의 값을 확인 가능하다.


만일 취약하지 않다면 x함수를 정의하지 못해 무시한다는 문구를 확인 가능하다. 

bash: warning: x: ignoring function definition attempt bash: error importing function definition for 'x' vulnerable


+ CVE-2014-6271 : Remote Code execution through bash [공격방법]

Shellshock 취약점을 이용하여 Apache 서버를 원격으로 공격 가능한지 확인한다.

 [root@host cgi-bin]# curl -k -H 'User-Agent: () { :;}; echo aa>/tmp/aa'  localhost/cgi-bin/hi


테스트 환경 : CentOS 6.3

] # uname -a


apache 서비스 시작합니다.

] # service httpd start



Apache의 cgi-bin을 이용하여 bash에 접근할 것이며, 이용할 페이지는 아래와 같이 간단하게 만든다.

 CGI (Common Gateway Interface) 프로그램은 웹과 서버사이의 data 교환을 해주는 역활을 하며, 보편적으로 Perl과 C언어로 작성되어 있다.

# pwd

# ll hi

# cat hi


다른 PC 에서 웹서버 및 cgi-bin 구동을 확인한다.


일단 Apache가 구동되어있는 서버에서 Shellshock 취약점이 정상 작동하는지 테스트한다.

] # curl -k -H 'User-Agent: () { :;}; echo "test, oneandonlyme">/tmp/aa'  http://localhost/cgi-bin/hi


임시 폴더인 tmp 밑에 echo를 이용하여 aa파일 생성 후 "test, oneandonlyme" 문장을 리다이렉트가 된것을 확인 가능하다. cat을 이용하여 /tmp/aa 내용을 확인하면 아래와 같다.



이제 원격에서 웹 브라우저를 이용하여 공격합니다.

사용 도구 : Firefox beta 버전인 Aurora, Burp Suite Free Edition v1.5


웹 브라우저를 이용하여 해당 웹 서비스에 접근 가능한지 확인합니다.


중간 프록시 툴을 이용하여 웹 서비스에 접근할때 HTTP 요청 페이지를 확인합니다.


HTTP 요청 페이지에서 User-Agent를 변경한다. 

Shellshock 공격 코드인 () { :;} [실행하고 싶은 명령어] 입력 후 전송(Forward)한다.


웹 페이지는 HTTP 정상 응답 된 것을 확인 가능하다.


공격받은 Apache 웹 서버에서 결과를 확인한다. tmp 아래 aa 파일에 "test2,by oneandonlyme." 라고 작성된 파일이 HTTP 요청으로 생성된 것을 확인 가능하다.



실행원리


env val='() { :;}; echo [Unexpected command]' bash -c "echo [Real command]"

[Unexpected command]

[Real Command]


1. env val - bash 명령어가 실행되기 전에 env 환경 설정 변수가 설정된다.

2. echo [Unexpected command] - 임의로 고정시킨 명령어가 실행된 후 bash가 실행된다.

3. Unexpected command - 예상하지 못했던 먼저 실행된다.

4. Real command - 예상된 명령어가 다음 실행된다.



bash 취약점 보안 가이드


http://mac-how-to.wonderhowto.com/how-to/every-mac-is-vulnerable-shellshock-bash-exploit-heres-patch-os-x-0157606/


참조 자료


http://lifehacker.com/how-to-check-if-your-mac-or-linux-machine-is-vulnerable-1639211806

https://www.reddit.com/r/netsec/comments/2hbxtc/cve20146271_remote_code_execution_through_bash/

http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-6271



 Ubuntu menu


Ubuntu 12.10 Desktop 버전

Vmware  Workstation 7

 

  

프로젝트 진행중에 잠깐 재시작했더니 콘솔접속이 되고

#startx 로해서 그래픽으로 부팅해봐도 메뉴바가 사라졌있고.. 시간은 갈 뿐이고.. 난 망했고

 

 

 

일단은 #startx 로 GUI를 불러온다.



이러면 망하는거야 아주..

 

ALT + CTRL + T 를 입력하면 Terminal이 뜬다

 

#ccsm 을 실행한다

만일 없으면

#apt-get install compoziconfig-settings-manager 로 설치하고 실행






ccms가 나타나면 오른쪽아래 Ubuntu Unity Plugin을 설치한다.

 









How to install DVL


Damn Vulnerable Linux



1. Login to DVL

login : root

password: toor



2. Partition the disk

#fdisk -l



#fdisk /dev/sda



: m



: p



n

p

1

maximum amount of cylinders 2610



: p



: w



3. Format the partition

# mkfs.ext3 /dev/sda

: y



# mkir /mnt/dvl

# mount /dev/sda /mnt/dvl



# startx


리눅스 부팅 과정

 

1. 전원스위치 ON

  • 시스템 전원공급
  • 메인보드의 ROM-BIOS에 있는 BIOS프로그램 자동실행
    • BIOS프로그램은 전원공급과 함께 메모리의 특정번지에 자동 로드
    • CPU는 전원공급과 함께 특정번지의 BIOS프로그램을 자동실행



2. BIOS프로그램들의 실행내용

  • 자체진단기능(POST)
    • CMOS검사, CPU, MEMORY, 그래픽카드등 하드웨어의 이상유무를 검사하고 초기화
  • 부팅매체검색과 부트로더 실행
    • POST과정이 이상없이 진행완료되면 검색된 부팅매체에서 부트로더를 불러옴
    • 부팅매체로 선택되었다면 부팅파티션에 있는 0번섹터(MBR)에 있는 부트로더을 읽음
  • 부트로더가 메모리에 적재되면 BIOS는 종료, 시스템제어권은 부트로더(GRUB)



3. 부트로더의 실행

  • 부트로더 실행과 함께 /boot/grub/grub.conf파일을 읽어서 부팅 커널를 결정
  • 부트로더은 커널(kernel)이미지를 불러옴, 시스템 제어권을 커널로 넘김



4. 커널의 로딩

  • 커널은 swapper프로세스(PID 0번)를 호출함
  • swapper는 커널이 사용할 각 장치드라이브들을 초기화, init프로세스(PID 1번)를 실행
  • init프로세스가 실행되면서 /etc/inittab파일을 읽어들여서 그 내용들을 차례대로 실행



5. init프로세스의 실행

  • 이후의 과정들은 모두 init프로세스의 실행내용 (/etc/inittab파일의 실행내용들)
  • 로그인프롬프트가 나오기 까지의 부팅완료화면까지 init프로세스에 의해서 실행되는 내용들임
1 

카운터

Total : 92,156 / Today : 28 / Yesterday : 31
get rsstistory!