OpDemand Shell

Screenshot Software:
OpDemand Shell
Szczegóły programowe:
Wersja: 0.9
Filmu: 15 Apr 15
Wywoływacz: OpDemand
Licencja: Wolny
Popularność: 10

Rating: nan/5 (Total Votes: 0)

Projekt OpDemand Shell zawiera interfejs wiersza poleceń klienta do systemu C2. Te moduły Pythona są częścią Command & sterowania technologii OpDemand w (C2).
Open Source
Projekt c2-shell dokonano open source przez OpDemand.
C2 Shell Dokumentacja
Zanim zaczniesz
- Trzeba będzie aktywne konto C2. Załóż je za darmo w https://c2.opdemand.com/
- Instrukcje zakładają OSX lub Linux (system Windows nie był testowany, ale powinien działać)
instalacji
Instalacja wykorzystuje standardowe distutils konwencję.
sudo python setup.py install
Konfiguracja
Dodaj swój adres e-mail logowania C2 do konfiguracji klienta lokalnego.
c2 lokalny zestaw --email=c2user@opdemand.com
C2 lokalnym get wyświetla bieżącą konfigurację.
Logowanie
Wydaj login c2, które będą korzystać z tego adresu e-mail skonfigurowane powyżej i poprosi Cię o hasło.
użytkownik @ box: ~ / workspace / c2-shell $ c2 logowanie
hasło:
2011-06-07 08: 44: 12.052 - INFO - => PO 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, czytanie 1822 bajtów application / json
[# Lista JSON szablonów
& Nbsp; {
& Nbsp; # Pierwszy szablon
& Nbsp;},
& Nbsp; {
& Nbsp; # Drugi szablon
& Nbsp;}
]
2011-06-07 09: 21: 21.881 - INFO - (szablon / lista) sukces w 0.524872s
Znajdź wartość _id szablonu ma zostać zainstalowany, a następnie skopiować go do schowka.
Utwórz nową platformę
Wybierz żądany szablon i emitować ładunek szablonu C2 _id szablonu, który stworzy nową platformę.
użytkownik @ box: ~ / workspace / c2-shell szablonu $ c2 obciążenia --_ id = 6c86dfc5ddfe464199021b8dcaf521a2
2011-06-07 09: 42: 36.711 - INFO - => PO https://c2core.opdemand.com/template/6c86dfc5ddfe464199021b8dcaf521a2/load
2011-06-07 09: 42: 38.606 - INFO - <= 201 Utworzono, czytanie 14850 bajtów application / json
{
& Nbsp; # Znacznie dłużej JSON reprezentacja szablonu
}
2011-06-07 09: 42: 38.757 - INFO - (szablon / obciążenie) sukces w 2.061932s
Lista Platformy
Wydaj listę platformy c2, aby zobaczyć dostępne platformy na koncie.
użytkownik @ box: ~ / workspace / c2-shell lista platforma $ c2
2011-06-07 09: 46: 48.327 - INFO - => GET https://c2core.opdemand.com/platform
2011-06-07 09: 46: 48.884 - INFO - <= 200 OK, czytanie 566 bajtów application / json
[
& Nbsp; {
& Nbsp; # Twoja nowa platforma
& Nbsp;}
]
2011-06-07 09: 46: 48.885 - INFO - (platforma / lista) sukces w 0.572228s
Skopiuj _id tej platformy do schowka.
Czytaj platformę
Operacje Lista pokazać tylko podsumowania reprezentacje elementów w kolekcji. Aby zobaczyć pełną reprezentację platformy (jeden, który zawiera zagnieżdżonych elementów) musi wydać platformy c2 czytać i zapewnić _id:
użytkownik @ box: ~ / workspace / c2-shell platforma $ c2 przeczytać --_ 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, czytanie 14850 bajtów application / json
{
& Nbsp; # Pełna reprezentacja platformy
}
2011-06-07 10: 16: 07.152 - INFO - (platforma / odczyt) sukces w 1.117754s
Praca z odpowiedzi JSON
Powyżej platforma jest zbyt długi, aby czytać. Na szczęście powłoki C2 zawiera zintegrowany JSON prettifier sprawia, że ​​wyjście JSON z dowolnego polecenia powłoki C2 znacznie łatwiejsze do odczytania.
Wystarczy rury dowolne polecenie c2 c2 dość:
użytkownik @ box: ~ / workspace / c2-shell $ template c2 przeczytać --_ id = 6c86dfc5ddfe464199021b8dcaf521a2 | C2 dość
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, czytanie 12022 bajtów application / json
2011-06-07 09: 32: 01.535 - INFO - (szablon / odczyt) sukces w 0.904613s
tiers.0.name "Poziom Network"
tiers.0.doctype "tier"
tiers.0._rev "1-5a37d211b276deee536cd72a016af8fa"
... Reszta prettified JSON
Wszystkie polecenia C2 czytane ze standardowego wejścia i zapisywać na standardowe wyjście. Oznacza to, surowy JSON i prettified JSON mogą być odprowadzone do innego polecenia, które używa rur typu UNIX. (Np grep).
Skonfiguruj platformę
Najpierw przeczytaj platformę i grep za informacje domyślny config:
użytkownik @ box: ~ / workspace / c2-shell platforma $ c2 przeczytać --_ id = 7bbeacb1082e4810bb1a6643d024496e | C2 dość | 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, czytanie 14850 bajtów application / json
2011-06-07 10: 26: 30,635 - INFO - (platforma / odczyt) sukces w 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 "my-wschodniej-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 słuchania na serwerze"
metadata.config_info.access_network "Maska sieci dla użytkowników publicznych"
metadata.config_info.cloud_name "Nazwa regionu AWS"
metadata.config_info.admin_network "Maska sieci dla użytkowników admin"
Miejmy ograniczyć dostęp sieciowy do wszystkich jednego hosta - 1.1.1.1/32. Wymagać to będzie zmiany klawiszy access_network i admin_network.
Od config jest zagnieżdżony dokument z własnym _id i _rev, musimy zmodyfikować dokument konfiguracyjny bezpośrednio. Aby to zrobić, wykonaj relaksującego konwencję czytania reprezentacji i rurociągów do operacji aktualizacji:
użytkownik @ box: ~ / workspace / c2-shell $ c2 config przeczytać --_ id = ceee3724a3674bc096a2a6d2dfde7209 | Aktualizacja c2 config - --access_network = 1.1.1.1 / 32 --admin_network = 1.1.1.1 / 32
2011-06-07 10: 35: 39.643 - INFO - czytanie obiekt ze standardowego wejścia, ctrl-c, aby złamać ...
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, czytanie 692 bajtów application / json
2011-06-07 10: 35: 40.574 - INFO - (config / odczyt) sukces w 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, czytanie 694 bajtów 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": "my-wschodniej-1",
& Nbsp; "DOCTYPE": "config",
& Nbsp; "image_id": "ami-06ad526f",
& Nbsp; "impl": {
& Nbsp; "cls_": "c2core.resolve.Config"
& Nbsp;},
& nbsp; "widoki": {
& Nbsp; "7bbeacb1082e4810bb1a6643d024496e": [
& Nbsp; [
& Nbsp; "7bbeacb1082e4810bb1a6643d024496e",
& Nbsp; "config"
& Nbsp;]
& Nbsp;]
& Nbsp;}
}
2011-06-07 10: 35: 41.317 - INFO - (config / update) sukces w 0.730138s
Ponownie odczytać konfigurację platformy, aby potwierdzić nadrzędny dokument zawiera zaktualizowaną, zagnieżdżone konfiguracji:
użytkownik @ box: ~ / workspace / c2-shell platforma $ c2 przeczytać --_ id = 7bbeacb1082e4810bb1a6643d024496e | C2 dość | 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, czytanie 14852 bajtów application / json
2011-06-07 10: 37: 11.977 - INFO - (platforma / odczyt) sukces w 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 "my-wschodniej-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 słuchania na serwerze"
metadata.config_info.access_network "Maska sieci dla użytkowników publicznych"
metadata.config_info.cloud_name "Nazwa regionu AWS"
metadata.config_info.admin_network "Maska sieci dla użytkowników admin"
Uruchom platformę
Z naszych poświadczeń AWS w miejscu i naszej platformy kolejce jesteśmy gotowi. Wydać platformy c2 start i niech orkiestracji zacząć:
użytkownik @ box: start ~ / workspace / c2-shell $ platformy c2 --_ id = 7bbeacb1082e4810bb1a6643d024496e
2011-06-07 10: 42: 52.849 - INFO - => PO https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e/start
2011-06-07 10: 42: 53.816 - INFO - <= 202 Akceptowane, czytanie 0 bajtów application / json
2011-06-07 10: 42: 53.816 - INFO - (platforma / start) sukces w 0.981219s
Aby śledzić postępy platformy, przeczytać pełną reprezentację platformy i grep o status wszystkich zagnieżdżonych obiektów:
użytkownik @ box: ~ / workspace / c2-shell platforma $ c2 przeczytać --_ id = 7bbeacb1082e4810bb1a6643d024496e | C2 dość | 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, czytanie 22227 bajtów application / json
2011-06-07 10: 43: 07.451 - INFO - (platforma / odczyt) sukces w 0.935643s
tiers.0.status_.value "budynek"
tiers.0.keypair.status_.detail "para kluczy stworzył"
tiers.0.keypair.status_.value "zbudowany"
tiers.0.sg.status_.detail "zasady upoważnione powodzeniem"
tiers.0.sg.status_.value "zbudowany"
tiers.1.status_.value "budynek"
tiers.1.server.status_.detail "czeka na bieganie, obecnie w toku"
tiers.1.server.status_.value "budynek"
status_.detail "rozpocznie działanie wywołane"
status_.value "startu"
Widzimy stan platformy poziom wyjściowy. Ponowne wydanie tego polecenia kilka razy do stanu "ankieta". Grepping dla państwa jest również przydatne do wykazania, które składniki są obecnie przejście. Gdy platforma jest zrobione, status powinien wyglądać następująco:
użytkownik @ box: ~ / workspace / c2-shell platforma $ c2 przeczytać --_ id = 7bbeacb1082e4810bb1a6643d024496e | C2 dość | 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, czytanie 27129 bajtów application / json
2011-06-07 10: 44: 21.988 - INFO - (platforma / odczyt) sukces w 0.990599s
tiers.0.status_.detail "rozpoczął z powodzeniem"
tiers.0.status_.value "działa"
tiers.0.keypair.status_.detail "para kluczy stworzył"
tiers.0.keypair.status_.value "działa"
tiers.0.sg.status_.detail "zasady upoważnione powodzeniem"
tiers.0.sg.status_.value "działa"
tiers.1.status_.detail "rozpoczął z powodzeniem"
tiers.1.status_.value "działa"
tiers.1.server.status_.detail "słuchacz gotowa w 22 / tcp"
tiers.1.server.status_.value "działa"
status_.detail "działanie rozpocząć sukces"
status_.value "działa"
Uwaga status rodzica szczebla "działa" z słuchacza serwer gotowy na 22 / tcp. Nasza platforma jest gotowy.
Za pomocą platformy
Wszystkie platformy publikuje informacje o tym, jak są one wykorzystywane. Większość platform opublikuje jakąś kombinację:
- URL
- Nazwa hosta / kombinacje portów
- Loginy
- Hasła
Jeśli czytamy platformy i grep do publikowania widzimy platforma opublikowane prosty SSH link:
użytkownik @ box: ~ / workspace / c2-shell platforma $ c2 przeczytać --_ id = 7bbeacb1082e4810bb1a6643d024496e | c2 dość | grep publikować
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, czytanie 27129 bajtów application / json
2011-06-07 10: 51: 32.038 - INFO - (platforma / odczyt) sukces w 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 dostępu do platformy"
Wspólny wzór jest dla platformy do publikacji:
- Admin URL
- Admin Login
- Hasło administratora
- Dostęp URL
Zatrzymanie platformę
Po zatrzymaniu platformy, jego stan będzie wyglądać mniej więcej tak:
użytkownik @ box: ~ / workspace / c2-shell platforma $ c2 przeczytać --_ id = 7bbeacb1082e4810bb1a6643d024496e | C2 dość | 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, czytanie 27966 bajtów application / json
2011-06-07 10: 57: 52.424 - INFO - (platforma / odczyt) sukces w 1.093576s
tiers.0.status_.detail "zatrzymana pomyślnie"
tiers.0.status_.value "zatrzymany"
tiers.0.keypair.status_.detail "para kluczy stworzył"
tiers.0.keypair.status_.value "zatrzymany"
tiers.0.sg.status_.detail "zasady upoważnione powodzeniem"
tiers.0.sg.status_.value "zatrzymany"
tiers.1.status_.detail "zatrzymana pomyślnie"
tiers.1.status_.value "zatrzymany"
tiers.1.server.status_.detail "czeka na zatrzymane, zatrzymane"
tiers.1.server.status_.value "zatrzymany"
status_.detail "Operacja zatrzymania sukces"
status_.value "zatrzymany"
Platforma nadal istnieje w chmurze, ale to już nie ponosząc wysokich kosztów obliczeniowych (jest to jednak ponosząc niewielkie koszty magazynowania). Jesteś również nie ponosząc opłat platformy C2. W tym momencie, Twoja platforma kosztuje skutecznie nic.
Platformy może być zatrzymany i uruchomiony bez limitu.
Destroy platformy
Aby właściwie zniszczyć wszystkie składniki zawarte w chmurze platformy, trzeba wydać platformy c2 zniszczyć i zapewnić _id platformy docelowej:
użytkownik @ box: ~ / workspace / c2-shell platforma $ c2 zniszczyć --_ id = 7bbeacb1082e4810bb1a6643d024496e
2011-06-07 11: 04: 10.667 - INFO - => PO https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e/destroy
2011-06-07 11: 04: 11.953 - INFO - <= 202 Akceptowane, czytanie 0 bajtów application / json
2011-06-07 11: 04: 11.953 - INFO - (platforma / zniszczyć) sukces w 1.300462s
Usuń platformę
Jeśli lista platform zobaczysz, że wciąż istnieje zniszczona platforma:
użytkownik @ box: ~ / workspace / c2-shell lista platforma $ c2 | C2 dość
2011-06-07 11: 12: 02.771 - INFO - => GET https://c2core.opdemand.com/platform
2011-06-07 11: 12: 03.149 - INFO - <= 200 OK, czytanie 1577 bajtów application / json
2011-06-07 11: 12: 03.150 - INFO - (platforma / lista) sukces w 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 "zniszczyć pracę sukces"
0.status_.value "zniszczone"
0.doctype "platforma"
0._rev "7-38fe44c5a900894adf48f4a416c94338"
0.template.cls_ "lib.platform.vanilla.natty.UbuntuNattyPlatform"
0._id "7bbeacb1082e4810bb1a6643d024496e"
0.state.running fałszywe
0.state.transitioning fałszywe
0.state.built fałszywe
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 przedziału widać zajęło:
- 58 sekund, aby uruchomić tę platformę
- 33 sekund, aby go zatrzymać
- 9 sekund, aby je zniszczyć
Zawsze można ponownie uruchomić zniszczone platformę i go ponownie odbudować elementy chmury. Jednak, aby zakończyć usuwanie platformy i jej zagnieżdżonych dokumentów, należy wydać platformy c2 usunąć:
użytkownik @ box: ~ / workspace / c2-shell platforma $ c2 usuwać --_ 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, czytanie 0 bajtów application / json
2011-06-07 11: 15: 46.474 - INFO - (platforma / delete) sukces w 1.252582s
Aby potwierdzić, widzimy nasza lista jest teraz puste platformy:
użytkownik @ box: ~ / workspace / c2-shell lista platforma $ c2
2011-06-07 11: 15: 51.890 - INFO - => GET https://c2core.opdemand.com/platform
2011-06-07 11: 15: 52.296 - INFO - <= 200 OK, czytanie 2 bajty application / json
2011-06-07 11: 15: 52.297 - INFO - (platforma / lista) sukces w 0.423616s
Wylogowanie
Przez wydanie informacji c2 możemy sprawdzić stan naszej sesji:
użytkownik @ box: ~ / workspace / c2-shell informacji $ c2
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, czytanie 4082 bajtów application / json
{
& Nbsp; "konto": "c2-opdemand",
& Nbsp; "e-mail": "gabriel@opdemand.com",
& Nbsp; "expires_at": "Piątek, 10 czerwca 2011 08:44",
& Nbsp; "session_id": "73c2e9b49d01c695fb6c74927b8eb0eee5cdc82c2064cd728a8033eb83ea5b95"
}
2011-06-07 11: 17: 12.138 - INFO - (info) sukces w 0.497018s
Zalogowanie się jest po prostu c2 wylogowania:
użytkownik @ box: ~ / workspace / c2-shell $ c2 wyloguj
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, czytanie 0 bajtów application / json
2011-06-07 11: 17: 45.330 - INFO - (wylogowania) sukces w 0.443405s
użytkownik @ box: ~ / workspace / c2-shell informacji $ c2
2011-06-07 11: 17: 49.025 - INFO - (info) sukces w 0.000376s
O C2
Command & Technik OpDemand w (C2) automatyzuje wdrażanie i zarządzanie infrastrukturą cloud computing. Z interfejsem jako proste, jak "start, stop, klon i zniszczyć," C2 daje kontrolę nad swoją chmury

Wymagania .

  • Python

Podobne oprogramowanie

Komentarze do OpDemand Shell

Komentarze nie znaleziono
Dodaj komentarz
Włącz zdjęć!