# TravisCI Sekuriteit

{{#include ../../banners/hacktricks-training.md}}

## Wat is TravisCI

**Travis CI** is 'n **gehoste** of op **plek** **deurlopende integrasie** diens wat gebruik word om sagtewareprojekte te bou en te toets wat op verskeie **verskillende git platforms** gehost word.

{{#ref}}
basic-travisci-information.md
{{#endref}}

## Aanvalle

### Triggers

Om 'n aanval te begin, moet jy eers weet hoe om 'n bou te aktiveer. Standaard sal TravisCI **'n bou aktiveer op stoot en trek versoeke**:

![](<../../images/image (145).png>)

#### Cron Jobs

As jy toegang het tot die webtoepassing, kan jy **crons instel om die bou te laat loop**, dit kan nuttig wees vir volharding of om 'n bou te aktiveer:

![](<../../images/image (243).png>)

> [!NOTE]
> Dit lyk of dit nie moontlik is om crons binne die `.travis.yml` in te stel nie volgens [hierdie](https://github.com/travis-ci/travis-ci/issues/9162).

### Derdeparty PR

TravisCI deaktiveer standaard die deel van omgewing veranderlikes met PR's wat van derde partye kom, maar iemand mag dit aktiveer en dan kan jy PR's na die repo skep en die geheime uitbring:

![](<../../images/image (208).png>)

### Dumping Secrets

Soos verduidelik in die [**basiese inligting**](basic-travisci-information.md) bladsy, is daar 2 tipes geheime. **Omgewing Veranderlikes geheime** (wat op die webblad gelys is) en **aangepaste versleutelde geheime**, wat binne die `.travis.yml` lêer as base64 gestoor word (let daarop dat albei as versleuteld gestoor sal eindig as omgewing veranderlikes in die finale masjiene).

- Om **geheime** wat as **Omgewing Veranderlikes** geconfigureer is te **nommer**, gaan na die **instellings** van die **projek** en kyk na die lys. Let egter daarop dat al die projek omgewing veranderlikes wat hier gestel is, sal verskyn wanneer 'n bou geaktiveer word.
- Om die **aangepaste versleutelde geheime** te nommer, is die beste wat jy kan doen om die **`.travis.yml` lêer** te **kontroleer**.
- Om **versleutelde lêers** te **nommer**, kan jy kyk vir **`.enc` lêers** in die repo, vir lyne soortgelyk aan `openssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d` in die konfigurasielêer, of vir **versleutelde iv en sleutels** in die **Omgewing Veranderlikes** soos:

![](<../../images/image (81).png>)

### TODO:

- Voorbeeld bou met omgekeerde skulp wat op Windows/Mac/Linux loop
- Voorbeeld bou wat die omgewing base64 geënkodeer in die logs lek

### TravisCI Enterprise

As 'n aanvaller in 'n omgewing eindig wat **TravisCI enterprise** gebruik (meer inligting oor wat dit is in die [**basiese inligting**](basic-travisci-information.md#travisci-enterprise)), sal hy in staat wees om **bou te aktiveer in die Werker.** Dit beteken dat 'n aanvaller in staat sal wees om lateraal na daardie bediener te beweeg waar hy in staat kan wees om:

- na die gasheer te ontsnap?
- kubernetes te kompromitteer?
- ander masjiene wat in dieselfde netwerk loop te kompromitteer?
- nuwe wolk geloofsbriewe te kompromitteer?

## Verwysings

- [https://docs.travis-ci.com/user/encrypting-files/](https://docs.travis-ci.com/user/encrypting-files/)
- [https://docs.travis-ci.com/user/best-practices-security](https://docs.travis-ci.com/user/best-practices-security)

{{#include ../../banners/hacktricks-training.md}}
