분류 전체보기

1

2017. 3. 29. 22:32

[맛보기]시스템 해킹

2017. 3. 28. 23:44
  • 명령어 삽입 공격
  • 레이스 컨디션
  • 메모리 오염 공격

엥... 정리를 안해놨다; 










'Pwnable!!' 카테고리의 다른 글

procfs_search.h 사용하기  (0) 2018.03.17
fgets과 socket에서 0x00  (0) 2018.03.08
유용한 쉘코드(원격)  (0) 2018.02.18
유용한 쉘코드(x86 Shellcode 로컬)  (0) 2018.02.11
[인프라] 리눅스 강의 (생활코딩)  (0) 2017.07.05

파일업로드

  • 웹 쉘 제작

- r57shell

=> 시그니처 기반 백신탐지 우회 위해 간단히 base64로 인코딩되어있음


1
2
3
4
<?php
    eval(base64_decode("DQplck 어쩌구 웹쉘~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
?>

cs


- c99shell

=> r57shell을 더 발전시킨 웹 쉘


- 최근 eval($_POST['q']) 같은 코드에 'q' 파라미터에 웹 쉘과 명령어를 전송시키는 방법이 많이 사용

=> 대부분의 POST 메소드를 이용해 시스템 명령이나 코드를 실행하는데, 아파치의 로그 파일은 POST 전송 데이터를 기록하지 않기 때문


  • PHP에서 웹쉘에 이용되는 함수 (지기접적으로 시스템 명령을 실행하는 함수)
system, exec ....
  • PHP코드 실행시키거나 callback을 사용하는 함수

eval, preg_replace(/e option) ...



  • 파일 업로드 취약점 공격

- 게시판에 웹 쉘 파일을 업로드 후 해당 웹쉘을 요청하면 php코드 실행


- 많은 게시판들이 이미지를 업로드하면 해당 이미지 출력

=> 이미지 속성값을 이용해 업로드 경로 탐색 가능


속성 

일반


프로토콜 : ~~~

유형 : JPEG 이미지

주소 : http://      /board/data/image1.jpg


크기 : ???kb

픽셀 크기 : 273 x 183 픽셀


만든날짜 : 2017.xx.xx

수정한 날짜 : 2017.xx.xx


=>       /board/data/image1.jpg  >> 웹쉘 요청으로 php 파일 실행


  • 파일 업로드 우회기법

상당히 많은 기법이 있지만 이 절에서는 간단히 3가지 소개


    • php.kr 우회기법

아파치의 AddLanguage 옵션에 의해 발생하는것으로, 파일명이 vuln.php.kr일 경우에도 php파일이 실행된다.

해당 취약점은 확장자가 php가 아니므로 필터링을 우회할 수 있다.

    • htaccess 업로드 취약점
아파치 설정파일인 .htaccess를 업로드
-> 여러 아파치 옵션 변경 가능 (Add Type와 같은 옵션)
-> 원하는 확장자를 php 코드로 실행 가능(txt, jpg 등)
    • 환경취약점
윈도우 환경에서는 파일 업로드 시 파일명에 콜론(:)을 붙일 경우
그 뒤에 문자열은 삭제되어 업로드된다.
ex) abc.php:.jpg -> abc.php



  • 파일 업로드 방어기법

php, htm 등 php실행권한을 가진 확장자 필터링


- 1. "php_value engine off" 내용의 .htaccess 파일 업로드 폴더에 생성한다.

- 2. .htaccess 파일을 사용자가 업로드하지 못하도록 필터링한다.

- 3. 데이터베이스와 연동해 download.php?fileno=3 과 같은 방식으로 파일을 다운로드시켜 파일경로를 알 수 없게 하는 방법


등 다양한 방어기법 존재




  • XSS (크로스 사이트 스크립팅)
  • 쿠키공격 → 쿠키탈취 → 쿠키정보 등록
  • 자바스크립트 이용 ('javascript:document.cookie="쿠키값") + F5


  • DB 해킹
SQL 삽입 취약점 이용 ( PHP, MySQL의 경우)

' or 1=1 #

 ' or '1'='1

 '' or 1=1 #

 " or "1"="1

 ' || 1=1#

 " || 1=1#

      ...

 ') or ('1'='1



- MySQL삽입 Cheat Sheet
: select user(); , select version();  ... 등

- Blind SQL 삽입
:쿼리의 결과의 참/거짓 정보만으로 데이터를 추출해 내는 기법

- URL에서 사용할 경우
: http://127.0.01/example.php?id=1234&password=1' or '1'='1' %23
( %23은 #임)



SQL 삽입 자동화 프로그램


대표적 : pangolin, sql map, Havji


방어기법 : php의 경우 magic_quotes_gpc 라는 옵션이 존재

-> GPC는 GET, POST, COOKIE


해당 옵션은 GPC로 들어오는 ',",\, 널바이트가 존재하는 경우 해당 문장 앞에 역슬래쉬를 붙여준다.

(위 4문자 모두 문자열 처리, 그리고 작음따옴표나 큰 따옴표로 항상 감싸주도록 하자)



'Web & Network' 카테고리의 다른 글

[Web] StyleBot  (0) 2017.06.13
[Web]코드편집기(아톰)  (2) 2017.06.12
HTML Reference(HTML 사전)  (1) 2017.06.12
[맛보기]구글해킹  (0) 2017.03.28
[맛보기]웹해킹 맛보기  (0) 2017.03.21

[맛보기]구글해킹

2017. 3. 28. 22:38


구글해킹

  • 구글의 검색 연산자

 연산자

사용 예 

설명 

 AND

 "가" & "나"

 "가"와 "나"의 문자열을 모두 포함하는 문서 검색

 "가"  "나"

 "가" AND "나"

 OR

 "가" | "나"

 "가" 혹은 "나" 문자열을 포함하는 문서 검색

 "가" OR "나"

 NOT

 "가나다" - "한글"

"가나다"을 포함하고 "한글"을 제외하는 문서 검색

 "가나다" NOT "한글"

 " "

 "security"

 인용문구... 정확한 단어 혹은 ~ 문서 검색

 ~

 ~hacking

 동의어 또는 관련 검색어 함께 검색 

 *

 sher**ck

 알 수 없는 단어 스펠링이 위치한 부분에 "*" 연산자를 이용  해 검색 

 *모아 *이다

 ...

 ....

 ...



구글해킹

  • Vi editor : .{파일명}.{확장자}.swp
  • EditPlus, Ultra Edit : {파일명}.{확장자}.bak
  • 기타 : {파일명}.{확장자}.back , .backup 등
또한 html.tar.gz , public_html.tar.gz , sql.sql , db.sql, backup.sql 등 실수로 백업파일을 남긴것이 검색에 노출가능


관리자 페이지 권한의 실수, 노출
대표적으로 /admin/ , /manager/

- http://         /admin/ , manager,master,administrator

- http://admin.xxx.com
- http://manager.xxx.com

=> 검색 : " site : xxx.com, inurl : admin "


기밀 업로드 파일의 관리실수

검색 : "inurl:/board/data/ , site:xxx.com "

- /pds/ , /upload/ , /up/ , /data/ , /file/ , /files/

디렉터리 리스팅

디렉터리 리스팅 취약점 : 
웹서버 폴더 요청시 index 파일이 존재하지 않을 경우 파일 목록을 출력시켜주는 아파치의 옵션

Index of / public_html/board ....

=> 검색 "index of" "Parent Directory"

웹 쉘 노출
검색을 통해 다른 해커가 어느 서버에 생성한 웹 쉘을 찾아냈다면 구글 해킹만으로 서버 점령 가능
=> 검색만으로 이미 정렴된 많은 서버 쵝득 가능


구글해킹 도구

검색패턴 데이스베이스 사이트 (http://www.hackersforcharity.org/ghdb/)



'Web & Network' 카테고리의 다른 글

[Web] StyleBot  (0) 2017.06.13
[Web]코드편집기(아톰)  (2) 2017.06.12
HTML Reference(HTML 사전)  (1) 2017.06.12
[맛보기]파일 업로드 취약점  (0) 2017.03.28
[맛보기]웹해킹 맛보기  (0) 2017.03.21

[맛보기]웹해킹 맛보기

2017. 3. 21. 23:53

웹해킹


사례

  • 7.7 DDos, 3.4 DDos
2009.7.7 , 2011.3.4 청와대, 국방부, 국회 ... 대형포털사이트 등이 수십만대의 좀비 PC로부터 DDos 공격을 당했다.

DDos (Distributed Denial of Service)

 : 분산 서비스 공격을 말한다. 여러대의 컴퓨터를 악성코드에 감염시켜 좀비 PC로 만든 뒤,

   C&C(명령제어) 서버의 명령을 받아 일제히 특정 서버에 대량의 패킷을 전송하는 기법


과정. 

  1. 웹하드(P2P) 사이트 해킹
  2. 업데이트 서버 장악
  3. 업데이트 파일에 악성코드 삽입
  4. 웹하드 사이트 사용자 악성코드 감염
  5. 공격날짜, 시간에 맞춰 공격 게시


( DDos 공격특성상 동일 시간 일제히 공격하므로 좀비 PC 1만대만 되도 정상적으로 운영할 서버는 드물다. )



  • EBS 해킹
2012.5.15  EBS게시판 파일업로드 취약점을 통해 400만명 개인정보 유출
파일 업로드 (File Upload) 공격

  • 현대 캐피탈 해킹

홈페이지 해킹 후 웹쉘 설치, 트래픽 관제를 피해 148만명 개인정보를 유출

웹 서버 백도어 웹쉘 (Web shell)



 백도어(Back Door) : 관리자 인증 등 정상적인 절차를 거치지 않고 시스템에 접근할 수 있는 '뒷 문'


  • 구글 해킹
전문적인 지식없이 오직 구글 검색만으로 개인정보 유출



환경구축


APM : 아파치(Apache), PHP, MySQL ... 합쳐서 APM


툴설치

  • 웹 프록시(Web Proxy) 툴
해당 PC의 내부에서 가상의 포트를 열고 해당 프로그램이 서버와 웹 브라우저의 HTTP 패킷을 중간에서 전달해주는 역할을 한다


----------------------------------------------------------------

              USER PC                  


Web Browser               Port 8080                               Sever

□□□□□   →     □□□                      □□□

□□□□□   ←     □□□              ←        □□□

paros

----------------------------------------------------------------


대표적인 툴 : 파로스 (Paros)




'Web & Network' 카테고리의 다른 글

[Web] StyleBot  (0) 2017.06.13
[Web]코드편집기(아톰)  (2) 2017.06.12
HTML Reference(HTML 사전)  (1) 2017.06.12
[맛보기]파일 업로드 취약점  (0) 2017.03.28
[맛보기]구글해킹  (0) 2017.03.28

해킹에 대하여... (기본)

2017. 3. 20. 23:12


해커의 정확한 의미


해커 : '컴퓨터를 능숙하게 다루는 전문가', '시스템 프로그래밍을 잘하는 사람'


용어 

의미 

 화이트햇 해커

(White Hat Hacker)

선의의 목적으로 보안상의 취약점을 찾아내고 그에 대한 해결책을 제시하기도 하는 해커, 주로 본인의 시스템을 대상으로 작업 해킹 대상 담당자의 적법한 승인을 거쳐 공격을 수행하는 등 합법적인 범위 내에서 해킹 

 블랙햇 해커

(Black Hat Hacker)

악의적인 목적으로 컴퓨터에 침입하고 개인적인 이득을 취하는 해커, 해킹목적자체가 불법적이고, 각종 범죄와 연계되어 있는 경우가 많다. 이와 같은 목적을 가진 해커를 '크래커(Cracker)'라 부르기도 한다.

 그레이햇 해커

(Grey Hat Hacker)

화이트햇 해커와 블랙햇 해커의 중간단계이며 불법적 해킹을 시도한다. 개인적인 이득을 위한 목적보다는 해당 시스템의 취약점을 관리자에게 알려주는 등 행위 자체는 법의 경계를 넘나들어도 직접적인 피해를 초래하지 않는 부류다.



핵티비스트 : 해킹을 수단으로 사회적, 사상적, 종교적, 정치적 메세지를 설파하는 해커

ex) 어나니머스 (Anonymous)



교류를 통한 배움

  • 컨퍼런스
  • 해킹대회
  • 커뮤니티 활동
  • 소셜 네트워크 서비스(SNS)

해킹실습!

워게임

WeChall : 자체적으로 제작한 해킹문제, 유명 워게임 사이트 리스트, 위챌 사용자들의 워게임 순위 등을 매겨주는 종합적인 서비스
WeChall 공식 주소 : http://wechall.net



해킹대회


해킹대회의 이점

  • 자신의 실력을 경쟁을 통해 직간접으로 평가 가능
  • 정해진 시간 내 공격에 성공해야하는 환경으로 인한 단기간 상당한 학습효과
  • 합법적인 해킹 실습 가능
  • 수상했을 때의 명예와 상금


CTF(Capture The Flag)

  • 데프콘 (DEFCON) //데프콘 CTF는 최초라는 상징과 더불어 세계에서 가장 큰 해킹대회
  • 코드게이트( Codegate) 국제해킹방어대회 //세계적인 해킹대회 중 하나, 한국에서 개최
  • 기타 등등...
해킹대회에 대한 정보 : ctf 일정 및 해킹팀 순위 등 여러 정보를 얻을 수 있다.


가상환경


해킹실습의 정석, 가상환경을 구축하고 해킹실습 (리눅스, 윈도으, 네트워크)


가상 머신 프로그램


취약한 환경구축

  • 웹해킹 실습을 위한 게시판 구축
  • 악성코드 분석을 위한 윈도우 환경구축
  • 버퍼 오버플로우 해킹 실습을 위한 운영체제의 종류별/버전별 구축
  • etc...


'ETC' 카테고리의 다른 글

치환암호 풀어주는 웹사이트  (9) 2017.05.10
웹 툴  (0) 2017.04.25
해킹&해커관련정보 블로그  (0) 2017.04.25
취약점 마켓, 블랙마켓  (0) 2017.03.20
코드를 글에 보기 좋게 올리기  (0) 2017.03.15

취약점 마켓, 블랙마켓

2017. 3. 20. 23:09

취약점 마켓


사용자 익명성 보장을 위한 IP 주소...

=> 대표적 : 프록시(Proxy) 서버, 토르(Tor) 브라우저


cmd에서 ipconfig로 볼 수 있는 IP는  (IPv4 등) 공유기 등을 통해 NAT(Network Address Translation) 환경을 구성한 경우


하나의 공인 IP를 다수의 호스트가 공유하고 각각의 호스트를 사설 IP를 사용하도록 네트워크를 구성한다.

그러므로 NAT환경에서 ipconfig로 확인한 IP주소는 사설 IP주소다.


공인 IP 확인을 위한 간단한 서비스 : https://www.whatismyip.com/


프록시 서버를 구글검색 등을 통해 알아내서 (검색 : Free Web Proxy)

인터넷 익스플로러  도구 → 인터넷 옵션 → 연결 탭 , LAN 설정 → 프록시서버 사용, 고급 

   → 모든 프로토콜에 같은 프록시 서버 사용 → HTTP, Secure 선택


프록시 서버 셋팅 완료...



토르 브라우저 → 설치 → 접속 (끝)




블랙 마켓


ㅁㄴㅇㄹ 유용한 정보가 많다.


컴퓨팅 페이지, 프로그래밍, 해킹 등 여러 좋은 정보를 얻기 쉬움


무료 해킹툴 구할수도 있음 ( 물론 성능, 질로서는 ↓)

게임페이지도 있다. (허허...)


다양한 공격 툴...

'ETC' 카테고리의 다른 글

치환암호 풀어주는 웹사이트  (9) 2017.05.10
웹 툴  (0) 2017.04.25
해킹&해커관련정보 블로그  (0) 2017.04.25
해킹에 대하여... (기본)  (0) 2017.03.20
코드를 글에 보기 좋게 올리기  (0) 2017.03.15


       R               G              B

1비트 LSB   01010111    11010101    1011010     =>  101

2비트 LSB   01010111    11010101    1011010     =>  110110



랜덤한 색상을 선별해 기밀 메세지를 숨기는 기법

  • Pseudo-random LSB 기법
    • 원본 그림이 없을 경우 일반적인 분석기법으로는 탐지가 어려움

  • Selected LSB
    • RGB 중 하나를 선택하여 해당 색상에 기밀 메세지를 숨기는 방법

  • Image Downgrading 
    • 커버이미지의 하위 4비트를 기밀 메세지의 상위 4비트로 교체하는 기법

=> 은닉할 메세지가 어느정도 왜곡되어 전달되나 내용파악에 큰 문제가 없고, 

     커버미디어 용량의 거의 절반에 가까운 크기의 기밀 메세지를 은닉할수 있는 장점이 있다.

(그러나 의심받기 쉬워 자주 이용 X)



LSB 필터링


Enhanced LSB => 각 픽셀의 LSB가 1이면 255, 0이면 0으로 하는 기법

필터링 바이트 분포가 매우 랜덤하면 (0:1 = 50:50 / 0과 1의 비율 50:50)

특정파일을 삽이했다고 유추가능


Gray bit  :  각 픽셀의 RGB 색상이 같을 경우 검정색, 다른 경우 흰색으로 변환하는 GrayBit 기법


그 외에 특정색상(RGB)만 추출하는 기법, 색반전 기법 등이 존재


LSB 중 특정 오프넷 뒤에 파일을 숨겨놓은 스테가노그래피

=> 'LSB Slide 기법'



겉보기에는 같은 2개의 그림파일에서 Diffing을 통해 변조된 LSB값을 찾는 기법

=> 'Random LSB 기법'





디지털 포렌식 툴


  • WinHex : 강력한 Hex 에디터 기능뿐만 아니라 디스크 분석, 파일시스템 템플릿, 파일 카빙 등을 제공하는 도구
  • Photorec : 250개 이상의 매우 다양한 파일 시그니처를 가지고 있는 파일 카빙 도구 (이름 유추해볼때... 왠지 이미지파일에 해당되는듯)
  • TrueCrypt :  가상의 디스크 이미지를 생성해주는 도구로, 다양한 암호화 옵션을 지원하며 모든 플랫폼에서 사용할 수 있다.
  • FTK Imager : 디스크 / 메모리 이미징을 지원하는 디스크 분석 도구다.
  • Volatility : 메모리 덤프 분석에 사용되는 파이썬 프레임워크로, 매우 다양한 플러그인을 지원해 현재 가장 널리 쓰이는 메모리 분석 도구




코드 스크립트!!

코드 이런식으로 저장하고 싶으면 위에서 하셈


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <stdio.h>
#include <string.h>
 
void encrypt(char* P, char* C,char* table)
{
    int len;
    int i,j;
 
    len=strlen(P);
 
    for(i=0; i<len; i++){
        if(P[i]>='A' && P[i]<='Z')
            C[i]=table[P[i]-'A']-('a'-'A');
        else if(P[i]>='a' && P[i]<='z')
            C[i]=table[P[i]-'a'];
        else
            C[i]=P[i];
    }
}
 
void decrypt(char* C, char* D, char* table)
{
    int len;
    int i,j;
 
    len=strlen(C);
 
    for(i=0; i<len; i++){
        if(C[i]>='A' && C[i]<='Z')
        {
            for(j=0; j<26; j++)
                if((table[j]-('a'-'A'))==C[i])
                    D[i]='A'+j;
        }
        else if(C[i]>='a' && C[i]<='z')
        {
            for(j=0; j<26; j++)
                if(table[j]==C[i])
                    D[i]='a'+j;
        }
        else
            D[i]=C[i];
    }
}
 
 
int main()
{
    char plain[50]="HelloWorld!MyNameisArgos";
    char crypt[50];
    char d_crypt[50];
    char replace_table[27]="lqkrmnedvwxaopbghifstucjyz";
 
    strcpy(crypt,plain);
    printf("replace table : %s\n",replace_table);
 
    encrypt(plain,crypt,replace_table);
    printf("encrypt message : %s\n",crypt);
 
    strcpy(d_crypt,crypt);
    decrypt(crypt,d_crypt,replace_table);
    printf("decrypt message : %s\n",d_crypt);
 
    return 0;
}
cs



'ETC' 카테고리의 다른 글

치환암호 풀어주는 웹사이트  (9) 2017.05.10
웹 툴  (0) 2017.04.25
해킹&해커관련정보 블로그  (0) 2017.04.25
해킹에 대하여... (기본)  (0) 2017.03.20
취약점 마켓, 블랙마켓  (0) 2017.03.20
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. void encrypt(char* P, char* C,char* table)
  5. {
  6. int len;
  7. int i,j;
  8.  
  9. len=strlen(P);
  10.  
  11. for(i=0; i<len; i++){
  12. if(P[i]>='A' && P[i]<='Z')
  13. C[i]=table[P[i]-'A']-('a'-'A');
  14. else if(P[i]>='a' && P[i]<='z')
  15. C[i]=table[P[i]-'a'];
  16. else
  17. C[i]=P[i];
  18. }
  19. }
  20.  
  21. void decrypt(char* C, char* D, char* table)
  22. {
  23. int len;
  24. int i,j;
  25.  
  26. len=strlen(C);
  27.  
  28. for(i=0; i<len; i++){
  29. if(C[i]>='A' && C[i]<='Z')
  30. {
  31. for(j=0; j<26; j++)
  32. if((table[j]-('a'-'A'))==C[i])
  33. D[i]='A'+j;
  34. }
  35. else if(C[i]>='a' && C[i]<='z')
  36. {
  37. for(j=0; j<26; j++)
  38. if(table[j]==C[i])
  39. D[i]='a'+j;
  40. }
  41. else
  42. D[i]=C[i];
  43. }
  44. }
  45.  
  46.  
  47. int main()
  48. {
  49. char plain[50]="HelloWorld!MyNameisArgos";
  50. char crypt[50];
  51. char d_crypt[50];
  52. char replace_table[27]="lqkrmnedvwxaopbghifstucjyz";
  53.  
  54. strcpy(crypt,plain);
  55. printf("replace table : %s\n",replace_table);
  56.  
  57. encrypt(plain,crypt,replace_table);
  58. printf("encrypt message : %s\n",crypt);
  59.  
  60. strcpy(d_crypt,crypt);
  61. decrypt(crypt,d_crypt,replace_table);
  62. printf("decrypt message : %s\n",d_crypt);
  63.  
  64. return 0;
  65. }


'코드 저장소' 카테고리의 다른 글

[C] 폴리비우스 암호(Polibius cipher)  (0) 2017.03.15

+ Recent posts