mirror of
https://github.com/moloch--/sliver-script
synced 2026-06-08 16:08:26 +00:00
1e8b4ca59099e62db521384374b20a919a0ddff2
Bumps [rxjs](https://github.com/reactivex/rxjs) from 6.5.5 to 7.5.6. - [Release notes](https://github.com/reactivex/rxjs/releases) - [Changelog](https://github.com/ReactiveX/rxjs/blob/master/CHANGELOG.md) - [Commits](https://github.com/reactivex/rxjs/compare/6.5.5...7.5.6) --- updated-dependencies: - dependency-name: rxjs dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Sliver Script
Sliver-script is a TypeScript/JavaScript client library for Sliver, it can be used to automate any operator interaction with Sliver. Sliver-script uses existing Sliver client configuration files and connects to servers using gRPC over Mutual-TLS. It also provides RxJS abstractions for easy interactions with real-time components.
⚠️ Support for Sliver v1.5+ is a work in progress.
Install
Node v14 or later is required for this package, and it can be installed via npm:
npm install sliver-script
TypeScript Example
Basic
import { SliverClient, ParseConfigFile } from 'sliver-script'
(async function() {
const config = await ParseConfigFile('./moloch_localhost.cfg')
const client = new SliverClient(config)
console.log(`Connecting to ${client.host()} ...`)
await client.connect()
const sessions = await client.sessions()
console.log(sessions)
})()
Monitor Events in Real-time
import { SliverClient, ParseConfigFile } from 'sliver-script'
(async function() {
const config = await ParseConfigFile('./moloch_localhost.cfg')
const client = new SliverClient(config)
await client.connect()
client.event$.subscribe((event) => {
console.log(event)
})
})()
Automatically Interact with New Sessions
import { SliverClient, ParseConfigFile } from 'sliver-script'
(async function() {
const config = await ParseConfigFile('moloch_localhost.cfg')
const client = new SliverClient(config);
await client.connect()
console.log('Waiting for new sessions ...')
client.session$.subscribe(async (event) => {
console.log(`New session #${event.getSession().getId()}!`)
const session = await client.interactWith(event.getSession())
const ls = await session.ls()
console.log(`Path: ${ls.getPath()}`)
ls.getFilesList().forEach(file => {
console.log(`Name: ${file.getName()} (Size: ${file.getSize()})`)
})
})
})()
JavaScript Example
const sliver = require('sliver-script')
(async function() {
const config = await sliver.ParseConfigFile('./moloch_localhost.cfg')
const client = new sliver.SliverClient(config)
await client.connect()
console.log('Waiting for new sessions ...')
client.session$.subscribe(async (event) => {
console.log(`New session #${event.getSession().getId()}!`)
const session = await client.interactWith(event.getSession())
const ls = await session.ls()
console.log(`Path: ${ls.getPath()}`)
ls.getFilesList().forEach(file => {
console.log(`Name: ${file.getName()} (Size: ${file.getSize()})`)
})
})
})()
Description
Languages
TypeScript
98.7%
JavaScript
1.2%
Shell
0.1%