Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
jordan-brough-dreamy
Advanced tools
Dreamy is Ruby library and command line tool for interfacing with DreamHost's API. The API itself is still very young so this is by no means a comprehensive library. Please fork and contribute!
Grab the gem from GitHub
gem sources -a http://gems.github.com
gem install sant0sk1-dreamy
DreamHost requires a username (email or webID) and API key (available from your DH Panel) to make API requests. When creating a Dreamy instance you'll need to provide this data. The Dreamy command line tool (dh) gathers the necessary info from a configuration file or environment variables, but you can do it however you'd like.
To get started with the library, just require the gem:
require 'rubygems'
require 'dreamy'
Create a new object using your username and API key.
account = Dreamy::Base.new(username,api_key)
Fetch an array of Dreamy::Domain objects:
account.domains
Now that you have an array you can have your way with the data:
account.domains.each do |d|
puts d.domain
puts d.type
puts d.home
end
Same goes with Users, DNS records, announcement list subscribers, MySQL databases, MySQL hosts, and MySQL users
# fetch an array of Dreamy::User objects
account.users
# fetch an array of Dreamy::Dns objects
account.dns
# fetch an array of Dreamy::AnnounceList objects
account.announce_lists
# fetch an array of Dreamy::Subscribers to an announcement list
account.announce_list(listname,domain)
# fetch an array of Dreamy::MysqlUser objects
account.mysql_users
You can interact with announcement lists by adding and removing subscribers
# add a new subscriber to an announcement list
account.announce_add(listname,domain,email)
# remove a subscriber from an announcement list
account.announce_remove(listname,domain,email)
You can interact with DNS by adding and removing records
# add a new A record for a subdomain of an hosted domain
account.dns_add(subdomain,"A","123.321.123.321")
# remove the A record just created
account.dns_remove(subdomain,"A","123.321.123.321")
You can interact with your Private Server in many different ways
# change a private server setting
account.ps_set(ps_name,setting,value)
# set the memory size (MB)
account.ps_size_set(ps_name,"200")
# reboot the server
account.ps_reboot!(ps_name)
Check the base class for all the different API calls.
More and more functions will be added as time allows. If there's something missing that you want in, please:
fork -> commit -> pull request
The Dreamy gem will install an executable called "dh". In order to use it, you'll need to set your DreamHost account username and API key. You can acquire an API key from the DreamHost panel. "dh" will fetch your API credentials from 2 places, respectively:
An example ~/.dreamyrc would look like:
dh_user@gmail.com
34TGGGKBRG3YD1EA
2) Environment variables DH_USER and DH_KEY. You can set these by typing this in your shell:
export DH_USER=dh_user@gmail.com
export DH_KEY=34TGGGKBRG3YD1EA
If you want to make those environment variables permanent, add those 2 lines to the bottom of your ~/.bashrc
Run this from the command line to print the usage:
dh help
=== Commands
announce # list announce lists
announce:list <list> # list all subscribers to <name> list
announce:add <list> <email> # add subscriber with <email> to <list>
announce:remove <list> <email> # remove subscriber with <email> from <list>
dns # list DNS records
dns <name> # list DNS records for <name>
dns:add <record> <type> <value> # add DNS record
dns:remove <record> <type> <value> # remove DNS record
domains:http # list HTTP domain details
domains:mysql # list MySQL domains
domains:status # check availability of all domains (pingability)
mysql:dbs # list MySQL database details
mysql:hosts # list MySQL database hostnames
mysql:users # list MySQL user details
ps # list private servers
ps:add <web|mysql> <yes|no> # adds a private server of type <web|mysql>. Yes = move data
ps:pending # list private servers scheduled to be created
ps:reboots <name> # list historical reboots for <name>
ps:reboot <name> now! # reboot <name> now! (proceed with caution)
ps:remove # removes all pending private servers
ps:settings <name> # list settings for private server <name>
ps:set <name> <setting> <value> # change <setting> on <name> to <value>
ps:size <name> # list historical memory sizes for <name>
ps:size <name> <value> # set new memory <value> for <name>
ps:usage <name> # list historical memory & CPU usage for <name>
users # list user accounts: details
users:pw # list user accounts: usernames & passwords
That's it for now. New commands should be springing up as Dreamy and the DreamHost API mature!
FAQs
Unknown package
We found that jordan-brough-dreamy demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.