Watson
Enumerate missing KBs and suggest exploits for useful Privilege Escalation vulnerabilities
Top Related Projects
Ruby toolkit for the GitHub API
A Java serialization/deserialization library to convert Java Objects into JSON and back
A type-safe HTTP client for Android and the JVM
Main Portal page for the Jackson project
Square’s meticulous HTTP client for the JVM, Android, and GraalVM.
Quick Overview
The Watson project by rasta-mouse is a Python library that provides a set of tools and utilities for interacting with the IBM Watson services, including Natural Language Processing (NLP), Speech-to-Text, and Text-to-Speech. It aims to simplify the process of integrating Watson services into your Python applications.
Pros
- Simplified API: The Watson library abstracts away the complexity of the IBM Watson API, providing a more user-friendly interface for developers.
- Supports Multiple Watson Services: The library supports a wide range of IBM Watson services, including NLP, Speech-to-Text, and Text-to-Speech.
- Cross-Platform Compatibility: The Watson library is designed to work across multiple platforms, including Windows, macOS, and Linux.
- Active Development: The project is actively maintained, with regular updates and bug fixes.
Cons
- Dependency on IBM Watson Services: The Watson library is dependent on the IBM Watson services, which may incur additional costs for users.
- Limited Documentation: The project's documentation could be more comprehensive, making it challenging for new users to get started.
- Potential Performance Issues: Depending on the size and complexity of the data being processed, the Watson library may experience performance issues.
- Limited Community Support: The project has a relatively small community, which may limit the availability of support and resources for users.
Code Examples
Here are a few examples of how to use the Watson library:
- Natural Language Processing:
from watson.natural_language_processing import NaturalLanguageProcessingV1
nlp = NaturalLanguageProcessingV1(
iam_apikey='your_api_key',
url='https://api.us-south.natural-language-processing.watson.cloud.ibm.com/instances/your_instance_id'
)
text = "The quick brown fox jumps over the lazy dog."
response = nlp.analyze(text=text, features=['entities', 'keywords'])
print(response)
- Speech-to-Text:
from watson.speech_to_text import SpeechToTextV1
stt = SpeechToTextV1(
iam_apikey='your_api_key',
url='https://api.us-south.speech-to-text.watson.cloud.ibm.com/instances/your_instance_id'
)
with open('audio.wav', 'rb') as audio_file:
response = stt.recognize(
audio=audio_file,
content_type='audio/wav',
model='en-US_BroadbandModel'
)
print(response)
- Text-to-Speech:
from watson.text_to_speech import TextToSpeechV1
tts = TextToSpeechV1(
iam_apikey='your_api_key',
url='https://api.us-south.text-to-speech.watson.cloud.ibm.com/instances/your_instance_id'
)
text = "Hello, this is a sample text-to-speech conversion."
with open('output.mp3', 'wb') as audio_file:
audio = tts.synthesize(text, accept='audio/mp3')
audio_file.write(audio.content)
Getting Started
To get started with the Watson library, follow these steps:
- Install the library using pip:
pip install watson-developer-cloud
-
Obtain your IBM Watson service credentials, including the
iam_apikey
andurl
for the services you want to use. -
Import the relevant Watson service classes and initialize them with your credentials:
from watson.natural_language_processing import NaturalLanguageProcessingV1
from watson.speech_to_text import SpeechToTextV1
from watson.text_to_speech import TextToSpeechV1
nlp = NaturalLanguageProcessingV1(
iam_apikey='your_api_key',
url='https://api.us-south.natural-language-processing.watson.cloud.ibm.com/instances/your_instance_id'
)
stt = S
Competitor Comparisons
Ruby toolkit for the GitHub API
Pros of Octokit.rb
- Octokit.rb is a well-established and widely-used Ruby library for interacting with the GitHub API, with a large and active community.
- The library provides a comprehensive set of features and functionality, making it easy to perform a wide range of GitHub-related tasks.
- Octokit.rb has excellent documentation and a wealth of online resources, making it easy for developers to get started and find solutions to their problems.
Cons of Octokit.rb
- Octokit.rb may be overkill for simple GitHub-related tasks, as it can be more complex and heavyweight than necessary.
- The library may not be as flexible or customizable as a more lightweight, custom-built solution like Watson.
- Octokit.rb may have a steeper learning curve for developers who are new to the GitHub API or Ruby programming.
Code Comparison
Octokit.rb:
client = Octokit::Client.new
repos = client.repositories('octokit')
repos.each do |repo|
puts "#{repo.name} - #{repo.description}"
end
Watson:
from watson import Watson
watson = Watson()
repos = watson.get_user_repos('rasta-mouse')
for repo in repos:
print(f"{repo['name']} - {repo['description']}")
A Java serialization/deserialization library to convert Java Objects into JSON and back
Pros of Google/gson
- Widespread Adoption: Google/gson is a widely-used and well-established JSON parsing library, with a large community and extensive documentation.
- Simplicity: The library provides a straightforward and easy-to-use API for converting Java objects to JSON and vice versa.
- Performance: Google/gson is known for its efficient performance, making it a suitable choice for applications with high-volume JSON processing requirements.
Cons of Google/gson
- Limited Customization: Compared to Watson, Google/gson may offer fewer options for customizing the JSON serialization and deserialization process.
- Dependency on Google: As a Google-maintained project, Google/gson may be subject to changes or discontinuation decisions made by the tech giant, which could impact long-term project stability.
Code Comparison
Google/gson:
Gson gson = new Gson();
Person person = new Person("John Doe", 30);
String json = gson.toJson(person);
Person deserializedPerson = gson.fromJson(json, Person.class);
Watson:
ObjectMapper mapper = new ObjectMapper();
Person person = new Person("John Doe", 30);
String json = mapper.writeValueAsString(person);
Person deserializedPerson = mapper.readValue(json, Person.class);
A type-safe HTTP client for Android and the JVM
Pros of Retrofit
- Retrofit is a widely-used and well-established library for making HTTP requests in Android applications, with a large and active community.
- It provides a simple and intuitive API for defining and making API calls, with support for various HTTP methods and request types.
- Retrofit integrates well with other popular libraries, such as OkHttp and Gson, making it easy to build a complete networking stack.
Cons of Retrofit
- Retrofit may have a steeper learning curve compared to Watson, especially for developers new to Android development.
- Retrofit is primarily focused on Android, while Watson is a more general-purpose library that can be used in various environments.
- Retrofit may have a larger codebase and more dependencies compared to Watson, which could impact the overall project size and complexity.
Code Comparison
Retrofit:
public interface GitHubService {
@GET("users/{user}/repos")
Call<List<Repo>> listRepos(@Path("user") String user);
}
Watson:
from watson import Watson
watson = Watson()
response = watson.get("https://api.github.com/users/rasta-mouse/repos")
print(response.json())
Main Portal page for the Jackson project
Pros of Jackson
- Jackson is a widely-used and well-established library for JSON processing in Java, with a large and active community.
- It provides a comprehensive set of features, including support for streaming, tree model, and data binding.
- Jackson is highly performant and efficient, making it a popular choice for high-performance applications.
Cons of Jackson
- Jackson has a steeper learning curve compared to Watson, especially for more advanced use cases.
- The library can be more complex to configure and customize, depending on the specific requirements of the project.
- Jackson may have a larger footprint in terms of dependencies and runtime overhead compared to Watson.
Code Comparison
Watson (rasta-mouse/Watson):
JsonObject json = new JsonObject();
json.put("name", "John Doe");
json.put("age", 30);
json.put("email", "john.doe@example.com");
Jackson (FasterXML/jackson):
ObjectMapper mapper = new ObjectMapper();
ObjectNode json = mapper.createObjectNode();
json.put("name", "John Doe");
json.put("age", 30);
json.put("email", "john.doe@example.com");
Square’s meticulous HTTP client for the JVM, Android, and GraalVM.
Pros of OkHttp
- OkHttp is a widely-used, mature, and well-maintained HTTP client library for Java and Kotlin, with a large and active community.
- It provides a simple and intuitive API for making HTTP requests, handling responses, and managing connection pooling.
- OkHttp has excellent performance and supports features like caching, connection reuse, and automatic retries.
Cons of OkHttp
- Watson, the project you mentioned, is a more specialized library focused on IBM Watson services, while OkHttp is a general-purpose HTTP client.
- The learning curve for OkHttp may be steeper than Watson, as it has a more extensive set of features and configuration options.
- OkHttp may be overkill for simple HTTP use cases, where a more lightweight library like Watson might be more appropriate.
Code Comparison
OkHttp:
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://api.example.com/data")
.build();
Response response = client.newCall(request).execute();
Watson:
IamOptions options = new IamOptions.Builder()
.apiKey("your-api-key")
.build();
AssistantService assistant = new AssistantService("2019-02-28", options);
MessageOptions messageOptions = new MessageOptions.Builder()
.assistantId("your-assistant-id")
.input(new InputData.Builder("Hello").build())
.build();
MessageResponse response = assistant.message(messageOptions).execute();
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Watson
Watson is a .NET tool designed to enumerate missing KBs and suggest exploits for Privilege Escalation vulnerabilities.
Supported Versions
- Windows 10 1507, 1511, 1607, 1703, 1709, 1803, 1809, 1903, 1909, 2004
- Server 2016 & 2019
Usage
C:\> Watson.exe
__ __ _
/ / /\ \ \__ _| |_ ___ ___ _ __
\ \/ \/ / _` | __/ __|/ _ \| '_ \
\ /\ / (_| | |_\__ \ (_) | | | |
\/ \/ \__,_|\__|___/\___/|_| |_|
v2.0
@_RastaMouse
[*] OS Build Number: 14393
[*] Enumerating installed KBs...
[!] CVE-2019-0836 : VULNERABLE
[>] https://exploit-db.com/exploits/46718
[>] https://decoder.cloud/2019/04/29/combinig-luafv-postluafvpostreadwrite-race-condition-pe-with-diaghub-collector-exploit-from-standard-user-to-system/
[!] CVE-2019-0841 : VULNERABLE
[>] https://github.com/rogue-kdc/CVE-2019-0841
[>] https://rastamouse.me/tags/cve-2019-0841/
[!] CVE-2019-1064 : VULNERABLE
[>] https://www.rythmstick.net/posts/cve-2019-1064/
[!] CVE-2019-1130 : VULNERABLE
[>] https://github.com/S3cur3Th1sSh1t/SharpByeBear
[!] CVE-2019-1253 : VULNERABLE
[>] https://github.com/padovah4ck/CVE-2019-1253
[!] CVE-2019-1315 : VULNERABLE
[>] https://offsec.almond.consulting/windows-error-reporting-arbitrary-file-move-eop.html
[*] Finished. Found 6 potential vulnerabilities.
Issues
-
I try to update Watson after every Patch Tuesday, but for potential false positives check the latest supersedence information in the Windows Update Catalog. If you still think there's an error, raise an Issue with the
Bug
label. -
If there's a particular vulnerability that you want to see in Watson that's not already included, raise an Issue with the
Vulnerability Request
label and include the CVE number. -
If you know of a good exploit for any of the vulnerabilities in Watson, raise an Issue with the
Exploit Suggestion
label and provide a URL to the exploit.
Top Related Projects
Ruby toolkit for the GitHub API
A Java serialization/deserialization library to convert Java Objects into JSON and back
A type-safe HTTP client for Android and the JVM
Main Portal page for the Jackson project
Square’s meticulous HTTP client for the JVM, Android, and GraalVM.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot