ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SandBox-1편 설치
    Linux 2021. 7. 16. 17:03
    반응형

    사용머신 ubuntu16.04, win7

    <== 이렇게 우분투에서 WIN7에 명령을 내리면 WIN7에서 악성코드를 분석해서

    agent.py 를 통해서 다시 ubuntu에게 결과를 보내준다.

     

     

    apt-get update && apt-get -y upgrade 해서 업그레이드를 해주고

    <== pythonpython관련 모듈을 설치하도록하자

    이제 mongodb 패키지 저장소를 추가하도록하자

    <== apt-keyapt가 패키지를 인증하는데 사용하는 키 목록을 관리하는 패키지이다.

    <== adv를 보니깐 고급옵션을 gpg로 전달 이라는데

    gpg는 암호화, 복호화 프로그램이다. 무료이며, 인증을 위해 필요하다.

     

    apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5

    <== 로 키를 넣어주고

     

    bash -c 'echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" > /etc/apt/sources.list.d/mongodb-org-3.6.list'

    <== 해서 소스리스트에 mongodb패키지 저장소를 추가시켜주고

     

    apt update

    <== 해서 ubuntu mongodb의 패키지가 있는 mongodb-org-3.6.list를 리포지터리에 추가시켜주고

     

    apt install -y mongodb-org

    <== 해서 mongodb를 다운받도록하자

     

    service mongod start && systemctl enable mongod.service

    <== 를 해줘서 서비스를 실행시켜준뒤

    패킷을 가로채서 보기위해 tcpdump을 설치해주도록하자

    tcpdumptcp/ip뿐만 아니라 컴퓨터에 부착된 네트워크를 통해 송수신되는 기타 패킷을 가로채고 표시할 수 있게 도와준다.

     

    apt-get install -y tcpdump apparmor-utils

    <== apparmor-utils라는 보안 모듈을 설치했다. apparmor-utilsubuntu의 보안 모듈인데, sql등의 파일 경로와 파일 권한 등을 제어할수 있는 기능을 가졌다. mongodb에서 tcpdump등을 사용할수있게 따로 tcpdump를 제외 시켜주도록 하자

     

    aa-disable /usr/sbin/tcpdump

    <== aa-disable은 하나 이상의 프로필을 비활성화 하는데 사용된다. 이 명령은 커널에서 프로필을 언로드 하고 apparmor 시작시 프로필이 로드되지 않도록한다. apparmor를 이용해서 mongodb를 컨트롤할때 tcpdump는 제외되도록 설정이 된다.

     

    apt-get install -y tcpdump

    <== tcpdump를 설치하고

     

    apt autoremove -y

    <== 이건 에러가 안나면 딱히 안해줘도 된다.

    <== 예전에 다른 패키지의 의존성 때문에 설치됬지만 지금은 사용되지 않는 패키지를 삭제하는데 사용된다.

     

    setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump

    <== 일반 유저에서도 tcpdump를 사용할수있게 해주기위해(원래 well-knows 포트는 root 권한으로만 프로그램을 실행해야되지만, setcap을 이용해서 권한을 할당하면 루트가 아니여도, well-known 포트를 사용할 수 있게 해준다.

     

    getcap /usr/sbin/tcpdump

    <== 해서 파일 기능을 설정해주고

     

    apt-get -y install volatility

    <== 메모리를 분석해주는 volatility를 설치해주도록 하자

    암호화 해주는 m2crypto도 설치하자

    pip install m2crypto && pip install --upgrade pip

    cuckoopython2버전에서만 사용되는데 pip3python3이고, pippython 2.7의 버전을 맞춰주기 위해 pip을 버전에 맞춰서 다운받아줄것이다.

     

    apt -y install curl

    <== curl를 다운받고

     

    curl -O https://bootstrap.pypa.io/pip/2.7/get-pip.py

    <== 2.7버전의 pip을 다운받은뒤에

     

    python get-pip.py

    <== 해서 pip을 적용시켜주고

     

    pip install -U cuckoo

    <== 해서 cuckoo를 설치하도록 하자

    여기서 ERROR: jsonschema ~!~! 이런 에러가 뜨면 pip install six --user -U 해주고

    yara-python관련 에러가 뜨면

     

    apt -y remove python-yara

    <== 해서 수동으로 설정파일은 그대로 두고 삭제한뒤,

     

    pip install -U cuckoo

    <== 해서 다시 설치해주도록 하자

     

    cuckoo -d && cuckoo community

    <== 해서 정상적으로 작동하는지 확인하고

    이제 가상머신을 설치하도록하자

     

    apt-get install -y virtualbox

    <== 해서 virtualbox를 설치한뒤 windows를 설치하고

    <== 방화벽을 끄고 windows update도 멈춰주자

    방화벽을 끈 이유는 바이러스 분석을 하기 위해서이다. 방화벽에서 막으면 분석이 안되니깐!

    업데이트도 같은 이유이다.

    <== 방화벽 멈추는것은 간단하니 update만 설명하겠다. update에 들어가서 설정변경으로 들어간뒤

    <== 업데이트를 하지 않음으로 설정해주고

    <== 서비스에 들어가서 디펜더도 꺼주도록 하자

    <== vmware vmware tools격인 vitualbox guest를 불러오자 불러오면

    <== 이렇게 컴퓨터에 뜨는데 이것을 설치해주자

    <== 공유폴더를 설정해주고

    <== 재부팅을 해야 공유폴더 한것이 보인다.

    python2.7버전을 설치해준뒤에

    <== python을 이용해서 pillow 라이브러리를 설치해주도록하자

    pillow는 이미지 처리를 위한 모듈이다.

    <== host-only로 추가시켜주기 위해 추가시키고

    <== win7의 설정도 바꿔주자

    <== ip설정을 정적으로 바꿔주고

    <== cuckoo의 리포트설정파일에 들어가서

    <== 우리는 mongodb를 사용하므로 mongodbenabled 부분이 no로 되어있는것을 yes로 바꿔주자

    <== .cuckoo에 들어가보면 cuckoo.conf 파일이 있는데 이건 쿠쿠의 설정파일이다.

    샌드박스에서의 일반적인 행위와 분석 옵션등을 지정해준다. 가상화방식도 지원해준다.

    우린 virtualbox를 이용해 설치했으니 virtualbox 설정으로 바꿔주고, virtualbox.conf 파일에서 수정해주자

    <== 를 열고

    <== 뭐 의미는 사용할 기계 모듈의 이름을 지정하란다. cuckoo와 너가 선택한 가상화 소프트웨어간의 상호작용을 정의한단다.

    virtualbox로 바꿔주자

    <== 바로 아래에 memory_dump를 활성화 시켜줘서 volatility를 활성화를 할것이다.

    <== 이렇게 바꾼뒤에

    <== 좀더 내려가면 분석결과를 받을 hostip주소와 포트를 설정하는 칸이 있는데, 만약 host-only로 사용할것이라면, ip주소를 그대로 두고(기본값이 56.1임)

     

    <== 만약 host-only로 사용하고 싶은데 외부랑 통신하고싶다면 포트포워딩을 해줘야될것이다

    명령어는

    iptables -P FORWARD DROP

    iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

    iptables -A FORWARD -s 192.168.56.0/24 -j ACCEPT

    iptables -A FORWARD -s 192.168.56.0/24 -d 192.168.56.0/24 -j ACCEPT

    echo 1 |tee -a /proc/sys/net/ipv4/ip_forward

    <== 이다.

    <== 다음으로 virtualbox.conf 파일을 열어서 보면

    <== 이렇게 되어있다. mode랑 인터페이스가 설정되어있다. 필자는 우분투의 네트워크를 사용한다고 했으므로 ens33랑 그래픽 모드로 바꿔주도록하자

    <== 이렇게 바꿔주자

    <== 좀 아래에 이렇게 label하고 플렛폼, ip주소가 설정되어있는데 해당 플렛폼과 맞춰주고, 원하는 ip주소로 설정으로 바꿔주자

    <== 이렇게 바꿔주고

    <== 이 파일은 멀웨어 분석과 동시에 실행되는 스크립트로 다양한 옵션이 정의되어있다.

    <== 보게되면 외부 sniffer를 사용하고,  도구는 tcpdump이며, 그 위치를 지정한것을 볼수있다.

    <== mitmdump를 사용하고 싶다면 다운받고 yes로 바꿔주자

    <== memory.conf 파일을 보게된다면

    <== 이렇게 volatility를 사용하기 위해 memory 파일을 덤프 시키는것을 허용해주도록하자

    <== yes로 바꾸고

    <== cuckoo 파일위치로 이동한뒤, cuckoo를 실행하고

    <== mongodb 서비스가 실행되어있어야 실행되므로 실행을 해준뒤, web 서버를 실행시켜주자

    <== http://127.0.0.1:8000으로 들어가라고 해서 들어갔더니 잘 뜬다

    반응형

    'Linux' 카테고리의 다른 글

    SecurityOnion 네트워크 설정  (0) 2022.02.04
    Security Onion 설치  (0) 2022.02.03
    데비안 계열 리눅스에 칼리 도구 다운받기  (0) 2021.06.30
    fdisk_LVM  (0) 2021.06.30
    리눅스 각종 에러  (0) 2021.06.30

    댓글

Designed by Tistory.