Projekt OpDemand Shell obsahuje příkazového řádku klienta rozhraní systému C2. Tyto python moduly jsou součástí Command & Control technologie OpDemand je (C2).
Open Source
C2-shell projekt byl učiněn open source by OpDemand.
C2 Shell Documentation
Dříve než začnete
- Budete potřebovat aktivní C2 účet. Vytvořte si zdarma na https://c2.opdemand.com/
- Instrukce předpokládají OSX nebo Linux (nebyla testována Windows, ale měl by fungovat)
Instalace
Instalace používá standardní distutils konvence.
sudo python setup.py nainstalovat
Configuration
Přidejte svůj C2 přihlašovací e-mailovou adresu, na místní konfiguraci klienta.
c2 místní set --email=c2user@opdemand.com
C2 Místní get zobrazí aktuální konfiguraci.
Přihlašování
Vydat c2 login, který se bude používat e-mailovou adresu výše nakonfigurovanou a vyzve vás k zadání hesla.
user @ box: ~ / workspace / c2-shell $ c2 login
heslo:
2011-06-07 08: 44: 12.052 - INFO - => POST https://c2core.opdemand.com/session
2011-06-07 08: 44: 13.095 - INFO - GET https://c2core.opdemand.com/template
2011-06-07 09: 21: 21.879 - INFO - <= 200 OK, čtení 1822 bajtů application / json
[# JSON seznam šablon
& Nbsp; {
& Nbsp; # První šablona
& Nbsp;}
& Nbsp; {
& Nbsp; # Druhá šablona
& Nbsp;}
]
2011-06-07 09: 21: 21.881 - INFO - (template / seznam) úspěch v 0.524872s
Najděte _ID hodnotu šablonu, kterou chcete nasadit, a zkopírovat do schránky.
Vytvořit novou platformu
Vyberte požadovanou šablonu a vydá zatížení c2 šablonu šablony _ID, který vytvoří nové platformy.
user @ box: ~ / workspace / c2-shell $ c2 šablona zatížení --_ id = 6c86dfc5ddfe464199021b8dcaf521a2
2011-06-07 09: 42: 36.711 - INFO - => POST https://c2core.opdemand.com/template/6c86dfc5ddfe464199021b8dcaf521a2/load
2011-06-07 09: 42: 38.606 - INFO - <= 201 Vytvořeno, čtení 14850 bajtů application / json
{
& Nbsp; # Mnohem delší JSON reprezentace šablony
}
2011-06-07 09: 42: 38.757 - INFO - (template / load), úspěch v 2.061932s
Seznam platformy
Vydat seznam c2 platformy vidět dostupné platformy ve vašem účtu.
user @ box: ~ / workspace / c2-shell $ c2 seznam platforma
2011-06-07 09: 46: 48.327 - INFO - => GET https://c2core.opdemand.com/platform
2011-06-07 09: 46: 48.884 - INFO - <= 200 OK, čtení 566 bajtů application / json
[
& Nbsp; {
& Nbsp; # Vaše nová platforma
& Nbsp;}
]
2011-06-07 09: 46: 48.885 - INFO - (platforma / list), úspěch v 0.572228s
Zkopírujte _ID této platformy do vaší schránky.
Přečtěte si platformu
Seznam operace zobrazit pouze souhrnné reprezentace položek v kolekci. Chcete-li zobrazit úplnou reprezentaci platformy (ten, který obsahuje její vnořené složky), musíte vydat c2 platformu pro čtení a poskytnout _ID:
user @ box: ~ / workspace / c2-shell $ c2 platforma číst --_ id = 7bbeacb1082e4810bb1a6643d024496e
2011-06-07 10: 16: 06.050 - INFO - => GET https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e
2011-06-07 10: 16: 06.984 - INFO - <= 200 OK, čtení 14850 bajtů application / json
{
& Nbsp; # Full platforma zastoupení
}
2011-06-07 10: 16: 07.152 - INFO - (platforma / čtení), úspěch v 1.117754s
Práce s JSON odpovědí
Výše platforma je příliš dlouhý na čtení. Naštěstí C2 shell obsahuje integrovaný JSON prettifier, který umožňuje výstup JSON z jakéhokoli příkazu C2 shellu mnohem čitelnější.
Jednoduše trubka jakýkoli příkaz C2 na C2 dost:
user @ box: ~ / workspace / c2-shell $ c2 šablona číst --_ id = 6c86dfc5ddfe464199021b8dcaf521a2 | C2 pěkný
2011-06-07 09: 32: 00.646 - INFO - => GET https://c2core.opdemand.com/template/6c86dfc5ddfe464199021b8dcaf521a2
2011-06-07 09: 32: 01.378 - INFO - <= 200 OK, čtení 12022 bajtů application / json
2011-06-07 09: 32: 01.535 - INFO - (template / čtení), úspěch v 0.904613s
tiers.0.name "Network Tier"
tiers.0.doctype "tier"
tiers.0._rev "1-5a37d211b276deee536cd72a016af8fa"
... Zbytek zkrášlený JSON
Všechny příkazy C2 číst ze standardního vstupu a zapisovat na standardní výstup. To znamená, že surový JSON a zkrášlený JSON lze umístit na jakýkoli jiný příkaz, který používá UNIX stylu potrubí. (Např. Grep).
Konfigurace platformy
Nejprve si přečtěte platformu a grep pro informace o výchozí config:
user @ box: ~ / workspace / c2-shell $ c2 platforma číst --_ id = 7bbeacb1082e4810bb1a6643d024496e | C2 docela | grep config
2011-06-07 10: 26: 29.828 - INFO - => GET https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e
2011-06-07 10: 26: 30.486 - INFO - <= 200 OK, čtení 14850 bajtů application / json
2011-06-07 10: 26: 30.635 - INFO - (platforma / čtení), úspěch v 0.821403s
config.access_network "0.0.0.0/0"
config.image_id "AMI-06ad526f"
config.doctype "config"
config._rev "1-38d720a0975e4d377ccbfd3cb7864185"
config.access_port "22"
config.cloud_name "us-východ-1"
config.clone_.parent_id "ceee3724a3674bc096a2a6d2dfde7209"
config.clone_.parent_impl.cls_ "c2core.resolve.Config"
config.admin_network "0.0.0.0/0"
config._id "ceee3724a3674bc096a2a6d2dfde7209"
config.impl.cls_ "c2core.resolve.Config"
config.views.7bbeacb1082e4810bb1a6643d024496e.0.0 "7bbeacb1082e4810bb1a6643d024496e"
config.views.7bbeacb1082e4810bb1a6643d024496e.0.1 "config"
metadata.config_info.access_port "Port naslouchání na serveru"
metadata.config_info.access_network "Maska sítě pro veřejné uživatele"
metadata.config_info.cloud_name "Jméno AWS kraje"
metadata.config_info.admin_network "Maska sítě pro uživatele admin"
Pojďme omezit veškerý přístup k jednomu hostiteli v síti - 1.1.1.1/32. To bude vyžadovat změnu access_network a admin_network klíče.
Vzhledem k tomu, config je vnořená dokument s vlastním _ID a _rev, musíme upravit config dokument přímo. Chcete-li to provést, sledujeme REST konvenci čtení reprezentaci a potrubí je do operace aktualizace:
user @ box: ~ / workspace / c2-shell $ c2 config číst --_ id = ceee3724a3674bc096a2a6d2dfde7209 | Aktualizace c2 config - --access_network = 1.1.1.1 / 32 --admin_network = 1.1.1.1 / 32
2011-06-07 10: 35: 39.643 - INFO - objekt ze standardního vstupu čtení, ctrl-c rozbít ...
2011-06-07 10: 35: 39.661 - INFO - => GET https://c2core.opdemand.com/config/ceee3724a3674bc096a2a6d2dfde7209
2011-06-07 10: 35: 40.573 - INFO - <= 200 OK, čtení 692 bajtů application / json
2011-06-07 10: 35: 40.574 - INFO - (config / čtení), úspěch v 0.931527s
2011-06-07 10: 35: 40.603 - INFO - => PUT https://c2core.opdemand.com/config/ceee3724a3674bc096a2a6d2dfde7209
2011-06-07 10: 35: 41.316 - INFO - <= 200 OK, čtení 694 bajtů application / json
{
& Nbsp; "_ id": "ceee3724a3674bc096a2a6d2dfde7209",
& Nbsp; "_ rev": "2-6a1cac4a1851fead776d4184e1218028",
& Nbsp; "access_network": "1.1.1.1/32",
& Nbsp; "access_port": "22",
& Nbsp; "admin_network": "1.1.1.1/32",
& Nbsp; "clone_": {
& Nbsp; "PARENT_ID": "ceee3724a3674bc096a2a6d2dfde7209",
& Nbsp; "parent_impl": {
& Nbsp; "cls_": "c2core.resolve.Config"
& Nbsp;}
& Nbsp;}
& Nbsp; "cloud_name": "us-východ-1",
& Nbsp; "doctype": "config",
& Nbsp; "image_id": "ami-06ad526f",
& Nbsp; "IMPL": {
& Nbsp; "cls_": "c2core.resolve.Config"
& Nbsp;}
& nbsp; "názory": {
& Nbsp; "7bbeacb1082e4810bb1a6643d024496e": [
& Nbsp; [
& Nbsp; "7bbeacb1082e4810bb1a6643d024496e",
& Nbsp; "config"
& Nbsp;]
& Nbsp;]
& Nbsp;}
}
2011-06-07 10: 35: 41.317 - INFO - (config / aktualizace), úspěch v 0.730138s
Přečtěte si znovu konfiguraci platformy pro potvrzení nadřazený dokument obsahuje aktualizované, vnořené konfigurace:
user @ box: ~ / workspace / c2-shell $ c2 platforma číst --_ id = 7bbeacb1082e4810bb1a6643d024496e | C2 docela | grep config
2011-06-07 10: 37: 11.131 - INFO - => GET https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e
2011-06-07 10: 37: 11.825 - INFO - <= 200 OK, čtení 14852 bajtů application / json
2011-06-07 10: 37: 11.977 - INFO - (platforma / čtení), úspěch v 0.862029s
config.access_network "1.1.1.1/32"
config.image_id "AMI-06ad526f"
config.doctype "config"
config._rev "2-6a1cac4a1851fead776d4184e1218028"
config.access_port "22"
config.cloud_name "us-východ-1"
config.clone_.parent_id "ceee3724a3674bc096a2a6d2dfde7209"
config.clone_.parent_impl.cls_ "c2core.resolve.Config"
config.admin_network "1.1.1.1/32"
config._id "ceee3724a3674bc096a2a6d2dfde7209"
config.impl.cls_ "c2core.resolve.Config"
config.views.7bbeacb1082e4810bb1a6643d024496e.0.0 "7bbeacb1082e4810bb1a6643d024496e"
config.views.7bbeacb1082e4810bb1a6643d024496e.0.1 "config"
metadata.config_info.access_port "Port naslouchání na serveru"
metadata.config_info.access_network "Maska sítě pro veřejné uživatele"
metadata.config_info.cloud_name "Jméno AWS kraje"
metadata.config_info.admin_network "Maska sítě pro uživatele admin"
Spusťte platformu
S našimi AWS pověření na místě, a naší platformy ve frontě až budeme připraveni jít. Vydat start c2 platformu a nechat orchestrace začít:
user @ box: ~ / workspace / c2-shell $ c2 platforma začne --_ id = 7bbeacb1082e4810bb1a6643d024496e
2011-06-07 10: 42: 52.849 - INFO - => POST https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e/start
2011-06-07 10: 42: 53.816 - INFO - <= 202 Accepted, čtení 0 bajtů application / json
2011-06-07 10: 42: 53.816 - INFO - (platforma / start) úspěch v 0.981219s
Chcete-li sledovat pokrok platformy, přečíst celý platformy reprezentaci a grep na stavu všech vnořených objektů:
user @ box: ~ / workspace / c2-shell $ c2 platforma číst --_ id = 7bbeacb1082e4810bb1a6643d024496e | C2 docela | status grep
2011-06-07 10: 43: 06.530 - INFO - => GET https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e
2011-06-07 10: 43: 07.228 - INFO - <= 200 OK, čtení 22227 bajtů application / json
2011-06-07 10: 43: 07.451 - INFO - (platforma / čtení), úspěch v 0.935643s
tiers.0.status_.value "stavba"
tiers.0.keypair.status_.detail "klíč dvojice vytvořil"
tiers.0.keypair.status_.value "postavený"
tiers.0.sg.status_.detail "pravidla úspěšně autorizována"
tiers.0.sg.status_.value "postavený"
tiers.1.status_.value "stavba"
tiers.1.server.status_.detail "čekání na běh, v současné době probíhá"
tiers.1.server.status_.value "stavba"
status_.detail "start operace spuštěna"
status_.value "startovací"
Můžeme vidět status platforma úrovni začíná. Re-tento příkaz několikrát do stavu "hlasování". Grep pro stát je také užitečné pro demonstraci, které komponenty jsou v současné době přechodu. Jakmile je platforma je hotovo, stav by měl vypadat takto:
user @ box: ~ / workspace / c2-shell $ c2 platforma číst --_ id = 7bbeacb1082e4810bb1a6643d024496e | C2 docela | status grep
2011-06-07 10: 44: 21.015 - INFO - => GET https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e
2011-06-07 10: 44: 21.736 - INFO - <= 200 OK, čtení 27129 bajtů application / json
2011-06-07 10: 44: 21.988 - INFO - (platforma / čtení), úspěch v 0.990599s
tiers.0.status_.detail "úspěšně spuštěna"
tiers.0.status_.value "běží"
tiers.0.keypair.status_.detail "klíč dvojice vytvořil"
tiers.0.keypair.status_.value "běží"
tiers.0.sg.status_.detail "pravidla úspěšně autorizována"
tiers.0.sg.status_.value "běží"
tiers.1.status_.detail "úspěšně spuštěna"
tiers.1.status_.value "běží"
tiers.1.server.status_.detail "posluchač připraven na 22 / tcp"
tiers.1.server.status_.value "běží"
status_.detail "zahájit provoz úspěšný"
status_.value "běží"
Poznámka: stav mateřská úrovni a "běží" s posluchačem serveru připraveného na 22 / tcp. Naše platforma je připraven.
Použití platformy
Všechny platformy zveřejňovat informace o tom, jak jsou používány. Většina platforem zveřejnit nějakou kombinaci:
- URL
- Hostname / Port kombinace
- přihlášení
- Hesla
Čteme-li platformu a grep pro publikování můžeme vidět platforma zveřejnila jednoduchou SSH url:
user @ box: ~ / workspace / c2-shell $ c2 platforma číst --_ id = 7bbeacb1082e4810bb1a6643d024496e | C2 docela | grep publikovat
2011-06-07 10: 51: 30.694 - INFO - => GET https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e
2011-06-07 10: 51: 31.764 - INFO - <= 200 OK, čtení 27129 bajtů application / json
2011-06-07 10: 51: 32.038 - INFO - (platforma / čtení), úspěch v 1.367026s
tiers.1.server.publish.access_url "ssh: //ubuntu@ec2-50-19-55-84.compute-1.amazonaws.com/"
metadata.publish_info.access_url "URL pro přístup platformy"
Společný vzor pro platformy publikovat:
- Admin URL
- Admin Login
- Admin Password
- Přístup URL
Zastavení platformu
Poté, co platforma zastavil, jeho stav se vypadat nějak takto:
user @ box: ~ / workspace / c2-shell $ c2 platforma číst --_ id = 7bbeacb1082e4810bb1a6643d024496e | C2 docela | status grep
2011-06-07 10: 57: 51.345 - INFO - => GET https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e
2011-06-07 10: 57: 52.128 - INFO - <= 200 OK, čtení 27966 bajtů application / json
2011-06-07 10: 57: 52.424 - INFO - (platforma / čtení), úspěch v 1.093576s
tiers.0.status_.detail "úspěšně ukončeno"
tiers.0.status_.value "zastavil"
tiers.0.keypair.status_.detail "klíč dvojice vytvořil"
tiers.0.keypair.status_.value "zastavil"
tiers.0.sg.status_.detail "pravidla úspěšně autorizována"
tiers.0.sg.status_.value "zastavil"
tiers.1.status_.detail "úspěšně ukončeno"
tiers.1.status_.value "zastavil"
tiers.1.server.status_.detail "čekání na zastavena, v současné době se zastavil"
tiers.1.server.status_.value "zastavil"
status_.detail "stop operace úspěšná"
status_.value "zastavil"
Platforma stále existuje v cloudu, ale to je již vznikly vysoké náklady na výpočetní (to je, nicméně vznikly zanedbatelné náklady na skladování). Vy jste také už vznikl C2 platformu poplatky. V tomto okamžiku, vaše platforma náklady skutečně nic.
Plošina může být zastaven a začal bez omezení.
Zničte platformy
Chcete-li skutečně zničit všechny komponenty cloudu zahrnuty v platformě, musíte vydat c2 platforma zničit a poskytovat _ID cílové platformy:
user @ box: ~ / workspace / c2-shell $ c2 platforma zničit --_ id = 7bbeacb1082e4810bb1a6643d024496e
2011-06-07 11: 04: 10.667 - INFO - => POST https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e/destroy
2011-06-07 11: 04: 11.953 - INFO - <= 202 Accepted, čtení 0 bajtů application / json
2011-06-07 11: 04: 11.953 - INFO - (platforma / zničit), úspěch v 1.300462s
Odstranit platformy
Máte-li seznam platformy uvidíte, že zničil platforma stále existuje:
user @ box: ~ / workspace / c2-shell seznam $ c2 platforma | C2 pěkný
2011-06-07 11: 12: 02.771 - INFO - => GET https://c2core.opdemand.com/platform
2011-06-07 11: 12: 03.149 - INFO - <= 200 OK, čtení 1577 bajtů application / json
2011-06-07 11: 12: 03.150 - INFO - (platforma / list), úspěch v 0.394324s
0.views.7bbeacb1082e4810bb1a6643d024496e.0.0 "7bbeacb1082e4810bb1a6643d024496e"
0.time_.disconnect.date_ "1307466249,487580"
0.time_.stop.date_ "1307465858,607597"
0.time_.start.date_ "1307465019,767619"
0.time_.build.date_ "1307465019,475195"
0.time_.destroy.date_ "1307466249,487347"
0.time_.connect.date_ "1307466240,220381"
0.status_.detail "zničit operace úspěšná"
0.status_.value "zničil"
0.doctype "platforma"
0._rev "7-38fe44c5a900894adf48f4a416c94338"
0.template.cls_ "lib.platform.vanilla.natty.UbuntuNattyPlatform"
0._id "7bbeacb1082e4810bb1a6643d024496e"
0.state.running false
0.state.transitioning false
0.state.built false
0.impl.cls_ "lib.platform.vanilla.natty.UbuntuNattyPlatform"
0.interval_.destroy 9,3936290740966797
0.interval_.stop 33,600441932678223
0.interval_.build 57,54404091835022
0.interval_.start 57,836580991744995
Z intervalu můžete vidět, že se:
- 58 sekund na začátek této platformy
- 33 sekund na to zastavit
- 9sekunda zničit
Vždy se můžete znovu začít zničené platformu a opět ji přestavět na cloud komponenty. Nicméně pro dokončení odstranit platformy a jeho vnořené dokumenty, musíte vydat c2 platformy smazat:
user @ box: ~ / workspace / c2-shell $ c2 platforma smazat --_ id = 7bbeacb1082e4810bb1a6643d024496e
2011-06-07 11: 15: 45.235 - INFO - => DELETE https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e
2011-06-07 11: 15: 46.474 - INFO - <= 204 No Content, čtení 0 bajtů application / json
2011-06-07 11: 15: 46.474 - INFO - (platforma / smazat), úspěch v 1.252582s
Pro potvrzení, můžeme vidět náš seznam platforma je nyní prázdný:
user @ box: ~ / workspace / c2-shell $ c2 seznam platforma
2011-06-07 11: 15: 51.890 - INFO - => GET https://c2core.opdemand.com/platform
2011-06-07 11: 15: 52.296 - INFO - <= 200 OK, čtení 2 bajty application / json
2011-06-07 11: 15: 52.297 - INFO - (platforma / list), úspěch v 0.423616s
Odhlášení
Vydáním C2 info, můžeme vidět stav našeho sezení:
user @ box: ~ / workspace / c2-shell $ c2 info
2011-06-07 11: 17: 11.656 - INFO - => GET https://c2core.opdemand.com/session/73c2e9b49d01c695fb6c74927b8eb0eee5cdc82c2064cd728a8033eb83ea5b95
2011-06-07 11: 17: 12.134 - INFO - <= 200 OK, čtení 4082 bajtů application / json
{
& Nbsp; "účet": "C2-opdemand",
& Nbsp; "email": "gabriel@opdemand.com",
& Nbsp; "expires_at": "Pátek 10.6.2011 08:44",
& Nbsp; "session_id": "73c2e9b49d01c695fb6c74927b8eb0eee5cdc82c2064cd728a8033eb83ea5b95"
}
2011-06-07 11: 17: 12.138 - INFO - (info) úspěch v 0.497018s
Odhlášení je prostě c2 logout:
user @ box: ~ / workspace / c2-shell $ c2 logout
2011-06-07 11: 17: 44.903 - INFO - => DELETE https://c2core.opdemand.com/session/73c2e9b49d01c695fb6c74927b8eb0eee5cdc82c2064cd728a8033eb83ea5b95
2011-06-07 11: 17: 45.330 - INFO - <= 204 No Content, čtení 0 bajtů application / json
2011-06-07 11: 17: 45.330 - INFO - (odhlásit) úspěch v 0.443405s
user @ box: ~ / workspace / c2-shell $ c2 info
2011-06-07 11: 17: 49.025 - INFO - (info) úspěch v 0.000376s
O C2
Command & Control Technology OpDemand je (C2) automatizuje nasazení a správu cloud computing infrastruktury. Díky rozhraní stejně jednoduché jako "start, stop, klon a zničit," C2 vám dává příkaz své oblaku
Požadavky na :.
- Python
Komentáře nebyl nalezen