Commit Graph
19 Commits
Author SHA1 Message Date
danielsagi cd1f79a658 fixed typo (#363) 2020-08-14 19:09:06 +03:00
daf53cb484 Two new kubelet active hunters. (#344)
* Introducing active hunters:

- FootholdViaSecureKubeletPort
- MaliciousIntentViaSecureKubeletPort

* Format

Updating code according to expected linting format.

* Format

Updating code according to expected linting format.

* Format

Updating code according to expected linting format.

* Format

Updating code according to expected linting format.

* Testing

Update code according to expected testing standards and implementation.

* Update documentation.

- Added some more mitigations and updated the references list.

* f-string is missing placeholders.

- flake8 is marking this line as an issue as it lacks a placeholder when indicating the use of f-string; corrected.

* Update kubelet.py

- Add network_timeout parameter into requests.post and requests.get execution.

* Update kubelet.py

- Modified name of variable.

* Update kubelet.py and test_kubelet.py

- Remove certificate authority.

* Update kubelet.py and test_kubelet.py.

- Introducing default number of rm attempts.

* Update kubelet.py and test_kubelet.py.

- Introduced number of rmdir and umount attempts.

* Update kubelet.py

- Modified filename to match kube-hunter description.

* Update several files.

- Instated the use of self.event.session for GET and POST requests.
- Testing modified accordingly to complete coverage of changes and introduced methods.
- Requirements changed such that the required version that supports sessions mocking is obtained.

* Update kubelet.py

- Introduced warnings for the following commands in case of failure: rm, rmdir, and umount.

* Update kubelet.py

- Remove "self.__class__.__name___" from self.event.evidence.

* Update kubelet.py

- Remove unnecessary message section.

* Update files.

- Address class change.
- Fix testing failure after removing message section.

* Update kubelet.py

- Provide POD and CONTAINER as part of the warning messages in the log.

Co-authored-by: Abdullah Garcia <abdullah.garcia@jpmorgan.com>
Co-authored-by: Yehuda Chikvashvili <yehudaac1@gmail.com>
Co-authored-by: danielsagi <danielsagi2009@gmail.com>
2020-06-29 09:20:49 +01:00
danielsagi d6ca666447 Minor hunting bug fixes (#360)
* fixed f string

* fixed wrong iteration on list when getting random pod

* added '/' suffix to path on kubelet debug handlers tests

* also fixed minor bug in etcd, protocol was refrenced on the hunter and not on the event

* ran black format

* moved protocol to be https

* ran black again

* fixed PR comments

* ran black again, formatting
2020-06-26 15:04:29 +01:00
Konstantin Weddige 78e16729e0 Fix typo (#354)
This fixes #353
2020-06-08 13:47:40 +01:00
Liz Rice 4484ad734f Fix CertificateDiscovery hunter for Python3 (#350)
* update base64 decode for python3

* chore: remove lint error about imports
2020-05-11 10:42:31 +01:00
Yehuda Chikvashvili a0127659b7 Decouple config and argument parsing (#342)
* Make config initialized explicitly
* Add mypy linting
* Make tests run individually
Resolve #341
2020-04-26 19:37:16 +03:00
mormamnandYehuda Chikvashvili 4cb2c8bad9 Dashboard hunter not working (#337)
* Fix dashboard hunter regression
Fix #336.
Add tests for dashboard hunter

Co-authored-by: Yehuda Chikvashvili <yehudaac1@gmail.com>
2020-04-13 04:06:13 +03:00
Yehuda Chikvashvili 14d73e201e Remove dynamic imports (#335)
* Remove plugins
Current usage of plugins is not pluggable and includes logging
stuff.
Move this to conf/logging.
* Removed dynamic imports
* Add tests for hunters registration
2020-04-13 02:56:13 +03:00
mormamn 124a51d84f Support ignoring IPs (#332)
* Support ignoring IPs

Closes #296
2020-04-07 21:47:50 +03:00
Yehuda Chikvashvili 0f1739262f Linting Standards (#330)
Fix linting issues with flake8 and black.
Add pre-commit congifuration, update documnetation for it.
Apply linting check in Travis CI.
2020-04-05 05:22:24 +03:00
mormamn 9ddf3216ab Optimize Cloud Discovery (#325)
* Optimized Cloud Discovery
Removed redundant actions of getting cloud type.
Make cloud discovery a lazy action.
Co-authored-by: Yehuda Chikvashvili <yehudaac1@gmail.com>
2020-03-29 22:59:38 +03:00
Yehuda Chikvashvili e7585f4ed3 Logging revamped (#318)
* Refine logging
Use logger objects instead of global root logger
Fixes #308 
Co-authored-by: Yehuda Chikvashvili <yehudaac1@gmail.com>
2020-03-04 21:03:36 +02:00
Yehuda Chikvashvili 6c34a62e39 Network operations timeout (#317)
* Add network operations timeout

This commit adds --network-timeout flag, which value will be used for
network operations timeout configurable, so demanding user
can set it to desired value.
2020-03-04 16:59:18 +02:00
69a31f87e9 Fix #127 Insecure Azure Cloud IP detection (#315)
* Fix Insecure Azure Cloud IP detection
Remove verify=False

Co-authored-by: blairch <15134348+blairch@users.noreply.github.com>
Co-authored-by: Yehuda Chikvashvili <yehudaac1@gmail.com>
2020-03-03 01:10:16 +02:00
mormamn bf646f5e0c Fix broken reporting (#313)
Added instance creation of reporters and dispatcher objects
Fixes #312
2020-02-26 22:40:16 +02:00
mormamn a8128b7ea0 Cleanup conf refactor (#310)
Reorganize config files, and argparse.
Resolves #289
Resolves #292
2020-02-25 12:29:18 +02:00
Liz Rice fe187bc50a Correct KB link (#299) 2020-02-14 17:44:58 +00:00
Yehuda Chikvashvili a4a8c71653 Fix empty report (#281)
* Fix empty report when active hunting

Running kube-hunter active hunting with plain report
did not show any report.
This commit changes Vulnerability.vid default value
to "None" (previously None)

Closes #280

* Improve debug and exception messages

Debugging hunters execution is hard due to lack of debug
information. No indication is made when a hunter starts.
Exceptions where printed without stack trace, which made
it difficult to follow.
2020-01-09 19:04:33 +02:00
fe3dba90d8 Refactor configuration (#283)
* Remove __main__ references and create a top-level config module

* Move conf module into separate standalone package

* Deprecate install_imports.py script

* Rename root package to kube_hunter

The previous src root package name was too generic and not unique,
so it can be used as external name.
Change `src` to `kube_hunter` so it can be referenced in a clear way.
Addtional changes made on the way:
* Make imports absolute
* Formatting

Relates to #185

* remove todos

Co-authored-by: Ryan Lahfa <masterancpp@gmail.com>
Co-authored-by: Itay Shakury <itay@itaysk.com>
2019-12-29 14:18:58 +02:00