![]() Tools for Pentesters. Compilation. Toxy. HTTP proxy. failure scenarios. It was mainly designed for fuzzing/evil testing purposes, when toxy becomes particularly useful to cover fault tolerance and resiliency capabilities of a system, especially in. Mit. M proxy among services. HTTP flow as you need, performing multiple evil actions in the middle of that process, such as limiting the bandwidth, delaying TCP packets, injecting network jitter latency or replying with a custom error or status code. It operates only at L7 (application level). It was built on top of. HTTP proxy, and it's also. Requires node. js +0. Full- featured HTTP/S proxy (backed by. Hackable and elegant programmatic API (inspired on connect/express). Admin HTTP API for external management and dynamic configuration. Featured built- in router with nested configuration. Hierarchical and composable poisoning with rule based filtering. Hierarchical middleware layer (both global and route scopes). Easily augmentable via middleware (based on connect/express middleware). Supports both incoming and outgoing traffic poisoning. Built- in poisons (bandwidth, error, abort, latency, slow read..). Rule- based poisoning (probabilistic, HTTP method, headers, body..). Supports third- party poisons and rules. Built- in balancer and traffic interceptor via middleware. Inherits API and features from. Compatible with connect/express (and most of their middleware). Able to run as standalone HTTP proxy. There're some other similar solutions like. Furthermore, the majority of the those solutions only operates at TCP L3 level stack instead of providing high- level abstractions to cover common requirements in the specific domain and nature of the HTTP L7 protocol, like toxy tries to provide. HTTP protocol primitives easily. Via its built- in hierarchical domain specific middleware layer you can easily augment toxy features to your own needs. HTTP transaction (e. One HTTP transaction can be poisoned by one or multiple poisons, and those poisons can be also configured to infect both global or route level traffic. HTTP request/response in order to determine, given a certain rules, if the HTTP transaction should be poisioned or not (e. The FixParts program is an offshoot of my GPT fdisk (gdisk, cgdisk, and sgdisk) software. FixParts is a text-mode tool for Linux, FreeBSD, Mac OS X, and Windows that. VMware Player to aplikacja do tworzenia i uruchamiania wirtualnych systemów operacyjnych, okrojona wersja komercyjnego VMware Workstation i alternatywa na Oracle VM. ![]() Rules can be reused and applied to both incoming and outgoing traffic flows, including different scopes: global, route or poison level. Incoming request ) ↓. Toxy Router | ↓ - > Match the incoming request. Incoming phase | ↓ - > The proxy receives the request from the client. Exec Rules | | ↓ - > Apply configured rules for the incoming request. Exec Poisons | | ↓ - > If all rules passed, then poison the HTTP flow. HTTP dispatcher | ↓ - > Forward the HTTP traffic to the target server, either poisoned or not. Search the DistroWatch database for distributions using a particular package. If you are looking for a distribution with the latest kernel, select "linux" from the. Una distribución live o Live CD o Live DVD, más genéricamente Live Distro, siendo en ocasiones como CD vivo o CD autónomo, es un sistema operativo almacenado en. Outgoing phase | ↓ - > Receives response from target server. Exec Rules | | ↓ - > Apply configured rules for the outgoing request. Exec Poisons | | ↓ - > If all rules passed, then poison the HTTP flow before send it to the client. Send to the client ) ↓ - > Finally, send the request to the client, either poisoned or not. Create a new toxy proxy. Default server to forward incoming traffic. Register global poisons and rules. Register multiple routes. Rule(rules. headers({'Authorization': /^Bearer (.*)$/i })). Infect outgoing traffic only (after the server replied properly). Poison(poisons. bandwidth({ bps: 5. Rule(rules. method('GET')). Rule(rules. time. Threshold({ duration: 1. Rule(rules. response. Status({ range: [ 2. Limit({ limit: 1. Rule(rules. method(['POST', 'PUT', 'DELETE'])). And use a different more permissive poison for GET requests. Limit({ limit: 5. Rule(rules. method('GET')). Handle the rest of the traffic. Close({ delay: 1. Read({ bps: 1. 28 })). Rule(rules. probability(5. Server listening on port: ', 3. Test it: ', 'http: //localhost: 3. Poisons host specific logic which intercepts and mutates, wraps, modify and/or cancel an HTTP transaction in the proxy server. Poisons can be applied to incoming or outgoing, or even both traffic flows. Poisons can be composed and reused for different HTTP scenarios. They are executed in FIFO order and asynchronously. Poisoning scopes. HTTP traffic received by the proxy server, regardless of the HTTP method or path. HTTP verb and URI path. Poisons can be plugged to both scopes, meaning you can operate with better accuracy and restrict the scope of the poisoning. Poisoning phases. Poisons can be plugged to incoming or outgoing traffic flows, or even both. This means, essentially, that you can plug in your poisons to infect the HTTP traffic. HTTP server or sent to the client. This allows you apply a better and more accurated poisoning based on the request or server response. For instance, given the nature of some poisons, like. Built- in poisons. Poisoning Phase. incoming / outgoing. Reaches the server. Infects the HTTP flow injecting a latency jitter in the response. Jitter value in miliseconds. Random jitter maximum value. Random jitter minimum value. Or alternatively using a random value. Inject response. Poisoning Phase. Reaches the server. Injects a custom response, intercepting the request before sending it to the target server. Useful to inject errors originated in the server. Response HTTP status code. Default. - Optional headers to send. Optional body data to send. It can be a. - Body encoding. Default to. toxy. Content- Type': 'application/json'}. Poisoning Phase. incoming / outgoing. Reaches the server. Limits the amount of bytes sent over the network in outgoing HTTP traffic for a specific time frame. This poison is basically an alias to. Amount of chunk of bytes to send. Default. - Packets time frame in miliseconds. Default. toxy. poison(toxy. Poisoning Phase. incoming / outgoing. Reaches the server. Limits the amount of requests received by the proxy in a specific threshold time frame. Designed to test API limits. Exposes typical. X- Rate. Limit- *. Note that this is very simple rate limit implementation, indeed limits are stored in- memory, therefore are completely volalite. There're a bunch of featured and consistent rate limiter implementations in. You might be also interested in. Total amount of requests. Default to. - Limit time frame in miliseconds. Default to. - Optional error message when limit is reached. HTTP status code when limit is reached. Default to. toxy. Limit({ limit: 5, threshold: 1. Poisoning Phase. Reaches the server. Reads incoming payload data packets slowly. Only valid for non- GET request. Packet chunk size in bytes. Default to. - Limit threshold time frame in miliseconds. Default to. toxy. Read({ chunk: 2. 04. Poisoning Phase. Reaches the server. Delays the HTTP connection ready state. Delay connection in miliseconds. Default to. toxy. Open({ delay: 2. 00. Poisoning Phase. incoming / outgoing. Reaches the server. Delays the HTTP connection close signal (EOF). Delay time in miliseconds. Default to. toxy. Close({ delay: 2. Poisoning Phase. incoming / outgoing. Reaches the server. Restricts the amount of packets sent over the network in a specific threshold time frame. Packet chunk size in bytes. Default to. - Data chunk delay time frame in miliseconds. Default to. toxy. Abort connection. Poisoning Phase. incoming / outgoing. Reaches the server. Aborts the TCP connection. From the low- level perspective, this will destroy the socket on the server, operating only at TCP level without sending any specific HTTP application level data. Aborts TCP connection after waiting the given miliseconds. Default to. , the connection will be aborted if the target server takes more than the. Default to. - Custom internal node. Default to. // Basic connection abort. Abort after a delay. In this case, the socket will be closed if. Poisoning Phase. incoming / outgoing. Reaches the server. Defines a response timeout. Useful when forward to potentially slow servers. Timeout limit in miliseconds. How to write poisons. Poisons are implemented as standalone middleware (like in connect/express). Here's a simple example of a server latency poison. Latency(delay) {. We name the function since toxy uses it as identifier to get/disable/remove it in the future. Latency(req, res, next) {. Timeout(clean, delay). Close). function on. Close() {. clear. Timeout(timeout). Listener('close', on. Close). var proxy = toxy(). Register and enable the poison. Latency(2. 00. 0)). You can optionally extend the build- in poisons with your own poisons. Poison(custom. Latency). Then you can use it as a built- in poison. Latency). For featured real example, take a look to the. VMware Player to aplikacja do tworzenia i uruchamiania wirtualnych systemów operacyjnych, okrojona wersja komercyjnego VMware Workstation i alternatywa na Oracle VM Virtual. Box czy Virtual PC 2. Windows Virtual PC. Wirtualizacja systemów to uruchamianie jednocześnie kilku systemów operacyjnych na jednym komputerze np. Windows 7 na dysku + wirtualny Windows XP na maszynie wirtualnej. VMware Player v. 3. Instalacja. Po pobraniu aplikacji przystępujemy do instalacji. Instalacja jest typowa i nie powinna nikomu stwarzać problemów. Na etapie instalacji możemy odznaczyć opcje automatycznego aktualizowania aplikacji podczas startu oraz wysyłania anonimowych statystyk. Wybieramy również skróty do aplikacji, które mają być utworzone. Po zainstalowaniu wymagany będzie restart systemu. Uwaga: program instaluje sterowniki do obsługi urządzeń USB i sieci. Dodaje dwie karty sieciowe (VMware Network Adapter VMnet), widoczne np. Panelu sterowania czy Menedżer zadań. Po restarcie uruchamiamy aplikację. Podczas pierwszego uruchomienia akceptujemy licencję: Jeżeli zainstalowaliśmy starsza wersję, funkcja automatycznej aktualizacji poinformuje nas o nowszej wersji i zaproponuje jej instalację: Tworzenie wirtualnych maszyn. Jeżeli mamy aplikację już zainstalowaną, czas na stworzenie wirtualnej maszyny. Budowa nowej maszyny wirtualnej (Create a New Virtual Machine)Sposób pozwala na stworzenie nowej wirtualnej maszyny poprzez standardowy proces konfiguracji sprzętu i instalowania systemu. W celu stworzenia nowej maszyny w głównym oknie aplikacji wybieramy opcję „Create a New Virtual Machine”. Uruchomi się kreator, gdzie w pierwszym oknie wybieramy źródło plików instalacyjnych. Może to być płyta instalacyjna w napędzie stacji dysków lub obraz płyty w formacie ISO. Alternatywnie możemy utworzyć tylko samą maszynę bez instalowania systemu, z pustym dyskiem i bez wskazywania źródła instalacji. System musimy wówczas zainstalować ręcznie. Kolejne okno to funkcja Easy Install odpowiedzialna za automatyczną, nienadzorowaną instalację systemów. Opcja ta instaluje system z automatu, pomijając większość ekranów jak wybór partycji czy dodanie użytkowników systemu. Wpisujemy klucz produktu oraz nazwę komputera. Dalej podajemy nazwę maszyny wirtualnej oraz lokalizację zapisu dla plików: Pojemność wirtualnego dysku twardego – podajemy maksymalną pojemność. Możemy podzielić wirtualny dysk na części wybierając „Split virtual disk as a multiple file”. Pamiętajmy o zabezpieczeniu odpowiedniej ilości miejsca na partycji, na której wskazaliśmy lokalizację plików. Na tym etapie mamy możliwość utworzenia tylko nowego dysku, nie możemy wskazać istniejącego. Możemy to zrobić dopiero po utworzeniu maszyny, edytując ją i dodając nowy dysk – opis poniżej. Podsumowanie parametrów maszyny. Zaznaczona opcja „Power on this virtual machine after creation” odpowiada za automatyczne uruchomienie maszyny po jej utworzeniu i rozpoczęcie instalacji systemu. Klikając Customize Hardware mamy dostęp do szczegółowego ustawienia parametrów sprzętu. Szczególnie ustalamy ilość pamięci RAM jaka ma być zarezerwowana dla systemu wirtualnego, pamiętając, że podana wartość zmniejszy podaż pamięci dla systemu gospodarza. Klikamy Finish. Wirtualna maszyna uruchomi się i jeżeli wskazaliśmy pliki instalacyjne systemu, rozpocznie się instalacja wirtualnego systemu. Aplikacja teraz zaproponuje instalacje dodatku VMware Tools (odpowiednik Virtual. Box Guest Additions), który znacznie ułatwi korzystanie z wirtualnych systemów i pozwoli na ukończenie Easy Installation. Akceptujemy wybierając Download and Install. Dodatek oferuje nam np. Finalnie dodatek zainstaluje się na fizycznej maszynie w katalogu C: Program Files. VMware. VMware Player jako obrazy ISO: windows. Dodatek zostanie pobrany i zainstalowany, a jednocześnie instalowany jest wirtualny system Windows XP, Windows Vista/7 lub Linux. Instalacja systemu jest naprawdę bezobsługowa – w moim przypadku nie padło żadne pytanie o tworzenie partycji, wpisanie klucza, konfigurację systemu (strefa czasowa, konta itd.) Po ukończeniu instalacji system uruchomi się i zostanie przeprowadzona instalacja VMware Tools w systemie gościa. Teraz mamy już w pełni zainstalowany i uruchomiony system wirtualny. Nastąpi detekcja sprzętu i jego instalacja. W moim przypadku system „Gość” prawidłowo wykrył wszystkie urządzenia w komputerze bez potrzeby instalacji dodatkowych sterowników. Bez problemu wykrywane są dyski wymienne USB, które domyślnie jednak nie są podłączane. Trzeba kliknąć ikonę USB z dolnego paska playera i wybrać Connected. Wówczas dostęp do dysku będzie miał tylko system wirtualny, system fizyczny nie będzie go widział – trzeba go wówczas odłączyć od systemu gościa. Mam możliwość drukowania spod systemu wirtualnego na drukarce HP Desk. Jet 8. 40c podłączonej do komputera. Warto wspomnieć, że w oknie playera na dolnym pasku z prawej strony umiejscowione są ikony odpowiadające za podłączone urządzenia: dysk, CD/DVD, dyskietka, karta sieciowa, drukarka, karta dźwiękowa oraz dyski wymienne. Gdy urządzenie jest podłączone do systemu Gościa, ikona jest kolorowa. Dodatkowo migający zielony punkt informuje o aktywności urządzenia np. Teraz uruchamiając program w głównym oknie wyświetlone zostaną utworzone maszyny wirtualne – w przykładzie Windows 7, Windows XP i Linux Open. Suse. Po wybraniu jednej z nich możemy go uruchomić (Play virtual machine) lub edytować (Edit virtual machine settings). W przypadku gdy stworzyliśmy maszynę, ale nie instalowaliśmy systemu, wybieramy opcję edycji. Wyświetli się okno z konfiguracją sprzętową maszyny. Wybieramy CD/DVD i wskazujemy źródło plików instalacyjnych – fizyczny napęd lub obraz płyty. Uruchamiamy maszynę i instalujemy system. Warto napisać, że system instalowany jest tutaj z pominięciem Easy Install, przez co proces instalacji jest typowy > > > wyświetlają się wszystkie okienka jak wybór partycji czy dodawanie użytkownika. Mamy jeszcze jedną możliwość – wykorzystanie już istniejącego pliku kontenera zawierającego zawartość dysku twardego (. W tym celu dodajemy nowy dysk klikając w button Add. Możemy dodać do 4 dysków IDE i do 6. SCSI. Pojemność dysków to od 0. GB do 2. TB. W oknie kreatora wybieramy Hard Disk: Typ dysku – możemy utworzyć nowy, standardowy, pusty dysk wirtualny (Create a new virtual disk), wskazać istniejący plik kontenera z już skonfigurowanym dyskiem i zainstalowanym systemem (Use an existing virtual disk) lub wybrać fizyczny dysk lokalny (Use a physical disk). Wybieramy drugą opcję i wskazujemy plik. Można wskazać tylko dysk w formacie Vmware (. Dyski z Virtual. Box (. Windows Virtual (. Pozwala na to Virtual. Box. Inną możliwością jest import istniejącej maszyny utworzonych w innych produktach (opis poniżej). Dysk zostanie dodany. Teraz wybieramy pierwszy dysk i go usuwamy klikając w button Remove. Wybieramy drugi dysk, z prawej strony button Advancend i zmieniamy tryb na IDE / SCSI 0: 0. Uruchamiamy maszynę i korzystamy z zainstalowanego systemu. Z menu Utilities mamy dostęp do kilku przydatnych funkcji: – Map – zmapowanie dysku na komputerze hosta, która pozwala na przeglądanie i kopiowanie plików; dysk pojawi się jako nowy napęd widziany w oknie Komputer– Defragment – defragmentacja pliku dysku– Expand: rozszerzenie pojemności dysku– Compact: kompaktowanie zawartości dysku. Jeżeli ustawiliśmy dynamicznie rozszerzanie się dysku, to z czasem rozmiar pliku dysku się zwiększa, aż do ustalonej granicy. Usuwanie plików nie powoduje kurczenia się pliku. Zaznaczam też, że nawet jak usuniemy pliki i zastosujemy kompaktowanie to plik nie za wiele się zmniejszy. A to z powodu, że przy normalnym usuwaniu pliki dalej pozostają na dysku. Aby skutecznie skompaktować i zmniejszyć rozmiar pliku dysku musimy w uruchomionym systemie usunąć wszystkie niepotrzebne pliki i punkty przywracania systemu, odinstalować programy i zastosować wymazywanie wolnej przestrzeni. Wówczas dane zostaną faktycznie usunięte, poprzez nadpisanie zerami. Osobiście to przetestowałem – po zastosowaniu wymazywania wolnej przestrzeni w Ccleaner plik ważący 4. GB zmniejszył się do 2. GB. Tym samym sposobem możemy dodać do maszyny inny sprzęt czy też drugi dysk twardy. Okno ustawienia podzielone jest na dwie zakładki.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
November 2017
Categories |