Commit Graph

13 Commits

Author SHA1 Message Date
daniel_sagi
a465c3f2eb 1. Changed order of modules and pacakges in directories.
2. Changed method of hidden stacking of event, to send self as an argument, by inheriting from "Hunter" class. where the publish acts as a proxy to the handler.
3. Added new way of categorizing events, while added an option to subscribe to a father event. if en event gets publish, if its father event is hooked, the hook will be triggered
4. Added a reporter in log/ which listens to parent events, meanwhile Vulnerability and OpenService were added. all logging will be made from reporter from now on
2018-05-27 17:45:34 +03:00
daniel_sagi
69dba8f1c7 Merge branch 'KubeHunter2' 2018-05-24 16:06:00 +03:00
daniel_sagi
290f87de70 1. added log/
2. Started adding kubelet scanning.
3. Changed events architecture. All events are inheriting from "Event" class. when instantiating and defining a new event class, attributes other than what is important for that perticular event are not needed. the event handler will be stacking the events, so that each event will have all the attributes of its successors.
This proccess is invisible to the developer, but needs to be acknowledged.
*note: from now on, all executors needs to set self.event to given arg on init*
Example (pseudo):

@subscribe(NewHostEvent)
def PortScan(event):
		publish(OpenPortEvent(port="8080"))

@subscribe(OpenPortEvent)
def print(event):
		print(event.host)

publish(NewHostEvent(host="0.0.0.0"))
>> output: 0.0.0.0

the print function recieves an open port event. even though when publishing the OpenPortEvent we did not specify a host, the print function can access the "host" attribute, as the OpenPortEvent successor was NewHostEvent. if "host" was not defined on the succesors, it is "None"
2018-05-24 15:39:31 +03:00
daniel_sagi
672c59f576 Added events/ folder.
Added dynamic imports for all modules inside: 'events/',  'discovery/', 'hunting/' (you can now add new files with new implementations, and not worry about imports.)
Changed port timeout to be 1.5 seconds, more reliable results.
Changed default log level to INFO
2018-05-15 15:57:42 +03:00
daniel_sagi
3765196140 Changed events architecture, using class objects for all events
Added new subscription method for events, using a "subscribe" decorator.
Added an optional predicate function to events, for optional filtering on triggered time. used mainly for OpenPortEvent.
Added proper logging and argparse
Added cleanup of threads when exiting/finishing
2018-05-15 13:03:47 +03:00
daniel_sagi
c735b5df95 Started adding KubeProxy hunting, basic services detection mechanism was added.
The idea is discovering sub paths of resources in the api and sending them for hunting.

Added Dashboard detection from Proxy.
Also improved architecture of discovery/hunting from a "secure" perspective
2018-05-15 12:35:36 +03:00
daniel_sagi
beb50d40bc Added .gitignore file, ignoring .pyc files,
Also changed modules structure
2018-05-13 17:16:51 +03:00
daniel_sagi
48e1307f1d Added EventQueue class, to handle events.
Events now gets processed asynchronously.
2018-05-10 14:25:29 +03:00
daniel_sagi
6acf1beec8 changed function describe_service_type in services, to use a dictionary 2018-05-08 10:07:51 +03:00
Shir
eb6cbc2636 Initial Commit 2018-05-06 19:51:36 +03:00
Shir
cd880ec50e Delete everything of Kube Hunter 1.0 2018-05-06 19:50:00 +03:00
daniel_sagi
c8c8cd9ebd Fixed failed tries to scan unimplemented services
Added an empty url to dashboard hunter
Added chrome binary to automatically be install
2018-04-23 20:06:20 +03:00
Yehuda Chikvashvili
1a91ac63da initial commit 2018-03-26 17:25:30 +03:00