31.5.26

sliver-C2-docker

 /opt/sliver-lab/ 

├── sliver/ # git clone https://github.com/BishopFox/sliver.git #自行下載

└── docker-compose.yml

Dockerfile #要替換掉


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

docker-compose.yml

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

services:

  sliver-server:

    build:

      context: ./sliver        

      dockerfile: Dockerfile    

    container_name: custom_sliver

    restart: unless-stopped

    cap_add:

      - NET_ADMIN

      - NET_RAW

    ports:

      - "31337:31337"

      - "80:80"

      - "443:443"

      - "53:53/udp"

      - "8888:8888"

    volumes:

      - sliver_data:/root/.sliver

      - sliver_client_data:/root/.sliver-client

      - ./output:/opt/output


volumes:

  sliver_data:

  sliver_client_data:

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

Dockerfile

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

#

# For production:

#   docker build --target production -t sliver .

#   docker run -it --rm -v $HOME/.sliver:/home/sliver/.sliver sliver 

#

# For unit testing:

#   docker build --target test .

#   docker build --target test --build-arg GO_TESTS_FLAGS=--skip-generate .

#


# STAGE: base

## Compiles Sliver for use

FROM golang:latest AS base


### Base packages

RUN apt-get update --fix-missing && apt-get -y install \

    git build-essential zlib1g zlib1g-dev wget zip unzip


### Add sliver user

RUN groupadd -g 999 sliver && useradd -r -u 999 -g sliver sliver

RUN mkdir -p /home/sliver/ && chown -R sliver:sliver /home/sliver


### Build sliver:

RUN mkdir -p /go/src/github.com/bishopfox/sliver

WORKDIR /go/src/github.com/bishopfox/sliver

ADD . /go/src/github.com/bishopfox/sliver/

ENV GOPROXY="https://proxy.golang.org,direct"

RUN git config --global http.postBuffer 524288000 && git config --global http.sslVerify false && go mod tidy && go mod vendor && make

RUN go mod tidy && go mod vendor && make

RUN cp -vv sliver-server /opt/sliver-server


# STAGE: test

## Run unit tests against the compiled instance

## Use `--target test` in the docker build command to run this stage

FROM base AS test


ARG GO_TESTS_FLAGS=""

ENV GO_TESTS_FLAGS="${GO_TESTS_FLAGS}"


RUN apt-get update --fix-missing \

    && apt-get -y upgrade \

    && apt-get -y install \

    curl


RUN /opt/sliver-server unpack --force 


### Run unit tests

RUN /go/src/github.com/bishopfox/sliver/go-tests.sh ${GO_TESTS_FLAGS}


# STAGE: production

## Final dockerized form of Sliver

FROM debian:bookworm-slim AS production


### Install production packages

RUN apt-get update --fix-missing \

    && apt-get -y upgrade \

    && apt-get -y install \

    libxml2 libxml2-dev libxslt-dev locate gnupg \

    libreadline6-dev libcurl4-openssl-dev git-core \

    libssl-dev libyaml-dev openssl autoconf libtool \

    ncurses-dev bison curl xsel postgresql \

    postgresql-contrib postgresql-client libpq-dev \

    curl libapr1 libaprutil1 libsvn1 \

    libpcap-dev libsqlite3-dev libgmp3-dev \

    nasm


### Install MSF for stager generation

RUN curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall \

    && chmod 755 msfinstall \

    && ./msfinstall \

    && mkdir -p ~/.msf4/ \

    && touch ~/.msf4/initial_setup_complete 


### Cleanup unneeded packages

RUN apt-get remove -y curl gnupg \

    && apt-get autoremove -y \

    && apt-get clean \

    && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*


### Add sliver user

RUN groupadd -g 999 sliver \

    && useradd -r -u 999 -g sliver sliver \

    && mkdir -p /home/sliver/ \

    && chown -R sliver:sliver /home/sliver \

    && su -l sliver -c 'mkdir -p ~/.msf4/ && touch ~/.msf4/initial_setup_complete'


### Copy compiled binary

COPY --from=base /opt/sliver-server  /opt/sliver-server


### Unpack Sliver:

USER sliver

RUN /opt/sliver-server unpack --force 


WORKDIR /home/sliver/

VOLUME [ "/home/sliver/.sliver" ]

ENTRYPOINT [ "/opt/sliver-server" ]



# STAGE: production-slim (about 1Gb smaller)

FROM debian:bookworm-slim AS production-slim


### Install production packages

RUN apt-get update --fix-missing \

    && apt-get -y upgrade


### Cleanup unneeded packages

RUN apt-get autoremove -y \

    && apt-get clean \

    && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*


### Add sliver user

RUN groupadd -g 999 sliver \

    && useradd -r -u 999 -g sliver sliver \

    && mkdir -p /home/sliver/ \

    && chown -R sliver:sliver /home/sliver


### Copy compiled binary

COPY --from=base /opt/sliver-server  /opt/sliver-server


### Unpack Sliver:

USER sliver

RUN /opt/sliver-server unpack --force 


WORKDIR /home/sliver/

VOLUME [ "/home/sliver/.sliver" ]

ENTRYPOINT [ "/opt/sliver-server" ]


沒有留言:

張貼留言